...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
isc.RestDataSource.create({ "ID": "supplyItemsuppyItem", "fields": [ { name: [ {"name":"itemID", "type": "sequence", "hidden": "true", "primaryKey": "true" }, { "name": "itemName", "type": "text", "title": "Item", "length": "128", "required": "true" }, { "name": "SKU", "type": "text", "title": "SKU", "length": "10", "required": "true" }, { "name": "description", "type": "text", "title": "Description", "length": "2000" }, { "name": "category", "type": "text", "title": "Category", "length": "128", "required": "true" }, { "name": "units", "type": "enum", "title": "Units", "length": "5", "valueMap": ["Roll", "Ea", "Pkt", "Set", "Tube", "Pad", "Ream", "Tin", "Bag", "Ctn", "Box"] }, { "name": "unitCost", "type": "float", "title": "Unit Cost", "required": "true", "validators": [ { "type": "floatRange", "min": "0", "errorMessage": "Please enter a valid (positive) cost" }, { "type": "floatPrecision", "precision": "2", "errorMessage": "The maximum allowed precision is 2" } ] }, { "name": "inStock", "type": "boolean", "title": "In Stock" }, { "name": "nextShipment", "type": "date", "title": "Next Shipment"} } ], "dataFormat": "json", criteriaPolicy:"dropOnChangeoperationBindings",: [ operationBindings: [ { "operationType": "fetch", "dataProtocol": "postMessage", "dataURL": "fetch.php" }, { "operationType": "add", "dataProtocol": "postMessage", "dataURL": "add.php" }, { "operationType": "update", "dataProtocol": "postMessage", "dataURL": "update.php" }, { "operationType": "remove", "dataProtocol": "postMessage", "dataURL": "remove.php" } ] }); |
Notice that this definition is almost a JSON file, with a small addendum at the beginning and the end. If the 'isc.RestDataSource.create(' part from the beginning and ');' part from the end were removed, this would give a valid JSON object which will be deserialized as a JSON object.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
isc.ListGrid.create({ "ID": "supplyItem", "width": 700, "height": 224, "alternateRecordStyles": true, "dataSource": supplyItem, "showFilterEditor": true, "autoFetchData":true, "dataPageSize":20, "canEdit":true, "canRemoveRecords":true }); |
Next, There needs to be a method for adding new records. Add a button which, on click, will trigger a new record being available for editing in the grid. The source for this is:
...