diff --git a/client/common/directives/ModelField/ModelField.js b/client/common/directives/ModelField/ModelField.js index ed505ead..adf7a8a8 100644 --- a/client/common/directives/ModelField/ModelField.js +++ b/client/common/directives/ModelField/ModelField.js @@ -10,6 +10,7 @@ angular.module('dashboard.directives.ModelField', [ 'dashboard.directives.ModelFieldLocation', 'dashboard.directives.ModelFieldPointsOfInterest', 'dashboard.directives.ModelFieldMultiSelect', + 'dashboard.directives.ModelFieldStatusMultiSelect', 'dashboard.directives.ModelFieldNumber', 'dashboard.directive.DateTimePicker', 'ngCookies', @@ -168,6 +169,17 @@ angular.module('dashboard.directives.ModelField', [ \ '; break; + case 'status-multi-select': + template = '\ +
\ +
{{ display.error }}
\ + \ +
{{ display.description | translate }}
\ +
\ + Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}\ +
\ +
'; + break; case 'select': var ngOptions = 'key as (value | translate) for (key, value) in display.options'; if (scope.property.display.options instanceof Array) { diff --git a/client/common/directives/ModelFieldStatusMultiSelect/ModelFieldStatusMultiSelect.js b/client/common/directives/ModelFieldStatusMultiSelect/ModelFieldStatusMultiSelect.js new file mode 100644 index 00000000..46a941cb --- /dev/null +++ b/client/common/directives/ModelFieldStatusMultiSelect/ModelFieldStatusMultiSelect.js @@ -0,0 +1,186 @@ +angular.module('dashboard.directives.ModelFieldStatusMultiSelect', []) + +.directive('modelFieldStatusMultiSelect', function($compile, $timeout, GeneralModelService) { + "ngInject"; + + function getTemplate() { + var template = + '
'+ + '' + + '' + + '

' + + '
' + + '' + + '' + + '
'; + return template; + } + + return { + restrict: 'E', + require: "ngModel", + scope: { + key: '=key', + property: '=property', + options: '=options', + data: '=ngModel', + modelData: '=modelData', + disabled: '=ngDisabled', + ngBlur: '&', + }, + link: function(scope, element, attrs, ngModel) { + + var property = scope.property; + var hasDataChanged; + + String.prototype.replaceAt=function(index, replacement) { + return this.substr(0, index) + replacement+ this.substr(index + replacement.length); + } + + function init() { + scope.multiSelectOptions = []; + scope.selected = []; + if (!property) property = {}; + if (!property.display) property.display = {}; + initData(); + + //Handle translating multi-select checks to scope.data output format + scope.clickMultiSelectCheckbox = clickMultiSelectCheckbox; + scope.selectAllChange = selectAllChange; + + const apiPath = scope.options && scope.options.api ? scope.options.api : ''; + var params = {}; + GeneralModelService.list(apiPath, params, {preventCancel: true}).then(function(response){ + if (!response) return; + for(var i=0; i 0) scope.data = output; + }) + } + scope.$on('removeModelFieldMultiSelect', function($event, key) { + if (key !== scope.key) return; + $timeout(function() { + initData(); + }, 1) + }) + }) + } + + /** + * convert unum formatted string to a readable format + * @param {String} string + */ + function makeReadable(string) { + for (var i=0; i 0 && string[i-1] === '_') { + string = string.replaceAt(i, string[i].toUpperCase()); + string = string.replaceAt(i-1, ' '); + } + } + if (string.indexOf('Mrf') > -1) { + string = string.replace('Mrf', 'MRF'); + } + return string; + } + + /** + * Initial data load by checking desired output as comma, array, or object + */ + function initData() { + if (typeof property.display.output === 'undefined') { + var options = scope.options || property.display.options; + property.display.output = options instanceof Array ? "comma" : "object"; + } + } + + function clickMultiSelectCheckbox(index, selectedOption) { + hasDataChanged = true; + var output = property.display.output === 'array' ? [] : property.display.output === 'object' ? {} : ''; + + if (scope.selected.indexOf(false) > -1) { + scope.selectAll = false; + } + else if (Object.values(scope.selected).length === scope.multiSelectOptions.length) { + scope.selectAll = true; + } + + for (var i in scope.selected) { + if (scope.selected[i]) { + var option = scope.multiSelectOptions[i]; + switch (property.display.output) { + case 'object': + output[option.key] = option.value; + break; + case 'comma': + output += '"' + option.key + '",'; //quote qualified + break; + case 'array': + output.push(selectedOption.item || selectedOption.key); // return array + break; + } + + } + } + + if (property.display.output === 'comma' && output.length > 0) output = output.substring(0, output.length-1); //remove last comma + + scope.data = output; + + // asynchronous behavior because moving data up chain + setTimeout(function() { + if (scope.ngBlur && hasDataChanged) { + scope.ngBlur({key: scope.key}) + } + hasDataChanged = false + // this may cause a non optimal user experience, but reducing ability to bypass the check + }, 1); + + if (scope.selected.indexOf(true) < 0) { + delete scope.data; + } + + // Note: breaking changes on onModelFieldMultiSelectCheckboxClick emit below after Angular 1.6.4 upgrade + // due to ModelFieldMultiSelect rewrite + //scope.$emit('onModelFieldMultiSelectCheckboxClick', scope.key, selectedOption, selected); + } + + function selectAllChange(selectAll) { + var output = {}; + if (selectAll) { + for (var i=0; i"}).state("public.accessDenied",{url:"/access-denied",template:'

Access Denied

You are not authorized to access this page.

',data:{pageTitle:"Access Denied"}}),c.deferIntercept()}]).run(["$ocLazyLoad","$rootScope","$urlRouter","$injector","$translate","Config",function(a,b,c,d,e,f){"ngInject";f.serverParams.defaultLanguage&&e.use(f.serverParams.defaultLanguage),f.serverParams.translateUrl&&e.refresh();var g=!1;f.serverParams.customModules?a.load(f.serverParams.customModules).then(function(){g=!0,b.$broadcast("modulesLoaded"),Array.isArray(f.serverParams.injectOnStart)&&f.serverParams.injectOnStart.forEach(d.get)},function(a){console.log(a)}):g=!0,b.$on("$locationChangeSuccess",function(a){if(g)c.sync();else var d=b.$on("modulesLoaded",function(){c.sync(),d()})})}]).constant("constants",{TIMEOUT_INTERVAL:5e3,PUBLIC_STATE:"public",LOGIN_STATE:"public.login"}).controller("AppCtrl",["$scope","$location","$state","$rootScope","$timeout","$document","$cookies","SessionService","CacheService","Config","constants",function(a,b,c,d,e,f,g,h,i,j,k){"ngInject";d.$state=c,j.serverParams.gaTrackingId&&ga("create",j.serverParams.gaTrackingId,"auto"),d.$on("$stateChangeStart",function(a,b,d,e,f){var g=b.name;if(g=g.substr(g,g.indexOf(".")),!h.getAuthToken()&&g!=k.PUBLIC_STATE){var l={state:b,params:d};return i.set("desiredState",l),j.serverParams.loginState?c.go(j.serverParams.loginState):g!=k.PUBLIC_STATE&&c.go(k.LOGIN_STATE),void a.preventDefault()}h.isAuthorized(b,d)||(c.go("public.accessDenied"),a.preventDefault())}),a.$on("$stateChangeSuccess",function(b,c,d,e,f){angular.isDefined(c.data.pageTitle)&&(a.pageTitle=c.data.pageTitle)}),d.logOut=function(){h.getAuthToken()&&(i.reset(),h.logOut().then(function(a){j.serverParams.loginState?c.go(j.serverParams.loginState):c.go(k.LOGIN_STATE)}).catch(function(a){c.go(k.LOGIN_STATE)}))};var l=new Date;d.persistSession=function(){e.cancel(d.persistId),c.current.name.indexOf(k.PUBLIC_STATE)>-1||(l=new Date,new Date-l>k.TIMEOUT_INTERVAL?d.checkTimeout()&&g.put("lastActive",new Date):d.persistId=e(function(){d.checkTimeout()&&g.put("lastActive",new Date)},k.TIMEOUT_INTERVAL))},d.checkTimeout=function(){if(e.cancel(d.timeoutId),!g.get("lastActive"))return console.error("Session Timedout on another window/tab"),c.go(k.LOGIN_STATE),!1;var a=new Date(g.get("lastActive"));return new Date-a>j.serverParams.sessionTimeout?(d.logOut(),!1):(d.timeoutId=e(d.checkTimeout,k.TIMEOUT_INTERVAL),!0)},j.serverParams.sessionTimeout&&"localhost"!=b.host()&&(f.on("mousemove",function(){d.persistSession()}),f.on("touchmove",function(){d.persistSession()}),f.on("keydown",function(){d.persistSession()}))}]),angular.module("dashboard.Alert",["ui.bootstrap","ui.bootstrap.modal"]).controller("AlertCtrl",["$scope","$uibModalInstance",function(a,b){"ngInject";a.closeAlert=function(){b.close()},a.okAlert=function(){"function"==typeof a.okHandler&&a.okHandler(),b.close()},a.cancelAlert=function(){"function"==typeof a.cancelHandler&&a.cancelHandler(),b.close()},function(){a.isConfirm="confirm"==a.alertType}()}]),angular.module("dashboard.Dashboard",["dashboard.Config","dashboard.Profile","dashboard.Dashboard.Model","dashboard.services.Dashboard","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard",{url:"/dashboard",controller:"DashboardCtrl",templateUrl:"app/dashboard/Dashboard.html",data:{pageTitle:"Dashboard"}}).state("portal",{url:"/portal",controller:"DashboardCtrl",templateUrl:"app/dashboard/Dashboard.html",data:{pageTitle:"Dashboard"}})}]).controller("DashboardCtrl",["$scope","$rootScope","$state","$stateParams","$location","$cookies","$uibModal","Config","DashboardService",function(a,b,c,d,e,f,g,h,i){"ngInject";var j=this;this.init=function(){a.toggleSideMenu=j.toggleSideMenu,a.hideSideMenu=j.hideSideMenu,a.editProfile=j.editProfile,a.logout=j.logout,a.locationPath=e.path(),a.username=f.get("username"),a.email=f.get("email"),a.userId=f.get("userId");try{a.userInfo=JSON.parse(f.get("session")),a.userInfo.user.roles=JSON.parse(f.get("roles"))}catch(a){console.error("Unable to parse $cookies.get(session)",a)}if(a.title=h.serverParams.title||"Content Management System",a.nav=i.getNavigation(),"dashboard"==c.current.name&&h.serverParams.defaultNav){var b=i.getDefaultNav(a.nav,angular.copy(h.serverParams.defaultNav));b.state?c.go(b.state,b.params):c.go("dashboard.model.action."+b.route,b.params)}a.$watch(function(){return e.path()},function(){a.locationPath=e.path()}),a.$on("modelEditSaved",function(){a.modalInstance&&a.modalInstance.close()})},this.toggleSideMenu=function(){var a=$(".dashboard");a.hasClass("show-side-menu")?a.removeClass("show-side-menu"):a.addClass("show-side-menu")},this.hideSideMenu=function(){$(".dashboard").removeClass("show-side-menu")},this.editProfile=function(b){b&&b.preventDefault(),a.action={options:{model:h.serverParams.profileModel,key:h.serverParams.profileKey,id:f.get("userId"),hideDelete:!0}},a.modalInstance=g.open({templateUrl:"app/dashboard/profile/Profile.html",controller:"ProfileCtrl",size:"lg",scope:a})},this.logout=function(a){b.logOut(),a&&a.preventDefault()},j.init()}]),angular.module("dashboard.Dashboard.Model",["dashboard.Dashboard.Model.Action","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model",{url:"/:model",controller:"DashboardModelCtrl",templateUrl:"app/dashboard/model/DashboardModel.html",data:{pageTitle:"Dashboard"}})}]).controller("DashboardModelCtrl",["$rootScope","$scope","$stateParams","Config",function(a,b,c,d){"ngInject";!function(){b.section=angular.copy(_.find(b.nav,{path:c.model}))}()}]),angular.module("dashboard.Dashboard.Model.Action",["dashboard.Dashboard.Model.Edit","dashboard.Dashboard.Model.List","dashboard.Dashboard.Model.Sort","dashboard.Dashboard.Model.View","dashboard.Dashboard.Model.Nav","dashboard.Dashboard.Model.Definition","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action",{url:"/:action",controller:"DashboardModelActionCtrl",templateUrl:"app/dashboard/model/DashboardModelAction.html",data:{pageTitle:"Dashboard"}})}]).controller("DashboardModelActionCtrl",["$scope","$stateParams",function(a,b){"ngInject";!function(){a.section&&a.section.subnav&&(a.action=angular.copy(_.find(a.section.subnav,{label:b.action})))}()}]),angular.module("dashboard.Dashboard.Model.Definition",["dashboard.Config","dashboard.services.Settings","ui.router","ui.bootstrap.modal"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.definition",{url:"/definition",templateUrl:"app/dashboard/model/definition/ModelDefinition.html",data:{pageTitle:"Settings - Model Definitions"}})}]).controller("ModelDefinitionCtrl",["$scope","$timeout","$state","$location","$uibModal","Config","SettingsService",function(a,b,c,d,e,f,g){"ngInject";a.clickSave=function(){}}]),angular.module("dashboard.Dashboard.Model.Edit",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","dashboard.directives.ModelField","dashboard.services.Cache","dashboard.services.GeneralModel","dashboard.services.FileUpload","dashboard.filters.locale","ui.router","ui.bootstrap","ui.bootstrap.datepicker","ui.bootstrap.modal","ngCookies"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.edit",{url:"/edit/:id",templateUrl:"app/dashboard/model/edit/ModelEdit.html",data:{pageTitle:"Edit"}})}]).constant("modelEditConstants",{keys:{save:"button.save",delete:"button.delete",confirmMessage:"button.delete.confirm"},defaults:{save:"Save",delete:"Delete",confirmMessage:"Are you sure you want to delete this record?"}}).controller("ModelEditCtrl",["$rootScope","$scope","$cookies","$location","$stateParams","$state","$window","$uibModal","$filter","Config","GeneralModelService","FileUploadService","CacheService","modelEditConstants","$translate",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){"ngInject";function p(){if(b.modelDisplay=b.model.display,b.action.options.display&&(b.modelDisplay=b.model[b.action.options.display]),!b.modelDisplay||0==b.modelDisplay.length){b.modelDisplay=[];var a=Object.keys(b.model.properties);for(var c in a){var d=a[c];b.modelDisplay.push(d),b.data[d]||(b.data[d]=null)}}b.$emit("onModelLoad",{data:b.data})}function q(c){var d=b.data[b.action.options.key];k.saveWithFiles(b.model.name,d,b.data).then(function(b){t&&t.close(),a.$broadcast("modelEditSaved"),c&&c(b)},r,s)}function r(b){if(a.$broadcast("modelEditSaveFailed",{error:b}),_.isPlainObject(b))if("string"==typeof b.translate&&b.translate.length>0){var c=o.instant(b.translate);c===b.translate&&(c=b.message),alert(c)}else b.code||b.message?("ER_DUP_ENTRY"===b.code&&(b.message="There was a duplicate entry found. Please make sure the entry is unique."),alert(b.message)):b.error?r(b.error):alert(angular.toJson(b));else alert(b);t&&t.close()}function s(a){if(_.isPlainObject(a)){if(a.translate){var c=o.instant(a.translate,a.params);b.status=c===a.translate?a.message:c}else a.message&&(b.status=a.message);a.progress&&(b.progress=a.progress)}}var t=null;b.clickSaveModel=function(a){s({message:"Saving",translate:"cms.status.saving",progress:0}),t=h.open({templateUrl:"app/dashboard/model/edit/ModelEditSaveDialog.html",controller:"ModelEditSaveDialogCtrl",scope:b}),q(function(a){m.clear(b.action.options.model),b.action.options&&b.action.options.returnAfterEdit?g.history.back():b.section?f.go(b.section.state?b.section.state:"dashboard.model.action.edit",{model:b.section.path,action:b.action.label,id:a[b.action.options.key]}):t&&t.close()})},b.clickDeleteModel=function(c,d){if(b.deleteDialogText=d&&d.deleteDialogText?d.deleteDialogText:b.deleteDialogText,confirm(b.deleteDialogText)){var e=c[b.action.options.key];b.model.options&&b.model.options.softDeleteProperty?(b.data[b.model.options.softDeleteProperty]=!0,q(function(){m.clear(b.action.options.model),g.history.back()})):k.remove(b.model.plural,e).then(function(c){a.$broadcast("modelDeleted"),m.clear(b.action.options.model),g.history.back()},function(a){"object"==typeof a&&a.message?alert(a.message):"object"==typeof a&&a.error&&a.error.message?alert(a.error.message):"object"==typeof a?alert(JSON.stringify(a)):alert(a)})}},b.hasPermission=function(a){var d=null;if("object"==typeof a)d=a;else{var e=b.model.properties[a];d=e.display}if(!d)return!0;if(d.askIf){var f=Object.keys(d.askIf);for(var g in f){var e=f[g];if(b.data[e]!=d.askIf[e])return!1}}if(!d.roles)return!0;if(!c.get("roles"))return!1;var h=JSON.parse(c.get("roles"));for(var g in h){var i=h[g];if(d.roles.indexOf(i.name)>-1)return!0}return!1},function(){if(b.hideSideMenu(),g.ga&&g.ga("send","pageview",{page:d.path()}),b.action||(b.action={}),b.action.options||(b.action.options={model:e.model,key:e.key}),b.model=angular.copy(j.serverParams.models[b.action.options.model]),b.action.options.key){var a=b.action.options.key;b.model.properties[a].display||(b.model.properties[a].display={}),b.model.properties[a].display.readonly=!0}var c=o.use();if(b.locale=i("iso-639-1")(c),_.forEach(b.model.properties,function(a){if(a.display||(a.display={}),a.display.options||(a.display.options={}),b.action.options.readonly&&(a.display.readonly=!0),"string"==typeof a.type)switch(a.type.toLowerCase()){case"date":case"datetime":a.display.options.locale=b.locale}}),b.isLoading=!0,b.data={},b.action.options.data){var f=Object.keys(b.action.options.data);for(var h in f){var a=f[h];b.data[a]=b.action.options.data[a]}}k.checkDefaultValues(b.model,b.data);var l=null;e.id&&e.id>0&&(l=e.id),b.action.options.id&&b.action.options.id>0&&(l=b.action.options.id),l?(b.isEdit=!0,b.modelDisplay=null,k.get(b.model.plural,l).then(function(a){a&&(b.data=a,p(),b.isLoading=!1)})):(p(),b.isEdit=!1,b.isLoading=!1),o([n.keys.save,n.keys.delete,n.keys.confirmMessage]).then(function(a){b.saveButtonText=a[n.keys.save]==n.keys.save?n.defaults.save:a[n.keys.save],b.deleteButtonText=a[n.keys.delete]==n.keys.delete?n.defaults.delete:a[n.keys.delete],b.deleteDialogText=a[n.keys.confirmMessage]==n.keys.confirmMessage?n.defaults.confirmMessage:a[n.keys.confirmMessage]},function(a){b.saveButtonText=n.defaults.save,b.deleteButtonText=n.defaults.delete,b.deleteDialogText=n.defaults.confirmMessage}),b.$on("saveModel",function(){b.clickSaveModel(b.data)}),b.$on("deleteModel",function(a,c){b.clickDeleteModel(b.data,c)}),b.$on("onModelSave",function(){b.clickSaveModel(b.data)}),b.$on("onModelDelete",function(a,c){b.clickDeleteModel(b.data,c)}),b.$watchCollection("data",function(a,c){b.isLoading||b.$emit("onModelChange",a,c)}),b.$on("onModelFieldReferenceChange",function(a,c,d,e){b.data.hasOwnProperty(c)&&_.isEqual(d,e)||(b.data[c]=d)})}()}]),angular.module("dashboard.Dashboard.Model.Edit.SaveDialog",["ui.bootstrap","ui.bootstrap.progressbar","ui.bootstrap.modal"]).controller("ModelEditSaveDialogCtrl",["$scope","$translate",function(a,b){"ngInject";!function(){a.statusLabel="Status",b("cms.status").then(function(b){"string"==typeof b&&b.length>0&&"cms.status"!==b&&(a.statusLabel=b)},function(a){console.log("Failed to translate cms.status",a)})}()}]),angular.module("dashboard.Dashboard.Model.List",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","dashboard.services.Cache","dashboard.services.GeneralModel","dashboard.directives.ModelFieldReference","ui.router","ngCookies","ngGrid","googlechart"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.list",{url:"/list",templateUrl:"app/dashboard/model/list/ModelList.html",data:{pageTitle:"List"}})}]).controller("ModelListCtrl",["$scope","$cookies","$timeout","$state","$location","$window","$uibModal","Config","GeneralModelService","CacheService",function ModelListCtrl($scope,$cookies,$timeout,$state,$location,$window,$uibModal,Config,GeneralModelService,CacheService){"ngInject";function init(){if($scope.isLoading=!0,$scope.moment=moment,$scope.columnCount=0,$scope.list=[],$scope.selected=[],$scope.columns=[],$scope.listTemplateUrl="",$scope.totalServerItems=0,$scope.isEditing=!1,$scope.searchFields=$scope.action.options.searchFields,$scope.action.options.sort?$scope.sortInfo=$scope.action.options.sort:$scope.sortInfo={fields:[$scope.action.options.key],directions:["ASC"]},$scope.filterOptions={filterText:"",useExternalFilter:"boolean"==typeof $scope.action.options.useExternalFilter&&$scope.action.options.useExternalFilter},$scope.pagingOptions={pageSizes:["25","50","100","250","500"],pageSize:$scope.action.options.pageSize?$scope.action.options.pageSize:"25",currentPage:1},$scope.action.options.pageSize){var a=$scope.action.options.pageSize.toString(),b=$scope.pagingOptions.pageSizes.indexOf(a);$scope.pagingOptions.pageSizes=$scope.pagingOptions.pageSizes.slice(0,b+1)}$scope.sortInfo||($scope.sortInfo={}),$scope.sortInfo.columns||($scope.sortInfo.columns=[]),$scope.gridOptions={data:"list",enableColumnResize:!0,enableRowSelection:"boolean"!=typeof $scope.action.options.enableRowSelection||$scope.action.options.enableRowSelection,multiSelect:!1,enablePaging:!0,useExternalSorting:!0,showSelectionCheckbox:!1,sortInfo:$scope.sortInfo,showFooter:!0,showFilter:$scope.action.options.showFilter,headerRowHeight:44,footerRowHeight:44,totalServerItems:"totalServerItems",pagingOptions:$scope.pagingOptions,filterOptions:$scope.filterOptions,selectedItems:$scope.selected,rowHeight:$scope.action.options.rowHeight?$scope.action.options.rowHeight:44},$scope.hideSideMenu(),$window.ga&&$window.ga("send","pageview",{page:$location.path()}),$scope.$on("updateColumnVisibility",function(a,b,c){updateColumnVisibility(b,c)}),$scope.gridContainerTopMargin=0,$scope.action.options.chart&&($scope.gridContainerTopMarginMax=$scope.action.options.chart.height+60,$scope.gridContainerTopMargin=$scope.gridContainerTopMarginMax,processChart()),window.ngGrid.i18n.en.ngTotalItemsLabel="Total Records: ",window.ngGrid.i18n.en.ngPageSizeLabel="Show: ",$scope.columns=getColumnDefinition(),$scope.gridOptions.columnDefs="columns",$scope.action.options.editable&&($scope.gridOptions.enableCellEdit=!0,$scope.gridOptions.enableCellEditOnFocus=!1,$scope.gridOptions.enableCellSelection=!0,$scope.gridOptions.enableRowSelection=!1),$scope.action.options.params||($scope.action.options.params={}),$scope.action.options.model&&($scope.model=Config.serverParams.models[$scope.action.options.model]),$scope.action.options.api?$scope.apiPath=$scope.action.options.api:$scope.action.options.model&&($scope.apiPath=$scope.model.plural),$scope.origApiPath=$scope.apiPath,addQueryStringParams(),$scope.getTotalServerItems(),$timeout(function(){$(".ngFooterPanel select").addClass("form-control"),$(".ngFooterPanel button").addClass("btn btn-default")}),$scope.$grid=$(".grid"),angular.element($window).bind("resize",function(){processWindowSize()}),$scope.$on("ngGridEventStartCellEdit",function(){startEdit()}),$scope.$on("ModelListLoadItems",function(a,b){b&&b.resetPaging&&($scope.pagingOptions.currentPage=1),$scope.getTotalServerItems()}),(/(iPad|iPhone|iPod|Android)/g.test(navigator.userAgent)||$scope.action.options.flexibleHeight)&&($scope.gridOptions.plugins=[new ngGridFlexibleHeightPlugin]),$scope.action.options.allowCSVExport&&($scope.gridOptions.plugins||($scope.gridOptions.plugins=[]),$scope.gridOptions.plugins.push(new ngGridCsvExportPlugin)),Config.serverParams.strings&&($scope.cancelButtonText=Config.serverParams.strings.cancelButton,$scope.saveButtonText=Config.serverParams.strings.saveButton),$scope.$on("RemoveSelectedItems",function(){removeSelectedItems()})}function updateColumnVisibility(a,b){var c=_.findIndex($scope.columns,{field:a});c>=0&&($scope.columns[c].visible=b)}function removeSelectedItems(){for(var a in selectedItems)selectedItems[a].isChecked=!1;selectedItems=[],$scope.action.selectAll=!1,$scope.$emit("SelectedModelList",{list:selectedItems})}function getColumnDefinition(){var a=$scope.action.options.columnRef,b=$scope.action.options.columns;if(a&&"object"==typeof a&&a.label)if(a.path){var c=_.find(Config.serverParams.nav,{path:a.path}),d=_.find(c.subnav,{label:a.label});b=d.options.columns}else{var d=_.find($scope.section.subnav,{label:a.label});b=d.options.columns}if((b=angular.copy(b))&&$cookies.get("roles")){var e=JSON.parse($cookies.get("roles"));if(e)for(var f=0;f-1){h=!0;break}}h||(b.splice(f,1),f--)}}}return b}function processWindowSize(){var a=$scope.$grid,b=$window.innerWidth,c=b/$scope.columnCount;c<90&&!a.hasClass("hide-optional")?(a.addClass("hide-optional"),$scope.columns=$scope.columns.filter(function(a){return!a.optional})):c>=90&&a.hasClass("hide-optional")&&(a.removeClass("hide-optional"),$scope.columns=$scope.columns=getColumnDefinition())}function addQueryStringParams(){var queryStringParams=$location.search();$scope.queryStringParams=queryStringParams,$scope.apiPath=$scope.origApiPath;var keys=Object.keys(queryStringParams);for(var i in keys){var key=keys[i];$scope.action.options.params[key]=queryStringParams[key],$scope.apiPath&&($scope.apiPath=$scope.apiPath.replace("{"+key+"}",queryStringParams[key]))}try{for(var session=JSON.parse($cookies.get("session")),searchString="{session.",startPos=$scope.apiPath.indexOf(searchString);startPos>-1;){var endPos=$scope.apiPath.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for $scope.apiPath");break}var sessionKey=$scope.apiPath.substring(startPos+1,endPos);$scope.apiPath=$scope.apiPath.slice(0,startPos)+eval(sessionKey)+$scope.apiPath.slice(endPos+1),startPos=$scope.apiPath.indexOf(searchString)}}catch(a){console.error(a)}var filterDescription=queryStringParams.filterDescription;if($scope.filterDescription=filterDescription||$scope.action.label,queryStringParams.pageSize?$scope.pagingOptions.pageSize=queryStringParams.pageSize:$scope.action.options.pageSize&&($scope.pagingOptions.pageSize=$scope.action.options.pageSize.toString()),queryStringParams.currentPage&&($scope.pagingOptions.currentPage=parseInt(queryStringParams.currentPage)),queryStringParams.sortInfo)try{var sortInfo=JSON.parse(queryStringParams.sortInfo);_.extend($scope.sortInfo,sortInfo)}catch(a){console.warn("There are errors with the querystring param 'pagingOptions'")}queryStringParams.search&&($scope.filterOptions.filterText=queryStringParams.search)}function setupPagination(){var a=angular.copy($scope.action.options.params);if(a&&a.filter&&a.filter.length>0)try{var b=JSON.parse(a.filter);if(b.limit=parseInt($scope.pagingOptions.pageSize),b.skip=($scope.pagingOptions.currentPage-1)*parseInt($scope.pagingOptions.pageSize),$scope.sortInfo.fields.length>0){b.order="";for(var c in $scope.sortInfo.fields){var d=$scope.sortInfo.fields[c],e=$scope.sortInfo.directions[c];e||(e="ASC"),parseInt(c)>0&&(b.order+=", "),b.order+=d+" "+e}}a.filter=JSON.stringify(b)}catch(a){console.error(a),alert("Error with list filter. Please contact administrator for assistance.")}else{if(a=_.extend(a,{"filter[limit]":parseInt($scope.pagingOptions.pageSize),"filter[skip]":($scope.pagingOptions.currentPage-1)*parseInt($scope.pagingOptions.pageSize)}),$scope.sortInfo.fields.length>0){var f="";for(var c in $scope.sortInfo.fields){var d=$scope.sortInfo.fields[c],e=$scope.sortInfo.directions[c];e||(e="ASC"),parseInt(c)>0&&(f+=", "),f+=d+" "+e}a=_.extend(a,{"filter[order]":f})}if($scope.searchFields&&$scope.gridOptions.filterOptions.filterText){a=GeneralModelService.queryStringParamsToJSON(a);var g=$scope.gridOptions.filterOptions.filterText;if("object"==typeof a.filter.where){var h=angular.copy(a.filter.where);a.filter.where={and:[]},_.forEach(h,function(b,c){var d={};d[c]=b,a.filter.where.and.push(d)});var i={or:[]};angular.forEach($scope.searchFields,function(a,b){var c="["+a+"][like]",d=_.set({},c,"%"+g+"%");i.or.push(d)}),a.filter.where.and.push(i)}else angular.forEach($scope.searchFields,function(b,c){var d="filter[where][or]["+c+"]["+b+"][like]";a=_.set(a,d,"%"+g+"%")})}}$location.search("pageSize",$scope.pagingOptions.pageSize),$location.search("currentPage",$scope.pagingOptions.currentPage);var j=angular.copy($scope.sortInfo);return delete j.columns,$location.search("sortInfo",JSON.stringify(j)),$location.replace(),addQueryStringParams(),a}function processChart(){$scope.action.options.chart.api&&GeneralModelService.list($scope.action.options.chart.api,{}).then(function(a){$scope.chart=$scope.action.options.chart,$scope.chart.data=a,$scope.chart.options||($scope.chart.options={}),$scope.chart.options.vAxis||($scope.chart.options.vAxis={}),$scope.chart.options.hAxis||($scope.chart.options.hAxis={}),$scope.chart.options.hAxis.textStyle||($scope.chart.options.hAxis.textStyle={}),$scope.chart.options.vAxis.textStyle||($scope.chart.options.vAxis.textStyle={}),$scope.chart.options.vAxis.gridlines||($scope.chart.options.vAxis.gridlines={}),$scope.chart.options.hAxis.textStyle.fontSize||($scope.chart.options.hAxis.textStyle.fontSize=11),$scope.chart.options.vAxis.textStyle.fontSize||($scope.chart.options.vAxis.textStyle.fontSize=11),$scope.chart.options.hAxis.textStyle.color||($scope.chart.options.hAxis.textStyle.color="#999"),$scope.chart.options.vAxis.textStyle.color||($scope.chart.options.vAxis.textStyle.color="#999"),$scope.chart.options.vAxis.baselineColor||($scope.chart.options.vAxis.baselineColor="#999"),$scope.chart.options.hAxis.baselineColor||($scope.chart.options.hAxis.baselineColor="#999"),$scope.chart.options.vAxis.gridlines.color||($scope.chart.options.vAxis.gridlines.color="#eee"),$scope.chart.options.hAxis.gridlines.color||($scope.chart.options.hAxis.gridlines.color="#eee")})}function startEdit(){$scope.isEditing||($scope.oldList=angular.copy($scope.list),$scope.isEditing=!0)}function endEdit(){$scope.isEditing&&($scope.isEditing=!1,$scope.oldList=void 0,$scope.loadItems())}var isFirstLoad=!0,modalInstance=null,selectedItems=[];$scope.clickSelectAll=function(){for(var a in $scope.list)if($scope.list[a].isChecked&&!$scope.action.selectAll){$scope.list[a].isChecked=!1;var b=selectedItems.indexOf($scope.list[a]);selectedItems.splice(b,1)}else $scope.action.selectAll&&selectedItems.indexOf($scope.list[a])<0&&($scope.list[a].isChecked=!0,selectedItems.push($scope.list[a]));$scope.$emit("SelectedModelList",{list:selectedItems})},$scope.clickItemCheckbox=function(a){var b=selectedItems.indexOf(a)>-1;if(a.isChecked&&!b)selectedItems.push(a);else if(b){var c=selectedItems.indexOf(a);selectedItems.splice(c,1),0==selectedItems.length&&($scope.action.selectAll=!1)}$scope.$emit("SelectedModelList",{list:selectedItems})},$scope.getTotalServerItems=function(){$scope.isLoading=!0,$scope.list=[],$scope.totalServerItems=0;var a=setupPagination();GeneralModelService.count($scope.apiPath,a).then(function(b){if(b){if("string"==typeof b)$scope.totalServerItems=b;else{b instanceof Array&&b.length>0&&(b=b[0]);var c=Object.keys(b);!b.count&&c.length>0&&(b.count=b[c[0]]),$scope.totalServerItems=b.count}parseInt($scope.totalServerItems)>0?$scope.loadItems(a):($scope.isLoading=!1,$scope.loadAttempted=!0)}},function(a){$scope.isLoading=!1,$scope.errorMessage="There was an error while loading...",console.error(a)})},$scope.loadItems=function(a){$scope.isLoading=!0,$scope.list=[],$scope.$emit("ModelListLoadItemsLoading"),a||(a=setupPagination());var b=CacheService.getKeyForAction($scope.action,a);if(!$scope.filterOptions.useExternalFilter&&CacheService.get(b))try{$scope.list=CacheService.get(b),$scope.columnCount=$scope.list.length>0?Object.keys($scope.list[0]).length:0,processWindowSize()}catch(a){console.warn("ModelList Cache is corupt for key = "+b)}GeneralModelService.list($scope.apiPath,a).then(function(a){a&&(void 0!==$scope.action.options.resultField&&void 0!==a[$scope.action.options.resultField]?$scope.list=a[$scope.action.options.resultField]:$scope.list=a,$scope.columnCount=$scope.list.length>0?Object.keys($scope.list[0]).length:0,$scope.filterOptions.useExternalFilter||CacheService.set(b,$scope.list),$scope.$emit("ModelListLoadItemsLoaded"),isFirstLoad=!1,$scope.isLoading=!1,$scope.loadAttempted=!0,processWindowSize())},function(a){$scope.isLoading=!1,$scope.errorMessage="There was an error while loading...",console.error(a)})},$scope.hasButtonPermission=function(a){if(!a.roles)return!0;if(!$cookies.get("roles"))return!1;var b=JSON.parse($cookies.get("roles"));for(var c in b){var d=b[c];if(a.roles.indexOf(d.name)>-1)return!0}return!1},$scope.clickListButton=function(button){if(button.click)eval("$scope."+button.click);else if(button.route){if(button.options&&(button.options.model&&($scope.action.options.model=button.options.model),button.options.key&&($scope.action.options.key=button.options.key),button.options.display&&($scope.action.options.display=button.options.display),button.returnAfterEdit&&($scope.action.options.returnAfterEdit=button.returnAfterEdit),button.options.data)){var keys=Object.keys(button.options.data);for(var i in keys){var key=keys[i],value=button.options.data[key];value.lastIndexOf("{")>-1&&(value=value.substring(value.lastIndexOf("{")+1,value.lastIndexOf("}")),value=$scope.queryStringParams[value]),$scope.action.options.data||($scope.action.options.data={}),$scope.action.options.data[key]=value}}$state.go("dashboard.model.action."+button.route)}else if(button.path&&button.label){var section=_.find(Config.serverParams.nav,{path:button.path}),action=_.find(section.subnav,{label:button.label});$state.go("dashboard.model.action."+action.route,{model:section.path,action:action.label})}},$scope.clickAdd=function(){$scope.list&&$scope.list.length,$scope.list.push({}),startEdit()},$scope.clickSaveEdit=function(){if($scope.oldList){var deltaList=[];for(var i in $scope.list){var newRow=$scope.list[i],oldRow=$scope.oldList[i];if(newRow&&("object"!=typeof newRow||0!=Object.keys(newRow).length)&&0!=newRow.length&&(!oldRow||JSON.stringify(newRow)!=JSON.stringify(oldRow))){var rowKeys=Object.keys(newRow);for(var i in rowKeys){var key=rowKeys[i];newRow[key]&&"object"==typeof newRow[key]&&delete newRow[key]}if($scope.action.options.defaults){var keys=Object.keys($scope.action.options.defaults);for(var i in keys){var key=keys[i],property=$scope.action.options.defaults[key];!property||!property.foreceDefaultOnSave&&newRow[key]||(property.default?newRow[key]=property.default:property.evalDefault&&(newRow[key]=eval(property.evalDefault)))}}if($scope.action.options.columns)for(var i in $scope.action.options.columns){var column=$scope.action.options.columns[i];if(column.required&&!newRow[column.field])return void alert("Please fill in all required fields: "+column.displayName)}deltaList.push(newRow)}}var recordIndex=0;$scope.status="Saving...",$scope.progress=0,modalInstance=$uibModal.open({templateUrl:"app/dashboard/model/edit/ModelEditSaveDialog.html",controller:"ModelEditSaveDialogCtrl",scope:$scope});var saveRecord=function(a,b){var c=a[$scope.action.options.key];GeneralModelService.save($scope.action.options.model,c,a).then(function(a){b()},function(a){if("object"==typeof a&&a.message)alert(a.message);else if("object"==typeof a&&a.error&&a.error.message)alert(a.error.message);else if("object"==typeof a&&a.code)switch(a.code){case"ER_DUP_ENTRY":alert("There was a duplicate entry found. Please make sure the entry is unique.")}else"object"==typeof a?alert(JSON.stringify(a)):alert(a);b()})},saveNextRecord=function(){if(recordIndex>=deltaList.length)return $scope.status="Saved Successful",modalInstance&&modalInstance.close(),$scope.loadItems(),void endEdit();$scope.status="Saving "+(recordIndex+1)+" of "+deltaList.length,$scope.progress=(recordIndex+1)/deltaList.length;var a=deltaList[recordIndex];saveRecord(a,function(){recordIndex++,saveNextRecord()})};saveNextRecord()}},$scope.clickCancelEdit=function(){confirm("Are you sure you want can cancel all changes?")&&endEdit()},$scope.deleteRowWithMessage=function(a,b){if(b)return void(confirm(b)&&$scope.deleteRow(a,!0));$scope.deleteRow(a)},$scope.deleteRow=function(a,b){if(!$scope.model||!$scope.model.plural)return void console.error("$scope.model or $scope.model.plural not found!");if(b||confirm("Are you sure you want to delete this item?")){var c=a.entity[$scope.action.options.key];c?$scope.model.options&&$scope.model.options.softDeleteProperty?(startEdit(),a.entity[$scope.model.options.softDeleteProperty]=!0,$scope.clickSaveEdit()):GeneralModelService.remove($scope.model.plural,c).then(function(b){$scope.list.splice(a.rowIndex,1)},function(a){"object"==typeof a&&a.message?alert(a.message):"object"==typeof a&&a.error&&a.error.message?alert(a.error.message):"object"==typeof a?alert(JSON.stringify(a)):alert(a)}):$scope.list.splice(a.rowIndex,1)}},$scope.$watch("selected",function(a,b){a!==b&&a.length>0&&!$scope.action.options.editable&&($scope.action.options.selectedState?$state.go($scope.action.options.selectedState.stateName||"dashboard.model.action.edit",{model:$scope.action.options.selectedState.stateModel||$scope.section.path,key:$scope.action.options.key, -action:$scope.action.options.selectedState.stateAction||$scope.action.label,id:a[0][$scope.action.options.selectedState.stateId||$scope.action.options.key]}):$state.go("dashboard.model.action.edit",{model:$scope.section.path,key:$scope.action.options.key,action:$scope.action.label,id:a[0][$scope.action.options.key]}))},!0),$scope.$watch("pagingOptions",function(a,b){a.currentPage==b.currentPage&&a.pageSize==b.pageSize||($scope.pagingOptions.pageSize=$scope.pagingOptions.pageSize.toString(),$scope.loadItems())},!0),$scope.$watch("gridOptions.$gridScope.filterText",_.debounce(function(a,b){a!=b&&$scope.$apply(function(){$scope.pagingOptions.currentPage=1,$scope.filterOptions.filterText=a,$scope.getTotalServerItems()})},250),!0),$scope.$watch("sortInfo",function(a,b){isFirstLoad||a===b||$scope.loadItems()},!0);var ngGridUnWatch=$scope.$watch("gridOptions.ngGrid",function(){if($scope.gridOptions.ngGrid){var a=$scope.gridOptions.ngGrid.$viewport;ngGridUnWatch(),$footerPanel=$(".ngFooterPanel"),$listContainer=$(".grid-container.list");var b=null,c=function(){$scope.gridOptions.$gridServices.DomUtilityService.RebuildGrid($scope.gridOptions.$gridScope,$scope.gridOptions.ngGrid)},d=function(d){var e=d.originalEvent.detail?-d.originalEvent.detail:d.originalEvent.wheelDelta/4,f=a.scrollTop();if(e<0){var f=a.scrollTop();0==f&&(f=-e),$scope.gridContainerTopMargin-f>0?($scope.gridContainerTopMargin-=f,a.height(a.height()+f),a.scrollTop(0)):(a.height(a.height()+$scope.gridContainerTopMargin),$scope.gridContainerTopMargin=0),$scope.gridOptions.$gridServices&&(clearTimeout(b),b=setTimeout(c,30))}else e>0&&(0==f&&$scope.gridContainerTopMargin<$scope.gridContainerTopMarginMax?(f=e,$scope.gridContainerTopMargin+=f,a.height(a.height()-f)):0==f&&($scope.gridContainerTopMargin=$scope.gridContainerTopMarginMax,a.height($footerPanel.offset().top-a.offset().top)));$scope.$digest()};(/(iPad|iPhone|iPod|Android)/g.test(navigator.userAgent)||$scope.action.options.flexibleHeight)&&($(".model-list .grid-container").addClass("flexible"),$(".model-list .grid").css({bottom:"auto"}),$(".model-list .ngFooterPanel").css({position:"static",bottom:"auto"})),$scope.action.options.chart&&(angular.element($window).bind("mousewheel",d),angular.element($window).bind("DOMMouseScroll",d)),$(".search .ngColMenu input").on("keyup",function(){$location.search("search",$(this).val()),$location.replace()})}});init()}]).filter("encodeURIComponent",function(){return window.encodeURIComponent}),angular.module("dashboard.Dashboard.Model.Nav",["dashboard.Config","dashboard.services.Settings","ui.router","ui.bootstrap.modal"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.nav",{url:"/config",templateUrl:"app/dashboard/model/nav/ModelNav.html",data:{pageTitle:"Settings - Navigation"}})}]).controller("ModelNavCtrl",["$scope","$timeout","$state","$location","$uibModal","Config","SettingsService",function(a,b,c,d,e,f,g){"ngInject";function h(a){for(var b=angular.copy(j),c=0;cc[a.action.options.sortField]?-1:0}))})},a.moveUp=function(b){var c=a.list.indexOf(b);if(0!=c){var d=c-1;a.list.splice(d,0,a.list.splice(c,1)[0])}},a.moveDown=function(b){var c=a.list.indexOf(b);if(c!=a.list.length-1){var d=c+1;a.list.splice(d,0,a.list.splice(c,1)[0])}},a.edit=function(b){a.action.options.onEdit?a.action.options.onEdit(b[a.action.options.key]):c.go("dashboard.model.action.edit",{model:a.section.path,action:a.action.label,id:b[a.action.options.key]})},a.saveSort=function(){a.alertTitle="Saving...",a.alertMessage="Saving new sort order",a.allowAlertClose=!1,i=d.open({templateUrl:"app/dashboard/alert/Alert.html",controller:"AlertCtrl",size:"sm",scope:a});var b=[];for(var c in a.list){var e=a.list[c],f=e[a.action.options.key];b.unshift(f)}g.sort(a.action.options.model,a.action.options.key,a.action.options.sortField,b).then(function(b){a.alertMessage="Saved Successful!",a.allowAlertClose=!0},function(a){"object"==typeof a&&a.message?alert(a.message):"object"==typeof a&&a.error&&a.error.message?alert(a.error.message):"object"==typeof a?alert(JSON.stringify(a)):alert(a)})},function(){a.hideSideMenu(),e.ga&&e.ga("send","pageview",{page:h.path()}),a.action.options.params||(a.action.options.params={}),a.model=f.serverParams.models[a.action.options.model],a.title=a.action.options.title?a.action.options.title:a.action.options.key,a.loadItems()}()}]),angular.module("dashboard.Dashboard.Model.View",["dashboard.Config","dashboard.directives.ModelField","dashboard.services.GeneralModel","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.view",{url:"/view/:id",controller:"ModelViewCtrl",templateUrl:"app/dashboard/model/view/ModelView.html",data:{pageTitle:"View"}})}]).controller("ModelViewCtrl",["$scope","$stateParams","Config","GeneralModelService",function(a,b,c,d){"ngInject";!function(){d.get(a.model.model,b.id).then(function(b){a.data=b})}()}]),angular.module("dashboard.Profile",["ui.bootstrap","ui.bootstrap.modal","dashboard.Dashboard.Model.Edit"]).controller("ProfileCtrl",["$scope","$translate",function(a,b){!function(){b("user_profile.title").then(function(b){a.modalTitle=b},function(){a.modalTitle="User Profile"})}()}]),angular.module("dashboard.Login",["dashboard.Config","dashboard.services.Cache","dashboard.services.Session","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("public.login",{url:"/login",controller:"LoginCtrl",templateUrl:"app/login/Login.html",data:{pageTitle:"Login"}})}]).controller("LoginCtrl",["$scope","$state","$window","Config","SessionService","CacheService",function(a,b,c,d,e,f){"ngInject";var g=this;this.init=function(){a.login={},a.clickLogin=g.clickLogin},this.clickLogin=function(){e.logIn(a.login.email,a.login.password).then(function(a){var c=f.get("desiredState");f.reset(),c?b.go(c.state.name,c.params):b.go("dashboard")}).catch(function(a){a&&a[0]&&a[0].error&&a[0].error.message?alert(a[0].error.message):alert("Invalid login.")})},g.init()}]),angular.module("dashboard.Register",["dashboard.Config","dashboard.services.Session","dashboard.services.User","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("public.register",{url:"/register",controller:"RegisterCtrl",templateUrl:"app/Register/Register.html",data:{pageTitle:"Register"}})}]).controller("RegisterCtrl",["$scope","Config","SessionService","UserService",function(a,b,c,d){"ngInject";a.login={},a.register=function(){d.register(a.login.email,a.login.password).then(function(b){c.logIn(a.login.email,a.login.password).then(function(a){$state.go("dashboard")}).catch(function(a){alert("Error registering")})}).catch(function(a){alert("Error registering")})}}]),angular.module("dashboard.Config",[]).constant("Config",{apiBaseUrl:window.config.apiBaseUrl||"/api/",serverParams:window.config}),angular.module("dashboard.directive.DateTimePicker",[]).directive("dateTimePicker",["$rootScope",function(a){"ngInject";return{require:"?ngModel",restrict:"AE",scope:{control:"=",format:"@",ngFormat:"=ngFormat",ngTimeZone:"=ngTimeZone",defaultDate:"@",viewMode:"@",ngViewMode:"=ngViewMode",horizontal:"@",locale:"@",maxDate:"@",minDate:"@",onChange:"=",dataKey:"@"},link:function(a,b,c,d){a.format||(a.format=a.ngFormat),a.viewMode||(a.viewMode=a.ngViewMode),a.format&&a.format.indexOf("DD-MMM-YYYY")>-1&&"es"===a.locale&&(a.format=a.format.replace("DD-MMM-","DD MMM ")),d.$formatters.push(function(b){if(a.format||(a.format=a.ngFormat),b){var c=moment(b);return a.ngTimeZone&&c.tz&&(c=c.tz(a.ngTimeZone)),c.format(a.format)}}),a.defaultDate=a.defaultDate&&"string"==typeof a.defaultDate?a.defaultDate.replace(/"/g,""):a.defaultDate;var e={format:a.format,useCurrent:!1,locale:a.locale,defaultDate:a.defaultDate?moment(a.defaultDate).toDate():void 0,viewMode:a.viewMode,widgetPositioning:{horizontal:a.horizontal?a.horizontal:"auto"}};a.minDate&&(e.minDate=a.minDate),a.maxDate&&(e.maxDate=a.maxDate),b.datetimepicker(e),a.control||(a.control={}),a.control.show=function(){b.focus()},b.on("blur",function(){a.format||(a.format=a.ngFormat),a.locale&&moment.locale(a.locale);var c=moment(b.val(),a.format);c.isValid()?d.$setViewValue(c):d.$setViewValue(null),a.onChange&&a.onChange({key:a.dataKey})})}}}]),angular.module("dashboard.directives",[]),angular.module("dashboard.directives.ModelField",["dashboard.directives.ModelFieldImage","dashboard.directives.ModelFieldVideo","dashboard.directives.ModelFieldFile","dashboard.directives.ModelFieldReference","dashboard.directives.ModelFieldReferenceSort","dashboard.directives.ModelFieldList","dashboard.directives.ModelFieldWYSIWYG","dashboard.directives.ModelFieldCanvas","dashboard.directives.ModelFieldLocation","dashboard.directives.ModelFieldPointsOfInterest","dashboard.directives.ModelFieldMultiSelect","dashboard.directives.ModelFieldNumber","dashboard.directive.DateTimePicker","ngCookies","ngSlider","ngSignaturePad","cwill747.phonenumber","monospaced.elastic"]).directive("modelFieldView",["$compile",function(a){"ngInject";function b(a){return"{{ field.label }}: {{ data[field.name] }}"}return{restrict:"E",scope:{key:"=key",model:"=model",data:"=ngModel"},link:function(c,d,e){d.html(b(c.field.type)).show(),a(d.contents())(c)}}}]).directive("modelFieldEdit",["$compile",function(a){"ngInject";function b(a,b){var c="";switch(a){case"reference":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"reference-sort":c='
{{ display.error }}
{{ display.description | translate }}
{{ display.description | translate }}
';break;case"list":c='
{{ display.error }}
{{ display.description | translate }}
{{ display.description | translate }}
';break;case"file":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"image":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"video":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"datetime":c='
{{ display.error }}

{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"multi-select":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"select":var d="key as (value | translate) for (key, value) in display.options";b.property.display.options instanceof Array&&(d="object"!=typeof b.property.display.options[0]||Array.isArray(b.property.display.options[0])?"value as value for value in display.options":"item.key as item.value disable when item.disabled for item in display.options"),c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"radio":var e="(value, text) in display.options";b.property.display.options instanceof Array&&(e="object"!=typeof b.property.display.options[0]||Array.isArray(b.property.display.options[0])?"text in display.options":"item in display.options"),c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"slider":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"boolean":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"password":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"textarea":c='
{{ display.error }}
{{ display.description | translate }}  ({{ charsLeft }} characters left)
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"wysiwyg":case"WYSIWYG":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"draw":case"signature":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"location":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"poi":case"POI":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"number":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"phoneNumber":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"text":default: -c='
{{ display.error }}
{{ display.description | translate }}  ({{ charsLeft }} characters left)
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
'}return c}function c(a,b){var c=$(a).find("input");if(b&&c)for(var d in b)c.attr(d,b[d])}return{restrict:"E",scope:{key:"=key",model:"=model",data:"=ngModel",ngError:"&",ngEditReason:"&"},link:function(d,e,f){function g(){d.key&&!d.data[d.key]&&(d.display.error="",d.ngError&&d.ngError({error:null}))}function h(a){a&&a.message?j.display.error=a.message:delete j.display.error,d.ngError&&d.ngError({error:a})}function i(){if("text"===j.display.type||"textarea"===j.display.type){var a=!1,b=d.data[d.key]?d.data[d.key].length:0;d.charsLeft=j.display.maxLength-b,d.lengthCheck=function(b){return a=!0,d.charsLeft=j.display.maxLength-b.target.value.length,j.display.maxLength&&b.target.value.length>j.display.maxLength?(d.display.error="Text is longer than the maximum allowed length of "+d.display.maxLength+" characters.",void(d.ngError&&d.ngError({error:new Error(d.display.error)}))):j.display.maxLength&&b.target.value.length<=j.display.maxLength&&b.target.value.length>0?(delete d.display.error,delete d.display.errorCode,void(d.ngError&&d.ngError({error:null}))):void(0===b.target.value.length&&j.display.isRequired&&(d.display.error="This is a required field.",d.ngError&&d.ngError({error:new Error(d.display.error)})))},d.getEditReason=function(b){d.ngEditReason&&a&&d.ngEditReason(b),a=!1}}if("radio"!==j.display.type&&"select"!==j.display.type&&"datetime"!==j.display.type&&"boolean"!==j.display.type||(d.onChange=function(a){var b=!0;d.ngEditReason&&b&&d.ngEditReason(a),b=!1}),"file"==j.display.type&&d.data[d.key]){var c=d.data[d.key];if("object"==typeof c&&c.filename?c=c.filename:"object"==typeof c&&c.file&&(c=c.file.name),c&&"text"==typeof c){var e=c.toLowerCase().substring(c.length-4);".png"!=e&&".jpg"!=e&&"jpeg"!=e&&".bmp"!=e||(j=angular.copy(j),j.display.type="image")}}"datetime"==j.display.type&&(j.display.options||(j.display.options={}),j.display.options.format||(j.display.options.format="YYYY-MM-DD h:mm A")),!d.data[d.key]&&j.display.defaultValueUsingModelKey&&(d.data[d.key]=d.data[j.display.defaultValueUsingModelKey]),d.data[d.key]&&!1===j.display.convertToLocalTime&&(d.data[d.key]=d.data[d.key].substring(0,d.data[d.key].length-1)),"boolean"==j.display.type&&(d.check=function(a,b){var c=a[b];return void 0==c||null==c?j.display.default:(a[b]="1"==c||1==c,j.display.isRequired&&!d.data[d.key]?(d.display.error="This is a required field.",d.ngError&&d.ngError({error:new Error(d.display.error)})):(delete d.display.error,d.ngError&&d.ngError({error:null})),a[b])},"string"==typeof d.data[d.key]&&(d.data[d.key]=parseInt(d.data[d.key]))),"slider"==j.display.type&&(void 0!==d.data[d.key]&&null!=d.data[d.key]||(d.data[d.key]=j.display.options.from+";"+j.display.options.to))}var j;!function(){if(d.onFieldError=h,null!==d.key&&"object"==typeof d.key&&(d.model.properties[d.key.property]||(d.model.properties[d.key.property]={}),d.model.properties[d.key.property].display=d.key,d.key=d.key.property),j={display:{type:"text"}},d.model.properties&&d.model.properties[d.key]&&(j=d.model.properties[d.key]),!j)return void console.log("ModelField link error: no property for model '"+d.model.name+"'; property key = '"+d.key+"' found!");if(!j.display||!j.display.type)switch(j.display||(j.display={}),j.type){case"date":case"Date":j.display.type="datetime";break;default:j.display.type="text"}i(),d.data[d.key]||!j.default&&"number"!=typeof j.default||(d.data[d.key]=j.default),d.property=j,d.display=j.display,j.display.editTemplate?e.html(j.display.editTemplate).show():e.html(b(j.display.type,d)).show(),c(e,d.property.display.inputAttr),d.display.pattern&&"/"==d.display.pattern[0]&&"/"==d.display.pattern[d.display.pattern.length-1]&&(d.display.pattern=d.display.pattern.slice(1,d.display.pattern.length-2)),g(),a(e.contents())(d)}()}}}]),angular.module("dashboard.directives.ModelFieldCanvas",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","ui.bootstrap","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldCanvasView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldCanvasEdit",["$compile","$cookies","$timeout","Config","FileUploadService",function(a,b,c,d,e){"ngInject";function f(){return' '}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",ngChange:"&"},link:function(b,d,e,g){function h(){if(b.signature.fromDataURL&&b.isLoading){b.isLoading=!1;var a=new Image;a.setAttribute("crossOrigin","anonymous"),a.onload=function(){b.signature._canvas.getContext("2d").drawImage(a,0,0)},b.data&&"object"==typeof b.data&&b.data.fileUrl?a.src=b.data.fileUrl:a.src=b.data}else if(b.signature.toDataURL){var c=b.signature.toDataURL();b.data=c}}b.isLoading=!0,b.signature={},b.$on("revertDataSignature",function(a,d){d===b.key&&c(function(){b.isLoading=!0;var a=b.signature._canvas;b.signature._canvas.getContext("2d").clearRect(0,0,a.width,a.height),h()},1)}),b.clearCanvas=function(){var a=b.signature._canvas;b.signature._canvas.getContext("2d").clearRect(0,0,a.width,a.height),b.data=null,b.ngChange&&setTimeout(function(){b.ngChange({key:b.key})},1)},b.$watch("signature._mouseButtonDown",function(){h()}),b.changed=function(){b.ngChange&&setTimeout(function(){b.ngChange({key:b.key})},1)},d.html(f()).show(),a(d.contents())(b)}}}]),angular.module("dashboard.directives.ModelFieldFile",["dashboard.services.GeneralModel"]).directive("modelFieldFileView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ field.label }}: {{ data[field.name] }}",scope:{field:"=options",data:"=ngModel"},link:function(a,b,c){}}}]).directive("modelFieldFileEdit",["$compile","$document","$window","GeneralModelService","SessionService","$translate",function(a,b,c,d,e,f){"ngInject";return{restrict:"E",template:'   {{ filename }}  (download | preview)
Drop File Here
',scope:{key:"=key",options:"=options",disabled:"=ngDisabled",data:"=ngModel",modelData:"=modelData",ngChange:"&"},link:function(a,c,d){a.selectFileButtonText="Select File",a.clearButtonText="Clear";var e=["button.select_file"];f(e).then(function(b){-1===e.indexOf(b["button.select_file"])&&(a.selectFileButtonText=b["button.select_file"])});a.$watchCollection("data",function(b){if(b)if(a.data&&a.data&&a.data.filename)a.filename=a.data.filename,a.fileUrl=a.data.fileUrl,a.previewUrl=a.data.previewUrl;else if("string"==typeof a.data){a.fileUrl=a.data.replace(/%2F/g,"/");var c=a.fileUrl.indexOf("documents/");c<0?c=a.fileUrl.indexOf("documents%2F")+11:c+=9;var d=a.fileUrl.indexOf("?Expires");d<0&&(d=a.fileUrl.length),a.filename=a.fileUrl.substring(c+1,d)}else if("object"==typeof a.data.file){var e=a.options.path;a.data={path:e,file:a.data.file},a.filename=a.data.file.name,a.fileUrl=null,a.previewUrl=null}});a.getFileIcon=function(a){switch(a.substring(a.lastIndexOf(".")).toLowerCase()){case".txt":return"fa-file-text-o";case".doc":case".docx":return"fa-file-word-o";case".wav":case".mp3":case".aif":return"fa-file-audio-o";case".m4v":case".mov":case".mp4":case".avi":return"fa-file-video-o";case".jpg":case".jpeg":case".png":case".gif":case".bmp":case".tif":return"fa-file-image-o";case".xls":case".xlsx":return"fa-file-excel-o";case".ppt":case".pptx":return"fa-file-excel-o";case".pdf":return"fa-file-pdf-o";default:return"fa-file-o"}},a.onFileSelect=function(b){if(void 0!==a.data&&a.clear({},!0),!(b.length<1)){var c=b[0],d=a.options.path;a.data={path:d,file:c},a.filename=c.name,a.fileUrl=null}},a.clear=function(b,c,d){b&&b.preventDefault&&b.preventDefault(),(!a.options.confirm||c||confirm("Are you sure you would like to remove the file?"))&&(a.data=null,a.filename=null,a.fileUrl=null,a.ngChange&&!d&&setTimeout(function(){a.ngChange({key:a.key})},1))},b.on("drop",function(a){"INPUT"!=a.target.nodeName&&a.preventDefault()}),b.on("dragover",function(a){a.preventDefault(),c.find(".file-drop").addClass("show")}),$(window).on("mouseleave",function(){c.find(".file-drop").removeClass("show")}),a.$on("$destroy",function(){b.off("drop"),b.off("dragover"),$(window).off("mouseleave")}),a.$on("removeModelFieldFile",function(b,c,d,e){c===a.key&&a.clear(null,d,e)})}}}]),angular.module("dashboard.directives.ModelFieldImage",["dashboard.services.GeneralModel","dashboard.services.Image"]).directive("modelFieldImageView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ field.label }}: {{ data[field.name] }}",scope:{field:"=options",data:"=ngModel"},link:function(a,b,c){}}}]).directive("modelFieldImageEdit",["$compile","$document","GeneralModelService","ImageService","SessionService","$timeout","$translate",function(a,b,c,d,e,f,g){"ngInject";return{restrict:"E",require:"^form",template:'
{{ uploadStatus }}
HTML5 Drop File is not supported!
',scope:{key:"=key",options:"=options",disabled:"=ngDisabled",data:"=ngModel",modelData:"=modelData",ngChange:"&"},link:function(a,e,h,i){var j=null;a.selectFileButtonText="Select File",a.clearButtonText="Clear";var k=["button.select_file","button.clear"];g(k).then(function(b){-1===k.indexOf(b["button.select_file"])&&(a.selectFileButtonText=b["button.select_file"]),-1===k.indexOf(b["button.clear"])&&(a.clearButtonText=b["button.clear"])}),a.uploadStatus="Upload File",a.options.isDisplayOnly&&(a.isDisplayOnly=!0,a.thumbnailUrl=a.options.imageUrl);var l=(a.$watch("data",function(b){if(b)if(a.options&&a.options.model)c.get(a.options.model,b).then(function(b){b&&(a.imageUrl=b[a.options.urlKey],a.imageUrl||(a.imageUrl=b.mediumUrl),a.thumbnailUrl=a.imageUrl)});else if("string"==typeof b)if(a.imageUrl=b,a.thumbnailUrl=a.options.thumbnailUrl,a.thumbnailUrl){var d=new Image;d.onerror=function(){f(function(){a.thumbnailUrl=a.imageUrl})},d.src=a.thumbnailUrl}else a.thumbnailUrl=a.imageUrl;else"object"==typeof b&&(b.fileUrl&&(a.imageUrl=b.fileUrl),b.imageUrl&&(a.imageUrl=b.imageUrl),!a.imageUrl&&b.file&&(j=b.file,l.readAsDataURL(b.file)))}),new FileReader);l.onload=function(b){var c=a.options.path,e={path:c,file:j};a.modelData.__ModelFieldImageData||(a.modelData.__ModelFieldImageData={}),a.options&&a.options.urlKey?(a.modelData.__ModelFieldImageData[a.key]||(a.modelData.__ModelFieldImageData[a.key]={}),a.modelData.__ModelFieldImageData[a.key][a.options.urlKey]=e):a.modelData.__ModelFieldImageData[a.key]=e,i.$setDirty(),d.fixOrientationWithDataURI(b.target.result,function(b,c){a.imageUrl=c,a.thumbnailUrl=c,e.file=a.dataURItoBlob(c),e.file.name=j.name,a.options&&a.options.export?(a.uploadStatus="Creating Image Sizes",a.exportImages(function(){a.uploadStatus="Upload File",a.$apply()})):a.options&&a.options.resize&&a.resizeImage(c,a.options.resize,function(a){e.file=a}),a.$apply()})},l.onerror=function(a){console.log(a)},a.clear=function(b,c){(!a.options.confirm||b||confirm("Are you sure you would like to remove this photo?"))&&(a.data=null,a.modelData.__ModelFieldImageData&&a.modelData.__ModelFieldImageData[a.key]&&delete a.modelData.__ModelFieldImageData[a.key],delete a.imageUrl,delete a.thumbnailUrl,i.$setDirty(),a.ngChange&&!c&&setTimeout(function(){a.ngChange({key:a.key})},1))},a.onFileSelect=function(b){if(void 0!==a.data&&a.clear(!0),!(b.length<1)){j=b[0];var c=!1;a.options.extensions?a.options.extensions.forEach(function(a){j.type.match("image/"+a)&&(c=!0)}):c=!0,c?l.readAsDataURL(j):alert("File must be of the following file types ("+a.options.extensions.join(", ")+").")}},a.exportImages=function(b){var c=arguments[1];c||(c=0);var d=Object.keys(a.options.export);if(c>=d.length)return void b();var e=d[c],f=a.options.export[e];a.resizeImage(a.imageUrl,f,function(d){a.modelData.__ModelFieldImageData[a.key][e]=d,c++,a.exportImages(b,c)})},a.resizeImage=function(b,c,e){d.resize(b,c,function(b,c){var d=a.dataURItoBlob(c);e(d)})},a.dataURItoBlob=function(a){var b;b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):unescape(a.split(",")[1]);for(var c=a.split(",")[0].split(":")[1].split(";")[0],d=new Uint8Array(b.length),e=0;e'),d=$('
');if(c.append(d),$("body").append(c),a.options.isLightbox){var e=Math.min(d.width()/b.width,d.height()/b.height),f=b.width*e,g=b.height*e;d.css({background:"no-repeat center center url("+a.imageUrl+")",backgroundSize:f+"px "+g+"px"})}else{var h=$('
'),i=$('
');d.append(h),d.append(i);var e=Math.min(h.width()/b.width,h.height()/b.height),j=b.width*e,k=b.height*e;h.css({background:"no-repeat center center url("+a.imageUrl+")",backgroundSize:j+"px "+k+"px"});e=1;var l=b.width*e,m=b.height*e;i.css({background:"no-repeat center center url("+a.imageUrl+"), #111",backgroundSize:l+"px "+m+"px",border:"solid 1px #000"});var n="center",o="center",p=function(a){n=a.offsetX,o=a.offsetY,n||(n=a.pageX),o||(o=a.pageY),n-=h.width()/2-j/2,o-=h.height()/2-k/2,n*=-l/j,o*=-m/k,n+=i.width()/2,o+=i.height()/2,i.css({backgroundPosition:n+"px "+o+"px",backgroundSize:l+"px "+m+"px"})};h.on("mousemove",p),h.bind("mousewheel",function(a){a.originalEvent.wheelDelta/120>0&&e+.01<=1.1?e+=.01:e-.01>=.1&&(e-=.01),l=b.width*e,m=b.height*e,p(a)})}c.animate({backgroundColor:"rgba(0,0,0,0.65)"},600,function(){d.animate({opacity:1},300)}),d.click(function(){c.animate({opacity:0},300,function(){c.remove()})})},b.src=a.imageUrl}else{var c=e.find(".image-container");c.width()<=160?c.animate({width:"400px",height:"400px"},300):c.animate({width:"160px",height:"160px"},300)}},b.on("drop",function(a){"INPUT"!=a.target.nodeName&&a.preventDefault()}),b.on("dragover",function(a){a.preventDefault(),e.find(".image-drop").addClass("show-upload"),e.find(".input[type=file]").addClass("show-upload"),e.find(".button-menu").addClass("hide-menu")}),$(window).on("mouseleave",function(){e.find(".image-drop").removeClass("show-upload"),e.find(".input[type=file]").removeClass("show-upload"),e.find(".button-menu").removeClass("hide-menu")}),a.$on("$destroy",function(){b.off("drop"),b.off("dragover"),$(window).off("mouseleave")}),a.$on("removeModelFieldImage",function(b,c){c===a.key&&a.clear(null,!0)})}}}]),angular.module("dashboard.directives.ModelFieldList",["dashboard.Config","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldListView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"ngDisabled"},link:function(a,b,c){}}}]).directive("modelFieldListEdit",["$compile","$cookies","$timeout","Config","GeneralModelService",function(a,b,c,d,e){"ngInject";function f(a){return'
'}return{restrict:"E",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,c,d){b.list||(b.list=[]),b.options.addLabel||(b.options.addLabel="Add Item"),b.sortableOptions={placeholder:"sortable-placeholder",update:self.updateData,disabled:b.disabled},b.setData=function(){"object"==b.options.output?b.data=b.list:b.data=JSON.stringify(b.list)},b.addItem=function(){event.preventDefault(),b.list.push({}),b.setData()},b.removeItem=function(a){b.list[a];b.list.splice(a,1),b.setData()},b.updateData=function(){b.setData()};b.$watchCollection("[data, options, modelData]",function(a){if(b.data&&b.options)if(b.data instanceof Array)b.list=b.data;else try{b.list=JSON.parse(b.data)}catch(a){b.list=[],console.error("ModelFieldList failed to parse scope.data",a)}});c.html(f(b.options.key)).show(),a(c.contents())(b)}}}]),angular.module("dashboard.directives.ModelFieldLocation",["dashboard.services.Location","ui.bootstrap","dashboard.services.GeneralModel"]).directive("modelFieldLocationView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldLocationEdit",["$compile","$q","LocationService",function(a,b,c){"ngInject";function d(){var a=b.defer();if(angular.element("#google_maps").length)return a.resolve(),a.promise;var c=document.createElement("script");return c.onload=function(){a.resolve()},c.id="google_maps",c.type="text/javascript",c.src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=geometry,places",document.getElementsByTagName("head")[0].appendChild(c),a.promise}function e(){return'
Loading your location...
{{geocodeError}}
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,f,g){function h(){b.isMapLoading=!1,b.isLoaded=!0,k=new google.maps.Map(angular.element("#map_canvas")[0],{center:b.location,zoom:12}),i()}function i(){j()}function j(){if(b.data)if(m){var a=new google.maps.LatLng(b.data.lat,b.data.lng);m.setPosition(a),m.setMap(k),k.setCenter(a)}else{m=new google.maps.Marker({position:b.location,map:k,icon:new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|2F76EE",new google.maps.Size(21,34),new google.maps.Point(0,0),new google.maps.Point(10,34)),draggable:!0,tooltip:"Current location"}),google.maps.event.addListener(m,"dragend",function(){var a={lat:m.position.lat(),lng:m.position.lng()};b.data=a,b.$digest()})}}var k,l,m,n;b.isMapLoading=!0,b.isLoaded=!1,b.geocodeSearch={value:""},b.geocodeError=null,b.showGeocode=!1,d().then(function(){l=new google.maps.Geocoder,b.showGeocode=!1,b.property.display.options&&b.property.display.options.allowGeocode&&(b.showGeocode=!0);b.property.display.options&&b.property.display.options.query&&b.property.display.options.query,f.html(e()).show(),a(f.contents())(b),b.data?(n=b.data,b.location=angular.copy(b.data),h()):c.currentLocation().then(function(a){var c={lat:a.latitude,lng:a.longitude};n=c,b.data=c,h()}),b.$watch("data",function(a,c){a!=c&&(b.valueChanged=JSON.stringify(b.data)!=JSON.stringify(n),j())}),b.$watch("data.lat",function(a,c){a!=c&&(b.valueChanged=JSON.stringify(b.data)!=JSON.stringify(n),j())}),b.$watch("data.lng",function(a,c){a!=c&&(b.valueChanged=JSON.stringify(b.data)!=JSON.stringify(n),j())})},function(){console.error("Error loading Google Maps")}),b.doGeocode=function(){b.geocodeError=null,b.geocodeSearch.value?l.geocode({address:b.geocodeSearch.value},function(a,c){c==google.maps.GeocoderStatus.OK?b.$apply(function(){var c={lat:a[0].geometry.location.lat(),lng:a[0].geometry.location.lng()};b.data=c,h()}):c===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?console.log("Geocode was not successful for the following reason: "+c):c===google.maps.GeocoderStatus.ZERO_RESULTS?(b.geocodeError="Couldn't match the specified query with a geopoint",b.$digest(),console.log("Geocode was not successful for the following reason: "+c)):console.log("Geocode was not successful for the following reason:"+c)}):alert("Please enter the address of a location to geocode.")},b.clearSearch=function(){b.hasSearched=!1},b.revertValue=function(){n&&(b.data=n)}}}}]),angular.module("dashboard.directives.ModelFieldMultiSelect",[]).directive("modelFieldMultiSelect",["$compile","$timeout",function(a,b){"ngInject";function c(){return'
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",ngBlur:"&"},link:function(d,e,f,g){function h(){var a=d.options||l.display.options;"string"==typeof a&&(a=a.indexOf("\n")>-1?a.split("\n"):a.split(","));var b=l.display.key||"key",c=l.display.value||"value";if(Array.isArray(a))for(var e in a){var f=a[e];if("string"==typeof f){var g={key:f,value:f};d.multiSelectOptions.push(g)}else if(f&&"object"==typeof f){var h=f[b]||e,g={key:h,value:f[c],item:f};d.multiSelectOptions.push(g)}}else if(a&&"object"==typeof a){var i=Object.keys(a);for(var j in i){var h=i[j],g={key:h,value:a[h]};d.multiSelectOptions.push(g)}}}function i(){for(var a in d.selected)d.selected[a]=!1;if(void 0===l.display.output){var b=d.options||l.display.options;l.display.output=b instanceof Array?"comma":"object"}if("string"==typeof d.data){d.data||(d.data="");var c=d.data.split('","');for(var e in c){var f=c[e];'"'==f[0]&&(f=f.substring(1,f.length)),'"'==f[f.length-1]&&(f=f.substring(0,f.length-1));var g=_.findIndex(d.multiSelectOptions,{key:f});g>-1&&(d.selected[g]=!0)}}else if(Array.isArray(d.data)){d.data||(d.data=[]);for(var e in d.data){var h=d.data[e],g=_.findIndex(d.multiSelectOptions,{key:h});g>-1&&(d.selected[g]=!0)}}else if(d.data&&"object"==typeof d.data){d.data||(d.data={});var i=Object.keys(d.data);for(var a in i){var j=i[a],g=_.findIndex(d.multiSelectOptions,{key:j});g>-1&&(d.selected[g]=!0)}}}function j(a,b){k=!0;var c="array"===l.display.output?[]:"object"===l.display.output?{}:"";for(var e in d.selected)if(d.selected[e]){var f=d.multiSelectOptions[e];switch(l.display.output){case"object":c[f.key]=f.value;break;case"comma":c+='"'+f.key+'",';break;case"array":c.push(b.item||b.key)}}"comma"===l.display.output&&c.length>0&&(c=c.substring(0,c.length-1)),d.data=c,setTimeout(function(){d.ngBlur&&k&&d.ngBlur({key:d.key}),k=!1},1)}var k,l=d.property;!function(){d.multiSelectOptions=[],d.selected=[],l||(l={}),l.display||(l.display={}),h(),i(),d.clickMultiSelectCheckbox=j,e.html(c()).show(),a(e.contents())(d),d.$on("removeModelFieldMultiSelect",function(a,c){c===d.key&&b(function(){i()},1)})}()}}}]),angular.module("dashboard.directives.ModelFieldNumber",[]).directive("modelFieldNumber",["$compile","$filter",function(a,b){"ngInject";function c(){return''}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",required:"=ngRequired",ngError:"&",ngEditReason:"&"},link:function(d,e,f,g){function h(a){k=!0;var b=0;if(document.selection){var c=document.selection.createRange();c.moveStart("character",-a.target.value.length),b=c.text.length}else(a.target.selectionStart||0===a.target.selectionStart)&&(b=a.target.selectionStart);var d=a.target.value;if("string"==typeof d){var e=d.indexOf(".");if(!(-1===e||e>=b)){var f=d.split(".");if(!(f.length<1))return f[1].length>=l.display.scaleValue?void a.preventDefault():void 0}}}function i(a){if((""===a.target.value||null===a.target.value)&&!a.target.validity.badInput)return d.ngError&&l.display.isRequired?d.ngError({error:new Error("This is a required field.")}):d.ngError&&d.ngError({error:null}),void(d.ngEditReason&&k&&d.ngEditReason({key:d.key}));if(!0===l.display.allowDecimal&&l.display.scaleValue>0){var c=b("decimalWithScale")(a.target.value,l.display.scaleValue);if(isNaN(c)&&d.ngError)return void d.ngError({error:new Error("Please enter a valid number")});if(d.data=c,void 0!==l.display.minValue&&j(l.display.minValue,a.target.value))return void(d.ngError&&d.ngError({error:new Error("Value is less than the minimum allowed value ("+l.display.minValue+").")}));if(void 0!==l.display.maxValue&&j(a.target.value,l.display.maxValue))return void(d.ngError&&d.ngError({error:new Error("Value is greater than the maximum allowed value ("+l.display.maxValue+").")}));d.ngError&&d.ngError({error:null})}else if(!1===l.display.allowDecimal){if(isNaN(_.round(a.target.value))||isNaN(parseInt(a.target.value)))return void(d.ngError&&d.ngError({error:new Error("Please enter a valid number")}));var e=_.round(a.target.value,0);if(d.data=e,void 0!==l.display.minValue&&l.display.minValue>parseFloat(a.target.value))return void(d.ngError&&d.ngError({error:new Error("Value is less than the minimum allowed value ("+l.display.minValue+").")}));if(void 0!==l.display.maxValue&&l.display.maxValueparseInt(e[0]))return!0;if(parseInt(d[0])=0&&parseInt(e[0])>=0,g=0;gparseInt(e[1].charAt(g)))return f;if(parseInt(d[1].charAt(g))0&&(d.data=b("decimalWithScale")(d.data,l.display.scaleValue)),e.html(c()).show(),a(e.contents())(d)}()}}}]), -angular.module("dashboard.directives.ModelFieldPointsOfInterest",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","dashboard.services.Location","ui.bootstrap","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldPointsOfInterestView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldPointsOfInterestEdit",["$compile","$cookies","$timeout","$http","$q","$window","Config","GeneralModelService","LocationService",function(a,b,c,d,e,f,g,h,i){"ngInject";function j(a){var b=e.defer();if(angular.element("#google_maps").length)return b.resolve(),b.promise;var c=document.createElement("script");return c.onload=function(){b.resolve()},c.id="google_maps",c.type="text/javascript",c.src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=geometry,places",a&&(c.src+="&key="+a),document.getElementsByTagName("head")[0].appendChild(c),b.promise}function k(a){return a.replace(/ /g,"_").toLowerCase()}function l(){return' \t\t\t
Search results are loading...
\t\t\t
\t\t\t \t\t\t \t\t\t\t\t\t\t\t\t \t\t\t{{searchError}}\t\t\t\t\t\t \t\t\t
\t\t\t
    \t\t\t\t
  • \t\t\t\t\t
    {{ $index + 1 }}. {{ item.name }}
    \t\t\t\t\t\t{{item.formatted_address}} \t\t\t\t\t
    \t\t\t\t\t\t \t\t\t\t\t\t \t\t\t\t\t
    \t\t\t\t
  • \t\t\t
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,c,d){function e(){b.isMapLoading=!1,b.isLoaded=!0,q=new google.maps.Map(document.getElementById("map_canvas"),{center:b.request.location,zoom:s}),f()}function f(){g()}function g(){b.clearSearch();var a=jQuery.extend(!0,{},b.request);a.radius=.5*a.radius,new google.maps.places.PlacesService(q).textSearch(a,function(a,c){c==google.maps.places.PlacesServiceStatus.OK?(h(a),b.boundaries.length>0&&p(),b.markers.length>0&&i(),m(),n(),o(),b.$digest()):console.log("search was not successful for the following reason: "+c)})}function h(a){u&&u.close();for(var c=0;c{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"ngDisabled"},link:function(a,b,c){}}}]).directive("modelFieldReferenceEdit",["$compile","$cookies","Config","GeneralModelService",function($compile,$cookies,Config,GeneralModelService){"ngInject";function getTemplate(a,b,c){return a?' '+b+' '+c+" ":' '+b+' '+c+" "}return{restrict:"E",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",rowData:"=ngRowData",textOutputPath:"=ngTextOutputPath",onModelChanged:"&onModelChanged",appendToBody:"=appendToBody",ngBlur:"&"},link:function(scope,element,attrs){function replaceSessionVariables(string){if("string"!=typeof string)return string;try{for(var session=JSON.parse($cookies.get("session")),searchString="{session.",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var sessionKey=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+eval(sessionKey)+string.slice(endPos+1),startPos=string.indexOf(searchString)}for(searchString="{",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var key=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+scope.modelData[key]+string.slice(endPos+1),startPos=string.indexOf(searchString)}}catch(a){console.error(a)}return string}function mergeArray(a,b){for(var c in a){var d=a[c];-1==b.indexOf(d)&&b.push(d)}}function assignJunctionMeta(){if(scope.options.junctionMeta)for(var a in scope.selected.items){var b=scope.selected.items[a];b.junctionMeta=scope.options.junctionMeta}}scope.moment=moment,scope.isFirstTimeLoad=!0,scope.selected={},scope.selected.items=[],scope.selected.item=null,scope.list=[],scope.$watch("selected",function(a,b){var c=element.hasClass("ng-invalid"),d=scope.options&&scope.options.multiple?a.items:a.item,e=scope.options&&scope.options.multiple?b.items:b.item;!d||d.length<=0?scope.property&&(scope.property.required||scope.property.display&&scope.property.display.required)&&element.addClass("ng-invalid"):c&&element.removeClass("ng-invalid"),d=_.isPlainObject(d)&&d[scope.options.key]?d[scope.options.key]:d,e=_.isPlainObject(e)&&e[scope.options.key]?e[scope.options.key]:e,scope.$emit("onModelFieldReferenceChange",scope.options.relationship?scope.options.relationship:scope.key,d,e)},!0),scope.refreshChoices=function(a){var b=Config.serverParams.models[scope.options.model],c={"filter[limit]":100};if(c["filter[where]["+scope.options.searchField+"][like]"]="%"+a+"%",scope.options.where){var d=Object.keys(scope.options.where);for(var e in d){var f=d[e];c["filter[where]["+f+"]"]=replaceSessionVariables(scope.options.where[f])}}if(scope.options.filters){var d=Object.keys(scope.options.filters);for(var e in d){var f=d[e];c[f]=replaceSessionVariables(scope.options.filters[f])}}var g=b.plural;scope.options.api&&(g=replaceSessionVariables(scope.options.api)),GeneralModelService.list(g,c,{preventCancel:!0}).then(function(a){if(a){if(scope.list=a,scope.options.allowInsert){var b={};b[scope.options.searchField]="[Add New Item]",scope.list.push(b)}if(scope.options.allowClear){var b={};b[scope.options.searchField]="[clear]",scope.list.unshift(b)}"number"==typeof scope.options.defaultIndex&&a[scope.options.defaultIndex]&&scope.onSelect(a[scope.options.defaultIndex])}})};var unwatch=scope.$watchCollection("[data, options, modelData]",function(a){if(scope.modelData&&scope.modelData&&scope.options&&scope.options.multiple){if(!scope.property.display.sourceModel)return unwatch(),void(scope.modelData[scope.property.display.options.relationship]&&(scope.selected.items=scope.modelData[scope.property.display.options.relationship],assignJunctionMeta(),scope.list=scope.selected.items));var b=Config.serverParams.models[scope.property.display.sourceModel],c=Config.serverParams.models[scope.options.model],d=b.plural,e=(c.plural,scope.modelData[scope.property.display.sourceKey]);if(!e)return;unwatch();var f={};if(scope.options.junctionMeta){var g=Object.keys(scope.options.junctionMeta);for(var h in g){var i=g[h];f["filter[where]["+i+"]"]=scope.options.junctionMeta[i]}}GeneralModelService.getMany(d,e,scope.options.relationship,f,{preventCancel:!0}).then(function(a){if(a)if(scope.options.api&&a.length>0){var b={filter:{where:{}}};b.filter.where[scope.options.key]={inq:[]};for(var c in a){var d=a[c];b.filter.where[scope.options.key].inq.push(d[scope.options.key])}apiPath=replaceSessionVariables(scope.options.api),GeneralModelService.list(apiPath,b,{preventCancel:!0}).then(function(a){a&&(scope.selected.items=a,assignJunctionMeta(),scope.list=a)})}else scope.selected.items=a,assignJunctionMeta(),scope.list=a})}else if(scope.data&&scope.options&&scope.options.model){var j=Config.serverParams.models[scope.options.model];if(_.isPlainObject(scope.data))return;GeneralModelService.get(j.plural,scope.data).then(function(a){a&&(scope.selected.item=a,assignJunctionMeta(),scope.list=[scope.selected.item],scope.onModelChanged&&scope.onModelChanged({$item:scope.selected.item}))},function(a){if(scope.options.allowInsert){var b={};b[scope.options.key]=scope.data,b[scope.options.searchField]=scope.data,scope.selected.item=b,assignJunctionMeta(),scope.list.push(b)}})}});scope.onSelect=function(a,b){if(scope.options.multiple){if(a&&"[Add New Item]"==a[scope.options.searchField]){var c=element.find("input.ui-select-search").val();a[scope.key]=c}assignJunctionMeta(),scope.modelData[scope.options.relationship]?mergeArray(scope.selected.items,scope.modelData[scope.options.relationship]):scope.modelData[scope.options.relationship]=scope.selected.items}else{scope.data=a[scope.options.key],scope.rowData&&(scope.rowData[scope.options.key]=scope.data),scope.$emit("onModelFieldReferenceSelect",scope.modelData,scope.key,a,scope.rowData);var d=a[scope.options.searchField];if(a&&"[Add New Item]"==a[scope.options.searchField]){var c=element.find("input.ui-select-search").val();scope.data=c;var e={};e[scope.options.key]=c,e[scope.options.searchField]=c,scope.selected.item=e,scope.list.push(e)}else a&&"[clear]"==a[scope.options.searchField]&&(scope.data=null,d="");if(scope.rowData&&scope.textOutputPath&&a[scope.options.searchField])if(scope.textOutputPath.indexOf(".")>-1){for(var f=scope.textOutputPath.split("."),g=scope.rowData,h=0;h-1&&(scope.selected.items.splice(c,1),assignJunctionMeta()),scope.modelData[scope.options.relationship]){if(scope.options.key&&a[scope.options.key]){var d={};d[scope.options.key]=a[scope.options.key];var c=_.findIndex(scope.modelData[scope.options.relationship],d);c>-1&&scope.modelData[scope.options.relationship].splice(c,1)}var c=scope.modelData[scope.options.relationship].indexOf(a);c>-1&&scope.modelData[scope.options.relationship].splice(c,1),mergeArray(scope.selected.items,scope.modelData[scope.options.relationship])}else scope.modelData[scope.options.relationship]=scope.selected.items}else scope.data=null},scope.$on("ngGridEventStartCellEdit",function(){element.find("button").trigger("click"),element.find("input.ui-select-search").focus()}),element.html(getTemplate(scope.options.multiple,scope.options.matchTemplate,scope.options.choiceTemplate)).show(),$compile(element.contents())(scope)}}}]),angular.module("dashboard.directives.ModelFieldReferenceSort",["dashboard.Config","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldReferenceSortView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"ngDisabled"},link:function(a,b,c){}}}]).directive("modelFieldReferenceSortEdit",["$compile","$cookies","$timeout","Config","GeneralModelService",function($compile,$cookies,$timeout,Config,GeneralModelService){"ngInject";function getTemplate(a,b,c,d){var e="(index, item) in selectedList";return d||(e+=" track by item."+a),' '+b+' '+c+'
  • '+c+'
'}return{restrict:"E",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(scope,element,attrs){function replaceSessionVariables(string){if("string"!=typeof string)return string;try{for(var session=JSON.parse($cookies.get("session")),searchString="{session.",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var sessionKey=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+eval(sessionKey)+string.slice(endPos+1),startPos=string.indexOf(searchString)}for(searchString="{",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var key=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+scope.modelData[key]+string.slice(endPos+1),startPos=string.indexOf(searchString)}}catch(a){console.error(a)}return string}scope.selected={},scope.selected.item=null,scope.list=[],scope.selectedList=[],scope.sortableOptions={placeholder:"sortable-placeholder",disabled:scope.disabled},scope.refreshChoices=function(a){var b=Config.serverParams.models[scope.options.model],c={"filter[limit]":100};if(c["filter[where]["+scope.options.searchField+"][like]"]="%"+a+"%",scope.options.where){var d=Object.keys(scope.options.where);for(var e in d){var f=d[e];c["filter[where]["+f+"]"]=replaceSessionVariables(scope.options.where[f])}}if(scope.options.filters){var d=Object.keys(scope.options.filters);for(var e in d){var f=d[e];c[f]=replaceSessionVariables(scope.options.filters[f])}}var g=b.plural;scope.options.api&&(g=replaceSessionVariables(scope.options.api)),GeneralModelService.list(g,c).then(function(a){if(a){scope.list=a;for(var b in scope.selectedList){var c=scope.selectedList[b],d={};d[scope.options.key]=c[scope.options.key];var e=_.find(scope.list,d);e&&scope.list.splice(scope.list.indexOf(e),1)}if(scope.options.allowInsert){var f={};f[scope.options.searchField]=scope.options.insertText?scope.options.insertText:"[Add New Item]",scope.list.push(f)}"number"==typeof scope.options.defaultIndex&&a[scope.options.defaultIndex]&&scope.onSelect(a[scope.options.defaultIndex])}})};var unwatch=scope.$watchCollection("[data, options, modelData]",function(a){scope.data&&scope.options&&scope.options.model&&(unwatch(),scope.selectedList=scope.data)});scope.onSelect=function(a,b){if(scope.$emit("onModelFieldReferenceSortSelect",scope.modelData,scope.key,a),!a[scope.options.key]&&a[scope.options.searchField]){var c=element.find("input.ui-select-search").val();a[scope.options.key]=c,a[scope.options.searchField]=c}_.find(scope.selectedList,function(b){return b[scope.options.key]===a[scope.options.key]||b.name&&a.name&&b.name.toLowerCase()===a.name.toLowerCase()})||(scope.selectedList.push(a),scope.data=scope.selectedList),$timeout(function(){delete scope.selected.item})},scope.removeItem=function(a){var b=scope.selectedList[a];scope.selectedList.splice(a,1),scope.list.push(b)},element.html(getTemplate(scope.options.key,scope.options.matchTemplate,scope.options.choiceTemplate,scope.options.allowInsert)).show(),$compile(element.contents())(scope)}}}]),angular.module("dashboard.directives.ModelFieldVideo",["dashboard.services.GeneralModel"]).directive("modelFieldVideoView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ field.label }}: {{ data[field.name] }}",scope:{field:"=options",data:"=ngModel"},link:function(a,b,c){}}}]).directive("modelFieldVideoEdit",["$sce","$compile","$document","GeneralModelService","SessionService",function(a,b,c,d,e){"ngInject";return{restrict:"E",template:'
Upload a Video File
{{ uploadStatus }}
HTML5 Drop File is not supported!
',scope:{key:"=key",options:"=options",disabled:"=ngDisabled",data:"=ngModel",modelData:"=modelData",ngChange:"&"},link:function(b,d,e){var f=null;b.uploadStatus="Upload File";var g=(b.$watchCollection("data",function(c){c&&("string"==typeof c?b.videoUrl=a.trustAsResourceUrl(c):"object"==typeof c&&(c.fileUrl&&(b.videoUrl=a.trustAsResourceUrl(c.fileUrl)),c.videoUrl&&(b.videoUrl=a.trustAsResourceUrl(c.videoUrl))))}),new FileReader);g.onload=function(c){b.videoUrl=a.trustAsResourceUrl(c.target.result),b.$apply()},g.onerror=function(a){console.error(a)},b.clear=function(){b.data=null,delete b.videoUrl,b.ngChange&&setTimeout(function(){b.ngChange({key:b.key})},1)},b.onFileSelect=function(a){if(b.data&&b.clear(),!(a.length<1)){f=a[0];var c=b.options.path;b.data={path:c,file:f},g.readAsDataURL(f)}},c.on("drop",function(a){"INPUT"!=a.target.nodeName&&a.preventDefault()}),c.on("dragover",function(a){a.preventDefault(),d.find(".image-drop").addClass("show-upload"),d.find(".input[type=file]").addClass("show-upload"),d.find(".button-menu").addClass("hide-menu")}),$(window).on("mouseleave",function(){d.find(".image-drop").removeClass("show-upload"),d.find(".input[type=file]").removeClass("show-upload"),d.find(".button-menu").removeClass("hide-menu")}),b.$on("$destroy",function(){c.off("drop"),c.off("dragover"),$(window).off("mouseleave")})}}}]),angular.module("dashboard.directives.ModelFieldWYSIWYG",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","ui.bootstrap","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldWysiwygView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldWysiwygEdit",["$compile","$cookies","$timeout","$uibModal","Config","FileUploadService",function(a,b,c,d,e,f){"ngInject";function g(a){var b="";if(a.options&&a.options.fonts)for(var c=a.options.fonts,d=0;d"+c[d]+"";return'
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,c,e,h){function i(){var a=$(".wysiwyg-editor"),d=0;a&&a.length>0&&(d=a.length),n=angular.element(c).find(".wysiwyg-editor");var e="wysiwyg-editor-"+d,f="editor"+d+"-toolbar";n.attr("id",e);var g=angular.element(c).find(".wysiwyg-toolbar");g.attr("data-role",f),g.attr("data-target","#"+e),b.disabled||n.wysiwyg({toolbarSelector:"[data-role="+f+"]",hotKeys:{},dragAndDropImages:!1})}function j(){var a=angular.element(c).find(".font-color-picker");a&&a.spectrum({flat:!0,cancelText:"",clickoutFiresChange:!1,preferredFormat:"rgb",showInput:!0,change:function(a){$(this).closest(".dropdown").find(".color-sample").css({backgroundColor:a.toHexString()}),n.focus(),document.execCommand("foreColor",0,a.toHexString()),$(this).parent(".menu").removeClass("open")}})}function k(a){var b=$(a.currentTarget).parent().find(".menu");b.hasClass("open")?b.removeClass("open"):b.addClass("open")}function l(a){if(b.options.allowImageUpload&&0!=a.length){b.status="Uploading Image",b.progress=0;var c=d.open({templateUrl:"app/dashboard/model/edit/ModelEditSaveDialog.html",controller:"ModelEditSaveDialogCtrl",scope:b});f.uploadFile(a[0],b.options.imagePath).then(function(a){b.status="Upload Complete",document.execCommand("insertimage",0,a.fileUrl),c.close()},function(a){console.error(a),b.status="There was an error uploading the image. Please contact an Administrator." -},function(a){b.progress=a})}}function m(){if(b.isEditingCode=!b.isEditingCode,b.isEditingCode){var a=n[0].innerHTML;a=html_beautify(a,{indent_size:2}),h.$setViewValue(a),o.setValue(a)}else h.$setViewValue(o.getValue()),n.html(h.$viewValue)}var n,o;!function(){b.isEditingCode=!1,b.toggleDropdown=k,b.onFileSelect=l,b.toggleCodeEdit=m,c.html(g(b)).show(),a(c.contents())(b),i(),j(),o=ace.edit(c.find(".code-editor")[0]),o.getSession().setMode("ace/mode/html"),$(c).find(".wysiwyg-toolbar [data-role=magic-overlay]").each(function(){var a=$(this);$(a.data("target")),a.css({opacity:0,position:"absolute",width:"40px",height:"34px",top:"0",left:"0"})}),h.$render=function(){n.html(h.$viewValue||"")},n.bind("blur keyup change",function(){b.$apply(function(){h.$setViewValue(n.html())})}),o.on("blur",function(){h.$setViewValue(o.getValue()),n.html(h.$viewValue)})}()}}}]),angular.module("dashboard.filters",[]).filter("decimalWithScale",function(){"ngInject";return function(a,b){if(void 0===a||""===a)return"";value=a+"";var c=value.indexOf(".");-1===c?value+=".0":1===c&&"-"===value.charAt(0)?value=value.slice(0,1)+"0"+value.slice(1):0===c&&(value="0"+value);var d=value.split(".");if(d.length>1){if(d[0]&&0!==d[0].length||(d[0]=0),isNaN(parseInt(d[0])))return NaN;if(1===c&&"-"===value.charAt(0)?value="-"+parseInt(d[0])+".":value=parseInt(d[0])+".",null!==d[1].match(/[\D]/))return NaN;if(d[1].length>b?value+=d[1].substring(0,b):value+=d[1],d[1].length0){var f=this.restrictMenuItems(e.subnav);if(f&&(e.subnav=f,null!==e.defaultSubNavIndex&&void 0!==e.defaultSubNavIndex&&e.subnav[e.defaultSubNavIndex]&&e.subnav[e.defaultSubNavIndex].hidden))for(var g in e.subnav){var h=e.subnav[g];if(c.hasAccess(d,h)&&!h.hidden){e.defaultSubNavIndex=parseInt(g);break}}}}else e.hidden=!0}return a},this.hasAccess=function(a,b){if(!(b.hasOwnProperty("roles")&&b.roles instanceof Array))return!0;for(var c in a)if(b.roles.indexOf(a[c].name)>-1)return!0;return!1}}]),angular.module("dashboard.services.FileUpload",["dashboard.Config","dashboard.Utils","ngCookies","angularFileUpload"]).service("FileUploadService",["$cookies","$q","$upload","Config","Utils",function(a,b,c,d,e){"ngInject";var f=this;this.getS3Credentials=function(a,b,c){var f={path:a,fileType:b,r:(new Date).getTime(),isRegistrySurvey:c};return e.apiHelper("GET",d.serverParams.cmsBaseUrl+"/aws/s3/credentials",f)},this.getFileUploadData=function(a){return{key:a.uniqueFilePath,AWSAccessKeyId:a.AWSAccessKeyId,acl:"private",policy:a.policy,signature:a.signature,success_action_status:"201","Cache-Control":"max-age=31536000"}},this.uploadFile=function(a,d){var e=!1;if(a.isRegistrySurvey){var e=!0;a=a.file}("string"==typeof a||a instanceof String&&0==a.indexOf("data:"))&&(a=f.dataURItoBlob(a));var g="";a.type?g=a.type:a.name&&(g=f.detectMimeTypeByExt(a.name));var h=b.defer();return f.getS3Credentials(d,g||"",e).then(function(b){c.upload({url:b.uploadUrl,method:"POST",data:f.getFileUploadData(b),file:a}).progress(function(b){var c=b.position/a.size;h.notify(c)}).success(function(b){var c,d=(new DOMParser).parseFromString(b,"text/xml");try{var e=d.evaluate("/PostResponse/Location",d,null,XPathResult.STRING_TYPE,null);c=e.stringValue}catch(a){for(var f=d.documentElement.childNodes,g=0;g0)return d++,e=0,void f.uploadImages(a,d,e,h,i);l=r}else{var s=Object.keys(r);if(e>=s.length)return d++,e=0,void f.uploadImages(a,d,e,h,i);k=s[e],r[k]&&r[k].file?(g=r[k].path,l=r[k].file):l=r[k]}h||(h={});for(var o=0;o=0?atob(a.split(",")[1]):unescape(a.split(",")[1]);for(var c=a.split(",")[0].split(":")[1].split(";")[0],d=new Uint8Array(b.length),e=0;e0){var b=a.split(".").pop();if(b.length>0){return{"3dm":"x-world/x-3dmf","3dmf":"x-world/x-3dmf",a:"application/octet-stream",aab:"application/x-authorware-bin",aam:"application/x-authorware-map",aas:"application/x-authorware-seg",abc:"text/vnd.abc",acgi:"text/html",afl:"video/animaflex",ai:"application/postscript",aif:"audio/aiff",aifc:"audio/aiff",aiff:"audio/aiff",aim:"application/x-aim",aip:"text/x-audiosoft-intra",ani:"application/x-navi-animation",aos:"application/x-nokia-9000-communicator-add-on-software",aps:"application/mime",arc:"application/octet-stream",arj:"application/arj",art:"image/x-jg",asf:"video/x-ms-asf",asm:"text/x-asm",asp:"text/asp",asx:"application/x-mplayer2",au:"audio/basic",avi:"application/x-troff-msvideo",avs:"video/avs-video",bcpio:"application/x-bcpio",bin:"application/mac-binary",bm:"image/bmp",bmp:"image/bmp",boo:"application/book",book:"application/book",boz:"application/x-bzip2",bsh:"application/x-bsh",bz:"application/x-bzip",bz2:"application/x-bzip2",c:"text/plain","c++":"text/plain",cat:"application/vnd.ms-pki.seccat",cc:"text/plain",ccad:"application/clariscad",cco:"application/x-cocoa",cdf:"application/cdf",cer:"application/pkix-cert",cha:"application/x-chat",chat:"application/x-chat",class:"application/java",com:"application/octet-stream",conf:"text/plain",cpio:"application/x-cpio",cpp:"text/x-c",cpt:"application/mac-compactpro",crl:"application/pkcs-crl",crt:"application/pkix-cert",csh:"application/x-csh",css:"application/x-pointplus",cxx:"text/plain",dcr:"application/x-director",deepv:"application/x-deepv",def:"text/plain",der:"application/x-x509-ca-cert",dif:"video/x-dv",dir:"application/x-director",dl:"video/dl",doc:"application/msword",dot:"application/msword",dp:"application/commonground",drw:"application/drafting",dump:"application/octet-stream",dv:"video/x-dv",dvi:"application/x-dvi",dwf:"drawing/x-dwf (old)",dwg:"application/acad",dxf:"application/dxf",dxr:"application/x-director",el:"text/x-script.elisp",elc:"application/x-bytecode.elisp (compiled elisp)",env:"application/x-envoy",eps:"application/postscript",es:"application/x-esrehber",etx:"text/x-setext",evy:"application/envoy",exe:"application/octet-stream",f:"text/plain",f77:"text/x-fortran",f90:"text/plain",fdf:"application/vnd.fdf",fif:"application/fractals",fli:"video/fli",flo:"image/florian",flx:"text/vnd.fmi.flexstor",fmf:"video/x-atomic3d-feature",for:"text/plain",fpx:"image/vnd.fpx",frl:"application/freeloader",funk:"audio/make",g:"text/plain",g3:"image/g3fax",gif:"image/gif",gl:"video/gl",gsd:"audio/x-gsm",gsm:"audio/x-gsm",gsp:"application/x-gsp",gss:"application/x-gss",gtar:"application/x-gtar",gz:"application/x-compressed",gzip:"application/x-gzip",h:"text/plain",hdf:"application/x-hdf",help:"application/x-helpfile",hgl:"application/vnd.hp-hpgl",hh:"text/plain",hlb:"text/x-script",hlp:"application/hlp",hpg:"application/vnd.hp-hpgl",hpgl:"application/vnd.hp-hpgl",hqx:"application/binhex",hta:"application/hta",htc:"text/x-component",htm:"text/html",html:"text/html",htmls:"text/html",htt:"text/webviewhtml",htx:"text/html",ice:"x-conference/x-cooltalk",ico:"image/x-icon",idc:"text/plain",ief:"image/ief",iefs:"image/ief",iges:"application/iges",igs:"application/iges",ima:"application/x-ima",imap:"application/x-httpd-imap",inf:"application/inf",ins:"application/x-internett-signup",ip:"application/x-ip2",isu:"video/x-isvideo",it:"audio/it",iv:"application/x-inventor",ivr:"i-world/i-vrml",ivy:"application/x-livescreen",jam:"audio/x-jam",jav:"text/plain",java:"text/plain",jcm:"application/x-java-commerce",jfif:"image/jpeg","jfif-tbnl":"image/jpeg",jpe:"image/jpeg",jpeg:"image/jpeg",jpg:"image/jpeg",jps:"image/x-jps",js:"application/x-javascript",jut:"image/jutvision",kar:"audio/midi",ksh:"application/x-ksh",la:"audio/nspaudio",lam:"audio/x-liveaudio",latex:"application/x-latex",lha:"application/lha",lhx:"application/octet-stream",list:"text/plain",lma:"audio/nspaudio",log:"text/plain",lsp:"application/x-lisp",lst:"text/plain",lsx:"text/x-la-asf",ltx:"application/x-latex",lzh:"application/octet-stream",lzx:"application/lzx",m:"text/plain",m1v:"video/mpeg",m2a:"audio/mpeg",m2v:"video/mpeg",m3u:"audio/x-mpequrl",man:"application/x-troff-man",map:"application/x-navimap",mar:"text/plain",mbd:"application/mbedlet",mc$:"application/x-magic-cap-package-1.0",mcd:"application/mcad",mcf:"image/vasa",mcp:"application/netmc",me:"application/x-troff-me",mht:"message/rfc822",mhtml:"message/rfc822",mid:"application/x-midi",midi:"application/x-midi",mif:"application/x-frame",mime:"message/rfc822",mjf:"audio/x-vnd.audioexplosion.mjuicemediafile",mjpg:"video/x-motion-jpeg",mm:"application/base64",mme:"application/base64",mod:"audio/mod",moov:"video/quicktime",mov:"video/quicktime",movie:"video/x-sgi-movie",mp2:"audio/mpeg",mp3:"audio/mpeg3",mpa:"audio/mpeg",mpc:"application/x-project",mpe:"video/mpeg",mpeg:"video/mpeg",mpg:"audio/mpeg",mpga:"audio/mpeg",mpp:"application/vnd.ms-project",mpt:"application/x-project",mpv:"application/x-project",mpx:"application/x-project",mrc:"application/marc",ms:"application/x-troff-ms",mv:"video/x-sgi-movie",my:"audio/make",mzz:"application/x-vnd.audioexplosion.mzz",nap:"image/naplps",naplps:"image/naplps",nc:"application/x-netcdf",ncm:"application/vnd.nokia.configuration-message",nif:"image/x-niff",niff:"image/x-niff",nix:"application/x-mix-transfer",nsc:"application/x-conference",nvd:"application/x-navidoc",o:"application/octet-stream",oda:"application/oda",omc:"application/x-omc",omcd:"application/x-omcdatamaker",omcr:"application/x-omcregerator",p:"text/x-pascal",p10:"application/pkcs10",p12:"application/pkcs-12",p7a:"application/x-pkcs7-signature",p7c:"application/pkcs7-mime",p7m:"application/pkcs7-mime",p7r:"application/x-pkcs7-certreqresp",p7s:"application/pkcs7-signature",part:"application/pro_eng",pas:"text/pascal",pbm:"image/x-portable-bitmap",pcl:"application/vnd.hp-pcl",pct:"image/x-pict",pcx:"image/x-pcx",pdb:"chemical/x-pdb",pdf:"application/pdf",pfunk:"audio/make",pgm:"image/x-portable-graymap",pic:"image/pict",pict:"image/pict",pkg:"application/x-newton-compatible-pkg",pko:"application/vnd.ms-pki.pko",pl:"text/plain",plx:"application/x-pixclscript",pm:"image/x-xpixmap",pm4:"application/x-pagemaker",pm5:"application/x-pagemaker",png:"image/png",pnm:"application/x-portable-anymap",pot:"application/mspowerpoint",pov:"model/x-pov",ppa:"application/vnd.ms-powerpoint",ppm:"image/x-portable-pixmap",pps:"application/mspowerpoint",ppt:"application/mspowerpoint",ppz:"application/mspowerpoint",pre:"application/x-freelance",prt:"application/pro_eng",ps:"application/postscript",psd:"application/octet-stream",pvu:"paleovu/x-pv",pwz:"application/vnd.ms-powerpoint",py:"text/x-script.phyton",pyc:"application/x-bytecode.python",qcp:"audio/vnd.qcelp",qd3:"x-world/x-3dmf",qd3d:"x-world/x-3dmf",qif:"image/x-quicktime",qt:"video/quicktime",qtc:"video/x-qtc",qti:"image/x-quicktime",qtif:"image/x-quicktime",ra:"audio/x-pn-realaudio",ram:"audio/x-pn-realaudio",ras:"application/x-cmu-raster",rast:"image/cmu-raster",rexx:"text/x-script.rexx",rf:"image/vnd.rn-realflash",rgb:"image/x-rgb",rm:"application/vnd.rn-realmedia",rmi:"audio/mid",rmm:"audio/x-pn-realaudio",rmp:"audio/x-pn-realaudio",rng:"application/ringing-tones",rnx:"application/vnd.rn-realplayer",roff:"application/x-troff",rp:"image/vnd.rn-realpix",rpm:"audio/x-pn-realaudio-plugin",rt:"text/richtext",rtf:"application/rtf",rtx:"application/rtf",rv:"video/vnd.rn-realvideo",s:"text/x-asm",s3m:"audio/s3m",saveme:"application/octet-stream",sbk:"application/x-tbook",scm:"application/x-lotusscreencam",sdml:"text/plain",sdp:"application/sdp",sdr:"application/sounder",sea:"application/sea",set:"application/set",sgm:"text/sgml",sgml:"text/sgml",sh:"application/x-bsh",shar:"application/x-bsh",shtml:"text/html",sid:"audio/x-psid",sit:"application/x-sit",skd:"application/x-koan",skm:"application/x-koan",skp:"application/x-koan",skt:"application/x-koan",sl:"application/x-seelogo",smi:"application/smil",smil:"application/smil",snd:"audio/basic",sol:"application/solids",spc:"application/x-pkcs7-certificates",spl:"application/futuresplash",spr:"application/x-sprite",sprite:"application/x-sprite",src:"application/x-wais-source",ssi:"text/x-server-parsed-html",ssm:"application/streamingmedia",sst:"application/vnd.ms-pki.certstore",step:"application/step",stl:"application/sla",stp:"application/step",sv4cpio:"application/x-sv4cpio",sv4crc:"application/x-sv4crc",svf:"image/vnd.dwg",svr:"application/x-world",swf:"application/x-shockwave-flash",t:"application/x-troff",talk:"text/x-speech",tar:"application/x-tar",tbk:"application/toolbook",tcl:"application/x-tcl",tcsh:"text/x-script.tcsh",tex:"application/x-tex",texi:"application/x-texinfo",texinfo:"application/x-texinfo",text:"application/plain",tgz:"application/gnutar",tif:"image/tiff",tiff:"image/tiff",tr:"application/x-troff",tsi:"audio/tsp-audio",tsp:"application/dsptype",tsv:"text/tab-separated-values",turbot:"image/florian",txt:"text/plain",uil:"text/x-uil",uni:"text/uri-list",unis:"text/uri-list",unv:"application/i-deas",uri:"text/uri-list",uris:"text/uri-list",ustar:"application/x-ustar",uu:"application/octet-stream",uue:"text/x-uuencode",vcd:"application/x-cdlink",vcs:"text/x-vcalendar",vda:"application/vda",vdo:"video/vdo",vew:"application/groupwise",viv:"video/vivo",vivo:"video/vivo",vmd:"application/vocaltec-media-desc",vmf:"application/vocaltec-media-file",voc:"audio/voc",vos:"video/vosaic",vox:"audio/voxware",vqe:"audio/x-twinvq-plugin",vqf:"audio/x-twinvq",vql:"audio/x-twinvq-plugin",vrml:"application/x-vrml",vrt:"x-world/x-vrt",vsd:"application/x-visio",vst:"application/x-visio",vsw:"application/x-visio",w60:"application/wordperfect6.0",w61:"application/wordperfect6.1",w6w:"application/msword",wav:"audio/wav",wb1:"application/x-qpro",wbmp:"image/vnd.wap.wbmp",web:"application/vnd.xara",wiz:"application/msword",wk1:"application/x-123",wmf:"windows/metafile",wml:"text/vnd.wap.wml",wmlc:"application/vnd.wap.wmlc",wmls:"text/vnd.wap.wmlscript",wmlsc:"application/vnd.wap.wmlscriptc",word:"application/msword",wp:"application/wordperfect",wp5:"application/wordperfect",wp6:"application/wordperfect",wpd:"application/wordperfect",wq1:"application/x-lotus",wri:"application/mswrite",wrl:"application/x-world",wrz:"model/vrml",wsc:"text/scriplet",wsrc:"application/x-wais-source",wtk:"application/x-wintalk",xbm:"image/x-xbitmap",xdr:"video/x-amt-demorun",xgz:"xgl/drawing",xif:"image/vnd.xiff",xl:"application/excel",xla:"application/excel",xlb:"application/excel",xlc:"application/excel",xld:"application/excel",xlk:"application/excel",xll:"application/excel",xlm:"application/excel",xls:"application/excel",xlt:"application/excel",xlv:"application/excel",xlw:"application/excel",xm:"audio/xm",xml:"application/xml",xmz:"xgl/movie",xpix:"application/x-vnd.ls-xpix",xpm:"image/x-xpixmap","x-png":"image/png",xsr:"video/x-amt-showrun",xwd:"image/x-xwd",xyz:"chemical/x-pdb",z:"application/x-compress",zip:"application/x-compressed",zoo:"application/octet-stream",zsh:"text/x-script.zsh"}[b]}}return""}}]),angular.module("dashboard.services.GeneralModel",["dashboard.services.FileUpload","dashboard.Config","dashboard.Utils","ngCookies"]).service("GeneralModelService",["$cookies","$q","Config","Utils","FileUploadService",function($cookies,$q,Config,Utils,FileUploadService){"ngInject";var self=this;this.list=function(a,b,c){var a=a+(a.indexOf("?")>-1?"&":"?");return c&&c.preventCancel||Utils.apiCancel("GET",a),Utils.apiHelper("GET",a,b)},this.count=function(a,b){a.indexOf("?")>-1&&(a=a.substr(0,a.indexOf("?")));var c=Object.keys(b);for(var d in c){var e=c[d];e.indexOf("filter[where]")>-1?(newKey=e.replace("filter[where]","where"),b[newKey]=b[e]):"filter"==e&&(b.where=b.filter.where)}return a+="/count",Utils.apiCancel("GET",a),Utils.apiHelper("GET",a,b)},this.get=function(a,b,c){var d=a+"/"+b;return Utils.apiHelper("GET",d,c)},this.getMany=function(a,b,c,d,e){var f=a+"/"+b+"/"+c;return e&&e.preventCancel||Utils.apiCancel("GET",f),Utils.apiHelper("GET",f,d)},this.sort=function(a,b,c,d){var e=Config.serverParams.cmsBaseUrl+"/model/sort",f={model:a,key:b,sortField:c,sortData:d};return Utils.apiHelper("POST",e,f)},this.remove=function(a,b){var c=a;return b&&(c=c+"/"+b),Utils.apiHelper("DELETE",c,{})},this.post=function(a,b){return Utils.apiHelper("POST",a,b)},this.save=function(a,b,c){var d=Config.serverParams.cmsBaseUrl+"/model/save";return c.__model=a,c.__id=b,c.__accessToken=$cookies.get("accessToken"),Utils.apiHelper("PUT",d,c)},this.saveWithFiles=function(a,b,c){var d=Config.serverParams.models[a],e=$q.defer(),f=function(a){var b=0,d=Object.keys(c),f=function(){if(b>=d.length)return void a();var g=d[b],h=c[g];h&&"object"==typeof h&&h.file?(e.notify({message:"Uploading file: "+h.file.name,translate:"cms.status.uploading_file",params:{file:h.file.name},progress:0}),FileUploadService.uploadFile(h.file,h.path).then(function(a){c[g]=a.fileUrl,b++,f()},function(a){"object"==typeof a&&a.error?e.reject({message:"The file being uploaded is not an accepted file type for this form",translate:"cms.error.file_upload.not_accepted"}):e.reject(a)},function(a){e.notify({progress:a})})):(b++,f())};f()};return function(a){c.__ModelFieldImageData?(e.notify({message:"Uploading image file(s)",progress:0,translate:"cms.status.uploading_image_files"}),FileUploadService.uploadImages(c.__ModelFieldImageData).then(function(b){self.assignImageFileMetaData(d,c,b),e.notify({message:"Saving...",progress:0,translate:"cms.status.saving"}),a()},function(a){console.log(a),e.reject(a)},function(a){e.notify({progress:a})})):a()}(function(){f(function(){self.checkDefaultValues(d,c),self.save(a,b,c).then(function(a){e.resolve(a)},function(a){e.reject(a)})})}),e.promise},this.assignImageFileMetaData=function(a,b,c){var d=Object.keys(c);for(var e in d){var f=d[e],g=a.properties[f],h=g.display.options;if(h&&h.model&&h.relationship){b[h.relationship]||(b[h.relationship]={});var i=b[h.relationship];b[f]&&(i[h.key]=b[f]),i[h.urlKey]=c[f][h.urlKey];var j=Object.keys(h.export);for(var k in j){var l=j[k];i[l]=c[f][l]}if(b.__ModelFieldImageData[f]&&b.__ModelFieldImageData[f][h.urlKey]){var m=b.__ModelFieldImageData[f][h.urlKey],n=m?m.file:{};i.filename=n.name}else i.filename="unknown";if(h.meta){var o=Object.keys(h.meta);for(var p in o){var q=o[p];i[q]=h.meta[q]}}}else b[f]=c[f]}delete b.__ModelFieldImageData,delete b.__ModelFieldImageChangeCount},this.checkDefaultValues=function(modelDef,data){var keys=Object.keys(modelDef.properties);for(var i in keys){var key=keys[i],property=modelDef.properties[key];property&&property.display&&(void 0===data[key]||null==data[key]||property.display.forceDefaultOnSave)&&(void 0!==property.default&&(data[key]=property.default),void 0!==property.display.evalDefault&&(data[key]=eval(property.display.evalDefault)))}},this.queryStringParamsToJSON=function(a){var b={};return _.forEach(a,function(a,c){b=_.set(b,c,a)}),b},this.validateRequiredFields=function(a,b,c){var d=c?a[c]:a.display,e=d.filter(function(c){if("string"==typeof c){var d=a.properties[c];return d&&d.required&&!b[c]}return!("object"!=typeof c||!c.required)&&(c.options&&c.options.relationship?_.isEmpty(b[c.options.relationship]):"image"===c.type&&b.__ModelFieldImageData?_.isEmpty(b.__ModelFieldImageData[c.property]):_.isEmpty(b[c.property]))});return _.isEmpty(e)}}]),angular.module("dashboard.services.Image",[]).service("ImageService",["$q",function(a){"ngInject";var b=this;this.resize=function(a,c,d){b.loadImageURI(a,function(e,f){if(e)return d(e);EXIF.getData(f,function(e){var g=document.createElement("canvas"),h=g.getContext("2d"),i=EXIF.getTag(this,"Orientation");c||(c={});var j=c.width?c.width:f.width,k=c.height?c.height:f.height;switch(c.aspect?c.aspect:"fit"){case"stretch":g.width=j,g.height=k;break;case"fill":g.width=j,g.height=k;var l=Math.max(j/f.width,k/f.height);j=f.width*l,k=f.height*l;break;case"fit":default:var l=Math.min(j/f.width,k/f.height);l>1&&(l=1),j=f.width*l,k=f.height*l,g.width=j,g.height=k}h.save(),b.setOrientation(g,h,j,k,i),h.drawImage(f,0,0,j,k),h.restore();try{var m=g.toDataURL("image/jpeg",.8);d(null,m)}catch(b){d(null,a)}})})},this.fixOrientationWithDataURI=function(a,c){b.resize(a,{},c)},this.setOrientation=function(a,b,c,d,e){switch(e){case 2:b.translate(c,0),b.scale(-1,1);break;case 3:b.translate(c,d),b.rotate(Math.PI);break;case 4:b.translate(0,d),b.scale(1,-1);break;case 5:a.width=d,a.height=c,b.rotate(.5*Math.PI),b.scale(1,-1);break;case 6:a.width=d,a.height=c,b.rotate(.5*Math.PI),b.translate(0,-d);break;case 7:a.width=d,a.height=c,b.rotate(.5*Math.PI),b.translate(c,-d),b.scale(-1,1);break;case 8:a.width=d,a.height=c,b.rotate(-.5*Math.PI),b.translate(-c,0)}},this.loadImageURI=function(a,b){var c=new Image;c.onload=function(){b(null,c)},c.onerror=function(a){b(a)},c.src=a}}]),angular.module("dashboard.services.Location",["dashboard.Config","dashboard.Utils"]).service("LocationService",["Config","Utils","$q","$rootScope",function(a,b,c,d){"ngInject";var e=c.defer();this.currentLocation=function(){return navigator.geolocation?navigator.geolocation.getCurrentPosition(function(a){d.$apply(function(){e.resolve(a.coords)})},function(a){e.reject(a)}):e.reject("location services not allowed"),e.promise}}]),angular.module("dashboard.services.Session",["dashboard.Utils","dashboard.services.User","ngCookies"]).service("SessionService",["$cookies","$cookieStore","$q","UserService","Config","Utils","DashboardService",function(a,b,c,d,e,f,g){"ngInject";var h=this,i=null;this.logIn=function(b,d,e){var g="Users";return config.authModel&&(g=config.authModel),f.apiHelper("POST",g+"/login?include=user",{email:b,password:d,options:e}).then(function(a){return h.setSession(a)}).catch(function(){return a.put("session",null),c.reject(arguments)})},this.logOut=function(){var c="Users";config.authModel&&(c=config.authModel);var d=a.get("accessToken");return b.remove("username"),b.remove("userId"),b.remove("accessToken"),b.remove("roles"),b.remove("session"),b.remove("lastActive"),f.apiHelper("POST",c+"/logout",{accessToken:d})},this.setSession=function(b){var d="Users";return config.authModel&&(d=config.authModel),f.apiHelper("GET",d+"/"+b.userId+"/Roles",{accessToken:b.id}).then(function(c){return a.put("lastActive",new Date),i=b,a.put("accessToken",b.id),a.put("username",b.user.username),a.put("userId",b.userId),a.put("session",JSON.stringify(i)),a.put("roles",JSON.stringify(c)),b}).catch(function(){return a.put("session",null),c.reject(arguments)})},this.getAuthToken=function(){return i&&i.id},this.put=function(b,c){var d=JSON.parse(a.get("session"));d[b]=c,a.put("session",JSON.stringify(d))},this.get=function(b){return JSON.parse(a.get("session"))[b]},this.isAuthorized=function(b,c){if(_.startsWith(b.name,"public"))return!0;var d=g.getNavigation(),e=b.name,f=c.model,h=c.action,i=angular.fromJson(a.get("roles"));if(_.isEmpty(f)){var j=_.find(d,{state:e});if(j)return g.hasAccess(i,j)}else{var j=_.find(d,{path:f});if(j){if(!g.hasAccess(i,j))return!1;if(_.isArray(j.subnav)&&!_.isEmpty(h)){var k=_.find(j.subnav,{label:h});if(k)return g.hasAccess(i,k)}}}var l=b.data.roles;return!(!_.isEmpty(l)&&_.isArray(l))||g.hasAccess(i,{roles:l})},function(){var b=a.get("session");b&&(i=JSON.parse(b))}()}]),angular.module("dashboard.services.Settings",["dashboard.Config","dashboard.Utils","ngCookies"]).service("SettingsService",["$cookies","Config","Utils",function(a,b,c){"ngInject";this.saveNav=function(a){var d=b.serverParams.cmsBaseUrl+"/settings/config/nav";return c.apiHelper("POST",d,a)}}]),angular.module("dashboard.services.User",["dashboard.Config","dashboard.Utils"]).service("UserService",["Config","Utils","$q","$rootScope",function(a,b,c,d){"ngInject";this.register=function(a,c){var d="Users";return config.authModel&&(d=config.authModel),b.apiHelper("POST",d,{email:a,password:c})}}]),angular.module("dashboard.Utils",["dashboard.Config"]).service("Utils",["Config","$http","$q","$cookies",function(a,b,c,d){"ngInject";var e={};this.apiCancel=function(a,b){var c=e[a+":"+b];c&&c.resolve&&c.resolve(),delete e[a+":"+b]},this.apiHelper=function(f,g,h,i){var j=c.defer(),k="",l=h?JSON.parse(JSON.stringify(h)):{};return i=i||{},i.method=f,"/"==g[0]?i.url=g:(a.apiBaseUrl&&"/"!=a.apiBaseUrl[a.apiBaseUrl.length-1]&&"/"!=g[g.length-1]&&(a.apiBaseUrl+="/"),i.url=a.apiBaseUrl+g),"POST"==f||"PUT"==f?i.data=h:i.params=h,e[f+":"+g]=j,i.timeout=j.promise,i.params&&i.params.accessToken&&delete i.params.accessToken,k=l.accessToken?l.accessToken:d.get("accessToken"),i.headers={Authorization:k},b(i).then(function(a){j.resolve(a.data)},function(a){j.reject(a.data)}),j.promise}}]),$.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},window,window.angular; +action:$scope.action.options.selectedState.stateAction||$scope.action.label,id:a[0][$scope.action.options.selectedState.stateId||$scope.action.options.key]}):$state.go("dashboard.model.action.edit",{model:$scope.section.path,key:$scope.action.options.key,action:$scope.action.label,id:a[0][$scope.action.options.key]}))},!0),$scope.$watch("pagingOptions",function(a,b){a.currentPage==b.currentPage&&a.pageSize==b.pageSize||($scope.pagingOptions.pageSize=$scope.pagingOptions.pageSize.toString(),$scope.loadItems())},!0),$scope.$watch("gridOptions.$gridScope.filterText",_.debounce(function(a,b){a!=b&&$scope.$apply(function(){$scope.pagingOptions.currentPage=1,$scope.filterOptions.filterText=a,$scope.getTotalServerItems()})},250),!0),$scope.$watch("sortInfo",function(a,b){isFirstLoad||a===b||$scope.loadItems()},!0);var ngGridUnWatch=$scope.$watch("gridOptions.ngGrid",function(){if($scope.gridOptions.ngGrid){var a=$scope.gridOptions.ngGrid.$viewport;ngGridUnWatch(),$footerPanel=$(".ngFooterPanel"),$listContainer=$(".grid-container.list");var b=null,c=function(){$scope.gridOptions.$gridServices.DomUtilityService.RebuildGrid($scope.gridOptions.$gridScope,$scope.gridOptions.ngGrid)},d=function(d){var e=d.originalEvent.detail?-d.originalEvent.detail:d.originalEvent.wheelDelta/4,f=a.scrollTop();if(e<0){var f=a.scrollTop();0==f&&(f=-e),$scope.gridContainerTopMargin-f>0?($scope.gridContainerTopMargin-=f,a.height(a.height()+f),a.scrollTop(0)):(a.height(a.height()+$scope.gridContainerTopMargin),$scope.gridContainerTopMargin=0),$scope.gridOptions.$gridServices&&(clearTimeout(b),b=setTimeout(c,30))}else e>0&&(0==f&&$scope.gridContainerTopMargin<$scope.gridContainerTopMarginMax?(f=e,$scope.gridContainerTopMargin+=f,a.height(a.height()-f)):0==f&&($scope.gridContainerTopMargin=$scope.gridContainerTopMarginMax,a.height($footerPanel.offset().top-a.offset().top)));$scope.$digest()};(/(iPad|iPhone|iPod|Android)/g.test(navigator.userAgent)||$scope.action.options.flexibleHeight)&&($(".model-list .grid-container").addClass("flexible"),$(".model-list .grid").css({bottom:"auto"}),$(".model-list .ngFooterPanel").css({position:"static",bottom:"auto"})),$scope.action.options.chart&&(angular.element($window).bind("mousewheel",d),angular.element($window).bind("DOMMouseScroll",d)),$(".search .ngColMenu input").on("keyup",function(){$location.search("search",$(this).val()),$location.replace()})}});init()}]).filter("encodeURIComponent",function(){return window.encodeURIComponent}),angular.module("dashboard.Dashboard.Model.Nav",["dashboard.Config","dashboard.services.Settings","ui.router","ui.bootstrap.modal"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.nav",{url:"/config",templateUrl:"app/dashboard/model/nav/ModelNav.html",data:{pageTitle:"Settings - Navigation"}})}]).controller("ModelNavCtrl",["$scope","$timeout","$state","$location","$uibModal","Config","SettingsService",function(a,b,c,d,e,f,g){"ngInject";function h(a){for(var b=angular.copy(j),c=0;cc[a.action.options.sortField]?-1:0}))})},a.moveUp=function(b){var c=a.list.indexOf(b);if(0!=c){var d=c-1;a.list.splice(d,0,a.list.splice(c,1)[0])}},a.moveDown=function(b){var c=a.list.indexOf(b);if(c!=a.list.length-1){var d=c+1;a.list.splice(d,0,a.list.splice(c,1)[0])}},a.edit=function(b){a.action.options.onEdit?a.action.options.onEdit(b[a.action.options.key]):c.go("dashboard.model.action.edit",{model:a.section.path,action:a.action.label,id:b[a.action.options.key]})},a.saveSort=function(){a.alertTitle="Saving...",a.alertMessage="Saving new sort order",a.allowAlertClose=!1,i=d.open({templateUrl:"app/dashboard/alert/Alert.html",controller:"AlertCtrl",size:"sm",scope:a});var b=[];for(var c in a.list){var e=a.list[c],f=e[a.action.options.key];b.unshift(f)}g.sort(a.action.options.model,a.action.options.key,a.action.options.sortField,b).then(function(b){a.alertMessage="Saved Successful!",a.allowAlertClose=!0},function(a){"object"==typeof a&&a.message?alert(a.message):"object"==typeof a&&a.error&&a.error.message?alert(a.error.message):"object"==typeof a?alert(JSON.stringify(a)):alert(a)})},function(){a.hideSideMenu(),e.ga&&e.ga("send","pageview",{page:h.path()}),a.action.options.params||(a.action.options.params={}),a.model=f.serverParams.models[a.action.options.model],a.title=a.action.options.title?a.action.options.title:a.action.options.key,a.loadItems()}()}]),angular.module("dashboard.Dashboard.Model.View",["dashboard.Config","dashboard.directives.ModelField","dashboard.services.GeneralModel","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("dashboard.model.action.view",{url:"/view/:id",controller:"ModelViewCtrl",templateUrl:"app/dashboard/model/view/ModelView.html",data:{pageTitle:"View"}})}]).controller("ModelViewCtrl",["$scope","$stateParams","Config","GeneralModelService",function(a,b,c,d){"ngInject";!function(){d.get(a.model.model,b.id).then(function(b){a.data=b})}()}]),angular.module("dashboard.Profile",["ui.bootstrap","ui.bootstrap.modal","dashboard.Dashboard.Model.Edit"]).controller("ProfileCtrl",["$scope","$translate",function(a,b){!function(){b("user_profile.title").then(function(b){a.modalTitle=b},function(){a.modalTitle="User Profile"})}()}]),angular.module("dashboard.Login",["dashboard.Config","dashboard.services.Cache","dashboard.services.Session","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("public.login",{url:"/login",controller:"LoginCtrl",templateUrl:"app/login/Login.html",data:{pageTitle:"Login"}})}]).controller("LoginCtrl",["$scope","$state","$window","Config","SessionService","CacheService",function(a,b,c,d,e,f){"ngInject";var g=this;this.init=function(){a.login={},a.clickLogin=g.clickLogin},this.clickLogin=function(){e.logIn(a.login.email,a.login.password).then(function(a){var c=f.get("desiredState");f.reset(),c?b.go(c.state.name,c.params):b.go("dashboard")}).catch(function(a){a&&a[0]&&a[0].error&&a[0].error.message?alert(a[0].error.message):alert("Invalid login.")})},g.init()}]),angular.module("dashboard.Register",["dashboard.Config","dashboard.services.Session","dashboard.services.User","ui.router"]).config(["$stateProvider",function(a){"ngInject";a.state("public.register",{url:"/register",controller:"RegisterCtrl",templateUrl:"app/Register/Register.html",data:{pageTitle:"Register"}})}]).controller("RegisterCtrl",["$scope","Config","SessionService","UserService",function(a,b,c,d){"ngInject";a.login={},a.register=function(){d.register(a.login.email,a.login.password).then(function(b){c.logIn(a.login.email,a.login.password).then(function(a){$state.go("dashboard")}).catch(function(a){alert("Error registering")})}).catch(function(a){alert("Error registering")})}}]),angular.module("dashboard.Config",[]).constant("Config",{apiBaseUrl:window.config.apiBaseUrl||"/api/",serverParams:window.config}),angular.module("dashboard.directive.DateTimePicker",[]).directive("dateTimePicker",["$rootScope",function(a){"ngInject";return{require:"?ngModel",restrict:"AE",scope:{control:"=",format:"@",ngFormat:"=ngFormat",ngTimeZone:"=ngTimeZone",defaultDate:"@",viewMode:"@",ngViewMode:"=ngViewMode",horizontal:"@",locale:"@",maxDate:"@",minDate:"@",onChange:"=",dataKey:"@"},link:function(a,b,c,d){a.format||(a.format=a.ngFormat),a.viewMode||(a.viewMode=a.ngViewMode),a.format&&a.format.indexOf("DD-MMM-YYYY")>-1&&"es"===a.locale&&(a.format=a.format.replace("DD-MMM-","DD MMM ")),d.$formatters.push(function(b){if(a.format||(a.format=a.ngFormat),b){var c=moment(b);return a.ngTimeZone&&c.tz&&(c=c.tz(a.ngTimeZone)),c.format(a.format)}}),a.defaultDate=a.defaultDate&&"string"==typeof a.defaultDate?a.defaultDate.replace(/"/g,""):a.defaultDate;var e={format:a.format,useCurrent:!1,locale:a.locale,defaultDate:a.defaultDate?moment(a.defaultDate).toDate():void 0,viewMode:a.viewMode,widgetPositioning:{horizontal:a.horizontal?a.horizontal:"auto"}};a.minDate&&(e.minDate=a.minDate),a.maxDate&&(e.maxDate=a.maxDate),b.datetimepicker(e),a.control||(a.control={}),a.control.show=function(){b.focus()},b.on("blur",function(){a.format||(a.format=a.ngFormat),a.locale&&moment.locale(a.locale);var c=moment(b.val(),a.format);c.isValid()?d.$setViewValue(c):d.$setViewValue(null),a.onChange&&a.onChange({key:a.dataKey})})}}}]),angular.module("dashboard.directives",[]),angular.module("dashboard.directives.ModelField",["dashboard.directives.ModelFieldImage","dashboard.directives.ModelFieldVideo","dashboard.directives.ModelFieldFile","dashboard.directives.ModelFieldReference","dashboard.directives.ModelFieldReferenceSort","dashboard.directives.ModelFieldList","dashboard.directives.ModelFieldWYSIWYG","dashboard.directives.ModelFieldCanvas","dashboard.directives.ModelFieldLocation","dashboard.directives.ModelFieldPointsOfInterest","dashboard.directives.ModelFieldMultiSelect","dashboard.directives.ModelFieldStatusMultiSelect","dashboard.directives.ModelFieldNumber","dashboard.directive.DateTimePicker","ngCookies","ngSlider","ngSignaturePad","cwill747.phonenumber","monospaced.elastic"]).directive("modelFieldView",["$compile",function(a){"ngInject";function b(a){return"{{ field.label }}: {{ data[field.name] }}"}return{restrict:"E",scope:{key:"=key",model:"=model",data:"=ngModel"},link:function(c,d,e){d.html(b(c.field.type)).show(),a(d.contents())(c)}}}]).directive("modelFieldEdit",["$compile",function(a){"ngInject";function b(a,b){var c="";switch(a){case"reference":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"reference-sort":c='
{{ display.error }}
{{ display.description | translate }}
{{ display.description | translate }}
';break;case"list":c='
{{ display.error }}
{{ display.description | translate }}
{{ display.description | translate }}
';break;case"file":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"image":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"video":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"datetime":c='
{{ display.error }}

{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"multi-select":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"status-multi-select":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"select":var d="key as (value | translate) for (key, value) in display.options";b.property.display.options instanceof Array&&(d="object"!=typeof b.property.display.options[0]||Array.isArray(b.property.display.options[0])?"value as value for value in display.options":"item.key as item.value disable when item.disabled for item in display.options"),c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"radio":var e="(value, text) in display.options";b.property.display.options instanceof Array&&(e="object"!=typeof b.property.display.options[0]||Array.isArray(b.property.display.options[0])?"text in display.options":"item in display.options"),c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"slider":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"boolean":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"password":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"textarea":c='
{{ display.error }}
{{ display.description | translate }}  ({{ charsLeft }} characters left)
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"wysiwyg":case"WYSIWYG":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"draw":case"signature":c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"location":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"poi":case"POI":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"number": +c='
{{ display.error }}
{{ display.description | translate }}
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
';break;case"phoneNumber":c='
{{ display.error }}
{{ display.description | translate }}
';break;case"text":default:c='
{{ display.error }}
{{ display.description | translate }}  ({{ charsLeft }} characters left)
Reason for Change: {{ display.editReason.reason === \'Other\' ? display.editReason.reasonText : display.editReason.reason }}
'}return c}function c(a,b){var c=$(a).find("input");if(b&&c)for(var d in b)c.attr(d,b[d])}return{restrict:"E",scope:{key:"=key",model:"=model",data:"=ngModel",ngError:"&",ngEditReason:"&"},link:function(d,e,f){function g(){d.key&&!d.data[d.key]&&(d.display.error="",d.ngError&&d.ngError({error:null}))}function h(a){a&&a.message?j.display.error=a.message:delete j.display.error,d.ngError&&d.ngError({error:a})}function i(){if("text"===j.display.type||"textarea"===j.display.type){var a=!1,b=d.data[d.key]?d.data[d.key].length:0;d.charsLeft=j.display.maxLength-b,d.lengthCheck=function(b){return a=!0,d.charsLeft=j.display.maxLength-b.target.value.length,j.display.maxLength&&b.target.value.length>j.display.maxLength?(d.display.error="Text is longer than the maximum allowed length of "+d.display.maxLength+" characters.",void(d.ngError&&d.ngError({error:new Error(d.display.error)}))):j.display.maxLength&&b.target.value.length<=j.display.maxLength&&b.target.value.length>0?(delete d.display.error,delete d.display.errorCode,void(d.ngError&&d.ngError({error:null}))):void(0===b.target.value.length&&j.display.isRequired&&(d.display.error="This is a required field.",d.ngError&&d.ngError({error:new Error(d.display.error)})))},d.getEditReason=function(b){d.ngEditReason&&a&&d.ngEditReason(b),a=!1}}if("radio"!==j.display.type&&"select"!==j.display.type&&"datetime"!==j.display.type&&"boolean"!==j.display.type||(d.onChange=function(a){var b=!0;d.ngEditReason&&b&&d.ngEditReason(a),b=!1}),"file"==j.display.type&&d.data[d.key]){var c=d.data[d.key];if("object"==typeof c&&c.filename?c=c.filename:"object"==typeof c&&c.file&&(c=c.file.name),c&&"text"==typeof c){var e=c.toLowerCase().substring(c.length-4);".png"!=e&&".jpg"!=e&&"jpeg"!=e&&".bmp"!=e||(j=angular.copy(j),j.display.type="image")}}"datetime"==j.display.type&&(j.display.options||(j.display.options={}),j.display.options.format||(j.display.options.format="YYYY-MM-DD h:mm A")),!d.data[d.key]&&j.display.defaultValueUsingModelKey&&(d.data[d.key]=d.data[j.display.defaultValueUsingModelKey]),d.data[d.key]&&!1===j.display.convertToLocalTime&&(d.data[d.key]=d.data[d.key].substring(0,d.data[d.key].length-1)),"boolean"==j.display.type&&(d.check=function(a,b){var c=a[b];return void 0==c||null==c?j.display.default:(a[b]="1"==c||1==c,j.display.isRequired&&!d.data[d.key]?(d.display.error="This is a required field.",d.ngError&&d.ngError({error:new Error(d.display.error)})):(delete d.display.error,d.ngError&&d.ngError({error:null})),a[b])},"string"==typeof d.data[d.key]&&(d.data[d.key]=parseInt(d.data[d.key]))),"slider"==j.display.type&&(void 0!==d.data[d.key]&&null!=d.data[d.key]||(d.data[d.key]=j.display.options.from+";"+j.display.options.to))}var j;!function(){if(d.onFieldError=h,null!==d.key&&"object"==typeof d.key&&(d.model.properties[d.key.property]||(d.model.properties[d.key.property]={}),d.model.properties[d.key.property].display=d.key,d.key=d.key.property),j={display:{type:"text"}},d.model.properties&&d.model.properties[d.key]&&(j=d.model.properties[d.key]),!j)return void console.log("ModelField link error: no property for model '"+d.model.name+"'; property key = '"+d.key+"' found!");if(!j.display||!j.display.type)switch(j.display||(j.display={}),j.type){case"date":case"Date":j.display.type="datetime";break;default:j.display.type="text"}i(),d.data[d.key]||!j.default&&"number"!=typeof j.default||(d.data[d.key]=j.default),d.property=j,d.display=j.display,j.display.editTemplate?e.html(j.display.editTemplate).show():e.html(b(j.display.type,d)).show(),c(e,d.property.display.inputAttr),d.display.pattern&&"/"==d.display.pattern[0]&&"/"==d.display.pattern[d.display.pattern.length-1]&&(d.display.pattern=d.display.pattern.slice(1,d.display.pattern.length-2)),g(),a(e.contents())(d)}()}}}]),angular.module("dashboard.directives.ModelFieldApiMultiSelect",[]).directive("modelFieldApiMultiSelect",["$compile","$timeout","GeneralModelService",function(a,b,c){"ngInject";function d(){return'

'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",ngBlur:"&"},link:function(e,f,g,h){function i(a){for(var b=0;b0&&"_"===a[b-1]&&(a=a.replaceAt(b,a[b].toUpperCase()),a=a.replaceAt(b-1," "));return a}function j(){var a=e.options||o.display.options;"string"==typeof a&&(a=a.indexOf("\n")>-1?a.split("\n"):a.split(","));var b=o.display.key||"key",c=o.display.value||"value";if(Array.isArray(a))for(var d in a){var f=a[d];if("string"==typeof f){var g={key:f,value:f};e.multiSelectOptions.push(g)}else if(f&&"object"==typeof f){var h=f[b]||d,g={key:h,value:f[c],item:f};e.multiSelectOptions.push(g)}}else if(a&&"object"==typeof a){var i=Object.keys(a);for(var j in i){var h=i[j],g={key:h,value:a[h]};e.multiSelectOptions.push(g)}}}function k(){for(var a in e.selected)e.selected[a]=!1;if(void 0===o.display.output){var b=e.options||o.display.options;o.display.output=b instanceof Array?"comma":"object"}if("string"==typeof e.data){e.data||(e.data="");var c=e.data.split('","');for(var d in c){var f=c[d];'"'==f[0]&&(f=f.substring(1,f.length)),'"'==f[f.length-1]&&(f=f.substring(0,f.length-1));var g=_.findIndex(e.multiSelectOptions,{key:f});g>-1&&(e.selected[g]=!0)}}else if(Array.isArray(e.data)){e.data||(e.data=[]);for(var d in e.data){var h=e.data[d],g=_.findIndex(e.multiSelectOptions,{key:h});g>-1&&(e.selected[g]=!0)}}else if(e.data&&"object"==typeof e.data){e.data||(e.data={});var i=Object.keys(e.data);for(var a in i){var j=i[a],g=_.findIndex(e.multiSelectOptions,{key:j});g>-1&&(e.selected[g]=!0)}}}function l(a,b){n=!0;var c="array"===o.display.output?[]:"object"===o.display.output?{}:"";e.selected.indexOf(!1)>-1&&(e.selectAll=!1);for(var d in e.selected)if(e.selected[d]){var f=e.multiSelectOptions[d];switch(o.display.output){case"object":c[f.key]=f.value;break;case"comma":c+='"'+f.key+'",';break;case"array":c.push(b.item||b.key)}}"comma"===o.display.output&&c.length>0&&(c=c.substring(0,c.length-1)),e.data=c,setTimeout(function(){e.ngBlur&&n&&e.ngBlur({key:e.key}),n=!1},1),e.selected.indexOf(!0)<0&&(console.log("we get here..."),delete e.data)}function m(a){console.log("we got here :)");var b={};if(a){for(var c=0;c-1&&(g[h].value=g[h].value.replace("Mrf","MRF"));if(e.multiSelectOptions=g,f.html(d()).show(),a(f.contents())(e),e.modelData&&e.modelData.trialId){const j=e.modelData.isQualifyingProject?e.options.qualifyingStatusApi:e.options.trialApi;var l,m={};j+=e.modelData.trialId,c.list(j,{},{preventCancel:!0}).then(function(a){for(var b=0;b0&&(e.data=m)})}e.$on("removeModelFieldMultiSelect",function(a,c){c===e.key&&b(function(){k()},1)})}})}()}}}]),angular.module("dashboard.directives.ModelFieldCanvas",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","ui.bootstrap","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldCanvasView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldCanvasEdit",["$compile","$cookies","$timeout","Config","FileUploadService",function(a,b,c,d,e){"ngInject";function f(){return' '}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",ngChange:"&"},link:function(b,d,e,g){function h(){if(b.signature.fromDataURL&&b.isLoading){b.isLoading=!1;var a=new Image;a.setAttribute("crossOrigin","anonymous"),a.onload=function(){b.signature._canvas.getContext("2d").drawImage(a,0,0)},b.data&&"object"==typeof b.data&&b.data.fileUrl?a.src=b.data.fileUrl:a.src=b.data}else if(b.signature.toDataURL){var c=b.signature.toDataURL();b.data=c}}b.isLoading=!0,b.signature={},b.$on("revertDataSignature",function(a,d){d===b.key&&c(function(){b.isLoading=!0;var a=b.signature._canvas;b.signature._canvas.getContext("2d").clearRect(0,0,a.width,a.height),h()},1)}),b.clearCanvas=function(){var a=b.signature._canvas;b.signature._canvas.getContext("2d").clearRect(0,0,a.width,a.height),b.data=null,b.ngChange&&setTimeout(function(){b.ngChange({key:b.key})},1)},b.$watch("signature._mouseButtonDown",function(){h()}),b.changed=function(){b.ngChange&&setTimeout(function(){b.ngChange({key:b.key})},1)},d.html(f()).show(),a(d.contents())(b)}}}]),angular.module("dashboard.directives.ModelFieldFile",["dashboard.services.GeneralModel"]).directive("modelFieldFileView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ field.label }}: {{ data[field.name] }}",scope:{field:"=options",data:"=ngModel"},link:function(a,b,c){}}}]).directive("modelFieldFileEdit",["$compile","$document","$window","GeneralModelService","SessionService","$translate",function(a,b,c,d,e,f){"ngInject";return{restrict:"E",template:'   {{ filename }}  (download | preview)
Drop File Here
',scope:{key:"=key",options:"=options",disabled:"=ngDisabled",data:"=ngModel",modelData:"=modelData",ngChange:"&"},link:function(a,c,d){a.selectFileButtonText="Select File",a.clearButtonText="Clear";var e=["button.select_file"];f(e).then(function(b){-1===e.indexOf(b["button.select_file"])&&(a.selectFileButtonText=b["button.select_file"])});a.$watchCollection("data",function(b){if(b)if(a.data&&a.data&&a.data.filename)a.filename=a.data.filename,a.fileUrl=a.data.fileUrl,a.previewUrl=a.data.previewUrl;else if("string"==typeof a.data){a.fileUrl=a.data.replace(/%2F/g,"/");var c=a.fileUrl.indexOf("documents/");c<0?c=a.fileUrl.indexOf("documents%2F")+11:c+=9;var d=a.fileUrl.indexOf("?Expires");d<0&&(d=a.fileUrl.length),a.filename=a.fileUrl.substring(c+1,d)}else if("object"==typeof a.data.file){var e=a.options.path;a.data={path:e,file:a.data.file},a.filename=a.data.file.name,a.fileUrl=null,a.previewUrl=null}});a.getFileIcon=function(a){switch(a.substring(a.lastIndexOf(".")).toLowerCase()){case".txt":return"fa-file-text-o";case".doc":case".docx":return"fa-file-word-o";case".wav":case".mp3":case".aif":return"fa-file-audio-o";case".m4v":case".mov":case".mp4":case".avi":return"fa-file-video-o";case".jpg":case".jpeg":case".png":case".gif":case".bmp":case".tif":return"fa-file-image-o";case".xls":case".xlsx":return"fa-file-excel-o";case".ppt":case".pptx":return"fa-file-excel-o";case".pdf":return"fa-file-pdf-o";default:return"fa-file-o"}},a.onFileSelect=function(b){if(void 0!==a.data&&a.clear({},!0),!(b.length<1)){var c=b[0],d=a.options.path;a.data={path:d,file:c},a.filename=c.name,a.fileUrl=null}},a.clear=function(b,c,d){b&&b.preventDefault&&b.preventDefault(),(!a.options.confirm||c||confirm("Are you sure you would like to remove the file?"))&&(a.data=null,a.filename=null,a.fileUrl=null,a.ngChange&&!d&&setTimeout(function(){a.ngChange({key:a.key})},1))},b.on("drop",function(a){"INPUT"!=a.target.nodeName&&a.preventDefault()}),b.on("dragover",function(a){a.preventDefault(),c.find(".file-drop").addClass("show")}),$(window).on("mouseleave",function(){c.find(".file-drop").removeClass("show")}),a.$on("$destroy",function(){b.off("drop"),b.off("dragover"),$(window).off("mouseleave")}),a.$on("removeModelFieldFile",function(b,c,d,e){c===a.key&&a.clear(null,d,e)})}}}]),angular.module("dashboard.directives.ModelFieldImage",["dashboard.services.GeneralModel","dashboard.services.Image"]).directive("modelFieldImageView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ field.label }}: {{ data[field.name] }}",scope:{field:"=options",data:"=ngModel"},link:function(a,b,c){}}}]).directive("modelFieldImageEdit",["$compile","$document","GeneralModelService","ImageService","SessionService","$timeout","$translate",function(a,b,c,d,e,f,g){"ngInject";return{restrict:"E",require:"^form",template:'
{{ uploadStatus }}
HTML5 Drop File is not supported!
',scope:{key:"=key",options:"=options",disabled:"=ngDisabled",data:"=ngModel",modelData:"=modelData",ngChange:"&"},link:function(a,e,h,i){var j=null;a.selectFileButtonText="Select File",a.clearButtonText="Clear";var k=["button.select_file","button.clear"];g(k).then(function(b){-1===k.indexOf(b["button.select_file"])&&(a.selectFileButtonText=b["button.select_file"]),-1===k.indexOf(b["button.clear"])&&(a.clearButtonText=b["button.clear"])}),a.uploadStatus="Upload File",a.options.isDisplayOnly&&(a.isDisplayOnly=!0,a.thumbnailUrl=a.options.imageUrl);var l=(a.$watch("data",function(b){if(b)if(a.options&&a.options.model)c.get(a.options.model,b).then(function(b){b&&(a.imageUrl=b[a.options.urlKey],a.imageUrl||(a.imageUrl=b.mediumUrl),a.thumbnailUrl=a.imageUrl)});else if("string"==typeof b)if(a.imageUrl=b,a.thumbnailUrl=a.options.thumbnailUrl,a.thumbnailUrl){var d=new Image;d.onerror=function(){f(function(){a.thumbnailUrl=a.imageUrl})},d.src=a.thumbnailUrl}else a.thumbnailUrl=a.imageUrl;else"object"==typeof b&&(b.fileUrl&&(a.imageUrl=b.fileUrl),b.imageUrl&&(a.imageUrl=b.imageUrl),!a.imageUrl&&b.file&&(j=b.file,l.readAsDataURL(b.file)))}),new FileReader);l.onload=function(b){var c=a.options.path,e={path:c,file:j};a.modelData.__ModelFieldImageData||(a.modelData.__ModelFieldImageData={}),a.options&&a.options.urlKey?(a.modelData.__ModelFieldImageData[a.key]||(a.modelData.__ModelFieldImageData[a.key]={}),a.modelData.__ModelFieldImageData[a.key][a.options.urlKey]=e):a.modelData.__ModelFieldImageData[a.key]=e,i.$setDirty(),d.fixOrientationWithDataURI(b.target.result,function(b,c){a.imageUrl=c,a.thumbnailUrl=c,e.file=a.dataURItoBlob(c),e.file.name=j.name,a.options&&a.options.export?(a.uploadStatus="Creating Image Sizes",a.exportImages(function(){a.uploadStatus="Upload File",a.$apply()})):a.options&&a.options.resize&&a.resizeImage(c,a.options.resize,function(a){e.file=a}),a.$apply()})},l.onerror=function(a){console.log(a)},a.clear=function(b,c){(!a.options.confirm||b||confirm("Are you sure you would like to remove this photo?"))&&(a.data=null,a.modelData.__ModelFieldImageData&&a.modelData.__ModelFieldImageData[a.key]&&delete a.modelData.__ModelFieldImageData[a.key],delete a.imageUrl,delete a.thumbnailUrl,i.$setDirty(),a.ngChange&&!c&&setTimeout(function(){a.ngChange({key:a.key})},1))},a.onFileSelect=function(b){if(void 0!==a.data&&a.clear(!0),!(b.length<1)){j=b[0];var c=!1;a.options.extensions?a.options.extensions.forEach(function(a){j.type.match("image/"+a)&&(c=!0)}):c=!0,c?l.readAsDataURL(j):alert("File must be of the following file types ("+a.options.extensions.join(", ")+").")}},a.exportImages=function(b){var c=arguments[1];c||(c=0);var d=Object.keys(a.options.export);if(c>=d.length)return void b();var e=d[c],f=a.options.export[e];a.resizeImage(a.imageUrl,f,function(d){a.modelData.__ModelFieldImageData[a.key][e]=d,c++,a.exportImages(b,c)})},a.resizeImage=function(b,c,e){d.resize(b,c,function(b,c){var d=a.dataURItoBlob(c);e(d)})},a.dataURItoBlob=function(a){var b;b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):unescape(a.split(",")[1]);for(var c=a.split(",")[0].split(":")[1].split(";")[0],d=new Uint8Array(b.length),e=0;e
'),d=$('
');if(c.append(d),$("body").append(c),a.options.isLightbox){var e=Math.min(d.width()/b.width,d.height()/b.height),f=b.width*e,g=b.height*e;d.css({background:"no-repeat center center url("+a.imageUrl+")",backgroundSize:f+"px "+g+"px"})}else{var h=$('
'),i=$('
');d.append(h),d.append(i);var e=Math.min(h.width()/b.width,h.height()/b.height),j=b.width*e,k=b.height*e;h.css({background:"no-repeat center center url("+a.imageUrl+")",backgroundSize:j+"px "+k+"px"});e=1;var l=b.width*e,m=b.height*e;i.css({background:"no-repeat center center url("+a.imageUrl+"), #111",backgroundSize:l+"px "+m+"px",border:"solid 1px #000"});var n="center",o="center",p=function(a){n=a.offsetX,o=a.offsetY,n||(n=a.pageX),o||(o=a.pageY),n-=h.width()/2-j/2,o-=h.height()/2-k/2,n*=-l/j,o*=-m/k,n+=i.width()/2,o+=i.height()/2,i.css({backgroundPosition:n+"px "+o+"px",backgroundSize:l+"px "+m+"px"})};h.on("mousemove",p),h.bind("mousewheel",function(a){a.originalEvent.wheelDelta/120>0&&e+.01<=1.1?e+=.01:e-.01>=.1&&(e-=.01),l=b.width*e,m=b.height*e,p(a)})}c.animate({backgroundColor:"rgba(0,0,0,0.65)"},600,function(){d.animate({opacity:1},300)}),d.click(function(){c.animate({opacity:0},300,function(){c.remove()})})},b.src=a.imageUrl}else{var c=e.find(".image-container");c.width()<=160?c.animate({width:"400px",height:"400px"},300):c.animate({width:"160px",height:"160px"},300)}},b.on("drop",function(a){"INPUT"!=a.target.nodeName&&a.preventDefault()}),b.on("dragover",function(a){a.preventDefault(),e.find(".image-drop").addClass("show-upload"),e.find(".input[type=file]").addClass("show-upload"),e.find(".button-menu").addClass("hide-menu")}),$(window).on("mouseleave",function(){e.find(".image-drop").removeClass("show-upload"),e.find(".input[type=file]").removeClass("show-upload"),e.find(".button-menu").removeClass("hide-menu")}),a.$on("$destroy",function(){b.off("drop"),b.off("dragover"),$(window).off("mouseleave")}),a.$on("removeModelFieldImage",function(b,c){c===a.key&&a.clear(null,!0)})}}}]),angular.module("dashboard.directives.ModelFieldList",["dashboard.Config","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldListView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"ngDisabled"},link:function(a,b,c){}}}]).directive("modelFieldListEdit",["$compile","$cookies","$timeout","Config","GeneralModelService",function(a,b,c,d,e){"ngInject";function f(a){return'
'}return{restrict:"E",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,c,d){b.list||(b.list=[]),b.options.addLabel||(b.options.addLabel="Add Item"),b.sortableOptions={placeholder:"sortable-placeholder",update:self.updateData,disabled:b.disabled},b.setData=function(){"object"==b.options.output?b.data=b.list:b.data=JSON.stringify(b.list)},b.addItem=function(){event.preventDefault(),b.list.push({}),b.setData()},b.removeItem=function(a){b.list[a];b.list.splice(a,1),b.setData()},b.updateData=function(){b.setData()};b.$watchCollection("[data, options, modelData]",function(a){if(b.data&&b.options)if(b.data instanceof Array)b.list=b.data;else try{b.list=JSON.parse(b.data)}catch(a){b.list=[],console.error("ModelFieldList failed to parse scope.data",a)}});c.html(f(b.options.key)).show(),a(c.contents())(b)}}}]),angular.module("dashboard.directives.ModelFieldLocation",["dashboard.services.Location","ui.bootstrap","dashboard.services.GeneralModel"]).directive("modelFieldLocationView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldLocationEdit",["$compile","$q","LocationService",function(a,b,c){"ngInject";function d(){var a=b.defer();if(angular.element("#google_maps").length)return a.resolve(),a.promise;var c=document.createElement("script");return c.onload=function(){a.resolve()},c.id="google_maps",c.type="text/javascript",c.src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=geometry,places",document.getElementsByTagName("head")[0].appendChild(c),a.promise}function e(){return'
Loading your location...
{{geocodeError}}
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,f,g){function h(){b.isMapLoading=!1,b.isLoaded=!0,k=new google.maps.Map(angular.element("#map_canvas")[0],{center:b.location,zoom:12}),i()}function i(){j()}function j(){if(b.data)if(m){var a=new google.maps.LatLng(b.data.lat,b.data.lng);m.setPosition(a),m.setMap(k),k.setCenter(a)}else{m=new google.maps.Marker({position:b.location,map:k,icon:new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|2F76EE",new google.maps.Size(21,34),new google.maps.Point(0,0),new google.maps.Point(10,34)),draggable:!0,tooltip:"Current location"}),google.maps.event.addListener(m,"dragend",function(){var a={lat:m.position.lat(),lng:m.position.lng()};b.data=a,b.$digest()})}}var k,l,m,n;b.isMapLoading=!0,b.isLoaded=!1,b.geocodeSearch={value:""},b.geocodeError=null,b.showGeocode=!1,d().then(function(){l=new google.maps.Geocoder,b.showGeocode=!1,b.property.display.options&&b.property.display.options.allowGeocode&&(b.showGeocode=!0);b.property.display.options&&b.property.display.options.query&&b.property.display.options.query,f.html(e()).show(),a(f.contents())(b),b.data?(n=b.data,b.location=angular.copy(b.data),h()):c.currentLocation().then(function(a){var c={lat:a.latitude,lng:a.longitude};n=c,b.data=c,h()}),b.$watch("data",function(a,c){a!=c&&(b.valueChanged=JSON.stringify(b.data)!=JSON.stringify(n),j())}),b.$watch("data.lat",function(a,c){a!=c&&(b.valueChanged=JSON.stringify(b.data)!=JSON.stringify(n),j())}),b.$watch("data.lng",function(a,c){a!=c&&(b.valueChanged=JSON.stringify(b.data)!=JSON.stringify(n),j())})},function(){console.error("Error loading Google Maps")}),b.doGeocode=function(){b.geocodeError=null,b.geocodeSearch.value?l.geocode({address:b.geocodeSearch.value},function(a,c){c==google.maps.GeocoderStatus.OK?b.$apply(function(){var c={lat:a[0].geometry.location.lat(),lng:a[0].geometry.location.lng()};b.data=c,h()}):c===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?console.log("Geocode was not successful for the following reason: "+c):c===google.maps.GeocoderStatus.ZERO_RESULTS?(b.geocodeError="Couldn't match the specified query with a geopoint",b.$digest(),console.log("Geocode was not successful for the following reason: "+c)):console.log("Geocode was not successful for the following reason:"+c)}):alert("Please enter the address of a location to geocode.")},b.clearSearch=function(){b.hasSearched=!1},b.revertValue=function(){n&&(b.data=n)}}}}]),angular.module("dashboard.directives.ModelFieldMultiSelect",[]).directive("modelFieldMultiSelect",["$compile","$timeout",function(a,b){"ngInject";function c(){return'
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property", +options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",ngBlur:"&"},link:function(d,e,f,g){function h(){var a=d.options||l.display.options;"string"==typeof a&&(a=a.indexOf("\n")>-1?a.split("\n"):a.split(","));var b=l.display.key||"key",c=l.display.value||"value";if(Array.isArray(a))for(var e in a){var f=a[e];if("string"==typeof f){var g={key:f,value:f};d.multiSelectOptions.push(g)}else if(f&&"object"==typeof f){var h=f[b]||e,g={key:h,value:f[c],item:f};d.multiSelectOptions.push(g)}}else if(a&&"object"==typeof a){var i=Object.keys(a);for(var j in i){var h=i[j],g={key:h,value:a[h]};d.multiSelectOptions.push(g)}}}function i(){for(var a in d.selected)d.selected[a]=!1;if(void 0===l.display.output){var b=d.options||l.display.options;l.display.output=b instanceof Array?"comma":"object"}if("string"==typeof d.data){d.data||(d.data="");var c=d.data.split('","');for(var e in c){var f=c[e];'"'==f[0]&&(f=f.substring(1,f.length)),'"'==f[f.length-1]&&(f=f.substring(0,f.length-1));var g=_.findIndex(d.multiSelectOptions,{key:f});g>-1&&(d.selected[g]=!0)}}else if(Array.isArray(d.data)){d.data||(d.data=[]);for(var e in d.data){var h=d.data[e],g=_.findIndex(d.multiSelectOptions,{key:h});g>-1&&(d.selected[g]=!0)}}else if(d.data&&"object"==typeof d.data){d.data||(d.data={});var i=Object.keys(d.data);for(var a in i){var j=i[a],g=_.findIndex(d.multiSelectOptions,{key:j});g>-1&&(d.selected[g]=!0)}}}function j(a,b){k=!0;var c="array"===l.display.output?[]:"object"===l.display.output?{}:"";for(var e in d.selected)if(d.selected[e]){var f=d.multiSelectOptions[e];switch(l.display.output){case"object":c[f.key]=f.value;break;case"comma":c+='"'+f.key+'",';break;case"array":c.push(b.item||b.key)}}"comma"===l.display.output&&c.length>0&&(c=c.substring(0,c.length-1)),d.data=c,setTimeout(function(){d.ngBlur&&k&&d.ngBlur({key:d.key}),k=!1},1)}var k,l=d.property;!function(){d.multiSelectOptions=[],d.selected=[],l||(l={}),l.display||(l.display={}),h(),i(),d.clickMultiSelectCheckbox=j,e.html(c()).show(),a(e.contents())(d),d.$on("removeModelFieldMultiSelect",function(a,c){c===d.key&&b(function(){i()},1)})}()}}}]),angular.module("dashboard.directives.ModelFieldNumber",[]).directive("modelFieldNumber",["$compile","$filter",function(a,b){"ngInject";function c(){return''}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",required:"=ngRequired",ngError:"&",ngEditReason:"&"},link:function(d,e,f,g){function h(a){k=!0;var b=0;if(document.selection){var c=document.selection.createRange();c.moveStart("character",-a.target.value.length),b=c.text.length}else(a.target.selectionStart||0===a.target.selectionStart)&&(b=a.target.selectionStart);var d=a.target.value;if("string"==typeof d){var e=d.indexOf(".");if(!(-1===e||e>=b)){var f=d.split(".");if(!(f.length<1))return f[1].length>=l.display.scaleValue?void a.preventDefault():void 0}}}function i(a){if((""===a.target.value||null===a.target.value)&&!a.target.validity.badInput)return d.ngError&&l.display.isRequired?d.ngError({error:new Error("This is a required field.")}):d.ngError&&d.ngError({error:null}),void(d.ngEditReason&&k&&d.ngEditReason({key:d.key}));if(!0===l.display.allowDecimal&&l.display.scaleValue>0){var c=b("decimalWithScale")(a.target.value,l.display.scaleValue);if(isNaN(c)&&d.ngError)return void d.ngError({error:new Error("Please enter a valid number")});if(d.data=c,void 0!==l.display.minValue&&j(l.display.minValue,a.target.value))return void(d.ngError&&d.ngError({error:new Error("Value is less than the minimum allowed value ("+l.display.minValue+").")}));if(void 0!==l.display.maxValue&&j(a.target.value,l.display.maxValue))return void(d.ngError&&d.ngError({error:new Error("Value is greater than the maximum allowed value ("+l.display.maxValue+").")}));d.ngError&&d.ngError({error:null})}else if(!1===l.display.allowDecimal){if(isNaN(_.round(a.target.value))||isNaN(parseInt(a.target.value)))return void(d.ngError&&d.ngError({error:new Error("Please enter a valid number")}));var e=_.round(a.target.value,0);if(d.data=e,void 0!==l.display.minValue&&l.display.minValue>parseFloat(a.target.value))return void(d.ngError&&d.ngError({error:new Error("Value is less than the minimum allowed value ("+l.display.minValue+").")}));if(void 0!==l.display.maxValue&&l.display.maxValueparseInt(e[0]))return!0;if(parseInt(d[0])=0&&parseInt(e[0])>=0,g=0;gparseInt(e[1].charAt(g)))return f;if(parseInt(d[1].charAt(g))0&&(d.data=b("decimalWithScale")(d.data,l.display.scaleValue)),e.html(c()).show(),a(e.contents())(d)}()}}}]),angular.module("dashboard.directives.ModelFieldPointsOfInterest",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","dashboard.services.Location","ui.bootstrap","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldPointsOfInterestView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldPointsOfInterestEdit",["$compile","$cookies","$timeout","$http","$q","$window","Config","GeneralModelService","LocationService",function(a,b,c,d,e,f,g,h,i){"ngInject";function j(a){var b=e.defer();if(angular.element("#google_maps").length)return b.resolve(),b.promise;var c=document.createElement("script");return c.onload=function(){b.resolve()},c.id="google_maps",c.type="text/javascript",c.src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=geometry,places",a&&(c.src+="&key="+a),document.getElementsByTagName("head")[0].appendChild(c),b.promise}function k(a){return a.replace(/ /g,"_").toLowerCase()}function l(){return' \t\t\t
Search results are loading...
\t\t\t
\t\t\t \t\t\t \t\t\t\t\t\t\t\t\t \t\t\t{{searchError}}\t\t\t\t\t\t \t\t\t
\t\t\t
    \t\t\t\t
  • \t\t\t\t\t
    {{ $index + 1 }}. {{ item.name }}
    \t\t\t\t\t\t{{item.formatted_address}} \t\t\t\t\t
    \t\t\t\t\t\t \t\t\t\t\t\t \t\t\t\t\t
    \t\t\t\t
  • \t\t\t
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,c,d){function e(){b.isMapLoading=!1,b.isLoaded=!0,q=new google.maps.Map(document.getElementById("map_canvas"),{center:b.request.location,zoom:s}),f()}function f(){g()}function g(){b.clearSearch();var a=jQuery.extend(!0,{},b.request);a.radius=.5*a.radius,new google.maps.places.PlacesService(q).textSearch(a,function(a,c){c==google.maps.places.PlacesServiceStatus.OK?(h(a),b.boundaries.length>0&&p(),b.markers.length>0&&i(),m(),n(),o(),b.$digest()):console.log("search was not successful for the following reason: "+c)})}function h(a){u&&u.close();for(var c=0;c{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"ngDisabled"},link:function(a,b,c){}}}]).directive("modelFieldReferenceEdit",["$compile","$cookies","Config","GeneralModelService",function($compile,$cookies,Config,GeneralModelService){"ngInject";function getTemplate(a,b,c){return a?' '+b+' '+c+" ":' '+b+' '+c+" "}return{restrict:"E",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",rowData:"=ngRowData",textOutputPath:"=ngTextOutputPath",onModelChanged:"&onModelChanged",appendToBody:"=appendToBody",ngBlur:"&"},link:function(scope,element,attrs){function replaceSessionVariables(string){if("string"!=typeof string)return string;try{for(var session=JSON.parse($cookies.get("session")),searchString="{session.",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var sessionKey=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+eval(sessionKey)+string.slice(endPos+1),startPos=string.indexOf(searchString)}for(searchString="{",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var key=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+scope.modelData[key]+string.slice(endPos+1),startPos=string.indexOf(searchString)}}catch(a){console.error(a)}return string}function mergeArray(a,b){for(var c in a){var d=a[c];-1==b.indexOf(d)&&b.push(d)}}function assignJunctionMeta(){if(scope.options.junctionMeta)for(var a in scope.selected.items){var b=scope.selected.items[a];b.junctionMeta=scope.options.junctionMeta}}scope.moment=moment,scope.isFirstTimeLoad=!0,scope.selected={},scope.selected.items=[],scope.selected.item=null,scope.list=[],scope.$watch("selected",function(a,b){var c=element.hasClass("ng-invalid"),d=scope.options&&scope.options.multiple?a.items:a.item,e=scope.options&&scope.options.multiple?b.items:b.item;!d||d.length<=0?scope.property&&(scope.property.required||scope.property.display&&scope.property.display.required)&&element.addClass("ng-invalid"):c&&element.removeClass("ng-invalid"),d=_.isPlainObject(d)&&d[scope.options.key]?d[scope.options.key]:d,e=_.isPlainObject(e)&&e[scope.options.key]?e[scope.options.key]:e,scope.$emit("onModelFieldReferenceChange",scope.options.relationship?scope.options.relationship:scope.key,d,e)},!0),scope.refreshChoices=function(a){var b=Config.serverParams.models[scope.options.model],c={"filter[limit]":100};if(c["filter[where]["+scope.options.searchField+"][like]"]="%"+a+"%",scope.options.where){var d=Object.keys(scope.options.where);for(var e in d){var f=d[e];c["filter[where]["+f+"]"]=replaceSessionVariables(scope.options.where[f])}}if(scope.options.filters){var d=Object.keys(scope.options.filters);for(var e in d){var f=d[e];c[f]=replaceSessionVariables(scope.options.filters[f])}}var g=b.plural;scope.options.api&&(g=replaceSessionVariables(scope.options.api)),GeneralModelService.list(g,c,{preventCancel:!0}).then(function(a){if(a){if(scope.list=a,scope.options.allowInsert){var b={};b[scope.options.searchField]="[Add New Item]",scope.list.push(b)}if(scope.options.allowClear){var b={};b[scope.options.searchField]="[clear]",scope.list.unshift(b)}"number"==typeof scope.options.defaultIndex&&a[scope.options.defaultIndex]&&scope.onSelect(a[scope.options.defaultIndex])}})};var unwatch=scope.$watchCollection("[data, options, modelData]",function(a){if(scope.modelData&&scope.modelData&&scope.options&&scope.options.multiple){if(!scope.property.display.sourceModel)return unwatch(),void(scope.modelData[scope.property.display.options.relationship]&&(scope.selected.items=scope.modelData[scope.property.display.options.relationship],assignJunctionMeta(),scope.list=scope.selected.items));var b=Config.serverParams.models[scope.property.display.sourceModel],c=Config.serverParams.models[scope.options.model],d=b.plural,e=(c.plural,scope.modelData[scope.property.display.sourceKey]);if(!e)return;unwatch();var f={};if(scope.options.junctionMeta){var g=Object.keys(scope.options.junctionMeta);for(var h in g){var i=g[h];f["filter[where]["+i+"]"]=scope.options.junctionMeta[i]}}GeneralModelService.getMany(d,e,scope.options.relationship,f,{preventCancel:!0}).then(function(a){if(a)if(scope.options.api&&a.length>0){var b={filter:{where:{}}};b.filter.where[scope.options.key]={inq:[]};for(var c in a){var d=a[c];b.filter.where[scope.options.key].inq.push(d[scope.options.key])}apiPath=replaceSessionVariables(scope.options.api),GeneralModelService.list(apiPath,b,{preventCancel:!0}).then(function(a){a&&(scope.selected.items=a,assignJunctionMeta(),scope.list=a)})}else scope.selected.items=a,assignJunctionMeta(),scope.list=a})}else if(scope.data&&scope.options&&scope.options.model){var j=Config.serverParams.models[scope.options.model];if(_.isPlainObject(scope.data))return;GeneralModelService.get(j.plural,scope.data).then(function(a){a&&(scope.selected.item=a,assignJunctionMeta(),scope.list=[scope.selected.item],scope.onModelChanged&&scope.onModelChanged({$item:scope.selected.item}))},function(a){if(scope.options.allowInsert){var b={};b[scope.options.key]=scope.data,b[scope.options.searchField]=scope.data,scope.selected.item=b,assignJunctionMeta(),scope.list.push(b)}})}});scope.onSelect=function(a,b){if(scope.options.multiple){if(a&&"[Add New Item]"==a[scope.options.searchField]){var c=element.find("input.ui-select-search").val();a[scope.key]=c}assignJunctionMeta(),scope.modelData[scope.options.relationship]?mergeArray(scope.selected.items,scope.modelData[scope.options.relationship]):scope.modelData[scope.options.relationship]=scope.selected.items}else{scope.data=a[scope.options.key],scope.rowData&&(scope.rowData[scope.options.key]=scope.data),scope.$emit("onModelFieldReferenceSelect",scope.modelData,scope.key,a,scope.rowData);var d=a[scope.options.searchField];if(a&&"[Add New Item]"==a[scope.options.searchField]){var c=element.find("input.ui-select-search").val();scope.data=c;var e={};e[scope.options.key]=c,e[scope.options.searchField]=c,scope.selected.item=e,scope.list.push(e)}else a&&"[clear]"==a[scope.options.searchField]&&(scope.data=null,d="");if(scope.rowData&&scope.textOutputPath&&a[scope.options.searchField])if(scope.textOutputPath.indexOf(".")>-1){for(var f=scope.textOutputPath.split("."),g=scope.rowData,h=0;h-1&&(scope.selected.items.splice(c,1),assignJunctionMeta()),scope.modelData[scope.options.relationship]){if(scope.options.key&&a[scope.options.key]){var d={};d[scope.options.key]=a[scope.options.key];var c=_.findIndex(scope.modelData[scope.options.relationship],d);c>-1&&scope.modelData[scope.options.relationship].splice(c,1)}var c=scope.modelData[scope.options.relationship].indexOf(a);c>-1&&scope.modelData[scope.options.relationship].splice(c,1),mergeArray(scope.selected.items,scope.modelData[scope.options.relationship])}else scope.modelData[scope.options.relationship]=scope.selected.items}else scope.data=null},scope.$on("ngGridEventStartCellEdit",function(){element.find("button").trigger("click"),element.find("input.ui-select-search").focus()}),element.html(getTemplate(scope.options.multiple,scope.options.matchTemplate,scope.options.choiceTemplate)).show(),$compile(element.contents())(scope)}}}]),angular.module("dashboard.directives.ModelFieldReferenceSort",["dashboard.Config","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldReferenceSortView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"ngDisabled"},link:function(a,b,c){}}}]).directive("modelFieldReferenceSortEdit",["$compile","$cookies","$timeout","Config","GeneralModelService",function($compile,$cookies,$timeout,Config,GeneralModelService){"ngInject";function getTemplate(a,b,c,d){var e="(index, item) in selectedList";return d||(e+=" track by item."+a),' '+b+' '+c+'
  • '+c+'
'}return{restrict:"E",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(scope,element,attrs){function replaceSessionVariables(string){if("string"!=typeof string)return string;try{for(var session=JSON.parse($cookies.get("session")),searchString="{session.",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var sessionKey=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+eval(sessionKey)+string.slice(endPos+1),startPos=string.indexOf(searchString)}for(searchString="{",startPos=string.indexOf(searchString);startPos>-1;){var endPos=string.indexOf("}",startPos);if(-1==endPos){console.error("ModelList session parsing malformed for string");break}var key=string.substring(startPos+1,endPos);string=string.slice(0,startPos)+scope.modelData[key]+string.slice(endPos+1),startPos=string.indexOf(searchString)}}catch(a){console.error(a)}return string}scope.selected={},scope.selected.item=null,scope.list=[],scope.selectedList=[],scope.sortableOptions={placeholder:"sortable-placeholder",disabled:scope.disabled},scope.refreshChoices=function(a){var b=Config.serverParams.models[scope.options.model],c={"filter[limit]":100};if(c["filter[where]["+scope.options.searchField+"][like]"]="%"+a+"%",scope.options.where){var d=Object.keys(scope.options.where);for(var e in d){var f=d[e];c["filter[where]["+f+"]"]=replaceSessionVariables(scope.options.where[f])}}if(scope.options.filters){var d=Object.keys(scope.options.filters);for(var e in d){var f=d[e];c[f]=replaceSessionVariables(scope.options.filters[f])}}var g=b.plural;scope.options.api&&(g=replaceSessionVariables(scope.options.api)),GeneralModelService.list(g,c).then(function(a){if(a){scope.list=a;for(var b in scope.selectedList){var c=scope.selectedList[b],d={};d[scope.options.key]=c[scope.options.key];var e=_.find(scope.list,d);e&&scope.list.splice(scope.list.indexOf(e),1)}if(scope.options.allowInsert){var f={};f[scope.options.searchField]=scope.options.insertText?scope.options.insertText:"[Add New Item]",scope.list.push(f)}"number"==typeof scope.options.defaultIndex&&a[scope.options.defaultIndex]&&scope.onSelect(a[scope.options.defaultIndex])}})};var unwatch=scope.$watchCollection("[data, options, modelData]",function(a){scope.data&&scope.options&&scope.options.model&&(unwatch(),scope.selectedList=scope.data)});scope.onSelect=function(a,b){if(scope.$emit("onModelFieldReferenceSortSelect",scope.modelData,scope.key,a),!a[scope.options.key]&&a[scope.options.searchField]){var c=element.find("input.ui-select-search").val();a[scope.options.key]=c,a[scope.options.searchField]=c}_.find(scope.selectedList,function(b){return b[scope.options.key]===a[scope.options.key]||b.name&&a.name&&b.name.toLowerCase()===a.name.toLowerCase()})||(scope.selectedList.push(a),scope.data=scope.selectedList),$timeout(function(){delete scope.selected.item})},scope.removeItem=function(a){var b=scope.selectedList[a];scope.selectedList.splice(a,1),scope.list.push(b)},element.html(getTemplate(scope.options.key,scope.options.matchTemplate,scope.options.choiceTemplate,scope.options.allowInsert)).show(),$compile(element.contents())(scope)}}}]),angular.module("dashboard.directives.ModelFieldStatusMultiSelect",[]).directive("modelFieldStatusMultiSelect",["$compile","$timeout","GeneralModelService",function(a,b,c){"ngInject";function d(){return'

'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled",ngBlur:"&"},link:function(e,f,g,h){function i(a){for(var b=0;b0&&"_"===a[b-1]&&(a=a.replaceAt(b,a[b].toUpperCase()),a=a.replaceAt(b-1," "));return a.indexOf("Mrf")>-1&&(a=a.replace("Mrf","MRF")),a}function j(){if(void 0===n.display.output){var a=e.options||n.display.options;n.display.output=a instanceof Array?"comma":"object"}}function k(a,b){m=!0;var c="array"===n.display.output?[]:"object"===n.display.output?{}:"";e.selected.indexOf(!1)>-1?e.selectAll=!1:Object.values(e.selected).length===e.multiSelectOptions.length&&(e.selectAll=!0);for(var d in e.selected)if(e.selected[d]){var f=e.multiSelectOptions[d];switch(n.display.output){case"object":c[f.key]=f.value;break;case"comma":c+='"'+f.key+'",';break;case"array":c.push(b.item||b.key)}}"comma"===n.display.output&&c.length>0&&(c=c.substring(0,c.length-1)),e.data=c,setTimeout(function(){e.ngBlur&&m&&e.ngBlur({key:e.key}),m=!1},1),e.selected.indexOf(!0)<0&&delete e.data}function l(a){var b={};if(a){for(var c=0;c0&&(e.data=m)})}e.$on("removeModelFieldMultiSelect",function(a,c){c===e.key&&b(function(){j()},1)})}})}()}}}]),angular.module("dashboard.directives.ModelFieldVideo",["dashboard.services.GeneralModel"]).directive("modelFieldVideoView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ field.label }}: {{ data[field.name] }}",scope:{field:"=options",data:"=ngModel"},link:function(a,b,c){}}}]).directive("modelFieldVideoEdit",["$sce","$compile","$document","GeneralModelService","SessionService",function(a,b,c,d,e){"ngInject";return{restrict:"E", +template:'
Upload a Video File
{{ uploadStatus }}
HTML5 Drop File is not supported!
',scope:{key:"=key",options:"=options",disabled:"=ngDisabled",data:"=ngModel",modelData:"=modelData",ngChange:"&"},link:function(b,d,e){var f=null;b.uploadStatus="Upload File";var g=(b.$watchCollection("data",function(c){c&&("string"==typeof c?b.videoUrl=a.trustAsResourceUrl(c):"object"==typeof c&&(c.fileUrl&&(b.videoUrl=a.trustAsResourceUrl(c.fileUrl)),c.videoUrl&&(b.videoUrl=a.trustAsResourceUrl(c.videoUrl))))}),new FileReader);g.onload=function(c){b.videoUrl=a.trustAsResourceUrl(c.target.result),b.$apply()},g.onerror=function(a){console.error(a)},b.clear=function(){b.data=null,delete b.videoUrl,b.ngChange&&setTimeout(function(){b.ngChange({key:b.key})},1)},b.onFileSelect=function(a){if(b.data&&b.clear(),!(a.length<1)){f=a[0];var c=b.options.path;b.data={path:c,file:f},g.readAsDataURL(f)}},c.on("drop",function(a){"INPUT"!=a.target.nodeName&&a.preventDefault()}),c.on("dragover",function(a){a.preventDefault(),d.find(".image-drop").addClass("show-upload"),d.find(".input[type=file]").addClass("show-upload"),d.find(".button-menu").addClass("hide-menu")}),$(window).on("mouseleave",function(){d.find(".image-drop").removeClass("show-upload"),d.find(".input[type=file]").removeClass("show-upload"),d.find(".button-menu").removeClass("hide-menu")}),b.$on("$destroy",function(){c.off("drop"),c.off("dragover"),$(window).off("mouseleave")})}}}]),angular.module("dashboard.directives.ModelFieldWYSIWYG",["dashboard.Dashboard.Model.Edit.SaveDialog","dashboard.Config","ui.bootstrap","dashboard.services.GeneralModel","ui.select"]).directive("modelFieldWysiwygView",["$compile",function(a){"ngInject";return{restrict:"E",template:"{{ options.model }}: {{ data[options.key] }}",scope:{options:"=options",data:"=ngModel",required:"ngRequired",disabled:"disabled"},link:function(a,b,c){}}}]).directive("modelFieldWysiwygEdit",["$compile","$cookies","$timeout","$uibModal","Config","FileUploadService",function(a,b,c,d,e,f){"ngInject";function g(a){var b="";if(a.options&&a.options.fonts)for(var c=a.options.fonts,d=0;d"+c[d]+"";return'
'}return{restrict:"E",require:"ngModel",scope:{key:"=key",property:"=property",options:"=options",data:"=ngModel",modelData:"=modelData",disabled:"=ngDisabled"},link:function(b,c,e,h){function i(){var a=$(".wysiwyg-editor"),d=0;a&&a.length>0&&(d=a.length),n=angular.element(c).find(".wysiwyg-editor");var e="wysiwyg-editor-"+d,f="editor"+d+"-toolbar";n.attr("id",e);var g=angular.element(c).find(".wysiwyg-toolbar");g.attr("data-role",f),g.attr("data-target","#"+e),b.disabled||n.wysiwyg({toolbarSelector:"[data-role="+f+"]",hotKeys:{},dragAndDropImages:!1})}function j(){var a=angular.element(c).find(".font-color-picker");a&&a.spectrum({flat:!0,cancelText:"",clickoutFiresChange:!1,preferredFormat:"rgb",showInput:!0,change:function(a){$(this).closest(".dropdown").find(".color-sample").css({backgroundColor:a.toHexString()}),n.focus(),document.execCommand("foreColor",0,a.toHexString()),$(this).parent(".menu").removeClass("open")}})}function k(a){var b=$(a.currentTarget).parent().find(".menu");b.hasClass("open")?b.removeClass("open"):b.addClass("open")}function l(a){if(b.options.allowImageUpload&&0!=a.length){b.status="Uploading Image",b.progress=0;var c=d.open({templateUrl:"app/dashboard/model/edit/ModelEditSaveDialog.html",controller:"ModelEditSaveDialogCtrl",scope:b});f.uploadFile(a[0],b.options.imagePath).then(function(a){b.status="Upload Complete",document.execCommand("insertimage",0,a.fileUrl),c.close()},function(a){console.error(a),b.status="There was an error uploading the image. Please contact an Administrator."},function(a){b.progress=a})}}function m(){if(b.isEditingCode=!b.isEditingCode,b.isEditingCode){var a=n[0].innerHTML;a=html_beautify(a,{indent_size:2}),h.$setViewValue(a),o.setValue(a)}else h.$setViewValue(o.getValue()),n.html(h.$viewValue)}var n,o;!function(){b.isEditingCode=!1,b.toggleDropdown=k,b.onFileSelect=l,b.toggleCodeEdit=m,c.html(g(b)).show(),a(c.contents())(b),i(),j(),o=ace.edit(c.find(".code-editor")[0]),o.getSession().setMode("ace/mode/html"),$(c).find(".wysiwyg-toolbar [data-role=magic-overlay]").each(function(){var a=$(this);$(a.data("target")),a.css({opacity:0,position:"absolute",width:"40px",height:"34px",top:"0",left:"0"})}),h.$render=function(){n.html(h.$viewValue||"")},n.bind("blur keyup change",function(){b.$apply(function(){h.$setViewValue(n.html())})}),o.on("blur",function(){h.$setViewValue(o.getValue()),n.html(h.$viewValue)})}()}}}]),angular.module("dashboard.filters",[]).filter("decimalWithScale",function(){"ngInject";return function(a,b){if(void 0===a||""===a)return"";value=a+"";var c=value.indexOf(".");-1===c?value+=".0":1===c&&"-"===value.charAt(0)?value=value.slice(0,1)+"0"+value.slice(1):0===c&&(value="0"+value);var d=value.split(".");if(d.length>1){if(d[0]&&0!==d[0].length||(d[0]=0),isNaN(parseInt(d[0])))return NaN;if(1===c&&"-"===value.charAt(0)?value="-"+parseInt(d[0])+".":value=parseInt(d[0])+".",null!==d[1].match(/[\D]/))return NaN;if(d[1].length>b?value+=d[1].substring(0,b):value+=d[1],d[1].length0){var f=this.restrictMenuItems(e.subnav);if(f&&(e.subnav=f,null!==e.defaultSubNavIndex&&void 0!==e.defaultSubNavIndex&&e.subnav[e.defaultSubNavIndex]&&e.subnav[e.defaultSubNavIndex].hidden))for(var g in e.subnav){var h=e.subnav[g];if(c.hasAccess(d,h)&&!h.hidden){e.defaultSubNavIndex=parseInt(g);break}}}}else e.hidden=!0}return a},this.hasAccess=function(a,b){if(!(b.hasOwnProperty("roles")&&b.roles instanceof Array))return!0;for(var c in a)if(b.roles.indexOf(a[c].name)>-1)return!0;return!1}}]),angular.module("dashboard.services.FileUpload",["dashboard.Config","dashboard.Utils","ngCookies","angularFileUpload"]).service("FileUploadService",["$cookies","$q","$upload","Config","Utils",function(a,b,c,d,e){"ngInject";var f=this;this.getS3Credentials=function(a,b,c){var f={path:a,fileType:b,r:(new Date).getTime(),isRegistrySurvey:c};return e.apiHelper("GET",d.serverParams.cmsBaseUrl+"/aws/s3/credentials",f)},this.getFileUploadData=function(a){return{key:a.uniqueFilePath,AWSAccessKeyId:a.AWSAccessKeyId,acl:"private",policy:a.policy,signature:a.signature,success_action_status:"201","Cache-Control":"max-age=31536000"}},this.uploadFile=function(a,d){var e=!1;if(a.isRegistrySurvey){var e=!0;a=a.file}("string"==typeof a||a instanceof String&&0==a.indexOf("data:"))&&(a=f.dataURItoBlob(a));var g="";a.type?g=a.type:a.name&&(g=f.detectMimeTypeByExt(a.name));var h=b.defer();return f.getS3Credentials(d,g||"",e).then(function(b){c.upload({url:b.uploadUrl,method:"POST",data:f.getFileUploadData(b),file:a}).progress(function(b){var c=b.position/a.size;h.notify(c)}).success(function(b){var c,d=(new DOMParser).parseFromString(b,"text/xml");try{var e=d.evaluate("/PostResponse/Location",d,null,XPathResult.STRING_TYPE,null);c=e.stringValue}catch(a){for(var f=d.documentElement.childNodes,g=0;g0)return d++,e=0,void f.uploadImages(a,d,e,h,i);l=r}else{var s=Object.keys(r);if(e>=s.length)return d++,e=0,void f.uploadImages(a,d,e,h,i);k=s[e],r[k]&&r[k].file?(g=r[k].path,l=r[k].file):l=r[k]}h||(h={});for(var o=0;o=0?atob(a.split(",")[1]):unescape(a.split(",")[1]);for(var c=a.split(",")[0].split(":")[1].split(";")[0],d=new Uint8Array(b.length),e=0;e0){var b=a.split(".").pop();if(b.length>0){return{"3dm":"x-world/x-3dmf","3dmf":"x-world/x-3dmf",a:"application/octet-stream",aab:"application/x-authorware-bin",aam:"application/x-authorware-map",aas:"application/x-authorware-seg",abc:"text/vnd.abc",acgi:"text/html",afl:"video/animaflex",ai:"application/postscript",aif:"audio/aiff",aifc:"audio/aiff",aiff:"audio/aiff",aim:"application/x-aim",aip:"text/x-audiosoft-intra",ani:"application/x-navi-animation",aos:"application/x-nokia-9000-communicator-add-on-software",aps:"application/mime",arc:"application/octet-stream",arj:"application/arj",art:"image/x-jg",asf:"video/x-ms-asf",asm:"text/x-asm",asp:"text/asp",asx:"application/x-mplayer2",au:"audio/basic",avi:"application/x-troff-msvideo",avs:"video/avs-video",bcpio:"application/x-bcpio",bin:"application/mac-binary",bm:"image/bmp",bmp:"image/bmp",boo:"application/book",book:"application/book",boz:"application/x-bzip2",bsh:"application/x-bsh",bz:"application/x-bzip",bz2:"application/x-bzip2",c:"text/plain","c++":"text/plain",cat:"application/vnd.ms-pki.seccat",cc:"text/plain",ccad:"application/clariscad",cco:"application/x-cocoa",cdf:"application/cdf",cer:"application/pkix-cert",cha:"application/x-chat",chat:"application/x-chat",class:"application/java",com:"application/octet-stream",conf:"text/plain",cpio:"application/x-cpio",cpp:"text/x-c",cpt:"application/mac-compactpro",crl:"application/pkcs-crl",crt:"application/pkix-cert",csh:"application/x-csh",css:"application/x-pointplus",cxx:"text/plain",dcr:"application/x-director",deepv:"application/x-deepv",def:"text/plain",der:"application/x-x509-ca-cert",dif:"video/x-dv",dir:"application/x-director",dl:"video/dl",doc:"application/msword",dot:"application/msword",dp:"application/commonground",drw:"application/drafting",dump:"application/octet-stream",dv:"video/x-dv",dvi:"application/x-dvi",dwf:"drawing/x-dwf (old)",dwg:"application/acad",dxf:"application/dxf",dxr:"application/x-director",el:"text/x-script.elisp",elc:"application/x-bytecode.elisp (compiled elisp)",env:"application/x-envoy",eps:"application/postscript",es:"application/x-esrehber",etx:"text/x-setext",evy:"application/envoy",exe:"application/octet-stream",f:"text/plain",f77:"text/x-fortran",f90:"text/plain",fdf:"application/vnd.fdf",fif:"application/fractals",fli:"video/fli",flo:"image/florian",flx:"text/vnd.fmi.flexstor",fmf:"video/x-atomic3d-feature",for:"text/plain",fpx:"image/vnd.fpx",frl:"application/freeloader",funk:"audio/make",g:"text/plain",g3:"image/g3fax",gif:"image/gif",gl:"video/gl",gsd:"audio/x-gsm",gsm:"audio/x-gsm",gsp:"application/x-gsp",gss:"application/x-gss",gtar:"application/x-gtar",gz:"application/x-compressed",gzip:"application/x-gzip",h:"text/plain",hdf:"application/x-hdf",help:"application/x-helpfile",hgl:"application/vnd.hp-hpgl",hh:"text/plain",hlb:"text/x-script",hlp:"application/hlp",hpg:"application/vnd.hp-hpgl",hpgl:"application/vnd.hp-hpgl",hqx:"application/binhex",hta:"application/hta",htc:"text/x-component",htm:"text/html",html:"text/html",htmls:"text/html",htt:"text/webviewhtml",htx:"text/html",ice:"x-conference/x-cooltalk",ico:"image/x-icon",idc:"text/plain",ief:"image/ief",iefs:"image/ief",iges:"application/iges",igs:"application/iges",ima:"application/x-ima",imap:"application/x-httpd-imap",inf:"application/inf",ins:"application/x-internett-signup",ip:"application/x-ip2",isu:"video/x-isvideo",it:"audio/it",iv:"application/x-inventor",ivr:"i-world/i-vrml",ivy:"application/x-livescreen",jam:"audio/x-jam",jav:"text/plain",java:"text/plain",jcm:"application/x-java-commerce",jfif:"image/jpeg","jfif-tbnl":"image/jpeg",jpe:"image/jpeg",jpeg:"image/jpeg",jpg:"image/jpeg",jps:"image/x-jps",js:"application/x-javascript",jut:"image/jutvision",kar:"audio/midi",ksh:"application/x-ksh",la:"audio/nspaudio",lam:"audio/x-liveaudio",latex:"application/x-latex",lha:"application/lha",lhx:"application/octet-stream",list:"text/plain",lma:"audio/nspaudio",log:"text/plain",lsp:"application/x-lisp",lst:"text/plain",lsx:"text/x-la-asf",ltx:"application/x-latex",lzh:"application/octet-stream",lzx:"application/lzx",m:"text/plain",m1v:"video/mpeg",m2a:"audio/mpeg",m2v:"video/mpeg",m3u:"audio/x-mpequrl",man:"application/x-troff-man",map:"application/x-navimap",mar:"text/plain",mbd:"application/mbedlet",mc$:"application/x-magic-cap-package-1.0",mcd:"application/mcad",mcf:"image/vasa",mcp:"application/netmc",me:"application/x-troff-me",mht:"message/rfc822",mhtml:"message/rfc822",mid:"application/x-midi",midi:"application/x-midi",mif:"application/x-frame",mime:"message/rfc822",mjf:"audio/x-vnd.audioexplosion.mjuicemediafile",mjpg:"video/x-motion-jpeg",mm:"application/base64",mme:"application/base64",mod:"audio/mod",moov:"video/quicktime",mov:"video/quicktime",movie:"video/x-sgi-movie",mp2:"audio/mpeg",mp3:"audio/mpeg3",mpa:"audio/mpeg",mpc:"application/x-project",mpe:"video/mpeg",mpeg:"video/mpeg",mpg:"audio/mpeg",mpga:"audio/mpeg",mpp:"application/vnd.ms-project",mpt:"application/x-project",mpv:"application/x-project",mpx:"application/x-project",mrc:"application/marc",ms:"application/x-troff-ms",mv:"video/x-sgi-movie",my:"audio/make",mzz:"application/x-vnd.audioexplosion.mzz",nap:"image/naplps",naplps:"image/naplps",nc:"application/x-netcdf",ncm:"application/vnd.nokia.configuration-message",nif:"image/x-niff",niff:"image/x-niff",nix:"application/x-mix-transfer",nsc:"application/x-conference",nvd:"application/x-navidoc",o:"application/octet-stream",oda:"application/oda",omc:"application/x-omc",omcd:"application/x-omcdatamaker",omcr:"application/x-omcregerator",p:"text/x-pascal",p10:"application/pkcs10",p12:"application/pkcs-12",p7a:"application/x-pkcs7-signature",p7c:"application/pkcs7-mime",p7m:"application/pkcs7-mime",p7r:"application/x-pkcs7-certreqresp",p7s:"application/pkcs7-signature",part:"application/pro_eng",pas:"text/pascal",pbm:"image/x-portable-bitmap",pcl:"application/vnd.hp-pcl",pct:"image/x-pict",pcx:"image/x-pcx",pdb:"chemical/x-pdb",pdf:"application/pdf",pfunk:"audio/make",pgm:"image/x-portable-graymap",pic:"image/pict",pict:"image/pict",pkg:"application/x-newton-compatible-pkg",pko:"application/vnd.ms-pki.pko",pl:"text/plain",plx:"application/x-pixclscript",pm:"image/x-xpixmap",pm4:"application/x-pagemaker",pm5:"application/x-pagemaker",png:"image/png",pnm:"application/x-portable-anymap",pot:"application/mspowerpoint",pov:"model/x-pov",ppa:"application/vnd.ms-powerpoint",ppm:"image/x-portable-pixmap",pps:"application/mspowerpoint",ppt:"application/mspowerpoint",ppz:"application/mspowerpoint",pre:"application/x-freelance",prt:"application/pro_eng",ps:"application/postscript",psd:"application/octet-stream",pvu:"paleovu/x-pv",pwz:"application/vnd.ms-powerpoint",py:"text/x-script.phyton",pyc:"application/x-bytecode.python",qcp:"audio/vnd.qcelp",qd3:"x-world/x-3dmf",qd3d:"x-world/x-3dmf",qif:"image/x-quicktime",qt:"video/quicktime",qtc:"video/x-qtc",qti:"image/x-quicktime",qtif:"image/x-quicktime",ra:"audio/x-pn-realaudio",ram:"audio/x-pn-realaudio",ras:"application/x-cmu-raster",rast:"image/cmu-raster",rexx:"text/x-script.rexx",rf:"image/vnd.rn-realflash",rgb:"image/x-rgb",rm:"application/vnd.rn-realmedia",rmi:"audio/mid",rmm:"audio/x-pn-realaudio",rmp:"audio/x-pn-realaudio",rng:"application/ringing-tones",rnx:"application/vnd.rn-realplayer",roff:"application/x-troff",rp:"image/vnd.rn-realpix",rpm:"audio/x-pn-realaudio-plugin",rt:"text/richtext",rtf:"application/rtf",rtx:"application/rtf",rv:"video/vnd.rn-realvideo",s:"text/x-asm",s3m:"audio/s3m",saveme:"application/octet-stream",sbk:"application/x-tbook",scm:"application/x-lotusscreencam",sdml:"text/plain",sdp:"application/sdp",sdr:"application/sounder",sea:"application/sea",set:"application/set",sgm:"text/sgml",sgml:"text/sgml",sh:"application/x-bsh",shar:"application/x-bsh",shtml:"text/html",sid:"audio/x-psid",sit:"application/x-sit",skd:"application/x-koan",skm:"application/x-koan",skp:"application/x-koan",skt:"application/x-koan",sl:"application/x-seelogo",smi:"application/smil",smil:"application/smil",snd:"audio/basic",sol:"application/solids",spc:"application/x-pkcs7-certificates",spl:"application/futuresplash",spr:"application/x-sprite",sprite:"application/x-sprite",src:"application/x-wais-source",ssi:"text/x-server-parsed-html",ssm:"application/streamingmedia",sst:"application/vnd.ms-pki.certstore",step:"application/step",stl:"application/sla",stp:"application/step",sv4cpio:"application/x-sv4cpio",sv4crc:"application/x-sv4crc",svf:"image/vnd.dwg",svr:"application/x-world",swf:"application/x-shockwave-flash",t:"application/x-troff",talk:"text/x-speech",tar:"application/x-tar",tbk:"application/toolbook",tcl:"application/x-tcl",tcsh:"text/x-script.tcsh",tex:"application/x-tex",texi:"application/x-texinfo",texinfo:"application/x-texinfo",text:"application/plain",tgz:"application/gnutar",tif:"image/tiff",tiff:"image/tiff",tr:"application/x-troff",tsi:"audio/tsp-audio",tsp:"application/dsptype",tsv:"text/tab-separated-values",turbot:"image/florian",txt:"text/plain",uil:"text/x-uil",uni:"text/uri-list",unis:"text/uri-list",unv:"application/i-deas",uri:"text/uri-list",uris:"text/uri-list",ustar:"application/x-ustar",uu:"application/octet-stream",uue:"text/x-uuencode",vcd:"application/x-cdlink",vcs:"text/x-vcalendar",vda:"application/vda",vdo:"video/vdo",vew:"application/groupwise",viv:"video/vivo",vivo:"video/vivo",vmd:"application/vocaltec-media-desc",vmf:"application/vocaltec-media-file",voc:"audio/voc",vos:"video/vosaic",vox:"audio/voxware",vqe:"audio/x-twinvq-plugin",vqf:"audio/x-twinvq",vql:"audio/x-twinvq-plugin",vrml:"application/x-vrml",vrt:"x-world/x-vrt",vsd:"application/x-visio",vst:"application/x-visio",vsw:"application/x-visio",w60:"application/wordperfect6.0",w61:"application/wordperfect6.1",w6w:"application/msword",wav:"audio/wav",wb1:"application/x-qpro",wbmp:"image/vnd.wap.wbmp",web:"application/vnd.xara",wiz:"application/msword",wk1:"application/x-123",wmf:"windows/metafile",wml:"text/vnd.wap.wml",wmlc:"application/vnd.wap.wmlc",wmls:"text/vnd.wap.wmlscript",wmlsc:"application/vnd.wap.wmlscriptc",word:"application/msword",wp:"application/wordperfect",wp5:"application/wordperfect",wp6:"application/wordperfect",wpd:"application/wordperfect",wq1:"application/x-lotus",wri:"application/mswrite",wrl:"application/x-world",wrz:"model/vrml",wsc:"text/scriplet",wsrc:"application/x-wais-source",wtk:"application/x-wintalk",xbm:"image/x-xbitmap",xdr:"video/x-amt-demorun",xgz:"xgl/drawing",xif:"image/vnd.xiff",xl:"application/excel",xla:"application/excel",xlb:"application/excel",xlc:"application/excel",xld:"application/excel",xlk:"application/excel",xll:"application/excel",xlm:"application/excel",xls:"application/excel",xlt:"application/excel",xlv:"application/excel",xlw:"application/excel",xm:"audio/xm",xml:"application/xml",xmz:"xgl/movie",xpix:"application/x-vnd.ls-xpix",xpm:"image/x-xpixmap","x-png":"image/png",xsr:"video/x-amt-showrun",xwd:"image/x-xwd",xyz:"chemical/x-pdb",z:"application/x-compress",zip:"application/x-compressed",zoo:"application/octet-stream",zsh:"text/x-script.zsh"}[b]}}return""}}]),angular.module("dashboard.services.GeneralModel",["dashboard.services.FileUpload","dashboard.Config","dashboard.Utils","ngCookies"]).service("GeneralModelService",["$cookies","$q","Config","Utils","FileUploadService",function($cookies,$q,Config,Utils,FileUploadService){"ngInject";var self=this;this.list=function(a,b,c){var a=a+(a.indexOf("?")>-1?"&":"?");return c&&c.preventCancel||Utils.apiCancel("GET",a),Utils.apiHelper("GET",a,b)},this.count=function(a,b){a.indexOf("?")>-1&&(a=a.substr(0,a.indexOf("?")));var c=Object.keys(b);for(var d in c){var e=c[d];e.indexOf("filter[where]")>-1?(newKey=e.replace("filter[where]","where"),b[newKey]=b[e]):"filter"==e&&(b.where=b.filter.where)}return a+="/count",Utils.apiCancel("GET",a),Utils.apiHelper("GET",a,b)},this.get=function(a,b,c){var d=a+"/"+b;return Utils.apiHelper("GET",d,c)},this.getMany=function(a,b,c,d,e){var f=a+"/"+b+"/"+c;return e&&e.preventCancel||Utils.apiCancel("GET",f),Utils.apiHelper("GET",f,d)},this.sort=function(a,b,c,d){var e=Config.serverParams.cmsBaseUrl+"/model/sort",f={model:a,key:b,sortField:c,sortData:d};return Utils.apiHelper("POST",e,f)},this.remove=function(a,b){var c=a;return b&&(c=c+"/"+b),Utils.apiHelper("DELETE",c,{})},this.post=function(a,b){return Utils.apiHelper("POST",a,b)},this.save=function(a,b,c){var d=Config.serverParams.cmsBaseUrl+"/model/save";return c.__model=a,c.__id=b,c.__accessToken=$cookies.get("accessToken"),Utils.apiHelper("PUT",d,c)},this.saveWithFiles=function(a,b,c){var d=Config.serverParams.models[a],e=$q.defer(),f=function(a){var b=0,d=Object.keys(c),f=function(){if(b>=d.length)return void a();var g=d[b],h=c[g];h&&"object"==typeof h&&h.file?(e.notify({message:"Uploading file: "+h.file.name,translate:"cms.status.uploading_file",params:{file:h.file.name},progress:0}),FileUploadService.uploadFile(h.file,h.path).then(function(a){c[g]=a.fileUrl,b++,f()},function(a){"object"==typeof a&&a.error?e.reject({message:"The file being uploaded is not an accepted file type for this form",translate:"cms.error.file_upload.not_accepted"}):e.reject(a)},function(a){e.notify({progress:a})})):(b++,f())};f()};return function(a){c.__ModelFieldImageData?(e.notify({ +message:"Uploading image file(s)",progress:0,translate:"cms.status.uploading_image_files"}),FileUploadService.uploadImages(c.__ModelFieldImageData).then(function(b){self.assignImageFileMetaData(d,c,b),e.notify({message:"Saving...",progress:0,translate:"cms.status.saving"}),a()},function(a){console.log(a),e.reject(a)},function(a){e.notify({progress:a})})):a()}(function(){f(function(){self.checkDefaultValues(d,c),self.save(a,b,c).then(function(a){e.resolve(a)},function(a){e.reject(a)})})}),e.promise},this.assignImageFileMetaData=function(a,b,c){var d=Object.keys(c);for(var e in d){var f=d[e],g=a.properties[f],h=g.display.options;if(h&&h.model&&h.relationship){b[h.relationship]||(b[h.relationship]={});var i=b[h.relationship];b[f]&&(i[h.key]=b[f]),i[h.urlKey]=c[f][h.urlKey];var j=Object.keys(h.export);for(var k in j){var l=j[k];i[l]=c[f][l]}if(b.__ModelFieldImageData[f]&&b.__ModelFieldImageData[f][h.urlKey]){var m=b.__ModelFieldImageData[f][h.urlKey],n=m?m.file:{};i.filename=n.name}else i.filename="unknown";if(h.meta){var o=Object.keys(h.meta);for(var p in o){var q=o[p];i[q]=h.meta[q]}}}else b[f]=c[f]}delete b.__ModelFieldImageData,delete b.__ModelFieldImageChangeCount},this.checkDefaultValues=function(modelDef,data){var keys=Object.keys(modelDef.properties);for(var i in keys){var key=keys[i],property=modelDef.properties[key];property&&property.display&&(void 0===data[key]||null==data[key]||property.display.forceDefaultOnSave)&&(void 0!==property.default&&(data[key]=property.default),void 0!==property.display.evalDefault&&(data[key]=eval(property.display.evalDefault)))}},this.queryStringParamsToJSON=function(a){var b={};return _.forEach(a,function(a,c){b=_.set(b,c,a)}),b},this.validateRequiredFields=function(a,b,c){var d=c?a[c]:a.display,e=d.filter(function(c){if("string"==typeof c){var d=a.properties[c];return d&&d.required&&!b[c]}return!("object"!=typeof c||!c.required)&&(c.options&&c.options.relationship?_.isEmpty(b[c.options.relationship]):"image"===c.type&&b.__ModelFieldImageData?_.isEmpty(b.__ModelFieldImageData[c.property]):_.isEmpty(b[c.property]))});return _.isEmpty(e)}}]),angular.module("dashboard.services.Image",[]).service("ImageService",["$q",function(a){"ngInject";var b=this;this.resize=function(a,c,d){b.loadImageURI(a,function(e,f){if(e)return d(e);EXIF.getData(f,function(e){var g=document.createElement("canvas"),h=g.getContext("2d"),i=EXIF.getTag(this,"Orientation");c||(c={});var j=c.width?c.width:f.width,k=c.height?c.height:f.height;switch(c.aspect?c.aspect:"fit"){case"stretch":g.width=j,g.height=k;break;case"fill":g.width=j,g.height=k;var l=Math.max(j/f.width,k/f.height);j=f.width*l,k=f.height*l;break;case"fit":default:var l=Math.min(j/f.width,k/f.height);l>1&&(l=1),j=f.width*l,k=f.height*l,g.width=j,g.height=k}h.save(),b.setOrientation(g,h,j,k,i),h.drawImage(f,0,0,j,k),h.restore();try{var m=g.toDataURL("image/jpeg",.8);d(null,m)}catch(b){d(null,a)}})})},this.fixOrientationWithDataURI=function(a,c){b.resize(a,{},c)},this.setOrientation=function(a,b,c,d,e){switch(e){case 2:b.translate(c,0),b.scale(-1,1);break;case 3:b.translate(c,d),b.rotate(Math.PI);break;case 4:b.translate(0,d),b.scale(1,-1);break;case 5:a.width=d,a.height=c,b.rotate(.5*Math.PI),b.scale(1,-1);break;case 6:a.width=d,a.height=c,b.rotate(.5*Math.PI),b.translate(0,-d);break;case 7:a.width=d,a.height=c,b.rotate(.5*Math.PI),b.translate(c,-d),b.scale(-1,1);break;case 8:a.width=d,a.height=c,b.rotate(-.5*Math.PI),b.translate(-c,0)}},this.loadImageURI=function(a,b){var c=new Image;c.onload=function(){b(null,c)},c.onerror=function(a){b(a)},c.src=a}}]),angular.module("dashboard.services.Location",["dashboard.Config","dashboard.Utils"]).service("LocationService",["Config","Utils","$q","$rootScope",function(a,b,c,d){"ngInject";var e=c.defer();this.currentLocation=function(){return navigator.geolocation?navigator.geolocation.getCurrentPosition(function(a){d.$apply(function(){e.resolve(a.coords)})},function(a){e.reject(a)}):e.reject("location services not allowed"),e.promise}}]),angular.module("dashboard.services.Session",["dashboard.Utils","dashboard.services.User","ngCookies"]).service("SessionService",["$cookies","$cookieStore","$q","UserService","Config","Utils","DashboardService",function(a,b,c,d,e,f,g){"ngInject";var h=this,i=null;this.logIn=function(b,d,e){var g="Users";return config.authModel&&(g=config.authModel),f.apiHelper("POST",g+"/login?include=user",{email:b,password:d,options:e}).then(function(a){return h.setSession(a)}).catch(function(){return a.put("session",null),c.reject(arguments)})},this.logOut=function(){var c="Users";config.authModel&&(c=config.authModel);var d=a.get("accessToken");return b.remove("username"),b.remove("userId"),b.remove("accessToken"),b.remove("roles"),b.remove("session"),b.remove("lastActive"),f.apiHelper("POST",c+"/logout",{accessToken:d})},this.setSession=function(b){var d="Users";return config.authModel&&(d=config.authModel),f.apiHelper("GET",d+"/"+b.userId+"/Roles",{accessToken:b.id}).then(function(c){return a.put("lastActive",new Date),i=b,a.put("accessToken",b.id),a.put("username",b.user.username),a.put("userId",b.userId),a.put("session",JSON.stringify(i)),a.put("roles",JSON.stringify(c)),b}).catch(function(){return a.put("session",null),c.reject(arguments)})},this.getAuthToken=function(){return i&&i.id},this.put=function(b,c){var d=JSON.parse(a.get("session"));d[b]=c,a.put("session",JSON.stringify(d))},this.get=function(b){return JSON.parse(a.get("session"))[b]},this.isAuthorized=function(b,c){if(_.startsWith(b.name,"public"))return!0;var d=g.getNavigation(),e=b.name,f=c.model,h=c.action,i=angular.fromJson(a.get("roles"));if(_.isEmpty(f)){var j=_.find(d,{state:e});if(j)return g.hasAccess(i,j)}else{var j=_.find(d,{path:f});if(j){if(!g.hasAccess(i,j))return!1;if(_.isArray(j.subnav)&&!_.isEmpty(h)){var k=_.find(j.subnav,{label:h});if(k)return g.hasAccess(i,k)}}}var l=b.data.roles;return!(!_.isEmpty(l)&&_.isArray(l))||g.hasAccess(i,{roles:l})},function(){var b=a.get("session");b&&(i=JSON.parse(b))}()}]),angular.module("dashboard.services.Settings",["dashboard.Config","dashboard.Utils","ngCookies"]).service("SettingsService",["$cookies","Config","Utils",function(a,b,c){"ngInject";this.saveNav=function(a){var d=b.serverParams.cmsBaseUrl+"/settings/config/nav";return c.apiHelper("POST",d,a)}}]),angular.module("dashboard.services.User",["dashboard.Config","dashboard.Utils"]).service("UserService",["Config","Utils","$q","$rootScope",function(a,b,c,d){"ngInject";this.register=function(a,c){var d="Users";return config.authModel&&(d=config.authModel),b.apiHelper("POST",d,{email:a,password:c})}}]),angular.module("dashboard.Utils",["dashboard.Config"]).service("Utils",["Config","$http","$q","$cookies",function(a,b,c,d){"ngInject";var e={};this.apiCancel=function(a,b){var c=e[a+":"+b];c&&c.resolve&&c.resolve(),delete e[a+":"+b]},this.apiHelper=function(f,g,h,i){var j=c.defer(),k="",l=h?JSON.parse(JSON.stringify(h)):{};return i=i||{},i.method=f,"/"==g[0]?i.url=g:(a.apiBaseUrl&&"/"!=a.apiBaseUrl[a.apiBaseUrl.length-1]&&"/"!=g[g.length-1]&&(a.apiBaseUrl+="/"),i.url=a.apiBaseUrl+g),"POST"==f||"PUT"==f?i.data=h:i.params=h,e[f+":"+g]=j,i.timeout=j.promise,i.params&&i.params.accessToken&&delete i.params.accessToken,k=l.accessToken?l.accessToken:d.get("accessToken"),i.headers={Authorization:k},b(i).then(function(a){j.resolve(a.data)},function(a){j.reject(a.data)}),j.promise}}]),$.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},window,window.angular; //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/dist/app.js.map b/dist/app.js.map index 4c2b966f..018eae51 100644 --- a/dist/app.js.map +++ b/dist/app.js.map @@ -1 +1 @@ -{"version":3,"sources":["app.js"],"names":["angular","module","config","$locationProvider","$stateProvider","$urlRouterProvider","$compileProvider","$qProvider","$translateProvider","Config","aHrefSanitizationWhitelist","otherwise","serverParams","disableRegistration","when","html5Mode","useSanitizeValueStrategy","translateUrl","useUrlLoader","defaultLanguage","fallbackLanguage","state","abstract","template","url","data","pageTitle","deferIntercept","run","$ocLazyLoad","$rootScope","$urlRouter","$injector","$translate","use","refresh","modulesLoaded","customModules","load","then","$broadcast","Array","isArray","injectOnStart","forEach","get","error","console","log","$on","e","sync","listener","constant","TIMEOUT_INTERVAL","PUBLIC_STATE","LOGIN_STATE","controller","$scope","$location","$state","$timeout","$document","$cookies","SessionService","CacheService","constants","gaTrackingId","ga","event","toState","toParams","fromState","fromParams","toStateName","name","substr","indexOf","getAuthToken","desiredState","params","set","loginState","go","preventDefault","isAuthorized","isDefined","logOut","reset","result","catch","lastPersistDate","Date","persistSession","cancel","persistId","current","checkTimeout","put","timeoutId","lastActiveDate","sessionTimeout","host","on","$uibModalInstance","closeAlert","close","okAlert","okHandler","cancelAlert","cancelHandler","isConfirm","alertType","templateUrl","$stateParams","$uibModal","DashboardService","self","this","init","toggleSideMenu","hideSideMenu","editProfile","logout","locationPath","path","username","email","userId","userInfo","JSON","parse","user","roles","title","nav","getNavigation","defaultNav","getDefaultNav","copy","route","$watch","modalInstance","$dashboard","$","hasClass","removeClass","addClass","$event","action","options","model","profileModel","key","profileKey","id","hideDelete","open","size","scope","section","_","find","subnav","label","SettingsService","clickSave","keys","save","delete","confirmMessage","defaults","$window","$filter","GeneralModelService","FileUploadService","modelEditConstants","layoutModelDisplay","modelDisplay","display","length","Object","properties","i","push","$emit","callback","saveWithFiles","response","displayError","displayStatus","isPlainObject","translate","msg","instant","message","alert","code","toJson","status","statusMsg","progress","clickSaveModel","clear","returnAfterEdit","history","back","clickDeleteModel","formParams","deleteDialogText","confirm","softDeleteProperty","remove","plural","stringify","hasPermission","displayInfo","property","askIf","userRoles","role","page","models","readonly","languageCode","locale","type","toLowerCase","isLoading","checkDefaultValues","isEdit","translated","saveButtonText","deleteButtonText","transId","$watchCollection","newData","oldData","newValue","oldValue","hasOwnProperty","isEqual","statusLabel","ModelListCtrl","moment","columnCount","list","selected","columns","listTemplateUrl","totalServerItems","isEditing","searchFields","sort","sortInfo","fields","directions","filterOptions","filterText","useExternalFilter","pagingOptions","pageSizes","pageSize","currentPage","toString","index","slice","gridOptions","enableColumnResize","enableRowSelection","multiSelect","enablePaging","useExternalSorting","showSelectionCheckbox","showFooter","showFilter","headerRowHeight","footerRowHeight","selectedItems","rowHeight","column","visibility","updateColumnVisibility","gridContainerTopMargin","chart","gridContainerTopMarginMax","height","processChart","window","ngGrid","i18n","ngTotalItemsLabel","ngPageSizeLabel","getColumnDefinition","columnDefs","editable","enableCellEdit","enableCellEditOnFocus","enableCellSelection","api","apiPath","origApiPath","addQueryStringParams","getTotalServerItems","$grid","element","bind","processWindowSize","startEdit","resetPaging","test","navigator","userAgent","flexibleHeight","plugins","ngGridFlexibleHeightPlugin","allowCSVExport","ngGridCsvExportPlugin","strings","cancelButtonText","cancelButton","saveButton","removeSelectedItems","findIndex","field","visible","isChecked","selectAll","columnRef","isRoleFound","r","splice","windowWidth","innerWidth","averageColumnWidth","filter","optional","queryStringParams","search","replace","session","searchString","startPos","endPos","sessionKey","substring","eval","filterDescription","parseInt","extend","warn","setupPagination","limit","skip","order","direction","filter[limit]","filter[skip]","sortOrder","filter[order]","queryStringParamsToJSON","where","and","v","k","item","orFilter","or","idx","searchFilter","vAxis","hAxis","textStyle","gridlines","fontSize","color","baselineColor","oldList","endEdit","undefined","loadItems","isFirstLoad","clickSelectAll","clickItemCheckbox","selectedItem","count","loadAttempted","errorMessage","cacheKey","getKeyForAction","resultField","hasButtonPermission","button","clickListButton","click","value","lastIndexOf","clickAdd","clickSaveEdit","deltaList","newRow","oldRow","rowKeys","foreceDefaultOnSave","evalDefault","required","displayName","recordIndex","saveRecord","record","saveNextRecord","clickCancelEdit","deleteRowWithMessage","row","deleteRow","bypassPrompt","entity","rowIndex","newVal","oldVal","selectedState","stateName","stateModel","stateAction","stateId","debounce","$apply","ngGridUnWatch","$viewport","$footerPanel","$listContainer","rebuildTimeout","rebuildGrid","$gridServices","DomUtilityService","RebuildGrid","$gridScope","handleScrollEvent","originalEvent","detail","wheelDelta","scrollY","scrollTop","clearTimeout","setTimeout","offset","top","$digest","css","bottom","position","val","encodeURIComponent","filterNav","currentNavIndex","modifiedNav","jsonEditor","alertTitle","alertMessage","allowAlertClose","getEditor","getValue","saveNav","document","getElementById","theme","iconlib","layout","startval","disable_properties","disable_edit_json","disable_delete_all","disable_delete_last","schema","format","disable_collapse","items","headerTemplate","icon","collapsed","className","enum","tite","sortField","description","width","headerClass","cellClass","cellTemplate","cellFilter","minWidth","maxWidth","sortable","resizable","defaultProperties","defaultSubNavIndex","watch","enumSource","source","JSONEditor","parent","temp","setValue","a","b","moveUp","from","to","moveDown","edit","onEdit","saveSort","newOrder","unshift","modalTitle","login","clickLogin","logIn","password","UserService","register","apiBaseUrl","directive","require","restrict","control","ngFormat","ngTimeZone","defaultDate","viewMode","ngViewMode","horizontal","maxDate","minDate","onChange","dataKey","link","elem","attrs","ngModel","$formatters","date","tz","useCurrent","toDate","widgetPositioning","datetimepicker","show","focus","dateValue","isValid","$setViewValue","$compile","getTemplate","html","contents","ngOptions","ngRepeat","addInputAttributes","inputAttr","$input","attr","ngError","ngEditReason","initFieldError","onFieldError","initFieldType","hasDataChanged","charsLeft","maxLength","lengthCheck","target","Error","errorCode","isRequired","getEditReason","filename","file","extension","defaultValueUsingModelKey","convertToLocalTime","check","default","editTemplate","pattern","disabled","modelData","ngChange","drawNewImage","signature","fromDataURL","image","Image","setAttribute","onload","_canvas","getContext","drawImage","fileUrl","src","toDataURL","dataUrl","canvas","clearRect","clearCanvas","changed","selectFileButtonText","clearButtonText","translationBtnKeys","previewUrl","pos","signPos","s3Path","getFileIcon","onFileSelect","$files","selectedFile","isSkipConfirm","isSkipEditReason","nodeName","off","ImageService","formController","uploadStatus","isDisplayOnly","thumbnailUrl","imageUrl","fileReader","urlKey","onerror","readAsDataURL","FileReader","imageData","__ModelFieldImageData","$setDirty","fixOrientationWithDataURI","dataURI","dataURItoBlob","export","exportImages","resize","resizeImage","blob","isAllowed","extensions","match","join","arguments","exportKey","settings","byteString","split","atob","unescape","mimeString","ia","Uint8Array","charCodeAt","Blob","imageClick","isLightbox","isLightboxWithZoom","$modal","$container","append","scale","Math","min","background","backgroundSize","$thumbnail","$zoom","thumbnailWidth","thumbnailHeight","zoomWidth","zoomHeight","border","x","y","positionImage","offsetX","offsetY","pageX","pageY","backgroundPosition","maxScale","animate","backgroundColor","opacity","$imageContainer","addLabel","sortableOptions","placeholder","update","updateData","setData","output","addItem","removeItem","results","$q","LocationService","loadScript","deferred","defer","resolve","promise","googleMapsApiJS","createElement","getElementsByTagName","appendChild","initMap","isMapLoading","isLoaded","map","google","maps","Map","center","location","zoom","initialize","initSelectedMarker","selectedMarker","LatLng","lat","lng","setPosition","setMap","setCenter","Marker","MarkerImage","Size","Point","draggable","tooltip","addListener","geocoder","originalValue","geocodeSearch","geocodeError","showGeocode","Geocoder","allowGeocode","query","currentLocation","pointLocation","latitude","longitude","valueChanged","doGeocode","geocode","address","GeocoderStatus","OK","geometry","OVER_QUERY_LIMIT","ZERO_RESULTS","clearSearch","hasSearched","revertValue","ngBlur","initOptions","keyOverride","valueOverride","option","multiSelectOptions","initData","clickMultiSelectCheckbox","selectedOption","checkNumber","cursorPosition","selection","range","createRange","moveStart","text","selectionStart","indexOfDecimal","valueComponents","scaleValue","validateAndParseNumbers","validity","badInput","allowDecimal","decimalString","isNaN","minValue","isFirstDecLarger","maxValue","round","roundedValue","parseFloat","dec1","dec2","dec1Components","dec2Components","areBothPositive","max","charAt","$http","googleApiKey","convertStringToGoogleTypeFormat","str","request","initQuery","jQuery","radius","places","PlacesService","textSearch","PlacesServiceStatus","createMarkers","boundaries","clearOverlays","markers","removeMarkers","createCircle","displayMarkers","listSearchResults","infowindow","searchResults","marker","markerLocation","getPosition","setContent","getClickedMarker","circle","Circle","fillOpacity","fillColor","bounds","LatLngBounds","spherical","computeDistanceBetween","displayedMarkers","fitBounds","searchError","displayedSearchResults","placeId","perviouslySavedLatLng","requestQuery","placeType","googleType","zipCode","InfoWindow","doSearch","reverseGeocode","coordinates","resultPlaceId","place_id","getAdditionPlaceInformation","checked","getSelectResultData","placeRequest","service","getDetails","place","address_components","types","short_name","phoneNumber","formatted_phone_number","formatted_address","updateInfoWindow","checkedLocation","updateSelection","selectedIdx","multiple","matchTemplate","choiceTemplate","rowData","textOutputPath","onModelChanged","appendToBody","replaceSessionVariables","string","mergeArray","fromArray","toArray","assignJunctionMeta","junctionMeta","isFirstTimeLoad","relationship","refreshChoices","searchField","filters","preventCancel","allowInsert","addNewItem","allowClear","defaultIndex","onSelect","unwatch","sourceModel","referenceModel","sourceModelName","sourceId","sourceKey","getMany","inq","$item","newItem","textValue","obj","onRemove","trigger","repeatExpression","selectedList","insertText","$sce","videoUrl","trustAsResourceUrl","fontsList","fonts","initWysiwygEditor","instances","instanceIdx","$wysiwyg","editorId","toolbarId","$toolbar","wysiwyg","toolbarSelector","hotKeys","dragAndDropImages","initColorPicker","$colorPicker","spectrum","flat","cancelText","clickoutFiresChange","preferredFormat","showInput","change","closest","toHexString","execCommand","toggleDropdown","$element","currentTarget","allowImageUpload","uploadFile","imagePath","toggleCodeEdit","isEditingCode","htmlCode","innerHTML","html_beautify","indent_size","codeEditor","$viewValue","ace","getSession","setMode","each","overlay","left","$render","number","NaN","localeMap","aar","abk","afr","aka","alb","amh","ara","arg","arm","asm","ava","ave","aym","aze","bak","bam","baq","bel","ben","bih","bis","bod","bos","bre","bul","bur","cat","ces","cha","che","chi","chu","chv","cor","cos","cre","cym","cze","dan","deu","div","dut","dzo","ell","eng","epo","est","eus","ewe","fao","fas","fij","fin","fra","fre","fry","ful","geo","ger","gla","gle","glg","glv","gre","grn","guj","hat","hau","heb","her","hin","hmo","hrv","hun","hye","ibo","ice","ido","iii","iku","ile","ina","ind","ipk","isl","ita","jav","jpn","kal","kan","kas","kat","kau","kaz","khm","kik","kin","kir","kom","kon","kor","kua","kur","lao","lav","lim","lin","lit","ltz","lub","lug","mac","mah","mal","mao","mar","may","mkd","mlg","mlt","mon","mri","msa","mya","nau","nbl","nde","ndo","nep","nld","nno","nob","nor","nya","oci","oji","ori","orm","oss","pan","per","pli","pol","por","pus","que","roh","ron","rum","rus","sag","san","sin","slk","slo","slv","sme","smo","sna","snd","som","sot","spa","sqi","srd","srp","ssw","sun","swa","swe","tah","tam","tat","tel","tgk","tgl","tha","tib","tir","ton","tsn","tso","tuk","tur","twi","uig","ukr","urd","uzb","ven","vie","vol","wel","wln","wol","xho","yid","yor","zha","zho","zul","KEY_DELIMITER","localStorage","getItem","setItem","regex","RegExp","_roles","_nav","fromJson","isEmpty","restrictMenuItems","navList","hidden","menus","menu","hasAccess","subItems","subNavIndex","$upload","Utils","getS3Credentials","fileType","isRegistrySurvey","getTime","apiHelper","cmsBaseUrl","getFileUploadData","credentials","uniqueFilePath","AWSAccessKeyId","acl","policy","success_action_status","Cache-Control","String","detectMimeTypeByExt","upload","uploadUrl","method","notify","success","locationUrl","xmldoc","DOMParser","parseFromString","evaluate","XPathResult","STRING_TYPE","stringValue","documentElement","childNodes","node","firstChild","nodeValue","reject","uploadFilePath","uploadImages","imageFiles","fileIndex","exportIndex","imageUploadResults","fileKey","currentUploadedSize","totalUploadSize","imageFile","fileKeys","exports","exportKeys","fkey","ekey","ext","pop","3dm","3dmf","aab","aam","aas","abc","acgi","afl","ai","aif","aifc","aiff","aim","aip","ani","aos","aps","arc","arj","art","asf","asp","asx","au","avi","avs","bcpio","bin","bm","bmp","boo","book","boz","bsh","bz","bz2","c","c++","cc","ccad","cco","cdf","cer","chat","class","com","conf","cpio","cpp","cpt","crl","crt","csh","cxx","dcr","deepv","def","der","dif","dir","dl","doc","dot","dp","drw","dump","dv","dvi","dwf","dwg","dxf","dxr","el","elc","env","eps","es","etx","evy","exe","f","f77","f90","fdf","fif","fli","flo","flx","fmf","for","fpx","frl","funk","g","g3","gif","gl","gsd","gsm","gsp","gss","gtar","gz","gzip","h","hdf","help","hgl","hh","hlb","hlp","hpg","hpgl","hqx","hta","htc","htm","htmls","htt","htx","ico","idc","ief","iefs","iges","igs","ima","imap","inf","ins","ip","isu","it","iv","ivr","ivy","jam","java","jcm","jfif","jfif-tbnl","jpe","jpeg","jpg","jps","js","jut","kar","ksh","la","lam","latex","lha","lhx","lma","lsp","lst","lsx","ltx","lzh","lzx","m","m1v","m2a","m2v","m3u","man","mbd","mc$","mcd","mcf","mcp","me","mht","mhtml","mid","midi","mif","mime","mjf","mjpg","mm","mme","mod","moov","mov","movie","mp2","mp3","mpa","mpc","mpe","mpeg","mpg","mpga","mpp","mpt","mpv","mpx","mrc","ms","mv","my","mzz","nap","naplps","nc","ncm","nif","niff","nix","nsc","nvd","o","oda","omc","omcd","omcr","p","p10","p12","p7a","p7c","p7m","p7r","p7s","part","pas","pbm","pcl","pct","pcx","pdb","pdf","pfunk","pgm","pic","pict","pkg","pko","pl","plx","pm","pm4","pm5","png","pnm","pot","pov","ppa","ppm","pps","ppt","ppz","pre","prt","ps","psd","pvu","pwz","py","pyc","qcp","qd3","qd3d","qif","qt","qtc","qti","qtif","ra","ram","ras","rast","rexx","rf","rgb","rm","rmi","rmm","rmp","rng","rnx","roff","rp","rpm","rt","rtf","rtx","rv","s","s3m","saveme","sbk","scm","sdml","sdp","sdr","sea","sgm","sgml","sh","shar","shtml","sid","sit","skd","skm","skp","skt","sl","smi","smil","sol","spc","spl","spr","sprite","ssi","ssm","sst","step","stl","stp","sv4cpio","sv4crc","svf","svr","swf","t","talk","tar","tbk","tcl","tcsh","tex","texi","texinfo","tgz","tif","tiff","tr","tsi","tsp","tsv","turbot","txt","uil","uni","unis","unv","uri","uris","ustar","uu","uue","vcd","vcs","vda","vdo","vew","viv","vivo","vmd","vmf","voc","vos","vox","vqe","vqf","vql","vrml","vrt","vsd","vst","vsw","w60","w61","w6w","wav","wb1","wbmp","web","wiz","wk1","wmf","wml","wmlc","wmls","wmlsc","word","wp","wp5","wp6","wpd","wq1","wri","wrl","wrz","wsc","wsrc","wtk","xbm","xdr","xgz","xif","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xls","xlt","xlv","xlw","xm","xml","xmz","xpix","xpm","x-png","xsr","xwd","xyz","z","zip","zoo","zsh","apiCancel","newKey","sortData","post","__model","__id","__accessToken","modelDef","uploadFiles","nextFile","assignImageFileMetaData","fieldKey","mediaRelationshipModel","j","fileInfo","meta","metaKeys","metaKey","__ModelFieldImageChangeCount","forceDefaultOnSave","json","validateRequiredFields","invalids","loadImageURI","EXIF","getData","exif","context","orientation","getTag","aspect","setOrientation","restore","rotate","PI","d","geolocation","getCurrentPosition","coords","$cookieStore","authModel","setSession","accessToken","startsWith","found","ctrlRoles","sessionStr","apiRequests","canceller","dataCopy","timeout","headers","Authorization","swap","args","ret","old","style","apply"],"mappings":"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ACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPpV,IAAO,KACPqV,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPv7B,IAAO,KACPw7B,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACP1jC,IAAO,KACP2jC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KAC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","file":"app.js"} \ No newline at end of file +{"version":3,"sources":["app.js"],"names":["angular","module","config","$locationProvider","$stateProvider","$urlRouterProvider","$compileProvider","$qProvider","$translateProvider","Config","aHrefSanitizationWhitelist","otherwise","serverParams","disableRegistration","when","html5Mode","useSanitizeValueStrategy","translateUrl","useUrlLoader","defaultLanguage","fallbackLanguage","state","abstract","template","url","data","pageTitle","deferIntercept","run","$ocLazyLoad","$rootScope","$urlRouter","$injector","$translate","use","refresh","modulesLoaded","customModules","load","then","$broadcast","Array","isArray","injectOnStart","forEach","get","error","console","log","$on","e","sync","listener","constant","TIMEOUT_INTERVAL","PUBLIC_STATE","LOGIN_STATE","controller","$scope","$location","$state","$timeout","$document","$cookies","SessionService","CacheService","constants","gaTrackingId","ga","event","toState","toParams","fromState","fromParams","toStateName","name","substr","indexOf","getAuthToken","desiredState","params","set","loginState","go","preventDefault","isAuthorized","isDefined","logOut","reset","result","catch","lastPersistDate","Date","persistSession","cancel","persistId","current","checkTimeout","put","timeoutId","lastActiveDate","sessionTimeout","host","on","$uibModalInstance","closeAlert","close","okAlert","okHandler","cancelAlert","cancelHandler","isConfirm","alertType","templateUrl","$stateParams","$uibModal","DashboardService","self","this","init","toggleSideMenu","hideSideMenu","editProfile","logout","locationPath","path","username","email","userId","userInfo","JSON","parse","user","roles","title","nav","getNavigation","defaultNav","getDefaultNav","copy","route","$watch","modalInstance","$dashboard","$","hasClass","removeClass","addClass","$event","action","options","model","profileModel","key","profileKey","id","hideDelete","open","size","scope","section","_","find","subnav","label","SettingsService","clickSave","keys","save","delete","confirmMessage","defaults","$window","$filter","GeneralModelService","FileUploadService","modelEditConstants","layoutModelDisplay","modelDisplay","display","length","Object","properties","i","push","$emit","callback","saveWithFiles","response","displayError","displayStatus","isPlainObject","translate","msg","instant","message","alert","code","toJson","status","statusMsg","progress","clickSaveModel","clear","returnAfterEdit","history","back","clickDeleteModel","formParams","deleteDialogText","confirm","softDeleteProperty","remove","plural","stringify","hasPermission","displayInfo","property","askIf","userRoles","role","page","models","readonly","languageCode","locale","type","toLowerCase","isLoading","checkDefaultValues","isEdit","translated","saveButtonText","deleteButtonText","transId","$watchCollection","newData","oldData","newValue","oldValue","hasOwnProperty","isEqual","statusLabel","ModelListCtrl","moment","columnCount","list","selected","columns","listTemplateUrl","totalServerItems","isEditing","searchFields","sort","sortInfo","fields","directions","filterOptions","filterText","useExternalFilter","pagingOptions","pageSizes","pageSize","currentPage","toString","index","slice","gridOptions","enableColumnResize","enableRowSelection","multiSelect","enablePaging","useExternalSorting","showSelectionCheckbox","showFooter","showFilter","headerRowHeight","footerRowHeight","selectedItems","rowHeight","column","visibility","updateColumnVisibility","gridContainerTopMargin","chart","gridContainerTopMarginMax","height","processChart","window","ngGrid","i18n","ngTotalItemsLabel","ngPageSizeLabel","getColumnDefinition","columnDefs","editable","enableCellEdit","enableCellEditOnFocus","enableCellSelection","api","apiPath","origApiPath","addQueryStringParams","getTotalServerItems","$grid","element","bind","processWindowSize","startEdit","resetPaging","test","navigator","userAgent","flexibleHeight","plugins","ngGridFlexibleHeightPlugin","allowCSVExport","ngGridCsvExportPlugin","strings","cancelButtonText","cancelButton","saveButton","removeSelectedItems","findIndex","field","visible","isChecked","selectAll","columnRef","isRoleFound","r","splice","windowWidth","innerWidth","averageColumnWidth","filter","optional","queryStringParams","search","replace","session","searchString","startPos","endPos","sessionKey","substring","eval","filterDescription","parseInt","extend","warn","setupPagination","limit","skip","order","direction","filter[limit]","filter[skip]","sortOrder","filter[order]","queryStringParamsToJSON","where","and","v","k","item","orFilter","or","idx","searchFilter","vAxis","hAxis","textStyle","gridlines","fontSize","color","baselineColor","oldList","endEdit","undefined","loadItems","isFirstLoad","clickSelectAll","clickItemCheckbox","selectedItem","count","loadAttempted","errorMessage","cacheKey","getKeyForAction","resultField","hasButtonPermission","button","clickListButton","click","value","lastIndexOf","clickAdd","clickSaveEdit","deltaList","newRow","oldRow","rowKeys","foreceDefaultOnSave","evalDefault","required","displayName","recordIndex","saveRecord","record","saveNextRecord","clickCancelEdit","deleteRowWithMessage","row","deleteRow","bypassPrompt","entity","rowIndex","newVal","oldVal","selectedState","stateName","stateModel","stateAction","stateId","debounce","$apply","ngGridUnWatch","$viewport","$footerPanel","$listContainer","rebuildTimeout","rebuildGrid","$gridServices","DomUtilityService","RebuildGrid","$gridScope","handleScrollEvent","originalEvent","detail","wheelDelta","scrollY","scrollTop","clearTimeout","setTimeout","offset","top","$digest","css","bottom","position","val","encodeURIComponent","filterNav","currentNavIndex","modifiedNav","jsonEditor","alertTitle","alertMessage","allowAlertClose","getEditor","getValue","saveNav","document","getElementById","theme","iconlib","layout","startval","disable_properties","disable_edit_json","disable_delete_all","disable_delete_last","schema","format","disable_collapse","items","headerTemplate","icon","collapsed","className","enum","tite","sortField","description","width","headerClass","cellClass","cellTemplate","cellFilter","minWidth","maxWidth","sortable","resizable","defaultProperties","defaultSubNavIndex","watch","enumSource","source","JSONEditor","parent","temp","setValue","a","b","moveUp","from","to","moveDown","edit","onEdit","saveSort","newOrder","unshift","modalTitle","login","clickLogin","logIn","password","UserService","register","apiBaseUrl","directive","require","restrict","control","ngFormat","ngTimeZone","defaultDate","viewMode","ngViewMode","horizontal","maxDate","minDate","onChange","dataKey","link","elem","attrs","ngModel","$formatters","date","tz","useCurrent","toDate","widgetPositioning","datetimepicker","show","focus","dateValue","isValid","$setViewValue","$compile","getTemplate","html","contents","ngOptions","ngRepeat","addInputAttributes","inputAttr","$input","attr","ngError","ngEditReason","initFieldError","onFieldError","initFieldType","hasDataChanged","charsLeft","maxLength","lengthCheck","target","Error","errorCode","isRequired","getEditReason","filename","file","extension","defaultValueUsingModelKey","convertToLocalTime","check","default","editTemplate","pattern","modelData","disabled","ngBlur","makeReadable","string","replaceAt","toUpperCase","initOptions","split","keyOverride","valueOverride","option","multiSelectOptions","initData","output","clickMultiSelectCheckbox","selectedOption","selectAllChange","String","prototype","replacement","preventCancel","trialId","isQualifyingProject","qualifyingStatusApi","trialApi","ngChange","drawNewImage","signature","fromDataURL","image","Image","setAttribute","onload","_canvas","getContext","drawImage","fileUrl","src","toDataURL","dataUrl","canvas","clearRect","clearCanvas","changed","selectFileButtonText","clearButtonText","translationBtnKeys","previewUrl","pos","signPos","s3Path","getFileIcon","onFileSelect","$files","selectedFile","isSkipConfirm","isSkipEditReason","nodeName","off","ImageService","formController","uploadStatus","isDisplayOnly","thumbnailUrl","imageUrl","fileReader","urlKey","onerror","readAsDataURL","FileReader","imageData","__ModelFieldImageData","$setDirty","fixOrientationWithDataURI","dataURI","dataURItoBlob","export","exportImages","resize","resizeImage","blob","isAllowed","extensions","match","join","arguments","exportKey","settings","byteString","atob","unescape","mimeString","ia","Uint8Array","charCodeAt","Blob","imageClick","isLightbox","isLightboxWithZoom","$modal","$container","append","scale","Math","min","background","backgroundSize","$thumbnail","$zoom","thumbnailWidth","thumbnailHeight","zoomWidth","zoomHeight","border","x","y","positionImage","offsetX","offsetY","pageX","pageY","backgroundPosition","maxScale","animate","backgroundColor","opacity","$imageContainer","addLabel","sortableOptions","placeholder","update","updateData","setData","addItem","removeItem","results","$q","LocationService","loadScript","deferred","defer","resolve","promise","googleMapsApiJS","createElement","getElementsByTagName","appendChild","initMap","isMapLoading","isLoaded","map","google","maps","Map","center","location","zoom","initialize","initSelectedMarker","selectedMarker","LatLng","lat","lng","setPosition","setMap","setCenter","Marker","MarkerImage","Size","Point","draggable","tooltip","addListener","geocoder","originalValue","geocodeSearch","geocodeError","showGeocode","Geocoder","allowGeocode","query","currentLocation","pointLocation","latitude","longitude","valueChanged","doGeocode","geocode","address","GeocoderStatus","OK","geometry","OVER_QUERY_LIMIT","ZERO_RESULTS","clearSearch","hasSearched","revertValue","checkNumber","cursorPosition","selection","range","createRange","moveStart","text","selectionStart","indexOfDecimal","valueComponents","scaleValue","validateAndParseNumbers","validity","badInput","allowDecimal","decimalString","isNaN","minValue","isFirstDecLarger","maxValue","round","roundedValue","parseFloat","dec1","dec2","dec1Components","dec2Components","areBothPositive","max","charAt","$http","googleApiKey","convertStringToGoogleTypeFormat","str","request","initQuery","jQuery","radius","places","PlacesService","textSearch","PlacesServiceStatus","createMarkers","boundaries","clearOverlays","markers","removeMarkers","createCircle","displayMarkers","listSearchResults","infowindow","searchResults","marker","markerLocation","getPosition","setContent","getClickedMarker","circle","Circle","fillOpacity","fillColor","bounds","LatLngBounds","spherical","computeDistanceBetween","displayedMarkers","fitBounds","searchError","displayedSearchResults","placeId","perviouslySavedLatLng","requestQuery","placeType","googleType","zipCode","InfoWindow","doSearch","reverseGeocode","coordinates","resultPlaceId","place_id","getAdditionPlaceInformation","checked","getSelectResultData","placeRequest","service","getDetails","place","address_components","types","short_name","phoneNumber","formatted_phone_number","formatted_address","updateInfoWindow","checkedLocation","updateSelection","selectedIdx","multiple","matchTemplate","choiceTemplate","rowData","textOutputPath","onModelChanged","appendToBody","replaceSessionVariables","mergeArray","fromArray","toArray","assignJunctionMeta","junctionMeta","isFirstTimeLoad","relationship","refreshChoices","searchField","filters","allowInsert","addNewItem","allowClear","defaultIndex","onSelect","unwatch","sourceModel","referenceModel","sourceModelName","sourceId","sourceKey","getMany","inq","$item","newItem","textValue","obj","onRemove","trigger","repeatExpression","selectedList","insertText","values","$sce","videoUrl","trustAsResourceUrl","fontsList","fonts","initWysiwygEditor","instances","instanceIdx","$wysiwyg","editorId","toolbarId","$toolbar","wysiwyg","toolbarSelector","hotKeys","dragAndDropImages","initColorPicker","$colorPicker","spectrum","flat","cancelText","clickoutFiresChange","preferredFormat","showInput","change","closest","toHexString","execCommand","toggleDropdown","$element","currentTarget","allowImageUpload","uploadFile","imagePath","toggleCodeEdit","isEditingCode","htmlCode","innerHTML","html_beautify","indent_size","codeEditor","$viewValue","ace","getSession","setMode","each","overlay","left","$render","number","NaN","localeMap","aar","abk","afr","aka","alb","amh","ara","arg","arm","asm","ava","ave","aym","aze","bak","bam","baq","bel","ben","bih","bis","bod","bos","bre","bul","bur","cat","ces","cha","che","chi","chu","chv","cor","cos","cre","cym","cze","dan","deu","div","dut","dzo","ell","eng","epo","est","eus","ewe","fao","fas","fij","fin","fra","fre","fry","ful","geo","ger","gla","gle","glg","glv","gre","grn","guj","hat","hau","heb","her","hin","hmo","hrv","hun","hye","ibo","ice","ido","iii","iku","ile","ina","ind","ipk","isl","ita","jav","jpn","kal","kan","kas","kat","kau","kaz","khm","kik","kin","kir","kom","kon","kor","kua","kur","lao","lav","lim","lin","lit","ltz","lub","lug","mac","mah","mal","mao","mar","may","mkd","mlg","mlt","mon","mri","msa","mya","nau","nbl","nde","ndo","nep","nld","nno","nob","nor","nya","oci","oji","ori","orm","oss","pan","per","pli","pol","por","pus","que","roh","ron","rum","rus","sag","san","sin","slk","slo","slv","sme","smo","sna","snd","som","sot","spa","sqi","srd","srp","ssw","sun","swa","swe","tah","tam","tat","tel","tgk","tgl","tha","tib","tir","ton","tsn","tso","tuk","tur","twi","uig","ukr","urd","uzb","ven","vie","vol","wel","wln","wol","xho","yid","yor","zha","zho","zul","KEY_DELIMITER","localStorage","getItem","setItem","regex","RegExp","_roles","_nav","fromJson","isEmpty","restrictMenuItems","navList","hidden","menus","menu","hasAccess","subItems","subNavIndex","$upload","Utils","getS3Credentials","fileType","isRegistrySurvey","getTime","apiHelper","cmsBaseUrl","getFileUploadData","credentials","uniqueFilePath","AWSAccessKeyId","acl","policy","success_action_status","Cache-Control","detectMimeTypeByExt","upload","uploadUrl","method","notify","success","locationUrl","xmldoc","DOMParser","parseFromString","evaluate","XPathResult","STRING_TYPE","stringValue","documentElement","childNodes","node","firstChild","nodeValue","reject","uploadFilePath","uploadImages","imageFiles","fileIndex","exportIndex","imageUploadResults","fileKey","currentUploadedSize","totalUploadSize","imageFile","fileKeys","exports","exportKeys","fkey","ekey","ext","pop","3dm","3dmf","aab","aam","aas","abc","acgi","afl","ai","aif","aifc","aiff","aim","aip","ani","aos","aps","arc","arj","art","asf","asp","asx","au","avi","avs","bcpio","bin","bm","bmp","boo","book","boz","bsh","bz","bz2","c","c++","cc","ccad","cco","cdf","cer","chat","class","com","conf","cpio","cpp","cpt","crl","crt","csh","cxx","dcr","deepv","def","der","dif","dir","dl","doc","dot","dp","drw","dump","dv","dvi","dwf","dwg","dxf","dxr","el","elc","env","eps","es","etx","evy","exe","f","f77","f90","fdf","fif","fli","flo","flx","fmf","for","fpx","frl","funk","g","g3","gif","gl","gsd","gsm","gsp","gss","gtar","gz","gzip","h","hdf","help","hgl","hh","hlb","hlp","hpg","hpgl","hqx","hta","htc","htm","htmls","htt","htx","ico","idc","ief","iefs","iges","igs","ima","imap","inf","ins","ip","isu","it","iv","ivr","ivy","jam","java","jcm","jfif","jfif-tbnl","jpe","jpeg","jpg","jps","js","jut","kar","ksh","la","lam","latex","lha","lhx","lma","lsp","lst","lsx","ltx","lzh","lzx","m","m1v","m2a","m2v","m3u","man","mbd","mc$","mcd","mcf","mcp","me","mht","mhtml","mid","midi","mif","mime","mjf","mjpg","mm","mme","mod","moov","mov","movie","mp2","mp3","mpa","mpc","mpe","mpeg","mpg","mpga","mpp","mpt","mpv","mpx","mrc","ms","mv","my","mzz","nap","naplps","nc","ncm","nif","niff","nix","nsc","nvd","o","oda","omc","omcd","omcr","p","p10","p12","p7a","p7c","p7m","p7r","p7s","part","pas","pbm","pcl","pct","pcx","pdb","pdf","pfunk","pgm","pic","pict","pkg","pko","pl","plx","pm","pm4","pm5","png","pnm","pot","pov","ppa","ppm","pps","ppt","ppz","pre","prt","ps","psd","pvu","pwz","py","pyc","qcp","qd3","qd3d","qif","qt","qtc","qti","qtif","ra","ram","ras","rast","rexx","rf","rgb","rm","rmi","rmm","rmp","rng","rnx","roff","rp","rpm","rt","rtf","rtx","rv","s","s3m","saveme","sbk","scm","sdml","sdp","sdr","sea","sgm","sgml","sh","shar","shtml","sid","sit","skd","skm","skp","skt","sl","smi","smil","sol","spc","spl","spr","sprite","ssi","ssm","sst","step","stl","stp","sv4cpio","sv4crc","svf","svr","swf","t","talk","tar","tbk","tcl","tcsh","tex","texi","texinfo","tgz","tif","tiff","tr","tsi","tsp","tsv","turbot","txt","uil","uni","unis","unv","uri","uris","ustar","uu","uue","vcd","vcs","vda","vdo","vew","viv","vivo","vmd","vmf","voc","vos","vox","vqe","vqf","vql","vrml","vrt","vsd","vst","vsw","w60","w61","w6w","wav","wb1","wbmp","web","wiz","wk1","wmf","wml","wmlc","wmls","wmlsc","word","wp","wp5","wp6","wpd","wq1","wri","wrl","wrz","wsc","wsrc","wtk","xbm","xdr","xgz","xif","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xls","xlt","xlv","xlw","xm","xml","xmz","xpix","xpm","x-png","xsr","xwd","xyz","z","zip","zoo","zsh","apiCancel","newKey","sortData","post","__model","__id","__accessToken","modelDef","uploadFiles","nextFile","assignImageFileMetaData","fieldKey","mediaRelationshipModel","j","fileInfo","meta","metaKeys","metaKey","__ModelFieldImageChangeCount","forceDefaultOnSave","json","validateRequiredFields","invalids","loadImageURI","EXIF","getData","exif","context","orientation","getTag","aspect","setOrientation","restore","rotate","PI","d","geolocation","getCurrentPosition","coords","$cookieStore","authModel","setSession","accessToken","startsWith","found","ctrlRoles","sessionStr","apiRequests","canceller","dataCopy","timeout","headers","Authorization","swap","args","ret","old","style","apply"],"mappings":"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,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACP1U,IAAO,KACP2U,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPn8B,IAAO,KACPo8B,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPtkC,IAAO,KACPukC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,IAAO,KACPC,I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","file":"app.js"} \ No newline at end of file diff --git a/dist/vendor.js b/dist/vendor.js index a245bbc2..d554dcb8 100644 --- a/dist/vendor.js +++ b/dist/vendor.js @@ -1,5 +1,5 @@ /** - * isbx-loopback-cms - v0.1.3 - 2018-02-21 + * isbx-loopback-cms - v0.1.3 - 2018-02-27 * * * Copyright (c) 2018 ISBX