+
+
+
+
+
+ {#if activeTab && activeTab.id === 'assignAssets'}
+
+ {:else if activeTab && activeTab.id === 'listAssignmentsByAssignee'}
+
+ {:else if activeTab && activeTab.id === 'listAssignmentsByPerson'}
+
+ {:else if activeTab && activeTab.id === 'listAssignmentsByAsset'}
+
+ {/if}
+
+
+
\ No newline at end of file
diff --git a/imports/ui/Assignments/AssignmentByPerson.svelte b/imports/ui/Assignments/AssignmentByPerson.svelte
index d6190b6..454cde7 100644
--- a/imports/ui/Assignments/AssignmentByPerson.svelte
+++ b/imports/ui/Assignments/AssignmentByPerson.svelte
@@ -9,97 +9,49 @@
import List, {Item, Graphic, Meta, Text, PrimaryText, SecondaryText} from '@smui/list';
import Paper from '@smui/paper';
import LayoutGrid, {Cell} from '@smui/layout-grid';
+ import {Assets} from "/imports/api/assets";
+ import {AssetTypes} from "/imports/api/asset-types";
- let grades = ['Staff', 'All Grades'];
onMount(async () => {
- Meteor.subscribe('sites');
- Meteor.call('students.getPossibleGrades', (err, result) => {
- if(err) console.log(err);
- else {
- grades = ['Staff', 'All Grades', ...result];
- }
- });
+ Meteor.subscribe('students');
+ Meteor.subscribe('staff');
+ Meteor.subscribe('assets');
+ Meteor.subscribe('assetTypes');
});
- // Load the sites (reactive).
- let sites = Sites.find({});
let selectedSiteId;
- let categories = ['Asset ID', 'Email', 'First Name', 'Last Name'];
+ let categories = ['Email', 'First Name', 'Last Name'];
let selectedCategory = 'Email';
- let selectedGrade = 'All Grades';
let searchText = "";
- let searchResults;
- let selectedResult;
+ let staffSearchResults;
+ let studentSearchResults;
$: {
- console.log("Site ID")
- console.log(selectedSiteId)
- if(selectedSiteId) {
- Meteor.subscribe('students', selectedSiteId);
- Meteor.subscribe('staff', selectedSiteId);
- }
+ if(searchText && searchText.length > 1) {
+ let query = {};
+ if (selectedCategory === 'Email') {
+ query.email = {$regex: searchText, $options: 'i'};
+ } else if (selectedCategory === 'First Name') {
+ query.firstName = {$regex: searchText, $options: 'i'};
+ } else {
+ query.lastName = {$regex: searchText, $options: 'i'};
+ }
+ staffSearchResults = Staff.find(query);
+ studentSearchResults = Students.find(query);
+ }
+ else {
+ staffSearchResults = undefined;
+ studentSearchResults = undefined;
+ }
}
-
- $: {
- selectedResult = null;
- console.log("Starting search")
-
- // Require at least two characters in the search field before we start filtering.
- if(selectedSiteId && selectedGrade && selectedCategory) {
- let query = {};
- let queryType = (selectedGrade === "Staff") ? 1 : 0;
-
- if(searchText && searchText.length > 0) {
- if (selectedCategory === 'Email') {
- query.email = {$regex: searchText, $options: 'i'};
- } else if( selectedCategory === 'Asset ID') {
- //Do not do anything yet...
- } else if (selectedCategory === 'First Name') {
- query.firstName = {$regex: searchText, $options: 'i'};
- } else {
- query.lastName = {$regex: searchText, $options: 'i'};
- }
- }
-
- if(selectedCategory === 'Asset ID') {
- Meteor.call('AssetAssignments.getOne', searchText, (err, result) => {
- if(err) {
- console.error(err);
- }
- else {
- if(result && result.assigneeType && result.assigneeId) {
- if (result.assigneeType === 'Staff') {
- query._id = result.assigneeId;
- queryType = 1;
- } else if (result.assigneeType === 'Student') {
- query._id = result.assigneeId;
- queryType = 0;
- } else {
- console.error("Invalid AssigneeType");
- }
- }
- else {
- console.error('Invalid result from AssetAssignments.getOne');
- }
- }
- });
- }
-
- if(queryType === 1) {
- searchResults = Staff.find(query);
- }
- else {
- if(selectedGrade !== 'All Grades') {
- query.grade = selectedGrade;
- }
-
- // console.log("Searching")
- // console.log(query)
- searchResults = Students.find(query);
- }
- }
- else {
- searchResults = undefined;
- }
+
+ const assignedAssets = (person) => {
+ let result = Assets.find({assigneeId: person._id}).fetch();
+
+ for(next of result) {
+ next.type = AssetTypes.findOne({_id: next.assetTypeId})
+ }
+
+ return result;
}
@@ -108,20 +60,6 @@