{"version":3,"sources":["app.js","home/homeComponent.js","items/items.component.js","npcAdmin/npcAdmin.component.js","npcAdmins/npcAdmins.component.js","order/order.component.js","orders/orders.component.js","pendingOrders/pendingOrders.component.js","publicOrder/publicOrder.component.js","replaceLostShipment/replaceLostShipment.component.js","returns/returns.component.js","sample/sampleComponent.js","shippingLabel/shippingLabel.component.js","userDetails/userDetails.component.js","users/users.component.js","_directives/integer.js","_directives/intOnly.js","_directives/modalMovable.js","_directives/passwordStrength.js","_directives/zeroAsDash.js","_filters/stDate.js","_filters/stDateTime.js","_filters/stPimsOrderStatus.js","_services/apiFactory.js","_services/clientDataService.js","_services/dataService.js","_services/lookupsService.js","_services/reportService.js","_services/tpsrService.js","_services/utils.js","account/createPassword/createPassword.component.js","account/forgotPassword/forgotPassword.component.js","account/updatePassword/updatePassword.component.js","sample/modals/editSampleModal.js","_shared/header/header.component.js","_shared/pagingDisplay/pagingDisplay.component.js","_shared/userAddress/userAddress.component.js"],"names":["angular","module","factory","httpInterceptor","config","routes","toastr","modal","spinner","addHttpInterceptors","$routeProvider","$locationProvider","hashPrefix","when","template","resolve","key","$route","current","params","session","getSession","customerId","loggedIn","managerId","linkId","orderId","shipmentId","userId","returnId","otherwise","redirectTo","tpsr","$inject","$httpProvider","interceptors","push","$q","$location","clientDataService","token","getToken","headers","Authorization","response","status","console","log","url","reject","toastrConfig","extend","positionClass","preventOpenDuplicates","timeOut","$uibModalProvider","options","controllerAs","backdrop","keyboard","spinnerProvider","showAll","HomeController","constructor","stToast","tpsrService","user","email","password","login","then","result","logged_in","_loginRedirect","toast","error","reason","is_npc_admin","is_admin","is_approver","$onInit","isLoggedIn","component","templateUrl","controller","ItemsController","orderBy","descendingFirst","paging","orderDescending","_loadItems","customer","PIMS_customer_id","diffItems","_getDiffItems","length","items","copy","orig_items","request","forEach","item","PIMS_item_id","max_order_qty","parseInt","max_order_qty_UOM","updateMultipleItems","success","orig_item","find","og","customer_id","getCustomer","getItems","filter","r","is_disabled","size","number","totalQty","all","_loadCustomer","bindings","NpcAdminController","getUserforEmail","users","emailValid","emailValidReason","first_name","last_name","is_npc_admin_bit","is_admin_bit","is_manager_bit","is_approver_bit","insertUser","user_id","is_manager","updateUser","getUser","originalUser","_loadUser","NpcAdminsController","propName","currVal","userToggleRole","getNpcAdmins","getCustomers","customers","_loadUsers","_loadCustomers","OrderController","$sce","reportService","order","order_status","create_user","shipments","details","hrefs","map","d","tracking_url","tracking_number","trustAsHtml","join","is_replacement_bit","is_replacement_for_failed_to_deliver_bit","replacement_for_order_id","lines","quantity","Unit_Of_Measure","uom","createOrder","showReturnCreated","approveOrder","order_id","_loadOrder","rejectOrder","shipment","PIMS_order_id","deleteOrder","getPackListRpt","getShippingLabel","returnOrder","returns","return_id","latestReturnId","isAdmin","maxQty","qty","can","tot","line","isValidItem","getOrder","i","getReturns","orders","total_return_quantity","reduce","t","l","return_quantity","total_replace_quantity","replace_quantity","want_replacement","ref","isAdminOrManager","search","rid","o","_loadReturns","OrdersController","_loadOrders","getOrdersUser","forUserId","PendingOrdersController","getOrdersPending","PublicOrderController","asUser","publicApproveOrder","publicRejectOrder","getPublicOrderLink","link","u","as_user_id","_loadLink","ReplaceLostShipmentController","s","parseFloat","ReturnsController","return_lot_no","lot_no","createReturn","out","sl","ol","SampleController","apiFactory","$uibModal","$http","prop","reverse","sample","samplesApi","delete","sample_id","samples","splice","indexOf","catch","errorHandler","editSample","open","updatedSample","existingSample","c","noop","is_active","newSample","create","icon","runGenericReport","createReport","runOtherReport","createBarcodeReport","ShippingLabelController","label","_loadLabel","UserDetailsController","zipcodeChanging","zip_code","toString","_loadStatesAndCities","finally","states","cities","selectedManager","noManager","value","getUserforEmpId","state","pagestates","NEW_USER_DETAILS","emp_id","phone","manager_id","address1","address2","city_id","selectedCity","state_id","selectedState","getManagers","managers","m","getStatesAndCitiesForZipcode","INIT","NEW_USER_EMAIL","EDIT","_loadManagers","UsersController","passwordResetSent","has_password","resetPasswordRequest","createUserEmailRequest","getUsers","isManager","showOrders","directive","INTEGER_REGEXP","require","scope","elm","attrs","ctrl","$validators","integer","modelValue","viewValue","$isEmpty","test","MAX_SIGNED_INT","element","ngModelCtrl","$parsers","val","isUndefined","clean","replace","startsWith","$setViewValue","$render","isNaN","$modelValue","bind","event","keyCode","preventDefault","modalMovable","$document","restrict","startX","startY","x","y","modalHeaderClicked","dialogWrapper","parent","hasClass","css","position","modalHeader","Array","from","classList","contains","cursor","on","pageX","pageY","mousemove","mouseup","top","left","unbind","elem","$watch","newVal","strength","isSatisfied","criteria","$formatters","stDateFilter","$filter","input","stDateTimeFilter","stPimsOrderStatus","ApiFactory","get","data","id","entity","post","update","put","service","ClientDataService","$cookies","tokenKey","remove","DataService","username","baseApiUrl","page_size","page_number","order_by","order_descending","prop_name","shipment_lines","shipment_details","sd","link_id","array","pageSize","pageNumber","slice","LookupsService","ReportService","$window","popup","createPopup","responseType","openGifReport","err","handleError","openPdfReport","title","undefined","ie","window","document","body","append","createElement","innerHtml","close","filename","file","Blob","type","fileUrl","URL","createObjectURL","navigator","msSaveBlob","location","href","innerText","img","src","userAgent","match","fileName","parameters","Pims","apis","reporting","Uri","barcodeValues","optionsBarcodeSettings","defaultBarcodeSettings","barcodeSettings","TpsrService","dataService","loginResult","clientData","setToken","logout","removeToken","_logout","full_name","getUserForCreatePassword","updateUserPasswordFromKey","is_valid","searchUsers","Utils","prototype","expression","comparator","groupBy","groups","distinct","set","Set","has","add","range","n","keys","JSONToCSV","jsonData","showLabel","arrData","JSON","parse","csv","row","header","hasOwnProperty","dataString","alert","universalBOM","blob","encoding","style","download","appendChild","click","removeChild","revokeObjectURL","run","utils","CreatePasswordController","saving","password1","password2","badPassword","reasons","loading","badKey","validKey","is_existing_user","ForgotPasswordController","emailSent","UpdatePasswordController","EditSampleModalController","sample_name","some","toLowerCase","$value","sampleTypeApi","sample_types","Object","assign","sampleTypes","dismiss","HeaderController","testPath","path","showNpcAdmins","showUsers","showItems","showMyOrders","PagingDisplayController","pagingInfo","onPrev","onNext","UserAddressController"],"mappings":"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","file":"script.js","sourcesContent":["(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app', [\r\n 'ngRoute',\r\n 'ngAnimate',\r\n 'ngCookies',\r\n 'ngSanitize',\r\n 'ngMessages',\r\n 'ui.bootstrap',\r\n 'ui.validate',\r\n 'stToast', // toastr alert messages (customized css for full top)\r\n 'stConfirmPopover', // 'Are you sure?' popover\r\n 'stSpinner', // Spinner\r\n 'stValidators'\r\n ])\r\n .factory(\"httpInterceptor\", httpInterceptor)\r\n .config(routes)\r\n .config(toastr)\r\n .config(modal)\r\n .config(spinner)\r\n .config(addHttpInterceptors);\r\n\r\n function routes($routeProvider, $locationProvider) {\r\n $locationProvider.hashPrefix('');\r\n\r\n //const abilities = {\r\n //\tVIEW: 'ThirdPartySalesRep - View',\r\n //\tEDIT: 'ThirdPartySalesRep - Edit'\r\n //};\r\n\r\n $routeProvider\r\n //.when('/', { template: '', resolve: authorized([abilities.VIEW, abilities.EDIT]) })\r\n .when('/', { template: '' })\r\n .when('/create-password/:key?', { template: '', resolve: { key: ['$route', $route => $route.current.params.key] } })\r\n .when('/customers/:customerId/items', { template: '', resolve: { session: getSession(), customerId: ['$route', $route => $route.current.params.customerId] } })\r\n .when('/customers/:customerId/users', { template: '', resolve: { session: getSession(), customerId: ['$route', $route => $route.current.params.customerId] } })\r\n .when('/customers/:customerId/users/create', { template: '', resolve: { session: getSession(), customerId: ['$route', $route => $route.current.params.customerId] } })\r\n .when('/forgot-password', { template: '' })\r\n .when('/home', { template: '' })\r\n .when('/items', { template: '', resolve: loggedIn() })\r\n .when('/managers/:managerId/pending-orders/', { template: '', resolve: { session: getSession(), managerId: ['$route', $route => $route.current.params.managerId] } })\r\n .when('/order-approval/:linkId', { template: '', resolve: { linkId: ['$route', $route => $route.current.params.linkId] } })\r\n .when('/orders/create', { template: '', resolve: loggedIn() })\r\n .when('/orders/:orderId/returns', { template: '', resolve: { session: getSession(), orderId: ['$route', $route => $route.current.params.orderId] } })\r\n .when('/orders/:orderId/replace-lost-shipment/:shipmentId', { template: '', resolve: { session: getSession(), orderId: ['$route', $route => $route.current.params.orderId], shipmentId: ['$route', $route => $route.current.params.shipmentId] } })\r\n .when('/orders/:orderId', { template: '', resolve: { session: getSession(), orderId: ['$route', $route => $route.current.params.orderId] } })\r\n .when('/orders', { template: '', resolve: loggedIn() })\r\n .when('/npc-admins/create', { template: '', resolve: loggedIn() })\r\n .when('/npc-admins/:userId', { template: '', resolve: { session: getSession(), userId: ['$route', $route => $route.current.params.userId] } })\r\n .when('/npc-admins', { template: '', resolve: loggedIn() })\r\n .when('/shipping-label/:returnId', { template: '', resolve: { returnId: ['$route', $route => $route.current.params.returnId] } })\r\n .when('/update-password', { template: '', resolve: loggedIn() })\r\n .when('/users/create', { template: '', resolve: loggedIn() })\r\n .when('/users/:userId/returns', { template: '', resolve: { session: getSession(), userId: ['$route', $route => $route.current.params.userId] } })\r\n .when('/users/:userId/orders/create', { template: '', resolve: { session: getSession(), userId: ['$route', $route => $route.current.params.userId] } })\r\n .when('/users/:userId/orders', { template: '', resolve: { session: getSession(), userId: ['$route', $route => $route.current.params.userId] } })\r\n .when('/users/:userId', { template: '', resolve: { session: getSession(), userId: ['$route', $route => $route.current.params.userId] } })\r\n .when('/users', { template: '', resolve: loggedIn() })\r\n .otherwise({ redirectTo: '/' });\r\n\r\n function loggedIn() {\r\n return {\r\n session : getSession()\r\n }\r\n }\r\n\r\n function getSession() {\r\n return [\r\n 'tpsrService', function (tpsr) {\r\n return tpsr.getSession();\r\n }\r\n ];\r\n }\r\n\r\n // Verify user is logged in, with optional abilities, and return the user's session in the 'session' property.\r\n // Ex:\r\n // .when('/my-component', {\r\n // template: '',\r\n // resolve: authorized(['Required Ability'])\r\n // // resolve: authorized() // only need to be logged in, no extra abilities\r\n // })\r\n //function authorized(abilities) {\r\n // return {\r\n // session: session(abilities)\r\n // };\r\n //};\r\n\r\n // Verify user is logged in, with optional abilities, and return the user's session in the 'session' property. Use this style when extra resolve parameters are needed.\r\n // Ex:\r\n // .when('/my-component/:myComponentId', {\r\n // template: '',\r\n // resolve: {\r\n // session: session(['Required Ability']),\r\n // //session: session(), // only need to be logged in, no extra abilities\r\n // myComponentId: ['$route', $route => $route.current.params.myComponentId]\r\n // }\r\n // })\r\n //function session(abilities = []) {\r\n // return [\r\n // 'stAuthFactory', function (auth) {\r\n // return auth.authorize(abilities).then(r => r.data);\r\n // }\r\n // ];\r\n //}\r\n\r\n }\r\n routes.$inject = ['$routeProvider', '$locationProvider'];\r\n\r\n function addHttpInterceptors($httpProvider) {\r\n $httpProvider.interceptors.push(\"httpInterceptor\");\r\n }\r\n addHttpInterceptors.$inject = [\"$httpProvider\"];\r\n\r\n function httpInterceptor($q, $location, clientDataService) {\r\n return {\r\n 'request': config => {\r\n const token = clientDataService.getToken();\r\n if (token) {\r\n config.headers.Authorization = `${token}`;\r\n }\r\n return config || $q.when(config);\r\n },\r\n 'responseError': response => {\r\n if (response.status === 401) {\r\n console.log(\"responseError\", response);\r\n $location.url(`/`)\r\n //$http = $http || $injector.get(\"$http\");\r\n //loginModal = loginModal || $injector.get(\"loginModal\");\r\n //return loginModal().then(() => $http(response.config));\r\n }\r\n\r\n if (response.status === 403) {\r\n }\r\n\r\n return $q.reject(response);\r\n }\r\n };\r\n }\r\n httpInterceptor.$inject = [\"$q\", \"$location\", \"clientDataService\"];\r\n\r\n function toastr(toastrConfig) {\r\n\r\n angular\r\n .extend(toastrConfig, {\r\n positionClass: 'toast-top-full-width',\r\n preventOpenDuplicates: true,\r\n timeOut: 3000\r\n });\r\n\r\n }\r\n toastr.$inject = ['toastrConfig'];\r\n\r\n function modal($uibModalProvider) {\r\n angular.extend($uibModalProvider.options, {\r\n controllerAs: '$ctrl',\r\n //size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false\r\n });\r\n }\r\n modal.$inject = ['$uibModalProvider'];\r\n\r\n\r\n function spinner(spinnerProvider) {\r\n spinnerProvider\r\n .showAll(true);\r\n }\r\n spinner.$inject = ['stSpinnerProvider'];\r\n})();","class HomeController {\r\n\r\n static $inject = [\"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($location, stToast, tpsrService) {\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.user = {\r\n email: null,\r\n password: null\r\n };\r\n }\r\n\r\n $onInit() {\r\n if (this.tpsr.isLoggedIn()) \r\n this._loginRedirect();\r\n }\r\n\r\n loginEnabled = () => {\r\n if (!this.user.email)\r\n return false;\r\n\r\n if (!this.user.password)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n login = () => {\r\n return this.tpsr.login(this.user.email, this.user.password)\r\n .then(result => {\r\n if (result.logged_in)\r\n this._loginRedirect();\r\n else\r\n this.toast.error(\"Login failed.\", result.reason);\r\n });\r\n }\r\n\r\n _loginRedirect = () => {\r\n if (this.tpsr.user.is_npc_admin)\r\n this.$location.url(\"/npc-admins\");\r\n else if (this.tpsr.user.is_admin || this.tpsr.user.is_approver)\r\n this.$location.url(\"/users\");\r\n else\r\n this.$location.url(\"/orders\");\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"home\", {\r\n templateUrl: \"src/app/home/home.html\",\r\n controller: HomeController\r\n });\r\n","class ItemsController {\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\n\n constructor($q, $location, stToast, tpsrService) {\n this.$q = $q;\n this.$location = $location;\n this.toast = stToast;\n this.tpsr = tpsrService;\n this.customer = null;\n this.items = [];\n this.orig_items = [];\n this.paging = {\n size: 100,\n number: 1,\n totalQty: 0,\n orderBy: \"item_description\",\n orderDescending: false\n };\n }\n\n $onInit() {\n let customer_id = this.tpsr.user.PIMS_customer_id;\n if (this.tpsr.user.is_npc_admin && this.customerId)\n customer_id = this.customerId;\n\n return this.$q.all([\n this._loadCustomer(customer_id),\n this._loadItems(customer_id)\n ]);\n }\n\n sortClicked = (orderBy, descendingFirst) => {\n if (orderBy === this.paging.orderBy)\n this.paging.orderDescending = !this.paging.orderDescending;\n else\n this.paging.orderDescending = !!descendingFirst;\n this.paging.orderBy = orderBy;\n return this._loadItems(this.customer.PIMS_customer_id);\n };\n\n canSave = () => {\n const diffItems = this._getDiffItems();\r\n return diffItems.length;\r\n };\n\n cancelClicked = () => {\n this.items = angular.copy(this.orig_items);\r\n };\n\n saveClicked = () => {\n const diffItems = this._getDiffItems();\r\n const request = [];\r\n\r\n diffItems.forEach(item => {\r\n request.push({\r\n PIMS_customer_id: item.PIMS_customer_id,\r\n PIMS_item_id: item.PIMS_item_id,\r\n max_order_qty: item.max_order_qty === \"\" ? null : parseInt(item.max_order_qty),\r\n max_order_qty_UOM: item.max_order_qty_UOM\r\n })\r\n });\r\n return this.tpsr.updateMultipleItems(request).then(() => {\r\n this.toast.success(\"Update Items\", `Items Updated.`);\r\n return this._loadItems(this.customer.PIMS_customer_id);\r\n })\r\n };\n\n _getDiffItems = () => {\n const diffItems = [];\r\n this.items.forEach(item => {\r\n const orig_item = this.orig_items.find(og => og.PIMS_item_id === item.PIMS_item_id);\r\n if (orig_item.max_order_qty !== item.max_order_qty)\r\n diffItems.push(item);\r\n });\r\n return diffItems;\r\n };\n\n _loadCustomer = customer_id => {\n return this.tpsr.getCustomer(customer_id).then(result => this.customer = result);\n };\n\n _loadItems = customer_id => {\n return this.tpsr.getItems(customer_id)\n .then(result => {\n this.items = result.filter(r => !r.is_disabled);\n this.items.forEach(item => {\n if (item.max_order_qty == null)\r\n item.max_order_qty = \"\";\r\n });\n this.orig_items = angular.copy(this.items);\n });\n };\n}\n\nangular\n .module(\"app\")\n .component(\"items\", { // items\r\n bindings: {\r\n customerId: \"<\"\r\n },\n templateUrl: \"src/app/items/items.html\",\n controller: ItemsController\n });\n","class NpcAdminController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n\r\n this.originalUser = null;\r\n this.user = null;\r\n this.emailValid = true;\r\n this.emailValidReason = null;\r\n }\r\n\r\n $onInit() {\r\n if(!this.tpsr.user.is_npc_admin)\r\n this.$location.url(`/`);\r\n\r\n if (this.userId)\r\n return this._loadUser(this.userId);\r\n else\r\n this.user = {\r\n email: null,\r\n first_name: null,\r\n last_name: null,\r\n is_npc_admin: true\r\n };\r\n }\r\n\r\n\r\n createUserClicked = () => {\r\n return this.tpsr.getUserforEmail(this.user.email).then(result => {\r\n if (result.users.length) {\r\n this.emailValid = false;\r\n this.emailValidReason = \"User already exists with this email\";\r\n } else {\r\n\r\n const request = {\r\n email: this.user.email,\r\n first_name: this.user.first_name,\r\n last_name: this.user.last_name,\r\n\r\n is_npc_admin_bit: true,\r\n is_admin_bit: false,\r\n is_manager_bit: false,\r\n is_approver_bit: false\r\n };\r\n return this.tpsr.insertUser(request).then(result => {\r\n this.toast.success(\"NPC Admin Created\", `NPC Admin created.`)\r\n this.$location.url(`/npc-admins`);\r\n });\r\n\r\n }\r\n });\r\n };\r\n\r\n updateUserClicked = () => {\r\n const request = {\r\n user_id: this.user.user_id,\r\n email: this.user.email,\r\n first_name: this.user.first_name,\r\n last_name: this.user.last_name,\r\n\r\n is_npc_admin_bit: true,\r\n is_admin_bit: this.user.is_admin,\r\n is_manager_bit: this.user.is_manager,\r\n is_approver_bit: this.user.is_approver\r\n };\r\n return this.tpsr.updateUser(request).then(result => {\r\n this.toast.success(\"NPC Admin Updated\", `NPC Admin updated.`)\r\n this.$location.url(`/npc-admins`);\r\n });\r\n };\r\n\r\n cancelClicked = () => {\r\n this.$location.url(`/npc-admins`);\r\n };\r\n\r\n _loadUser = user_id => {\r\n return this.tpsr.getUser(user_id).then(result => {\r\n this.user = result;\r\n this.originalUser = angular.copy(result);\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"npcAdmin\", { // npc-admin\r\n bindings: {\r\n userId: \"<\"\r\n },\r\n templateUrl: \"src/app/npcAdmin/npcAdmin.html\",\r\n controller: NpcAdminController\r\n });\r\n","class NpcAdminsController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.users = [];\r\n this.customers = [];\r\n this.paging = {\r\n size: 100,\r\n number: 1,\r\n totalQty: 0,\r\n orderBy: \"last_name\",\r\n orderDescending: false\r\n };\r\n }\r\n\r\n $onInit() {\r\n return this.$q.all([\r\n this._loadUsers(),\r\n this._loadCustomers()\r\n ]);\r\n }\r\n\r\n addUserClicked = () => {\r\n this.$location.url(`/npc-admins/create`);\r\n };\r\n\r\n editClicked = user => {\r\n this.$location.url(`/npc-admins/${user.user_id}`);\r\n };\r\n\r\n usersClicked = customer => {\r\n this.tpsr.customer = customer;\r\n this.$location.url(`/customers/${customer.PIMS_customer_id}/users`)\r\n };\r\n\r\n toggleRoleClicked = (user, propName, currVal) => {\r\n return this.tpsr.userToggleRole(user.user_id, propName, !currVal);\r\n };\r\n\r\n _loadUsers = () => {\r\n return this.tpsr.getNpcAdmins(this.paging.size, this.paging.number, this.paging.orderBy, this.paging.orderDescending)\r\n .then(result => {\r\n this.users = result.users;\r\n this.paging.totalQty = result.totalQty;\r\n });\r\n };\r\n\r\n _loadCustomers = () => {\r\n return this.tpsr.getCustomers().then(result => this.customers = result);\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"npcAdmins\", { // npc-admins\r\n templateUrl: \"src/app/npcAdmins/npcAdmins.html\",\r\n controller: NpcAdminsController\r\n });\r\n","class OrderController {\r\n static $inject = [\"$q\", \"$location\", \"$sce\", \"stToast\", \"tpsrService\", \"reportService\"];\r\n\r\n constructor($q, $location, $sce, stToast, tpsrService, reportService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.$sce = $sce;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.reportService = reportService;\r\n\r\n this.ref = null;\r\n this.showReturnCreated = false;\r\n this.latestReturnId = null;\r\n\r\n this.user = null;\r\n this.order = {\r\n lines: []\r\n }\r\n this.returns = [];\r\n }\r\n\r\n $onInit() {\r\n this.isAdmin = this.tpsr.user.is_npc_admin || this.tpsr.user.is_admin;\r\n this.isAdminOrManager = this.tpsr.user.is_npc_admin || this.tpsr.user.is_admin || this.tpsr.user.is_manager;\r\n\r\n const search = this.$location.search();\r\n if (search && search.ref) {\r\n if (search.ref) {\r\n this.ref = search.ref;\r\n if (this.ref === \"return-created\") {\r\n this.showReturnCreated = true;\r\n this.latestReturnId = search.rid;\r\n }\r\n }\r\n }\r\n\r\n // Edit Order\r\n if (this.orderId)\r\n return this.$q.all(\r\n this._loadOrder(this.orderId).then(o => this._loadUser(o.user_id)),\r\n this._loadReturns(this.orderId, null)\r\n );\r\n\r\n\r\n // Create Order\r\n let user_id = this.tpsr.user.user_id;\r\n if (this.userId)\r\n if (this.tpsr.user.is_npc_admin || this.tpsr.user.is_admin || this.tpsr.user.is_manager || this.tpsr.is_approver)\r\n user_id = this.userId;\r\n\r\n return this._loadUser(user_id).then(this._loadItems);\r\n }\r\n\r\n showApproveReject = order => {\r\n if (!this.tpsr.user.is_approver)\r\n return false;\r\n\r\n if (!(order.order_status === 'PND' || order.order_status === 'REJ'))\r\n return false;\r\n\r\n if (this.tpsr.user.user_id === order.create_user)\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n showCreateReturn = () => {\r\n if (!this.order || !this.order.shipments)\r\n return false;\r\n\r\n if (this.order.shipments.length === 0)\r\n return false;\r\n\r\n if (this.tpsr.user.user_id === this.order.user_id)\r\n return true;\r\n\r\n if (this.tpsr.user.is_npc_admin || this.tpsr.user.is_admin)\r\n return true;\r\n\r\n return false;\r\n };\r\n\r\n getTrackingLinks = details => {\r\n const hrefs = details.map(d => `${d.tracking_number}`);\r\n return this.$sce.trustAsHtml(``);\r\n }\r\n\r\n createOrderClicked = () => {\r\n const request = {\r\n user_id: this.user.user_id,\r\n is_replacement_bit: false,\t\r\n is_replacement_for_failed_to_deliver_bit: false,\r\n replacement_for_order_id: null,\r\n lines: []\r\n };\r\n this.order.lines.forEach(item => {\r\n if (item.quantity > 0) {\r\n request.lines.push({\r\n PIMS_item_id: item.PIMS_item_id,\t\r\n Unit_Of_Measure: item.uom,\r\n quantity: item.quantity\r\n });\r\n }\r\n });\r\n\r\n return this.tpsr.createOrder(request).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Created\", `Order created.`)\r\n this.$location.url(`/users/${this.user.user_id}/orders`);\r\n }\r\n });\r\n };\r\n\r\n closeAlert = () => {\r\n this.showReturnCreated = false;\r\n };\r\n\r\n approveClicked = order => {\r\n return this.tpsr.approveOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Approved\", `Order approved.`)\r\n this._loadOrder(order.order_id);\r\n }\r\n });\r\n };\r\n\r\n rejectClicked = order => {\r\n return this.tpsr.rejectOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Rejected\", `Order rejected.`)\r\n this._loadOrder(order.order_id);\r\n }\r\n });\r\n };\r\n\r\n cancelClicked = () => {\r\n this.$location.url(`/users/${this.user.user_id}/orders`);\r\n };\r\n\r\n returnToPendingClicked = () => {\r\n this.$location.url(`/managers/${this.tpsr.user.user_id}/pending-orders`);\r\n };\r\n\r\n orderReturnsClicked = shipment => {\r\n this.$location.url(`/orders/${this.order.order_id}/returns`);\r\n };\r\n\r\n orderReplaceLostShipmentClicked = shipment => {\r\n this.$location.url(`/orders/${this.order.order_id}/replace-lost-shipment/${shipment.PIMS_order_id}/`);\r\n };\r\n\r\n deleteClicked = order => {\r\n return this.tpsr.deleteOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Deleted\", `Order deleted.`)\r\n this.$location.url(`/users/${this.user.user_id}/orders`);\r\n }\r\n });\r\n };\r\n\r\n packingSlipClicked = shipment => {\r\n return this.reportService.getPackListRpt(shipment.PIMS_order_id);\r\n };\r\n\r\n downloadLabelClicked = order => {\r\n return this.reportService.getShippingLabel(order);\r\n };\r\n\r\n downloadLatestLabelClicked = () => {\r\n const returnOrder = this.returns.find(r => r.return_id === this.latestReturnId);\r\n return this.reportService.getShippingLabel(returnOrder);\r\n };\r\n\r\n isValidItem = item => {\r\n if (this.isAdmin)\r\n return true; // Admin does not have max quantity limit.\r\n\r\n const maxQty = parseInt(item.max_order_qty || 0);\r\n const qty = parseInt(item.quantity || 0);\r\n if (maxQty > 0 && qty > maxQty)\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n canSave = () => {\r\n let can = true;\r\n let tot = 0;\r\n this.order.lines.forEach(line => {\r\n if (!this.isValidItem(line))\r\n can = false;\r\n tot += parseInt(line.quantity || 0);\r\n });\r\n return can && tot > 0;\r\n };\r\n\r\n _loadUser = user_id => {\r\n return this.tpsr.getUser(user_id).then(result => {\r\n this.user = result;\r\n });\r\n };\r\n\r\n _loadOrder = order_id => {\r\n return this.tpsr.getOrder(order_id).then(result => {\r\n this.order = result;\r\n return result;\r\n });\r\n };\r\n\r\n _loadItems = () => {\r\n return this.tpsr.getItems(this.user.PIMS_customer_id).then(result => {\r\n let lines = result.filter(r => !r.is_disabled);\r\n if (!this.isAdmin)\r\n lines = lines.filter(r => r.max_order_qty !== 0);\r\n lines.forEach(i => {\r\n i.quantity = 0;\r\n });\r\n this.order.lines = lines;\r\n });\r\n };\r\n\r\n _loadReturns = (order_id, user_id) => {\r\n return this.tpsr.getReturns(order_id, user_id).then(result => {\r\n this.returns = result.orders;\r\n this.returns.forEach(r => {\r\n r.total_return_quantity = r.lines.reduce((t, l) => t + l.return_quantity, 0);\r\n r.total_replace_quantity = r.lines.reduce((t, l) => t + l.replace_quantity, 0);\r\n r.want_replacement = r.total_replace_quantity > 0;\r\n });\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"order\", { // order\r\n bindings: {\r\n orderId: \"<\",\r\n userId: \"<\"\r\n },\r\n templateUrl: \"src/app/order/order.html\",\r\n controller: OrderController\r\n });\r\n","class OrdersController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\", \"reportService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService, reportService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.reportService = reportService;\r\n\r\n this.user = null;\r\n this.orders = [];\r\n this.paging = {\r\n size: 100,\r\n number: 1,\r\n totalQty: 0,\r\n orderBy: \"create_date\",\r\n orderDescending: true\r\n };\r\n this.isAdmin = false;\r\n }\r\n\r\n $onInit() {\r\n \r\n \r\n let user_id = this.tpsr.user.user_id;\r\n if (this.forUserId)\r\n if (this.tpsr.user.is_npc_admin || this.tpsr.user.is_admin || this.tpsr.user.is_manager || this.tpsr.is_approver)\r\n user_id = this.forUserId;\r\n\r\n return this.$q.all([\r\n this._loadUser(user_id),\r\n this._loadOrders(user_id)\r\n ]);\r\n }\r\n\r\n prevPageClicked = () => {\r\n this.paging.number--;\r\n return this._loadOrders(this.user.user_id);\r\n };\r\n\r\n nextPageClicked = () => {\r\n this.paging.number++;\r\n return this._loadOrders(this.user.user_id);\r\n };\r\n\r\n createOrderClicked = () => {\r\n if(this.tpsr.user.user_id !== this.user.user_id)\r\n this.$location.url(`/users/${this.user.user_id}/orders/create`);\r\n else\r\n this.$location.url(`/orders/create`);\r\n };\r\n\r\n detailsClicked = order => {\r\n this.$location.url(`/orders/${order.order_id}`);\r\n };\r\n\r\n approveClicked = order => {\r\n return this.tpsr.approveOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Approved\", `Order approved.`)\r\n this._loadOrders(this.user.user_id);\r\n }\r\n });\r\n };\r\n\r\n rejectClicked = order => {\r\n return this.tpsr.rejectOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Rejected\", `Order rejected.`)\r\n this._loadOrders(this.user.user_id);\r\n }\r\n });\r\n };\r\n\r\n showApproveReject = order => {\r\n if (!this.tpsr.user.is_approver)\r\n return false;\r\n\r\n if (!(order.order_status === 'PND' || order.order_status === 'REJ'))\r\n return false;\r\n\r\n if (this.tpsr.user.user_id === order.create_user)\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n _loadUser = user_id => {\r\n return this.tpsr.getUser(user_id).then(result => this.user = result);\r\n };\r\n\r\n _loadOrders = user_id => {\r\n return this.tpsr.getOrdersUser(this.paging.size, this.paging.number, this.paging.orderBy, this.paging.orderDescending, user_id)\r\n .then(result => {\r\n this.orders = result.orders;\r\n this.paging.totalQty = result.totalQty;\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"orders\", { // orders\r\n bindings: {\r\n forUserId: \"<\"\r\n },\r\n templateUrl: \"src/app/orders/orders.html\",\r\n controller: OrdersController\r\n });\r\n","class PendingOrdersController {\r\n static $inject = [\"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($location, stToast, tpsrService) {\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n\r\n this.orders = [];\r\n this.paging = {\r\n size: 100,\r\n number: 1,\r\n totalQty: 0,\r\n orderBy: \"create_date\",\r\n orderDescending: false\r\n };\r\n }\r\n\r\n $onInit() {\r\n return this._loadOrders();\r\n }\r\n\r\n prevPageClicked = () => {\r\n this.paging.number--;\r\n return this._loadOrders();\r\n };\r\n\r\n nextPageClicked = () => {\r\n this.paging.number++;\r\n return this._loadOrders();\r\n };\r\n\r\n detailsClicked = order => {\r\n this.$location.url(`/orders/${order.order_id}?ref=pending`);\r\n };\r\n\r\n backToUsersClicked = () => {\r\n this.$location.url(`/users`);\r\n };\r\n\r\n approveClicked = order => {\r\n return this.tpsr.approveOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Approved\", `Order approved.`)\r\n this._loadOrders();\r\n }\r\n });\r\n };\r\n\r\n rejectClicked = order => {\r\n return this.tpsr.rejectOrder(order.order_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Rejected\", `Order rejected.`)\r\n this._loadOrders();\r\n }\r\n });\r\n }\r\n\r\n _loadOrders = () => {\r\n return this.tpsr.getOrdersPending(this.paging.size, this.paging.number, this.paging.orderBy, this.paging.orderDescending, this.managerId)\r\n .then(result => {\r\n this.orders = result.orders;\r\n this.paging.totalQty = result.totalQty;\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"pendingOrders\", { // pending-orders\r\n bindings: {\r\n managerId: \"<\"\r\n },\r\n templateUrl: \"src/app/pendingOrders/pendingOrders.html\",\r\n controller: PendingOrdersController\r\n });\r\n","class PublicOrderController {\r\n static $inject = [\"$q\", \"$location\", \"$sce\", \"stToast\", \"tpsrService\", \"reportService\"];\r\n\r\n constructor($q, $location, $sce, stToast, tpsrService, reportService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.$sce = $sce;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.reportService = reportService;\r\n\r\n this.user = null;\r\n this.asUser = null;\r\n this.order = {\r\n lines: []\r\n }\r\n }\r\n\r\n $onInit() {\r\n return this._loadLink();\r\n }\r\n\r\n showApproveReject = order => {\r\n if (!this.asUser)\r\n return false;\r\n\r\n if (!this.asUser.is_approver)\r\n return false;\r\n\r\n if (!(order.order_status === 'PND' || order.order_status === 'REJ'))\r\n return false;\r\n\r\n if (this.asUser.user_id === order.create_user) // Admin cannot approve orders they create for other users.\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n\r\n approveClicked = order => {\r\n return this.tpsr.publicApproveOrder(order.order_id, this.asUser.user_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Approved\", `Order approved.`)\r\n this._loadOrder(order.order_id);\r\n }\r\n });\r\n };\r\n\r\n rejectClicked = order => {\r\n return this.tpsr.publicRejectOrder(order.order_id, this.asUser.user_id).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Order Rejected\", `Order rejected.`)\r\n this._loadOrder(order.order_id);\r\n }\r\n });\r\n };\r\n\r\n\r\n packingSlipClicked = shipment => {\r\n return this.reportService.getPackListRpt(shipment.PIMS_order_id);\r\n };\r\n\r\n downloadLabelClicked = order => {\r\n return this.reportService.getShippingLabel(order);\r\n };\r\n\r\n downloadLatestLabelClicked = () => {\r\n const returnOrder = this.returns.find(r => r.return_id === this.latestReturnId);\r\n console.log(this.returns);\r\n console.log(returnOrder);\r\n console.log(this.latestReturnId);\r\n return this.reportService.getShippingLabel(returnOrder);\r\n };\r\n\r\n \r\n\r\n _loadLink = () => {\r\n return this.tpsr.getPublicOrderLink(this.linkId).then(link => {\r\n return this.$q.all(\r\n this._loadOrder(link.order_id).then(o => this._loadUser(o.user_id)).then(u => this.user = u),\r\n this._loadUser(link.as_user_id).then(u => this.asUser = u)\r\n );\r\n });\r\n };\r\n\r\n _loadOrder = order_id => {\r\n return this.tpsr.getOrder(order_id).then(order => {\r\n this.order = order;\r\n return order;\r\n });\r\n };\r\n\r\n _loadUser = user_id => {\r\n return this.tpsr.getUser(user_id);\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"publicOrder\", { // public-order\r\n bindings: {\r\n linkId: \"<\"\r\n },\r\n templateUrl: \"src/app/publicOrder/publicOrder.html\",\r\n controller: PublicOrderController\r\n });\r\n","class ReplaceLostShipmentController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n\r\n this.order = null;\r\n this.shipment = null;\r\n }\r\n\r\n $onInit() {\r\n return this._loadOrder(this.orderId);\r\n }\r\n\r\n replacementTotalQuantity = () => this.shipment.lines.reduce((s, l) => s + l.replace_quantity, 0);\r\n\r\n createReplacementClicked = () => {\r\n const request = {\r\n user_id: this.order.user_id,\r\n is_replacement_bit: true,\r\n is_replacement_for_failed_to_deliver_bit: true,\r\n replacement_for_order_id: this.order.order_id,\r\n lines: []\r\n };\r\n this.shipment.lines.forEach(item => {\r\n if (item.replace_quantity > 0) {\r\n request.lines.push({\r\n PIMS_item_id: item.PIMS_item_id,\r\n Unit_Of_Measure: item.uom,\r\n quantity: item.replace_quantity\r\n });\r\n }\r\n });\r\n\r\n return this.tpsr.createOrder(request).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Replacement Order Created\", `Replacement Order created.`)\r\n this.$location.url(`/users/${this.order.user_id}/orders`);\r\n }\r\n });\r\n }\r\n\r\n cancelClicked = () => {\r\n this.$location.url(`/orders/${this.orderId}`);\r\n };\r\n\r\n _loadOrder = order_id => {\r\n return this.tpsr.getOrder(order_id).then(result => {\r\n this.order = result;\r\n this.shipment = this.order.shipments.find(s => s.PIMS_order_id === parseFloat(this.shipmentId));\r\n this.shipment.lines.forEach(l => {\r\n l.replace_quantity = l.quantity;\r\n });\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"replaceLostShipment\", { // replace-lost-shipment\r\n bindings: {\r\n orderId: \"<\",\r\n shipmentId: \"<\"\r\n },\r\n templateUrl: \"src/app/replaceLostShipment/replaceLostShipment.html\",\r\n controller: ReplaceLostShipmentController\r\n });\r\n","class ReturnsController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.user = null;\r\n this.order = {\r\n lines: []\r\n }\r\n }\r\n\r\n $onInit() {\r\n if (this.orderId)\r\n return this.$q.all(\r\n this._loadOrder(this.orderId),\r\n );\r\n else if (this.userId)\r\n return this.$q.all(\r\n this._loadUser(this.userId),\r\n );\r\n }\r\n\r\n returnTotalQuantity = () => this.order.lines.reduce((s, l) => s + l.return_quantity, 0);\r\n\r\n createReturnClicked = () => {\r\n const request = {\r\n order: {\r\n user_id: this.order.user_id,\r\n order_id: this.orderId,\r\n },\r\n lines: []\r\n };\r\n this.order.lines.forEach(item => {\r\n if (item.return_quantity > 0) {\r\n request.lines.push({\r\n PIMS_item_id: item.PIMS_item_id,\r\n return_quantity: item.return_quantity,\r\n return_lot_no: item.lot_no,\r\n replace_quantity: item.replace_quantity,\r\n Unit_Of_Measure: item.uom\r\n });\r\n }\r\n });\r\n\r\n return this.tpsr.createReturn(request).then(result => {\r\n if (result.success) {\r\n this.toast.success(\"Return Created\", `Return created for order ${this.order.order_id}.`)\r\n this.$location.url(`/orders/${this.orderId}?ref=return-created&rid=${result.return_id}`);\r\n }\r\n });\r\n }\r\n\r\n cancelClicked = () => {\r\n this.$location.url(`/orders/${this.orderId}`);\r\n };\r\n\r\n _loadOrder = order_id => {\r\n return this.tpsr.getOrder(order_id).then(result => {\r\n this.order = result;\r\n this.order.lines.length = 0;\r\n this.order.lines = this.order.shipments.reduce((out, s) => {\r\n s.lines.forEach(sl => {\r\n let ol = out.find(o => o.lot_no === sl.lot_no);\r\n if (!ol) {\r\n out.push(sl);\r\n } else {\r\n ol.quantity = ol.quantity + sl.quantity;\r\n }\r\n });\r\n return out;\r\n }, []);\r\n console.log(this.order);\r\n this.order.lines.forEach(l => {\r\n l.return_quantity = 0;\r\n l.replace_quantity = 0;\r\n });\r\n });\r\n };\r\n\r\n _loadUser = user_id => {\r\n return this.tpsr.getUser(user_id).then(result => {\r\n this.user = result;\r\n this.order.user_id = user_id;\r\n return this._loadItems();\r\n });\r\n };\r\n\r\n _loadItems = () => {\r\n return this.tpsr.getItems(this.user.PIMS_customer_id).then(result => {\r\n this.order.lines = result;\r\n this.order.lines.forEach(i => {\r\n i.quantity = 0;\r\n l.return_quantity = 0;\r\n l.replace_quantity = 0;\r\n i.lot_no = null;\r\n });\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"returns\", { // returns\r\n bindings: {\r\n orderId: \"<\",\r\n userId: \"<\"\r\n },\r\n templateUrl: \"src/app/returns/returns.html\",\r\n controller: ReturnsController\r\n });\r\n","// Sample component with a sortable grid and create/edit/delete\r\nclass SampleController {\r\n static $inject = ['apiFactory', 'stToast', '$uibModal', '$http', 'reportService'];\r\n\r\n /**\r\n * @param {ApiFactory} apiFactory\r\n * @param {StToast} toast\r\n * @param {ng.ui.bootstrap.IModalService} $uibModal\r\n * @param {ng.IHttpService} $http\r\n * @param {ReportService} reportService\r\n */\r\n constructor(apiFactory, toast, $uibModal, $http, reportService) {\r\n this.samplesApi = apiFactory.create('api/v1/samples');\r\n this.toast = toast;\r\n this.$uibModal = $uibModal;\r\n this.$http = $http;\r\n this.reportService = reportService;\r\n\r\n this.samples = [];\r\n\r\n this.orderBy = {\r\n prop: 'sample_name',\r\n reverse: false,\r\n icon(prop) {\r\n if (prop === this.prop) {\r\n return this.reverse ? 'glyphicon-triangle-bottom' : 'glyphicon-triangle-top';\r\n }\r\n return 'glyphicon-none';\r\n }\r\n };\r\n }\r\n\r\n $onInit() {\r\n // load data for dropdowns, etc...\r\n return this.samplesApi.all()\r\n .then(samples => this.samples = samples)\r\n .catch(this.toast.errorHandler);\r\n }\r\n\r\n /** @param {string} prop */\r\n sort = prop => {\r\n if (prop === this.orderBy.prop) {\r\n this.orderBy.reverse = !this.orderBy.reverse;\r\n } else {\r\n this.orderBy.prop = prop;\r\n this.orderBy.reverse = false;\r\n }\r\n }\r\n\r\n /** @param {Sample} sample */\r\n deleteSample = sample => {\r\n return this.samplesApi.delete(sample.sample_id)\r\n .then(() => {\r\n this.samples.splice(this.samples.indexOf(sample), 1);\r\n this.toast.success('Success', 'Sample Deleted');\r\n })\r\n .catch(this.toast.errorHandler);\r\n }\r\n\r\n /** @param {Sample} sample */\r\n editSample = sample => {\r\n // make a copy to edit\r\n const editSample = angular.copy(sample);\r\n this.$uibModal\r\n .open({\r\n component: 'editSampleModal',\r\n resolve: {\r\n sample: () => editSample\r\n }\r\n })\r\n .result\r\n .then(updatedSample => {\r\n const existingSample = this.samples.find(c => c.sample_id === updatedSample.sample_id);\r\n angular.extend(existingSample, updatedSample); // update existing sample object with updated properties\r\n this.toast.success('Success', 'Sample updated');\r\n })\r\n .catch(angular.noop); // suppress 'Possibly unhandled rejection' message in console\r\n }\r\n\r\n createSample = () => {\r\n // set default properties\r\n const editSample = { is_active: 'N' };\r\n this.$uibModal\r\n .open({\r\n component: 'createSampleModal',\r\n resolve: {\r\n sample: () => editSample\r\n }\r\n })\r\n .result\r\n .then(newSample => {\r\n this.samples.push(newSample);\r\n this.toast.success('Success', 'Sample created');\r\n })\r\n .catch(angular.noop); // suppress 'Possibly unhandled rejection' message in console\r\n }\r\n\r\n runGenericReport(sample) {\r\n this.reportService.createReport('generic_report.rpt', { '@sample_id': sample.sample_id });\r\n }\r\n\r\n runOtherReport(sample) {\r\n this.reportService.createBarcodeReport('other_report.rpt', { '@sample_id': sample.sample_id }, [sample.sample_id]);\r\n }\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"sample\", {\r\n templateUrl: \"src/app/sample/sample.html\",\r\n controller: SampleController\r\n });\r\n","class ShippingLabelController {\r\n static $inject = [\"$q\", \"$location\", \"$sce\", \"stToast\", \"tpsrService\", \"reportService\"];\r\n\r\n constructor($q, $location, $sce, stToast, tpsrService, reportService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.$sce = $sce;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.reportService = reportService;\r\n this.label = null;\r\n }\r\n\r\n $onInit() {\r\n return this._loadLabel();\r\n }\r\n\r\n\r\n _loadLabel = () => {\r\n return this.tpsr.getShippingLabel(this.returnId).then(l => this.label = \"data:image/gif;base64,\" + l);\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"shippingLabel\", { // shipping-label\r\n bindings: {\r\n returnId: \"<\"\r\n },\r\n templateUrl: \"src/app/shippingLabel/shippingLabel.html\",\r\n controller: ShippingLabelController\r\n });\r\n","class UserDetailsController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.pagestates = {\r\n INIT: \"INIT\",\r\n NEW_USER_EMAIL: \"NEW_USER_EMAIL\",\r\n NEW_USER_DETAILS: \"NEW_USER_DETAILS\",\r\n EDIT: \"EDIT\"\r\n }\r\n this.state = this.pagestates.INIT;\r\n this.originalUser = null;\r\n this.user = null;\r\n this.zipcodeChanging = false;\r\n this.cities = [];\r\n this.selectedCity = null;\r\n this.states = [];\r\n this.selectedState = null;\r\n this.noManager = { user_id: null, first_name: \"No Manager\", last_name: \"\" };\r\n this.managers = [];\r\n this.selectedManager = null;\r\n this.emailValid = true;\r\n this.emailValidReason = null;\r\n }\r\n\r\n $onInit() {\r\n\r\n if (this.userId) {\r\n this._loadUser(this.userId).then(() => {\r\n this._loadManagers(this.user.PIMS_customer_id).then(() => {\r\n this.state = this.pagestates.EDIT;\r\n })\r\n });\r\n } else {\r\n let customer_id = this.tpsr.user.PIMS_customer_id;\r\n if (this.tpsr.user.is_npc_admin && this.customerId)\r\n customer_id = this.customerId;\r\n\r\n this.user = {\r\n user_id: null,\r\n PIMS_customer_id: customer_id,\r\n is_admin: false,\r\n is_manager: false,\r\n is_approver: false,\r\n manager_id: null\r\n };\r\n this._loadManagers(customer_id).then(() => {\r\n this.state = this.pagestates.NEW_USER_EMAIL;\r\n });\r\n }\r\n }\r\n\r\n zipCodeChanged = () => {\r\n this.zipcodeChanging = true;\r\n if (this.user.zip_code && this.user.zip_code.toString().length === 5) {\r\n return this._loadStatesAndCities(this.user.zip_code).finally(() => { this.zipcodeChanging = false; })\r\n }\r\n else {\r\n this.states.length = 0;\r\n this.cities.length = 0;\r\n this.zipcodeChanging = false;\r\n }\r\n };\r\n\r\n isManagerChanged = () => {\r\n if (this.user.is_manager)\r\n this.selectedManager = this.noManager;\r\n }\r\n\r\n empIdExists = value => {\r\n return this.tpsr.getUserforEmpId(this.user.PIMS_customer_id, value).then(result => {\r\n if (!result.users.length)\r\n return false;\r\n if (!this.user.user_id)\r\n return true;\r\n if (this.user.user_id === result.users[0].user_id)\r\n return false;\r\n return true;\r\n });\r\n };\r\n\r\n continueClicked = () => {\r\n return this.tpsr.getUserforEmail(this.user.email).then(result => {\r\n if (result.users.length) {\r\n this.emailValid = false;\r\n this.emailValidReason = \"User already exists with this email\";\r\n } else {\r\n this.state = this.pagestates.NEW_USER_DETAILS;\r\n }\r\n });\r\n };\r\n\r\n createUserClicked = () => {\r\n const request = {\r\n email : this.user.email,\r\n\t first_name : this.user.first_name,\r\n\t last_name : this.user.last_name,\r\n\t emp_id : this.user.emp_id,\r\n\t phone : this.user.phone,\r\n\t PIMS_customer_id : this.user.PIMS_customer_id,\r\n\t manager_id : this.selectedManager.user_id,\r\n\r\n is_npc_admin_bit: false,\r\n is_admin_bit: this.user.is_admin,\r\n is_manager_bit: this.user.is_manager,\r\n is_approver_bit: this.user.is_approver,\r\n\r\n address1 : this.user.address1,\r\n address2 : this.user.address2,\r\n city_id: this.selectedCity ? this.selectedCity.city_id : null,\r\n state_id: this.selectedState ? this.selectedState.state_id : null,\r\n zip_code : this.user.zip_code\r\n };\r\n return this.tpsr.insertUser(request).then(result => {\r\n this.toast.success(\"User Created\", `User created.`)\r\n this.$location.url(`/customers/${this.user.PIMS_customer_id}/users`);\r\n });\r\n };\r\n\r\n updateUserClicked = () => {\r\n const request = {\r\n user_id: this.user.user_id,\r\n email: this.user.email,\r\n first_name: this.user.first_name,\r\n last_name: this.user.last_name,\r\n emp_id: this.user.emp_id,\r\n phone: this.user.phone,\r\n PIMS_customer_id: this.user.PIMS_customer_id,\r\n manager_id: this.selectedManager.user_id,\r\n\r\n is_npc_admin_bit: false,\r\n is_admin_bit: this.user.is_admin,\r\n is_manager_bit: this.user.is_manager,\r\n is_approver_bit: this.user.is_approver,\r\n\r\n address1: this.user.address1,\r\n address2: this.user.address2,\r\n city_id: this.selectedCity ? this.selectedCity.city_id : null,\r\n state_id: this.selectedState ? this.selectedState.state_id : null,\r\n zip_code: this.user.zip_code\r\n };\r\n return this.tpsr.updateUser(request).then(result => {\r\n this.toast.success(\"User Updated\", `User updated.`)\r\n this.$location.url(`/customers/${this.user.PIMS_customer_id}/users`);\r\n });\r\n };\r\n\r\n cancelClicked = () => {\r\n this.$location.url(`/customers/${this.user.PIMS_customer_id}/users`);\r\n };\r\n\r\n\r\n\r\n addressOptional = () => {\r\n if (!this.user)\r\n return false;\r\n\r\n return this.user.is_admin || this.user.is_manager || this.user.is_approver;\r\n }\r\n\r\n _loadUser = user_id => {\r\n return this.tpsr.getUser(user_id).then(result => {\r\n //result.zip_code = parseInt(result.zip_code);\r\n this.user = result;\r\n this.originalUser = angular.copy(result);\r\n return this._loadStatesAndCities(this.user.zip_code).then(() => {\r\n this.selectedState = this.states.find(s => s.state_id === this.user.state_id);\r\n this.selectedCity = this.cities.find(c => c.city_id === this.user.city_id);\r\n });\r\n });\r\n };\r\n\r\n _loadManagers = PIMS_customer_id => {\r\n return this.tpsr.getManagers(PIMS_customer_id).then(result => { \r\n this.managers.push(this.noManager);\r\n this.managers.push(...result.users);\r\n if (this.user.manager_id)\r\n this.selectedManager = this.managers.find(m => m.user_id === this.user.manager_id);\r\n else\r\n this.selectedManager = this.noManager;\r\n });\r\n };\r\n\r\n _loadStatesAndCities = zip_code => {\r\n this.states.length = 0;\r\n this.cities.length = 0;\r\n return this.tpsr.getStatesAndCitiesForZipcode(zip_code).then(result => {\r\n this.states = result.states;\r\n this.cities = result.cities;\r\n if(this.states.length)\r\n this.selectedState = this.states[0];\r\n if(this.cities.length)\r\n this.selectedCity = this.cities[0];\r\n }).then(() => {\r\n this.zipcodeChanging = false;\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"userDetails\", { // user-details\r\n bindings: {\r\n customerId: \"<\",\r\n userId: \"<\"\r\n },\r\n templateUrl: \"src/app/userDetails/userDetails.html\",\r\n controller: UserDetailsController\r\n });\r\n","class UsersController {\r\n static $inject = [\"$q\", \"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($q, $location, stToast, tpsrService) {\r\n this.$q = $q;\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n this.customer = null;\r\n this.users = [];\r\n this.paging = {\r\n size: 100,\r\n number: 1,\r\n totalQty: 0,\r\n orderBy: \"last_name\",\r\n orderDescending: false\r\n };\r\n\r\n this.isAdmin = this.tpsr.user.is_npc_admin || this.tpsr.user.is_admin;\r\n this.isManager = this.tpsr.user.is_manager;\r\n\r\n this.showOrders = this.isAdmin || this.isManager;\r\n }\r\n\r\n $onInit() {\r\n let customer_id = this.tpsr.user.PIMS_customer_id;\r\n if (this.tpsr.user.is_npc_admin && this.customerId)\r\n customer_id = this.customerId;\r\n\r\n return this.$q.all([\r\n this._loadCustomer(customer_id),\r\n this._loadUsers(customer_id)\r\n ]);\r\n }\r\n\r\n sortClicked = (orderBy, descendingFirst) => {\r\n if (orderBy === this.paging.orderBy)\r\n this.paging.orderDescending = !this.paging.orderDescending;\r\n else\r\n this.paging.orderDescending = !!descendingFirst;\r\n this.paging.orderBy = orderBy;\r\n return this._loadUsers(this.customer.PIMS_customer_id);\r\n }\r\n\r\n prevPageClicked = () => {\r\n this.paging.number--;\r\n return this._loadUsers(this.customer.PIMS_customer_id);\r\n };\r\n\r\n nextPageClicked = () => {\r\n this.paging.number++;\r\n return this._loadUsers(this.customer.PIMS_customer_id);\r\n };\r\n\r\n addUserClicked = () => {\r\n this.$location.url(`/customers/${this.customer.PIMS_customer_id}/users/create`);\r\n };\r\n\r\n pendingOrdersClicked = () => {\r\n // Button should only be visible for managers.\r\n this.$location.url(`/managers/${this.tpsr.user.user_id}/pending-orders`);\r\n };\r\n\r\n toggleRoleClicked = (user, propName, currVal) => {\r\n return this.tpsr.userToggleRole(user.user_id, propName, !currVal);\r\n };\r\n\r\n editClicked = user => {\r\n this.$location.url(`/users/${user.user_id}`);\r\n };\r\n\r\n ordersClicked = user => {\r\n this.$location.url(`/users/${user.user_id}/orders`);\r\n };\r\n\r\n pwResetClicked = user => {\r\n user.passwordResetSent = true;\r\n if (user.has_password) {\r\n return this.tpsr.resetPasswordRequest({ email: user.email })\r\n .then(result => {\r\n\r\n });\r\n } else {\r\n return this.tpsr.createUserEmailRequest({ email: user.email })\r\n .then(result => {\r\n\r\n });\r\n }\r\n };\r\n\r\n _loadCustomer = customer_id => {\r\n return this.tpsr.getCustomer(customer_id).then(result => this.customer = result);\r\n }\r\n\r\n _loadUsers = customer_id => {\r\n let manager_id = null;\r\n if (this.tpsr.user.is_manager && !this.tpsr.user.is_admin)\r\n manager_id = this.tpsr.user.user_id;\r\n\r\n return this.tpsr.getUsers(this.paging.size, this.paging.number, this.paging.orderBy, this.paging.orderDescending, customer_id, manager_id)\r\n .then(result => {\r\n this.users = result.users;\r\n this.paging.totalQty = result.totalQty;\r\n\r\n this.users.forEach(u => u.passwordResetSent = false);\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"users\", { // users\r\n bindings: {\r\n customerId: \"<\"\r\n },\r\n templateUrl: \"src/app/users/users.html\",\r\n controller: UsersController\r\n });\r\n","// validates an input is an integer\r\n(function () {\r\n 'use strict';\r\n angular\r\n .module('app')\r\n .directive('integer',\r\n () => {\r\n const INTEGER_REGEXP = /^-?\\d+$/;\r\n return {\r\n require: 'ngModel',\r\n link: (scope, elm, attrs, ctrl) => {\r\n ctrl.$validators.integer = (modelValue, viewValue) => {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n // consider empty models to be valid\r\n return true;\r\n }\r\n\r\n if (INTEGER_REGEXP.test(viewValue)) {\r\n // it is valid\r\n return true;\r\n }\r\n\r\n // it is invalid\r\n return false;\r\n };\r\n }\r\n };\r\n });\r\n})();\r\n","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .directive(\"intOnly\", d);\r\n\r\n function d() {\r\n const MAX_SIGNED_INT = 2147483647;\r\n return {\r\n require: \"ngModel\",\r\n link: function (scope, element, attrs, ngModelCtrl) {\r\n if (!ngModelCtrl) {\r\n return;\r\n }\r\n\r\n ngModelCtrl.$parsers.push(function (val) {\r\n // return value is what ng-model is set to\r\n if (val === null || angular.isUndefined(val)) {\r\n val = \"\";\r\n }\r\n\r\n let clean = val.toString().replace(/[^0-9]/g, \"\");\r\n\r\n if (val.length && val.startsWith(\"-\") && attrs[\"allowNegative\"])\r\n clean = \"-\" + clean;\r\n\r\n if (clean === \"-\") {\r\n if (val !== \"-\") {\r\n ngModelCtrl.$setViewValue(clean); // leave \"-\" in the view\r\n ngModelCtrl.$render();\r\n }\r\n return \"\"; // no value for ng-model\r\n }\r\n\r\n clean = parseInt(clean);\r\n if (isNaN(clean))\r\n clean = \"\";\r\n else if (clean > MAX_SIGNED_INT)\r\n clean = ngModelCtrl.$modelValue; // use previous good value\r\n\r\n if (val !== clean.toString()) {\r\n ngModelCtrl.$setViewValue(clean);\r\n ngModelCtrl.$render();\r\n }\r\n\r\n return clean;\r\n });\r\n\r\n element.bind(\"keypress\", function (event) {\r\n if (event.keyCode === 32) {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n };\r\n }\r\n d.$inject = [];\r\n\r\n})()","(function () {\r\n 'use strict';\r\n\r\n /**\r\n * Allow a modal dialog to be movable.\r\n *\r\n
\r\n \r\n \r\n
\r\n */\r\n\r\n angular\r\n .module('app')\r\n .directive('modalMovable', modalMovable);\r\n\r\n function modalMovable($document) {\r\n return {\r\n restrict: 'AC',\r\n link: function (scope, element) {\r\n let startX = 0,\r\n startY = 0,\r\n x = 0,\r\n y = 0,\r\n modalHeaderClicked = false;\r\n\r\n let dialogWrapper = element.parent();\r\n while (!dialogWrapper.hasClass('modal-content') && dialogWrapper.length > 0)\r\n dialogWrapper = dialogWrapper.parent();\r\n\r\n if (dialogWrapper.length === 0) { // modal not constructed properly\r\n console.error('Modal not constructed properly for modal-movable directive. Couldn\\'t find parent modal-content element.');\r\n return;\r\n }\r\n\r\n dialogWrapper.css({\r\n position: 'relative'\r\n });\r\n\r\n let modalHeader = Array.from(element.find('div')).find(d => d.classList.contains('modal-header'));\r\n if (modalHeader == null) {\r\n console.error('Modal not constructed properly for modal-movable directive. Couldn\\'t find child modal-header element.');\r\n return;\r\n }\r\n\r\n modalHeader = angular.element(modalHeader);\r\n modalHeader.css({ cursor: 'move' });\r\n modalHeader.on('mousedown', function (event) {\r\n // Prevent default dragging of selected content\r\n event.preventDefault();\r\n modalHeaderClicked = true;\r\n startX = event.pageX - x;\r\n startY = event.pageY - y;\r\n $document.on('mousemove', mousemove);\r\n $document.on('mouseup', mouseup);\r\n });\r\n\r\n function mousemove(event) {\r\n if (modalHeaderClicked) {\r\n y = event.pageY - startY;\r\n x = event.pageX - startX;\r\n dialogWrapper.css({\r\n top: y + 'px',\r\n left: x + 'px'\r\n });\r\n }\r\n }\r\n\r\n function mouseup() {\r\n $document.unbind('mousemove', mousemove);\r\n $document.unbind('mouseup', mouseup);\r\n }\r\n }\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n angular\r\n .module('app')\r\n .directive('passwordStrength', [\r\n function () {\r\n return {\r\n require: 'ngModel',\r\n restrict: 'E',\r\n scope: {\r\n password: '=ngModel'\r\n },\r\n\r\n link: function (scope, elem, attrs, ctrl) {\r\n scope.$watch('password', function (newVal) {\r\n\r\n scope.strength = isSatisfied(newVal && newVal.length >= 8) +\r\n isSatisfied(newVal && /[A-z]/.test(newVal)) +\r\n isSatisfied(newVal && /(?=.*\\W)/.test(newVal)) +\r\n isSatisfied(newVal && /\\d/.test(newVal));\r\n\r\n function isSatisfied(criteria) {\r\n return criteria ? 1 : 0;\r\n }\r\n }, true);\r\n },\r\n template: '
' +\r\n '
= 1 ? 25 : 0}}%\">
' +\r\n '
= 2 ? 25 : 0}}%\">
' +\r\n '
= 3 ? 25 : 0}}%\">
' +\r\n '
= 4 ? 25 : 0}}%\">
' +\r\n '
'\r\n }\r\n }\r\n ]);\r\n})();\r\n","// formats a value of 0 (zero) to display as a - (dash)\r\n(function () {\r\n 'use strict';\r\n angular\r\n .module('app')\r\n .directive('zeroAsDash',\r\n () => {\r\n return {\r\n require: 'ngModel',\r\n link: (scope, elm, attrs, ctrl) => {\r\n ctrl.$formatters.push(value => {\r\n if (value == 0) {\r\n return '-';\r\n }\r\n return value;\r\n });\r\n }\r\n };\r\n });\r\n})();\r\n","(() => {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .filter(\"stDate\", stDateFilter);\r\n\r\n function stDateFilter($filter) {\r\n return input => $filter(\"date\")(input, \"MM/dd/yyyy\");\r\n }\r\n stDateFilter.$inject = [\"$filter\"];\r\n\r\n})()","(() => {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .filter(\"stDateTime\", stDateTimeFilter);\r\n\r\n function stDateTimeFilter($filter) {\r\n return input => $filter(\"date\")(input, \"MM/dd/yyyy hh:mm a\");\r\n }\r\n stDateTimeFilter.$inject = [\"$filter\"];\r\n\r\n})()","(() => {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .filter(\"stPimsOrderStatus\", stPimsOrderStatus);\r\n\r\n function stPimsOrderStatus($filter) {\r\n return input => {\r\n switch (input) {\r\n case \"Pending\": \r\n case \"Confirmed\":\r\n case \"Assigned for processing\": return \"Processing\";\r\n case \"Pick List Generated\": return \"Shipping\";\r\n case \"Deleted\": return \"Canceled\";\r\n default: return input;\r\n }\r\n };\r\n }\r\n stPimsOrderStatus.$inject = [\"$filter\"];\r\n\r\n})()","class ApiFactory {\r\n static $inject = ['$http'];\r\n\r\n /** @param {ng.IHttpService} $http */\r\n constructor($http) {\r\n this.create = url => {\r\n return {\r\n all: () => $http.get(url).then(/** @returns {[]} */ r => r.data),\r\n get: (id) => $http.get(`${url}/${id}`).then(r => r.data),\r\n create: (entity) => $http.post(url, entity).then(r => r.data),\r\n update: (id, entity) => $http.put(`${url}/${id}`, entity).then(r => r.data),\r\n\t\t\t\tdelete: (id) => $http.delete(`${url}/${id}`).then(r => r.data)\t\t\t\t\r\n }\r\n }\r\n }\r\n}\r\n\r\nangular\r\n .module('app')\r\n .service('apiFactory', ApiFactory);\r\n","class ClientDataService {\r\n static $inject = [\"$cookies\"];\r\n\r\n constructor($cookies) {\r\n this.$cookies = $cookies;\r\n this.tokenKey = \"tpsr\";\r\n }\r\n\r\n setToken = token => {\r\n this.$cookies.put(this.tokenKey, token);\r\n };\r\n\r\n getToken = () => {\r\n return this.$cookies.get(this.tokenKey);\r\n };\r\n\r\n removeToken = () => {\r\n return this.$cookies.remove(this.tokenKey);\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .service(\"clientDataService\", ClientDataService);\r\n","class DataService {\r\n static $inject = [\"$http\", \"$q\"];\r\n\r\n constructor($http, $q) {\r\n this.$http = $http;\r\n this.$q = $q;\r\n this.baseApiUrl = \"api/v1/\";\r\n }\r\n\r\n login = (username, password) => {\r\n return this.$http.post(`${this.baseApiUrl}security/login`, { username, password }).then(result => result.data);\r\n };\r\n\r\n logout = () => {\r\n return this.$http.post(`${this.baseApiUrl}security/logout`).then(result => result.data);\r\n };\r\n\r\n getSession = () => {\r\n return this.$http.get(`${this.baseApiUrl}sessions`).then(result => result.data);\r\n };\r\n\r\n\r\n getUserForCreatePassword = key => {\r\n return this.$http.get(`${this.baseApiUrl}users/for-create-password/${key}`).then(result => result.data);\r\n };\r\n\r\n updateUserPasswordFromKey = (key, password) => {\r\n return this.$http.post(`${this.baseApiUrl}security/update-password-from-key`, ({ key, password })).then(result => result.data);\r\n };\r\n\r\n resetPasswordRequest = request => {\r\n return this.$http.post(`${this.baseApiUrl}users/reset-password-request`, request).then(result => result.data);\r\n };\r\n\r\n createUserEmailRequest = request => {\r\n return this.$http.post(`${this.baseApiUrl}users/create-user-email-request`, request).then(result => result.data);\r\n };\r\n\r\n\r\n getCustomers = () => {\r\n return this.$http.get(`${this.baseApiUrl}customers`).then(result => result.data);\r\n };\r\n\r\n getCustomer = PIMS_customer_id => {\r\n return this.$http.get(`${this.baseApiUrl}customers/${PIMS_customer_id}`).then(result => result.data);\r\n };\r\n\r\n\r\n searchUsers = (page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id) => {\r\n return this.$http.post(`${this.baseApiUrl}users/search`,\r\n ({ page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id }))\r\n .then(result => result.data);\r\n };\r\n\r\n insertUser = request => {\r\n return this.$http.post(`${this.baseApiUrl}users`, request).then(result => result.data);\r\n };\r\n\r\n updateUser = request => {\r\n return this.$http.put(`${this.baseApiUrl}users/${request.user_id}`, request).then(result => result.data);\r\n };\r\n\r\n getUser = user_id => {\r\n return this.$http.get(`${this.baseApiUrl}users/${user_id}`).then(result => result.data);\r\n };\r\n\r\n getStatesAndCitiesForZipcode = zip_code => {\r\n return this.$http.get(`${this.baseApiUrl}users/states-cities-for-zipode/${zip_code}`).then(result => result.data);\r\n };\r\n\r\n userToggleRole = (user_id, prop_name, value) => {\r\n return this.$http.post(`${this.baseApiUrl}users/toggle-role`, ({ user_id, prop_name, value })).then(result => result.data);\r\n };\r\n\r\n getItems = PIMS_customer_id => {\r\n return this.$http.post(`${this.baseApiUrl}items/search`, ({ PIMS_customer_id })).then(result => result.data);\r\n };\r\n\r\n updateMultipleItems = request => {\r\n return this.$http.put(`${this.baseApiUrl}items/update-multiple`, request).then(result => result.data);\r\n };\r\n\r\n\r\n\r\n getOrdersUser = (page_size, page_number, order_by, order_descending, user_id) => {\r\n return this.$http.post(`${this.baseApiUrl}orders/search`,\r\n ({ page_size, page_number, order_by, order_descending, user_id }))\r\n .then(result => result.data);\r\n };\r\n\r\n getOrdersPending = (page_size, page_number, order_by, order_descending, manager_id) => {\r\n return this.$http.post(`${this.baseApiUrl}orders/search`,\r\n ({ page_size, page_number, order_by, order_descending, manager_id }))\r\n .then(result => result.data);\r\n };\r\n\r\n createOrder = request => {\r\n return this.$http.post(`${this.baseApiUrl}orders`, request).then(result => result.data);\r\n };\r\n\r\n getOrder = order_id => {\r\n return this.$http.get(`${this.baseApiUrl}orders/${order_id}`).then(result => {\r\n const order = result.data.order;\r\n order.lines = result.data.lines;\r\n order.shipments = result.data.shipments;\r\n order.shipments.forEach(s => {\r\n s.lines = result.data.shipment_lines.filter(sl => sl.PIMS_order_id === s.PIMS_order_id);\r\n s.details = result.data.shipment_details.filter(sd => sd.PIMS_order_id === s.PIMS_order_id);\r\n });\r\n return order;\r\n });\r\n };\r\n\r\n deleteOrder = order_id => {\r\n return this.$http.delete(`${this.baseApiUrl}orders/${order_id}`).then(result => result.data);\r\n };\r\n\r\n approveOrder = order_id => {\r\n return this.$http.post(`${this.baseApiUrl}orders/${order_id}/approve`).then(result => result.data);\r\n };\r\n\r\n rejectOrder = order_id => {\r\n return this.$http.post(`${this.baseApiUrl}orders/${order_id}/reject`).then(result => result.data);\r\n };\r\n\r\n publicApproveOrder = (order_id, user_id) => {\r\n return this.$http.post(`${this.baseApiUrl}orders/${order_id}/public-approve/${user_id}`).then(result => result.data);\r\n };\r\n\r\n publicRejectOrder = (order_id, user_id) => {\r\n return this.$http.post(`${this.baseApiUrl}orders/${order_id}/public-reject/${user_id}`).then(result => result.data);\r\n };\r\n\r\n createReturn = request => {\r\n return this.$http.post(`${this.baseApiUrl}returns`, request).then(result => result.data);\r\n };\r\n\r\n getReturns = (order_id, user_id) => {\r\n return this.$http.post(`${this.baseApiUrl}returns/search`, ({ order_id, user_id })).then(result => {\r\n result.data.orders.forEach(o => o.lines = result.data.lines.filter(l => l.return_id === o.return_id));\r\n return result.data;\r\n });\r\n };\r\n\r\n getShippingLabel = return_id => {\r\n return this.$http.get(`/api/v1/reports/shipping-label64/${return_id}`).then(result => result.data);\r\n };\r\n\r\n getPublicOrderLink = link_id => {\r\n return this.$http.get(`${this.baseApiUrl}public-order-links/${link_id}`).then(result => result.data);\r\n };\r\n\r\n _paginate = (array, pageSize, pageNumber) => {\r\n return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .service(\"dataService\", DataService);\r\n","class LookupsService {\r\n static $inject = ['apiFactory'];\r\n\r\n constructor(apiFactory) {\r\n this.apiFactory = apiFactory;\r\n\r\n // data for dropdowns\r\n // let productTypesPromise;\r\n // this.getProductTypes = () => productTypesPromise || (productTypesPromise = this.apiFactory.create('api/v1/product-types').all());\r\n }\r\n}\r\n\r\nangular\r\n .module('app')\r\n .service('lookupsService', LookupsService);\r\n","class ReportService {\r\n static $inject = ['$http', '$window', 'stToast'];\r\n\r\n /**\r\n * @param {ng.IHttpService} $http\r\n * @param {ng.IWindowService} $window\r\n * @param {StToast} toast\r\n */\r\n constructor($http, $window, toast) {\r\n this.$http = $http;\r\n this.$window = $window;\r\n this.toast = toast;\r\n\r\n this.ie = navigator.userAgent.match(/Edge|\\.NET|MSIE/g);\r\n }\r\n\r\n getShippingLabel = order => {\r\n const popup = this.createPopup(`Shipping Label`);\r\n\r\n return this.$http.get(`/api/v1/reports/shipping-label/${order.return_id}`,\r\n { responseType: \"arraybuffer\" } /*This is important to open the file*/)\r\n .then(result => this.openGifReport(result.data, `${order.tracking_number}`, popup))\r\n .catch(err => this.handleError(popup, err));\r\n };\r\n\r\n getPackListRpt = orderId => {\r\n const popup = this.createPopup(`Pack List - ${orderId}`);\r\n\r\n return this.$http.get(`/api/v1/reports/pack-list/${orderId}`,\r\n { responseType: \"arraybuffer\" } /*This is important to open the pdf*/)\r\n .then(result => this.openPdfReport(result.data, `${orderId}.pdf`, popup))\r\n .catch(err => this.handleError(popup, err));\r\n };\r\n\r\n createReport(fileName, parameters) {\r\n return this.$http\r\n .post(window.Pims.apis.reporting + '/reports', {\r\n 'ConnectionName': 'mfgdb',\r\n 'FileName': fileName,\r\n 'TypeOfReport': 0,\r\n 'Parameters': parameters\r\n })\r\n .then(result => this.$window.open(result.data.Uri, '_blank'))\r\n .catch(this.toast.errorHandler);\r\n }\r\n\r\n createBarcodeReport(fileName, parameters, barcodeValues, optionsBarcodeSettings = {}) {\r\n const defaultBarcodeSettings = {\r\n 'BarcodeType': 1,\r\n 'Width': 1.0,\r\n 'Height': 1.0,\r\n 'DisplayCode': false\r\n };\r\n\r\n const barcodeSettings = angular.extend({}, defaultBarcodeSettings, optionsBarcodeSettings);\r\n return this.$http\r\n .post(window.Pims.apis.reporting + '/singlebarcodereports',\r\n {\r\n 'ConnectionName': 'mfgdb',\r\n 'FileName': fileName,\r\n 'TypeOfReport': 0,\r\n 'Parameters': parameters,\r\n 'BarcodeSettings': barcodeSettings,\r\n 'BarcodeValues': barcodeValues\r\n })\r\n .then(result => this.$window.open(result.data.Uri, '_blank'))\r\n .catch(this.toast.errorHandler);\r\n };\r\n\r\n createPopup = title => {\r\n let popup = undefined;\r\n if (!this.ie) {\r\n popup = window.open(\"\", title);\r\n popup.document.body.append(popup.document.createElement('div').innerHtml = 'Loading...');\r\n }\r\n return popup;\r\n }\r\n\r\n handleError = (popup, err) => {\r\n if (popup) popup.close();\r\n throw err;\r\n };\r\n\r\n openPdfReport = (data, filename, popup) => {\r\n const file = new Blob([data], { type: \"application/pdf\" });\r\n const fileUrl = URL.createObjectURL(file);\r\n\r\n if (this.ie) {\r\n window.navigator.msSaveBlob(file, filename);\r\n } else {\r\n popup.location.href = fileUrl;\r\n }\r\n };\r\n\r\n openGifReport = (data, filename, popup) => {\r\n const file = new Blob([data], { type: \"image/gif\" });\r\n const fileUrl = URL.createObjectURL(file);\r\n\r\n if (this.ie) {\r\n window.navigator.msSaveBlob(file, filename);\r\n } else {\r\n //popup.location.href = fileUrl;\r\n popup.document.body.innerText = \"\";\r\n const img = popup.document.createElement('img');\r\n img.src = fileUrl;\r\n popup.document.body.append(img);\r\n }\r\n };\r\n}\r\n\r\nangular\r\n .module('app')\r\n .service('reportService', ReportService);\r\n","class TpsrService {\r\n static $inject = [\"$q\", \"clientDataService\", \"dataService\"];\r\n\r\n constructor($q, clientDataService, dataService) {\r\n this.$q = $q;\r\n this.clientData = clientDataService;\r\n this.data = dataService;\r\n this.user = null;\r\n this.customer = null;\r\n }\r\n\r\n login = (username, password) => {\r\n return this.data.login(username, password)\r\n .then(loginResult => {\r\n if (loginResult.logged_in) {\r\n this.clientData.setToken(loginResult.token);\r\n return this.getSession().then(() => loginResult);\r\n }\r\n else\r\n return loginResult;\r\n });\r\n };\r\n\r\n logout = () => {\r\n return this.data.logout()\r\n .then(() => {\r\n this.clientData.removeToken();\r\n this._logout();\r\n });;\r\n };\r\n\r\n getSession = () => {\r\n return this.data.getSession()\r\n .then(session => {\r\n if (session) {\r\n\r\n if (!this.user || this.user.user_id !== session.user.user_id) {\r\n this.user = session.user;\r\n this.user.full_name = session.user.first_name + \" \" + session.user.last_name;\r\n }\r\n\r\n } else {\r\n this._logout();\r\n }\r\n return session;\r\n })\r\n .catch(() => {\r\n this._logout();\r\n });\r\n }\r\n\r\n _logout = () => {\r\n this.user = null;\r\n };\r\n\r\n isLoggedIn = () => {\r\n return this.user ? true : false;\r\n }\r\n\r\n getUserForCreatePassword = key => {\r\n return this.data.getUserForCreatePassword(key);\r\n };\r\n\r\n updateUserPasswordFromKey = (key, password) => {\r\n return this.data.updateUserPasswordFromKey(key, password)\r\n .then(result => {\r\n if (result.is_valid) {\r\n this.clientData.setToken(result.token);\r\n return this.getSession().then(() => result);\r\n }\r\n else\r\n return result;\r\n });\r\n };\r\n\r\n resetPasswordRequest = request => {\r\n return this.data.resetPasswordRequest(request);\r\n };\r\n\r\n createUserEmailRequest = request => {\r\n return this.data.createUserEmailRequest(request);\r\n };\r\n\r\n\r\n getCustomers = () => {\r\n return this.data.getCustomers();\r\n };\r\n\r\n getCustomer = PIMS_customer_id => {\r\n return this.data.getCustomer(PIMS_customer_id).then(c => {\r\n this.customer = c;\r\n return c;\r\n });;\r\n };\r\n\r\n insertUser = request => {\r\n return this.data.insertUser(request);\r\n };\r\n\r\n updateUser = request => {\r\n return this.data.updateUser(request);\r\n };\r\n\r\n // page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id\r\n getNpcAdmins = (page_size, page_number, order_by, order_descending) => {\r\n return this.data.searchUsers(page_size, page_number, order_by, order_descending, null, null, null, true, null, null, null);\r\n };\r\n\r\n // page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id\r\n getUsers = (page_size, page_number, order_by, order_descending, PIMS_customer_id, manager_id) => {\r\n return this.data.searchUsers(page_size, page_number, order_by, order_descending, null, null, null, false, null, PIMS_customer_id, manager_id);\r\n };\r\n\r\n // page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id\r\n getManagers = PIMS_customer_id => {\r\n return this.data.searchUsers(100, 1, \"user_id\", false, null, null, null, false, true, PIMS_customer_id, null);\r\n };\r\n\r\n // page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id\r\n getUserforEmpId = (PIMS_customer_id, emp_id) => {\r\n return this.data.searchUsers(100, 1, \"user_id\", false, null, null, emp_id, null, null, PIMS_customer_id, null);\r\n };\r\n\r\n // page_size, page_number, order_by, order_descending, user_id, email, emp_id, is_npc_admin, is_manager, PIMS_customer_id, manager_id\r\n getUserforEmail = (email) => {\r\n return this.data.searchUsers(100, 1, \"user_id\", false, null, email, null, null, null, null, null);\r\n };\r\n\r\n getUser = user_id => {\r\n return this.data.getUser(user_id).then(user => {\r\n user.full_name = user.first_name + \" \" + user.last_name;\r\n return user;\r\n })\r\n };\r\n\r\n getStatesAndCitiesForZipcode = zip_code => {\r\n return this.data.getStatesAndCitiesForZipcode(zip_code);\r\n };\r\n\r\n userToggleRole = (user_id, prop_name, value) => {\r\n return this.data.userToggleRole(user_id, prop_name, value);\r\n };\r\n\r\n\r\n getItems = PIMS_customer_id => {\r\n return this.data.getItems(PIMS_customer_id);\r\n };\r\n\r\n updateMultipleItems = request => {\r\n return this.data.updateMultipleItems(request);\r\n };\r\n\r\n getOrdersUser = (page_size, page_number, order_by, order_descending, user_id) => {\r\n return this.data.getOrdersUser(page_size, page_number, order_by, order_descending, user_id);\r\n };\r\n\r\n getOrdersPending = (page_size, page_number, order_by, order_descending, manager_id) => {\r\n return this.data.getOrdersPending(page_size, page_number, order_by, order_descending, manager_id);\r\n };\r\n\r\n getOrder = order_id => {\r\n return this.data.getOrder(order_id);\r\n };\r\n\r\n deleteOrder = order_id => {\r\n return this.data.deleteOrder(order_id);\r\n };\r\n\r\n approveOrder = order_id => {\r\n return this.data.approveOrder(order_id);\r\n };\r\n\r\n rejectOrder = order_id => {\r\n return this.data.rejectOrder(order_id);\r\n };\r\n\r\n publicApproveOrder = (order_id, user_id) => {\r\n return this.data.publicApproveOrder(order_id, user_id);\r\n };\r\n\r\n publicRejectOrder = (order_id, user_id) => {\r\n return this.data.publicRejectOrder(order_id, user_id);\r\n };\r\n\r\n createOrder = request => {\r\n return this.data.createOrder(request);\r\n };\r\n\r\n createReturn = request => {\r\n return this.data.createReturn(request);\r\n };\r\n\r\n getReturns = (order_id, user_id) => {\r\n return this.data.getReturns(order_id, user_id);\r\n };\r\n\r\n getShippingLabel = return_id => {\r\n return this.data.getShippingLabel(return_id);\r\n };\r\n\r\n getPublicOrderLink = link_id => {\r\n return this.data.getPublicOrderLink(link_id);\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .service(\"tpsrService\", TpsrService);\r\n","class Utils {\r\n static $inject = ['$filter'];\r\n\r\n /**\r\n * @param {ng.IFilterService} $filter\r\n */\r\n constructor($filter) {\r\n const orderBy = $filter('orderBy');\r\n\r\n Array.prototype.orderBy = function (expression, reverse, comparator) {\r\n return orderBy(this, expression, reverse, comparator);\r\n };\r\n\r\n Array.prototype.groupBy = function (prop) {\r\n return this.reduce(function (groups, item) {\r\n var val = item[prop];\r\n groups[val] = groups[val] || [];\r\n groups[val].push(item);\r\n return groups;\r\n }, {});\r\n };\r\n\r\n Array.prototype.distinct = function(prop) {\r\n const set = new Set();\r\n return this.filter(item => {\r\n if (set.has(item[prop])) return false;\r\n set.add(item[prop]);\r\n return true;\r\n });\r\n };\r\n }\r\n\r\n // \r\n\r\n /**\r\n * Generate an array of numbers 0..n\r\n * @param {number} n\r\n */\r\n range(n) {\r\n return [...Array(n + 1).keys()];\r\n }\r\n\r\n /**\r\n * Export an array to a .csv file\r\n *\r\n * @param {object[]|string} jsonData\r\n * @param {boolean} showLabel\r\n * @param {string} filename\r\n */\r\n JSONToCSV(jsonData, showLabel, filename) {\r\n const arrData = 'object' != typeof jsonData ? JSON.parse(jsonData) : jsonData;\r\n let csv = '';\r\n if (showLabel) {\r\n let row = '';\r\n const header = arrData[0];\r\n for (let key in header)\r\n if (header.hasOwnProperty(key))\r\n row += key + ',';\r\n row = row.slice(0, -1);\r\n csv += row + '\\r\\n';\r\n }\r\n for (let i = 0; i < arrData.length; i++) {\r\n let row = '';\r\n const data = arrData[i];\r\n for (let key in data)\r\n if (data.hasOwnProperty(key)) {\r\n const dataString = data[key] == null ? '' : data[key].toString().replace(/\"/g, '\"\"');\r\n row += `\"${dataString}\",`;\r\n }\r\n row = row.slice(0, row.length - 1);\r\n csv += row + '\\r\\n';\r\n }\r\n if ('' === csv) return void alert('Invalid data');\r\n const universalBOM = \"\\uFEFF\";\r\n const blob = new Blob([universalBOM, csv], { type: \"text/csv; charset=utf-8\", encoding: \"UTF-8\" });\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.style = 'visibility:hidden';\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n URL.revokeObjectURL(url);\r\n }\r\n\r\n}\r\n\r\nangular\r\n .module('app')\r\n .service('utils', Utils)\r\n .run(['utils', utils => {} ]); // instantiate the service so the constructor runs and creates the Array functions","class CreatePasswordController {\r\n static $inject = [\"$location\", \"stToast\", \"tpsrService\"];\r\n\r\n constructor($location, stToast, tpsrService) {\r\n this.$location = $location;\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n\r\n this.password1 = null;\r\n this.password2 = null;\r\n this.loading = false;\r\n this.saving = false;\r\n this.badKey = false;\r\n this.validKey = false;\r\n this.reason = null;\r\n this.reasons = [];\r\n this.email = null;\r\n this.user_id = null;\r\n this.is_existing_user = false;\r\n this.badPassword = false;\r\n }\r\n\r\n $onInit() {\r\n if (!this.key) {\r\n this.reason = \"URL is missing key.\";\r\n this.badKey = true;\r\n } else {\r\n this.loading = true;\r\n this.tpsr.getUserForCreatePassword(this.key)\r\n .then(result => {\r\n if (result.is_valid) {\r\n this.user_id = result.user_id;\r\n this.email = result.email;\r\n this.is_existing_user = result.is_existing_user;\r\n this.validKey = true;\r\n } else {\r\n this.reason = result.reason;\r\n this.badKey = true;\r\n }\r\n })\r\n .finally(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n canSavePassword = () => {\r\n if (this.saving)\r\n return false;\r\n if (!this.password1)\r\n return false;\r\n if (!this.password2)\r\n return false;\r\n if (this.password1 !== this.password2)\r\n return false;;\r\n return true;\r\n };\r\n\r\n savePasswordClicked = () => {\r\n this.badPassword = false;\r\n this.reasons.length = 0;\r\n this.saving = true;\r\n this.tpsr.updateUserPasswordFromKey(this.key, this.password1)\r\n .then(result => {\r\n if (result.is_valid) {\r\n this.toast.success(\"Password Saved\", \"Your account is now ready!\");\r\n this.$location.url(\"/\");\r\n } else {\r\n this.reasons = result.reasons;\r\n this.badPassword = true;\r\n }\r\n })\r\n .finally(() => {\r\n this.saving = false;\r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"createPassword\", { // create-password\r\n bindings: {\r\n key: \"<\"\r\n },\r\n templateUrl: \"src/app/account/createPassword/createPassword.html\",\r\n controller: CreatePasswordController\r\n });\r\n","class ForgotPasswordController {\r\n static $inject = [\"stToast\", \"tpsrService\"];\r\n\r\n constructor(stToast, tpsrService) {\r\n this.toast = stToast;\r\n this.tpsr = tpsrService;\r\n\r\n this.user = {\r\n email: null\r\n };\r\n this.emailSent = false;\r\n }\r\n\r\n $onInit() {\r\n }\r\n\r\n sendEnabled = () => {\r\n if (!this.user.email)\r\n return false;\r\n\r\n if (this.emailSent)\r\n return false;\r\n\r\n return true;\r\n };\r\n\r\n sendClicked = () => {\r\n this.emailSent = true;\r\n return this.tpsr.resetPasswordRequest({ email: this.user.email })\r\n .then(result => {\r\n \r\n });\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"forgotPassword\", { // forgot-password\r\n templateUrl: \"src/app/account/forgotPassword/forgotPassword.html\",\r\n controller: ForgotPasswordController\r\n });\r\n","class UpdatePasswordController {\n static $inject = [\"stToast\"];\n\n constructor(stToast) {\n this.toast = stToast;\n }\n\n $onInit() {\n }\n}\n\nangular\n .module(\"app\")\n .component(\"updatePassword\", { // update-password\n templateUrl: \"src/app/account/updatePassword/updatePassword.html\",\n controller: UpdatePasswordController\n });\n","class EditSampleModalController {\r\n static $inject = ['apiFactory', 'stToast', '$q'];\r\n\r\n /**\r\n * @param {ApiFactory} apiFactory\r\n * @param {StToast} toast\r\n * @param {ng.IQService} $q\r\n */\r\n constructor(apiFactory, toast, $q) {\r\n this.apiFactory = apiFactory;\r\n this.toast = toast;\r\n this.$q = $q;\r\n\r\n this.samplesApi = this.apiFactory.create('api/v1/samples');\r\n this.sampleTypeApi = this.apiFactory.create('api/v1/sample-types');\r\n\r\n /** @type {Sample} */\r\n this.sample = undefined;\r\n\r\n /** @type {Sample[]} */\r\n this.samples = [];\r\n\r\n /** @type {SampleType[]} */\r\n this.sample_types = [];\r\n }\r\n\r\n $onInit() {\r\n Object.assign(this, this.resolve); // reference resolved objects on local 'this'\r\n\r\n // load supporting data for dropdowns, etc.\r\n this.$q.all([\r\n this.samplesApi.all(),\r\n this.sampleTypeApi.all()\r\n ])\r\n .then(([samples, sampleTypes]) => {\r\n this.samples = samples;\r\n this.sample_types = sampleTypes;\r\n })\r\n .catch(this.toast.errorHandler);\r\n }\r\n\r\n /** @param {string} sample_name */\r\n sampleNameExists = (sample_name) => {\r\n // st-unique directive expects a promise\r\n return this.$q.resolve(this.samples.some(c => c.sample_id !== this.sample.sample_id && c.sample_name.toLowerCase() === sample_name.toLowerCase()));\r\n };\r\n\r\n save = () => {\r\n this.samplesApi.update(this.sample.sample_id, this.sample)\r\n .then(updatedSample => {\r\n this.close({ $value: updatedSample });\r\n })\r\n .catch(this.toast.errorHandler);\r\n };\r\n}\r\n\r\nangular\r\n .module('app')\r\n .component('editSampleModal',\r\n {\r\n bindings: {\r\n resolve: '<',\r\n close: '&',\r\n dismiss: '&'\r\n },\r\n templateUrl: 'src/app/samples/modals/editSampleModal.html',\r\n controller: EditSampleModalController\r\n });","class HeaderController {\r\n static $inject = [\"$location\", \"tpsrService\"];\r\n\r\n constructor($location, tpsrService) {\r\n this.$location = $location;\r\n this.tpsr = tpsrService;\r\n }\r\n\r\n $onInit() {\r\n this.showNpcAdmins = false;\r\n this.showUsers = false;\r\n this.showItems = false;\r\n this.showMyOrders = false;\r\n\r\n if (this.tpsr.user) {\r\n this.showNpcAdmins = this.tpsr.user.is_npc_admin;\r\n this.showUsers = this.tpsr.user.is_admin || this.tpsr.user.is_manager;\r\n this.showItems = this.tpsr.user.is_admin;\r\n this.showMyOrders = (this.tpsr.user.is_admin || this.tpsr.user.is_manager) && this.tpsr.user.city_id;\r\n }\r\n }\r\n\r\n isPath = testPath => this.$location.path() === testPath;\r\n\r\n logout = () => {\r\n return this.tpsr.logout().then(() => {\r\n this.$location.url(\"/\");\r\n })\r\n };\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"header\", { // header\r\n templateUrl: \"src/app/_shared/header/header.html\",\r\n controller: HeaderController\r\n });\r\n","class PagingDisplayController {\n static $inject = [];\n\n constructor() {\n }\n\n $onInit() {\n }\n\n minItemNumber = () => (this.pagingInfo.number - 1) * this.pagingInfo.size + 1;\n maxItemNumber = () => (this.pagingInfo.number - 1) * this.pagingInfo.size + this.items.length;\n}\n\nangular\n .module(\"app\")\n .component(\"pagingDisplay\", { // paging-display\n bindings: {\n items: \"<\",\n pagingInfo: \"<\",\n onPrev: \"&\",\n onNext: \"&\"\n },\n templateUrl: \"src/app/_shared/pagingDisplay/pagingDisplay.html\",\n controller: PagingDisplayController\n });\n","class UserAddressController {\r\n static $inject = [\"stToast\"];\r\n\r\n constructor(stToast) {\r\n this.toast = stToast;\r\n }\r\n\r\n $onInit() {\r\n }\r\n}\r\n\r\nangular\r\n .module(\"app\")\r\n .component(\"userAddress\", { // user-address\r\n bindings: {\r\n user: \"<\"\r\n },\r\n templateUrl: \"src/app/_shared/userAddress/userAddress.html\",\r\n controller: UserAddressController\r\n });\r\n"]}