UNPKG

product-admin

Version:

EA admin screens

123 lines (104 loc) 3.17 kB
<link rel="import" href="../admin-shared-styles/admin-shared-styles.html"> <link rel="import" href="../bms-behaviors-util/bms-behaviors-util.html"> <link rel="import" href="../product-table-view/product-table-view.html" /> <link rel="import" href="../edit-product/edit-product.html" /> <dom-module id="admin-products-view"> <template> <style> :host ::content { background-color: white; display: block; height: inherit; } </style> <product-table-view id="products" assets="{{ assets }}" language="[[ language ]]" resources="[[ resources ]]" ></product-table-view> <iron-ajax auto method="GET" headers='{"accept": "application/json", "timeout": 10000, "Cache-Control": "no-cache"}' url="[[ assetsUrl ]]" content-type="application/json" handle-as="json" on-error="_handleAssetsError" on-response="_handleAssetsResponse" loading="{{loading}}" ></iron-ajax> </template> <script> (function (Polymer, util, undefined) { "use strict"; return Polymer({ is: "admin-products-view", behaviors: [ Polymer.AppLocalizeBehavior, bms.behaviors.util ], // listeners: { // "app-localize-resources-loaded": "appLocalizeResourcesLoaded" // }, properties: { assetsUrl: { type: String, value: function () { return util.properties.BASE_PATH.value.concat("/assets"); } }, productData: { type: Array, value: function () { return []; } }, language: { type: String, value: window.navigator.language // value: "es" // testing }, }, attached: attached, _handleAssetsResponse: _handleAssetsResponse, _handleAssetsError: _handleAssetsError }); function _handleAssetsError(errResponse){ //TODO: localize and put proper wording when we get proper messages. errResponse.messageTitle = this.localize("error"); errResponse.errorMessage = this.localize("getAssetsError"); this.fire('alert-error-message', errResponse); console.error("Failed to get response", errResponse); } function _handleAssetsResponse (data) { data = data.detail.__data__.response.map(function (assetResponse) { return { value: assetResponse.uri.split("/")[2], name: assetResponse.name, selected: false }; }); data = _sortByNameAsc(data); this.set("assets", data); } function _sortByNameAsc (arr) { return arr.sort(function (a, b) { var nameA = a.name.toLowerCase(); var nameB = b.name.toLowerCase(); if (nameA < nameB) { return -1; } if (nameA > nameB) { return 1; } return 0; }); } function attached () { this.language = this.language.slice(0, 2).toLowerCase(); this.loadResources(this.resolveUrl("../../resources/locales-".concat(this.language, ".json"))); } })(Polymer, bms.behaviors.util); </script> </dom-module>