Fixed bug in Admin page; Finished asset data entry page.
This commit is contained in:
@@ -57,8 +57,12 @@ Meteor.methods({
|
||||
|
||||
if(Roles.userIsInRole(Meteor.userId(), "admin", {anyScope:true})) {
|
||||
let assetType = AssetTypes.findOne({assetTypeId});
|
||||
|
||||
if(serial) {
|
||||
|
||||
if(Assets.findOne({assetId})) {
|
||||
//return {error: true, errorType: 'duplicateAssetId'}
|
||||
throw new Meteor.Error("duplicateAssetId", "Cannot use the same asset ID twice.")
|
||||
}
|
||||
else if(serial) {
|
||||
Assets.insert({assetTypeId, assetId, serial});
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -50,9 +50,9 @@
|
||||
};
|
||||
// Create a holder for the site being edited. This allows us to clear the editor when the user finishes, and allows the table or parent view to setup the editor.
|
||||
let editedSite = writable(null);
|
||||
let dirtySite = null;
|
||||
let dirtySite;
|
||||
// Copy the edited site when ever it changes, set some defaults for a new site object (to make the view happy).
|
||||
editedSite.subscribe(site => {dirtySite = Object.assign({}, site)});
|
||||
editedSite.subscribe(site => {dirtySite = Object.assign({name:""}, site)});
|
||||
// Load the sites (reactive).
|
||||
let sites = Sites.find({});
|
||||
const applySiteChanges = () => {
|
||||
@@ -61,6 +61,7 @@
|
||||
else
|
||||
Meteor.call("sites.add", dirtySite.name);
|
||||
editedSite.set(null);
|
||||
dirtySite = null;
|
||||
}
|
||||
const rejectSiteChanges = () => {
|
||||
editedSite.set(null);
|
||||
@@ -215,7 +216,7 @@
|
||||
let editedAssetType = writable(null);
|
||||
const onAssetTypeSelection = (e) => {
|
||||
}
|
||||
let dirtyAssetType = null;
|
||||
let dirtyAssetType;
|
||||
// Copy the edited value when ever it changes, set some defaults for a new value object (to make the view happy).
|
||||
editedAssetType.subscribe(v => {dirtyAssetType = Object.assign({name: "", description: ""}, v)});
|
||||
// Load the sites (reactive).
|
||||
@@ -229,6 +230,7 @@
|
||||
else
|
||||
Meteor.call("assetTypes.add", dirtyAssetType.name, dirtyAssetType.description);
|
||||
editedAssetType.set(null);
|
||||
dirtyAssetType = null;
|
||||
}
|
||||
const rejectAssetTypeChanges = () => {
|
||||
editedSite.set(null);
|
||||
@@ -320,10 +322,6 @@
|
||||
</div>
|
||||
{/if}
|
||||
</GridTable>
|
||||
<!--{#each sites as site}-->
|
||||
<!-- <div>{site.name}</div>-->
|
||||
<!--{/each}-->
|
||||
<!-- <button type="button" on:click={fixRecords}>Fix Records</button>-->
|
||||
</div>
|
||||
|
||||
<style>
|
||||
|
||||
@@ -63,9 +63,28 @@
|
||||
let assetId = "";
|
||||
let serial = "";
|
||||
const addAsset = () => {
|
||||
Meteor.call("assets.add", selectedAssetType._id, assetId, serial);
|
||||
assetId = "";
|
||||
serial = "";
|
||||
if(selectedAssetType && selectedAssetType._id && assetId) {
|
||||
let result = Meteor.call("assets.add", selectedAssetType._id, assetId, serial, (err, res) => {
|
||||
if (err) {
|
||||
if (err.error === 'duplicateAssetId')
|
||||
alert("The asset ID `" + assetId + "` has already been used.");
|
||||
else
|
||||
alert(err);
|
||||
} else {
|
||||
assetId = "";
|
||||
serial = "";
|
||||
document.getElementById('assetIdField').focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
if(!selectedAssetType) {
|
||||
alert("Must select an asset type.");
|
||||
}
|
||||
else {
|
||||
alert("Must provide an Asset Id.");
|
||||
}
|
||||
}
|
||||
}
|
||||
let selectedAssetType = null;
|
||||
</script>
|
||||
@@ -109,7 +128,7 @@
|
||||
{/each}
|
||||
</List>
|
||||
<div style="grid-column: 1/span 1">
|
||||
<TextField type="text" style="width: 100%" bind:value={assetId} label="AssetId">
|
||||
<TextField id="assetIdField" type="text" style="width: 100%" bind:value={assetId} label="AssetId">
|
||||
</TextField>
|
||||
</div>
|
||||
<div style="grid-column: 1/span 1">
|
||||
|
||||
Reference in New Issue
Block a user