<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/paper-input/paper-input.html">
<link rel="import" href="../polymer_elements/inventory-crud.html">
<script src="observer.js"></script>
<polymer-element name="facility-page" attributes="facilityId">
<template>
<inventory-crud endpoint="/facility/{{facilityId}}" id="facilityDetail"
response="{{facility}}"
on-crud-error="{{handleError}}"
on-crud-completed="{{handleResponse}}">
</inventory-crud>
<paper-input-decorator label="Facility Name" floatingLabel>
</paper-input-decorator>
</template>
<script>
Polymer("facility-page", {
committed: {},
domReady: function () {
this.$.facilityDetail.get();
},
handleResponse: function () {
formObserver(this.committed, this.$.facilityDetail)
}
});
</script>
</polymer-element>
(observer.js)
===================================
function formObserver(committed, crudCall) {
"use strict";
var observer = new ObjectObserver(committed);
observer.open(function(added, removed, changed, getOldValueFn) {
// respond to changes to the obj.
Object.keys(added).forEach(function(property) {
var paramsObj = {};
paramsObj[property] = changed[property];
var body = JSON.stringify(paramsObj);
crudCall.patch(null,body);
});
Object.keys(changed).forEach(function(property) {
var paramsObj = {};
paramsObj[property] = changed[property];
var body = JSON.stringify(paramsObj);
crudCall.patch(null,body);
});
});
Platform.performMicrotaskCheckpoint();
}