{"version":3,"sources":["webpack:///sharebase.b198df.min.js","webpack:///./app/sharebase.js","webpack:///./~/sharebase-bundle/sharebase.js"],"names":["webpackJsonp","0","module","exports","__webpack_require__","59","208","modules","moduleId","installedModules","id","loaded","call","m","c","p","angular","constant","login_1","Object","defineProperty","value","default","name","login_component_1","AuthService","$http","$q","settingsService","pxLocalStorageService","authenticate","emailAddress","password","rememberMe","isString","length","Error","httpConfig","headers","Authorization","config","b64","btoa","skipAuth","get","serverAPIPath","then","response","tokenIsValid","storeToken","data","getDisplayName","_authToken","UserName","getSystemName","SystemName","getToken","Token","getTokenFromStorage","authToken","getStoredValue","authTokenObj","JSON","parse","isObject","getUserStatistics","resolve","uri","Embedded","User","Links","StatisticsUri","stats","forEach","item","Id","Label","Count","_userStats","invalidateLogin","_verifiedToken","removeStoredValue","resetPassword","newPassword","post","NewPassword","requestPasswordReset","email","serverWebPath","serverPath","encodeURIComponent","setStoredValue","stringify","isDefined","updateExpiredPassword","oldPassword","resetData","EmailAddress","OldPassword","validateAuthToken","_touchInProgress","finally","createPrivs","privList","reduce","privs","priv","split","section","sectionName","i","sectionsArr","charAt","toLowerCase","slice","isLastSection","create","registerDeployment","userName","userInfo","Password","validatePassword","checkPass","res","_privileges","token","displayName","systemName","userId","UserId","deploymentId","DeploymentId","deploymentGroupId","DeploymentGroupId","userStatistics","isSysAdmin","IsSysAdmin","isSiteAdmin","Roles","indexOf","isUserAdmin","isTenantAdmin","isAdmin","this","isAuthenticated","validToken","privileges","Privileges","factory","authInterceptor","$location","$injector","requestFn","setAuthService","pxAuthService","responseErrorFn","rejection","status","path","_redirectUrl","reject","redirectPostLogin","redirect","url","request","responseError","LoginDirective","pxProgressService","restrict","transclude","headerIcon","controller","controllerAs","templateUrl","bindToController","scope","title","link","element","attrs","visible","backdrop","LoginController","pxAuthInterceptor","vm","sharedObjects","message","parentRoute","directive","run","$rootScope","$window","$on","evt","to","parent","preventDefault","location","reload","$stateProvider","login","params","errorMessage","template","state","copy","$state","$stateParams","go","auth","html","window","put","LoginExpiredPasswordDirective","LoginExpiredPasswordController","$timeout","gettextCatalog","updatePassword","expiredPasswordForm","$valid","confirmPassword","getString","text","isSubmitting","handleUpdatePasswordResult","result","AuthenticationFailed","$setPristine","$setUntouched","oldPasswordElement","document","getElementById","focus","InvalidPassword","catch","stateLogin","submitting","LoginForgotPasswordDirective","LoginForgotPasswordController","forgotPasswordForm","resetSuccessful","LoginMainDirective","LoginMainController","$filter","loginForm","handleLoginResponse","PasswordExpired","stateForgetPassword","stateForgotPassword","LoginResetPasswordDirective","LoginResetPasswordController","resetPasswordForm","loginRegister","LoginRegisterController","registerTemplate","TOAST_POSITION","TOAST_DELAY","$mdToast","prototype","completeRegistration","_this","loginRegisterForm","Valid","showRegistrationSuccessMessage","show","simple","textContent","position","hideDelay","$inject","AutocompleteClearOnBlurDirective","$interval","require","acCtrl","triggerRemove","removeValue","cancel","trigger","input","val","selectedItem","searchText","readonly","pollingThreshold","start","Date","now","timedOut","interval","find","addEventListener","removeEventListener","AutoFitVirtualRepeatDirective","setHeight","_height","offsetHeight","intOffset","css","$broadcast","resizeHeight","overflow-y","transition-duration","_timeout","offset","attr","parseInt","querySelectorAll","hasAttribute","$watch","count","virtualCount","ContenteditableDirective","ngModel","read","$setViewValue","$render","$viewValue","bind","$apply","ChipsAddOnBlurDirective","chipsCtrl","ChipsDisableDeleteKeyDirective","disableDeleteKeys","event","key","keyCode","charCode","DebounceImageDirective","loadImage","tagName","pxDebounceImage","style","backgroundImage","$observe","newVal","ScrollViewerDirective","$mdUtil","ScrollViewerController","pages","fileName","fitSize","mode","closePreview","updatePageSize","newHeight","querySelector","clientHeight","pageSize","height","rowHeight","resizing","reCalcVirtual","$parent","debounce","clientWidth","pageCountTimer","showPageCount","_interval","sizer","VirtualizeTileViewDirective","$mdMedia","pxGroupItemsService","VirtualizeTileContainerController","rawitems","click","select","calcVirtualGroups","TILE_WIDTH","newTilePerLine","containerWidth","container","getClosest","Math","floor","VirtualTileCtrl","tilePerLine","virtualizeItems","groupedItems","groupItems","margin","innerWidth","width","$watchCollection","oldVal","self","itemClick","$event","itemSelect","toggleSelected","selected","itemSelected","LongClickDirective","EnvironmentService","$scope","$elm","$attrs","timer","disableClick","$eval","pxOnLongClick","_mdListTargeted","removeAttr","end","stopImmediatePropagation","stopPropagation","retargetElement","elm","_startEvent","_endEvent","touchEnabled","unbind","ControlClickDirective","ctrlKey","pxOnControlClick","ItemSizeFilter","bytes","unitIndex","log","unit","SIZES","pow","toFixed","filter","tokenKeyValueFilter","str","searchToken","retVal","tokenRegex","RegExp","replace","capture","parts","tokenStringFilter","callback","attrPart","attrName","attrValue","stringValue","originalStringValue","UsersFilter","users","matchText","user","appIDInterceptorProvider","setAppId","appId","getInterceptor","appIDInterceptorFactory","$get","addIdToRequest","APP_IDENTIFIER_HEADER","provider","AclFactory","ObjectType","RightsType","PermissionType","Rights","AclConst","RightsOptions","ObjectTypeMappings","Acl","srvData","_itemType","_userName","_isGroup","sourceName","sourceId","sourceObjectType","UNDEFINED","isInherited","allowPerms","isLinkAcl","isOwnerAcl","rightId","elementId","type","isGroup","generateUniqueId","AuthToken","ReferenceString","FolderName","FOLDER","DOCUMENT","Permissions","updatePermissions","FolderACLId","LibraryACLId","LIBRARY","DocumentACLId","UserGroupId","UserGroupName","SourceFolderId","SourceFolderName","SourceLibraryId","SourceLibraryName","perm","PermissionValue","FULLCONTROL","Allow","Deny","principalId","hasRight","right","sourceString","canModify","hasPermission","MODIFY","canRead","READ","canDownload","DOWNLOAD","canUpload","ADDDOC","canShareByLink","SHLINK","SHLINKR","hasAllPermissions","perms","defaultType","defaultPerms","arguments","isModifiedRight","allowAdvancedSettings","EDIT","UPLOADONLY","VIEW","NOACCESS","getServerAcl","newAcl","RoleName","permissionValue","MaxPermission","newPerm","push","setPermissions","options","isArray","newPerms","opts","opt","permissions","apply","getOptions","k","option","mask","nm","getAvailableRights","rights","allowRight","getAvailableLinkRights","objectType","uiOpts","AllSharePerms","getAdvancedOptions","asDict","advOpt","constr","defineProperties","rightName","args","Array","unshift","Function","generateForEntity","entity","isAcl","obj","toRoleNameFromId","roleId","rid","toString","toTypeNameFromId","typeId","DELETE","READDOC","MODDOC","DELDOC","ADDFOLD","READFOLD","MODFOLD","DELFOLD","LISTFOLD","SHARE","SHDOC","SHLKDOC","SHLKRDOC","DNLDDOC","SHFOLD","SHLKFOLD","SHLKRFOLD","DNLDFOLD","AuthRequired","PasswordRequired","SingleUse","PinRequired","EditRightsOptions","ViewRightsOptions","UploadOnlyRightsOptions","ClipboardService","init","selector","instance","Clipboard","body","textarea","opacity","append","execCommand","e","remove","clipboard","getTouchSetting","navigator","MaxTouchPoints","msMaxTouchPoints","getBrowser","userAgent","loadLanguages","language","useLangFile","legalLanguage","isIE","GroupItemsFactory","items","itemsInGroup","rowCount","ceil","tempitems","grouped","x","tiles","splice","localStorageService","getLocalStorage","localStorage","setItem","removeItem","NullLocalStorage","getItem","_localStorage","ProgressService","target","UriPathService","resolvePath","system","service","keys","regex","SettingFactory","phoenix","$phoenix","serverPaths","apiPath","webPath","adminPath","serverLegalPath","legalPath","serverHelpPath","helpPath","helpForumPath","desktopPollInterval","desktopPorts","maxFileSize","EMAIL_REGEXP","ctrl","$validators","emaillist","modelValue","viewValue","$isEmpty","emails","ii","trim","test","shareService_1","deploymentNameService_1","defaultErrorMessages_1","ShareService","DeploymentNameService","__extends","d","b","__","constructor","hasOwnProperty","aclService","uriPathService","configure","getShares","shareableService","getExistingShares","guard","getPermissions","shares","principal","map","prinicpal","toShare","createShare","itemId","entities","createShares","allShares","existingShares","newShares","existingShare","newShare","isDuplicate","concat","acls","share","savePermissions","updateShare","updatedShare","shareData","updatedShares","toServerJson","deleteShare","deletedShare","remainingShares","getCurrentUserAcl","getPermissionsForCurrentUser","getRights","sharer","objType","isNumber","sharerAcl","acl","targetAcl","inherited","resp","propsToCamel","ShareServiceConfigError","isFunction","valType","isPrimitive","chars","join","_super","stack","sbDeploymentService","deploymentSystemNamesCache","resolveSystemName","updateCache","getDetails","deployment","deploymentSystemName","errorMessages_component_1","defaultErrorMessages","DefaultErrorMessagesController","controllers","$templateRequest","errorMessagesTemplate","$compile","contents","after","DeleteDialogController","$mdDialog","content","DocumentId","DocumentName","permanentlyDelete","delete","hide","LoaderDirective","ProgressController","ProgressCtlr","marginLeft","rects","getClientRects","left","SearchBoxDirective","SearchController","placeholder","searchType","onFullResults","onSelection","beginFullSearch","searchInput","searchCtlr","loadFullResults","searchTarget","t","setInterval","clearInterval","clearSearchInput","undefined","blur","searchScrollMask","removeChild","sbSearchService","searchResults","getRecentItems","deferred","defer","getResults","hasMore","results","historyTerm","showMore","promise","selectedItemChange","addSearchHistory","FolderId","folderClicked","itemClicked","term","folder","contentAdd","Type","addItemSelectedHistory","Icon","recentSearchList","getSearchHistory","isLast","selectedHistory","getItemSelectedHistory","hdate","searchTime","yesterday","setDate","getDate","timeLabel","toLocaleTimeString","seconds","getSeconds","selectedItemsJSON","selectedItems","iselectedItem","last","searchesJSON","searches","search","searchService","ShareDialogController","$mdConstant","authService","progressService","usersDataStore","userGroupsDataStore","sbToastService","clipboardService","context","targetStep","aclToEdit","datastore","getTitle","tabIndex","guardFormAction","func","defaultError","invalidShare","f","error","Message","noop","findShareable","list","shareables","shareable","normalizeContext","normalizedContext","LibraryId","LibraryName","setLoading","isLoading","initTasks","getUsers","getUserGroups","Name","DisplayName","Value","DisplayValue","DataType","advancedOptions","shareLink","mdMedia","emailChipSeperators","KEY_CODE","COMMA","SEMICOLON","ENTER","SPACE","availableRights","availableAdvancedOptions","inEditMode","minExpireDate","linkShare","currentRecipients","newRecipients","subject","expireType","securityType","openURL","open","close","createUpdateShare","updateAdvancedOptions","checkAllowFlags","createUpdateLink","copyURL","showSimple","ao","constraint","constraints","cmd","idx","refAo","disabled","all","taskData","userGroups","embedded","linkAuthenticationType","UserShare","View","Create","Edit","LinkShare","ShowLinkURLController","ShareListDirective","inheritedShares","onClick","filterPhrase","sort","newShareAction","newShareMessage","newLinkAction","newLinkMessage","oldShares","a","ShareListController","ev","confirm","ariaLabel","targetEvent","ok","showLinkURL","clickOutsideToClose","locals","links","isLibrary","UserSelect","sbDeploymentNameService","phrase","checkExisting","chip","chipName","loading","deploymentID","includeUsers","includeUsergroups","$onInit","tasks","pop","aName","bName","component","bindings","required","requiredMessage","multiple","UserDataStore","sbUserService","getUser","_newUser","v","_user","_startState","addUser","removeUser","transferUser","forceDelete","updateTenantAdminRights","depGroup","AdministratorOfDeploymentGroups","startDepGroup","rightChanged","equals","removeGroupAdmin","addEditGroupAdmin","updateUser","lockUser","unlockUser","setTenantAdmin","index","setDeploymentGroupAdmin","setSiteAdmin","setUserAdmin","Deployment","DeploymentGroup","deploymentGroupAdmin","UserGroupDataStore","sbUserGroupService","getUserGroup","userGroupId","_userGroup","toGroup","UserGroup","_userGroupPolicy","getUserGroupPolicy","MaxLinkExpirationDays","saveUserGroup","isSystemGroup","updateUserGroup","toServer","addUserGroup","saveUserGroupPolicy","userGroupPolicy","updateUserGroupPolicy","Users","IsSystemGroup","policy","containsUser","contains","userGroup","UserGroupsDataStore","sbUserGroupsService","_userGroups","UsersDataStore","sbUsersService","_users","getPendingUsers","_pendingUsers","pendingUsers","DeletedItemsDataStore","sbDeletedItemsService","loadDeletedItems","_trash","docs","folders","getDeletedItems","deletedItems","delDate","DateDeleted","Document","Folder","load","SimpleDateTimeString","setDayOnly","date","setHours","setMinutes","setSeconds","readableTime","hours","minutes","AMPM","DAYS","MONTHS","dateToFilter","today","weekAgo","time","getHours","getMinutes","getMonth","getFullYear","getDay","DeletedItemsFactory","DeploymentService","createDeployment","dbServer","dbName","dbLocation","fileLocation","normalizeDeploymentData","deploymentsEndpoint","updateDeployment","patch","getSettings","updateSettings","settings","CustomerIdentifier","DatabaseName","DatabaseServer","DatabaseRootPath","DiskgroupRootPath","DisgroupRootPath","sbDocumentDetailService","sbDocumentService","getDocumentDetails","documentId","getDocument","dateCreated","DateCreated","dateModified","DateModified","fileFormat","FileFormat","fileSize","FileSize","owner","Owner","getActivities","getComments","getVersions","getSharedLinks","getSharedUsers","DocumentFactory","pxUriPathService","deleteDocument","purge","compact","docId","sbFolderDetailService","sbFolderService","getFolderDetails","getFolderActivities","getFolderShares","getFolderPermissions","getFileCount","userShares","permission","activities","linkShares","totalFiles","ActivitiesUri","SharesUri","getDocuments","FolderFactory","sbLibraryService","getRootFolders","getUserLibrary","getFolder","folderId","getSubFolders","ChildFoldersUri","DocumentsUri","hasSubFolders","folderNameExists","folderName","some","child","createFolder","parentFolder","renameFolder","newName","renameJson","Self","moveFolder","source","destination","moveJson","destResource","deleteFolder","LibraryService","getLibraries","selectUsersLibrary","Libraries","libs","userLib","IsPrivate","getLibraryFolders","library","RootFoldersUri","NotificationsFactory","getUnreadNotifications","getNotifications","max","notificationsPromise","unreadPromise","responseList","notifications","unreadNotifications","Unread","deleteAllNotifications","deleteNotification","notification","SelfUri","RecentDocumentsFactory","SearchService","searchPhrase","resultLimit","searchPhraseArr","apiUri","limit","Folders","Documents","doc","HasMore","sbTagService","getTagTypes","getTags","tagTypeId","getDocumentTags","setDocumentTags","tags","removeDocumentTag","tag","deleteTags","AnonymousTags","ToastService","DEFAULT_POSITION","DEFAULT_DELAY","UserGroupService","setDeploymentParam","UserGroupsService","UserService","transferToUser","transferToUserId","transferTarget","adminUser","UsersService","inviteUsers","roles","groups","EmailAddresses","UserGroupIds","ActiveDirectoryDirective","ActiveDirectoryController","sbadminToolbarService","sbadminActiveDirectoryService","syncSecret","generateSecret","generateSyncSecret","secret","secretKeyTemplateUrl","fullscreen","copySecret","actions","showFilter","NewSecretKeyController","isSmall","ApiTokenCreateDirective","ApiTokenCreateController","toolbarService","apiTokenDataStore","userDS","selectedUser","filterUsers","createToken","tokenForm","ApiTokensDirective","filterPlaceholder","ApiTokensController","toastService","apiTokenDS","icon","label","deleteToken","tokenId","copyToken","tokenValue","DeploymentCreateEditDirective","DeploymentCreateEditController","pxClipboardService","sbadminPermissionsService","sbadminDeploymentDataStore","updateSystemName","canEdit","deploymentDS","details","filteredSystemNameInput","submit","creatingNew","copyAPIPath","ApiPath","generateFormAction","fn","onComplete","hadError","successMsg","errorMsg","ExceptionMessage","loadTasks","dep","saveDeployment","reset","err","DeploymentGroupAdminCreateDirective","group","DeploymentGroupAdminCreateController","admin","DeploymentGroupCreateEditDirective","tab","DeploymentGroupCreateEditController","sbadminDeploymentGroupsDataStore","tabSelected","tabName","createUpdateGroup","form","showProgress","deploymentGroup","update","hideProgress","administrators","getDeploymentGroup","getDeploymentGroupAdmins","admins","views","adminContent@administration","DeploymentGroupSelectController","selectedGroup","done","DeploymentHomeDirective","DeploymentHomeController","sbadminDeploymentStatisticsDataStore","loadStats","hasRights","getStatistics","deploymentName","statistics","refreshStats","refreshStatistics","DeploymentsDirective","DeploymentsController","sbadminDeploymentsDataStore","sbadminTenantAdminsDataStore","sbadminPendingDeploymentsDataStore","getAdministrators","pendingDeploymentsDS","deploymentsDS","tenantAdminDS","deploymentGroupsDS","InviteUsersDirective","InviteUsersController","sbUserGroupsDataStore","submitForm","inviteesRaw","selectedUserGroups","queryGroupSearch","filterGroups","canPromoteSiteAdmins","LibrariesDirective","LibrariesController","sbadminLibrariesDataStore","loadLibraries","doneLoading","goToLibrary","libraryId","LibraryDirective","LibraryController","sbadminLibraryDataStore","ShareDialogTabs","createUserShare","generateDialogConfig","editShare","dialogTemplateUrl","libraryDS","saveLibrary","creating","PasswordPoliciesDirective","PasswordPoliciesController","sbadminPasswordPoliciesDataStore","loadPasswordPolicies","getPasswordPolicies","goToPasswordPolicy","passwordPolicyId","passwordPoliciesDS","PasswordPolicyDirective","PasswordPolicyController","sbadminPasswordPolicyDataStore","loadPasswordPolicy","getPasswordPolicy","updateActiveStatus","ppDS","passwordPolicy","Active","activatePasswordPolicy","deactivatePasswordPolicy","save","savePasswordPolicy","DeploymentCreateDirective","pendingDeploymentId","PendingDeploymentController","resend","$dirty","pendingDeployment","resendNotification","actionComplete","showError","saveAndResend","getPendingDeployment","selectedDeployment","StatisticCardDirective","$animate","StatisticCardController","StatisticsDirective","statisticsCtrl","toggleSearch","showSearch","StatisticsController","statIcon","stepIndex","recentStats","statType","chartObject","runDate","favorite","kind","description","$$hashKey","userData","cols","rows","backgroundColor","colors","legend","downloads","lineObject","hAxis","slantedText","slantedTextAngle","vAxis","UserDirective","UserController","sbUserDataStore","updateUserLock","IsLocked","toast","toggleTenantAdmin","adminDeploymentGroup","deploymentGroupTemplateUrl","deleteUser","userDeleteTemplateUrl","deletedUser","submitSuccess","submitFailure","msg","StatusCode","STATUS_CODES","showLoader","hideLoader","VerifyPassword","toastVisible","promotingAsAdmin","ERR_USER_ALREADY_TENANT_ADMIN","UserDeleteDialogController","sbUsersDataStore","querySearch","query","createFilterFor","lowercaseQuery","lowercase","u","combinedUser","UserGroupDirective","UserGroupController","sbUserGroupDataStore","loadUserGroup","userGroupDS","usersDS","expirationSelection","MinLinkAuthenticationType","responses","textCatalog","UserGroupsDirective","UserGroupsController","editGroup","UsersDirective","UsersController","editUser","userID","createUser","userToDelete","removeUserFromList","removedUser","registeredLabel","ActiveDirectoryService","Secret","ApiTokenService","getTokens","expireMeaning","ExpireMeaning","DeploymentGroupsService","createDeploymentGroup","groupName","GroupName","partnerIdentifier","PartnerIdentifier","databaseServer","databaseRootPath","logFileRootPath","LogFileRootPath","diskgroupRootPath","getDeploymentGroups","updateDeploymentGroup","DeploymentsService","getDeployments","Deployments","DeploymentStatisticsService","getDeploymentTotalsUsage","fetchStatistic","LibrariesService","getLibrary","addLibrary","updateLibrary","PasswordPoliciesService","PasswordPolicyService","createPasswordPolicy","updatePasswordPolicy","PasswordPolicyId","deletePasswordPolicy","PendingDeploymentsService","NotificationUri","PermissionsService","_current","depId","belongsToCurrent","isHomed","TenantAdminFactory","createAdministrator","groupID","newUsername","newEmailAddress","addAdministrator","deleteAdministrator","TenantAdminsFactory","AdminToolbarService","_defaultFilterPlaceholder","_title","_filterPhrase","_filterPlaceholder","_showFilter","_view","_breadCrumbs","_actions","viewType","breadCrumbs","ApiTokenDataStore","apiTokenService","loadApiTokens","tokens","_tokens","toDomainObject","ApiTokenId","IssuedDate","expires","ExpirationDate","DeplomentDataStore","deploymentService","loadDeployment","storeDeploymentData","_details","_originalDetails","_settings","diff","CoreRuntimeDeploymentSettings","setting","isDataset","dataType","dataSet","old","updated","diffSet","originalDiffSet","DeploymentGroupsDataStore","sbadminDeploymentGroupsService","filterDeploymentGroupsById","_deploymentGroups","loadDeploymentGroups","_newDeploymentGroup","_deploymentGroupAdmins","deploymentGroups","DeploymentsDataStore","deploymentsService","loadDeployments","deployments","_deployments","DeploymentGroupName","DeploymentStatisticsDataStore","sbadminDeploymentStatisticsService","fetchStatistics","statistic","lastUpdated","updateDataStore","deploymentStatistics","_deploymentsStatistics","LibraryDataStore","sbadminLibrariesService","_libraries","libraries","shareService","libraryService","lib","_library","_newLibrary","guardLibrary","myAcl","assignShares","_shares","PasswordPoliciesDataStore","sbadminPasswordPoliciesService","_passwordPolicies","PasswordPolicies","passwordPolicies","PasswordPolicyDataStore","sbadminPasswordPolicyService","resetProperties","_passwordPolicy","_newPasswordPolicy","_enforceIdle","_enforceFailure","_expire","_requireWait","IdleLimit","FailedLoginLimit","AutoRelease","LockoutLength","ReuseStyle","ReuseChangesLimit","ReuseDaysLimit","HoursBetweenChanges","ExpiryDays","AlphaQuota","NumericQuota","SpecialQuota","UppercaseQuota","LowercaseQuota","RequiredQuotaMatch","MaxRepeatedChars","MinLength","requireWait","expire","enforceFailure","enforceIdle","PendingDeploymentsDataStore","sbadminPendingDeploymentsService","filterDeploymentsById","PendingDeploymentRegistrationId","loadPendingDeployments","TenantAdminDataStore","sbadminTenantAdminService","getAdministrator","_administrator","username","administrator","TenantAdminsDataStore","sbadminTenantAdminsService","_administrators"],"mappings":"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","file":"sharebase.b198df.min.js","sourcesContent":["webpackJsonp([3],{\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(208);\n\t__webpack_require__(59);\n\n/***/ }),\n\n/***/ 59:\n57,\n\n/***/ 208:\n/***/ (function(module, exports) {\n\n\t/******/ (function(modules) { // webpackBootstrap\n\t/******/ \t// The module cache\n\t/******/ \tvar installedModules = {};\n\t\n\t/******/ \t// The require function\n\t/******/ \tfunction __webpack_require__(moduleId) {\n\t\n\t/******/ \t\t// Check if module is in cache\n\t/******/ \t\tif(installedModules[moduleId])\n\t/******/ \t\t\treturn installedModules[moduleId].exports;\n\t\n\t/******/ \t\t// Create a new module (and put it into the cache)\n\t/******/ \t\tvar module = installedModules[moduleId] = {\n\t/******/ \t\t\texports: {},\n\t/******/ \t\t\tid: moduleId,\n\t/******/ \t\t\tloaded: false\n\t/******/ \t\t};\n\t\n\t/******/ \t\t// Execute the module function\n\t/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t/******/ \t\t// Flag the module as loaded\n\t/******/ \t\tmodule.loaded = true;\n\t\n\t/******/ \t\t// Return the exports of the module\n\t/******/ \t\treturn module.exports;\n\t/******/ \t}\n\t\n\t\n\t/******/ \t// expose the modules object (__webpack_modules__)\n\t/******/ \t__webpack_require__.m = modules;\n\t\n\t/******/ \t// expose the module cache\n\t/******/ \t__webpack_require__.c = installedModules;\n\t\n\t/******/ \t// __webpack_public_path__\n\t/******/ \t__webpack_require__.p = \"\";\n\t\n\t/******/ \t// Load entry module and return exports\n\t/******/ \treturn __webpack_require__(0);\n\t/******/ })\n\t/************************************************************************/\n\t/******/ ([\n\t/* 0 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(1);\r\n\t\t__webpack_require__(2);\r\n\t\t__webpack_require__(67);\r\n\t\t__webpack_require__(131);\r\n\t\t__webpack_require__(271);\n\t\n\t/***/ },\n\t/* 1 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular.module('sharebase-config', [])\r\n\t\t\t\t.constant('debugInfoEnabled', false);\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 2 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t\"use strict\";\r\n\t\tvar login_1 = __webpack_require__(3);\r\n\t\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t\texports.default = angular.module('phoenix', [\r\n\t\t 'ngMaterial',\r\n\t\t 'ngMessages',\r\n\t\t 'site.settings',\r\n\t\t 'ui.router',\r\n\t\t login_1.default.name\r\n\t\t]);\r\n\t\t__webpack_require__(22);\r\n\t\t__webpack_require__(49);\r\n\t\t__webpack_require__(54);\r\n\t\t__webpack_require__(56);\r\n\t\t__webpack_require__(65);\r\n\t\n\t\n\t/***/ },\n\t/* 3 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t\"use strict\";\r\n\t\t__webpack_require__(4);\r\n\t\t__webpack_require__(5);\r\n\t\tvar login_component_1 = __webpack_require__(6);\r\n\t\t__webpack_require__(8);\r\n\t\t__webpack_require__(10);\r\n\t\t__webpack_require__(12);\r\n\t\t__webpack_require__(14);\r\n\t\t__webpack_require__(16);\r\n\t\t__webpack_require__(18);\r\n\t\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t\texports.default = login_component_1.default;\r\n\t\n\t\n\t/***/ },\n\t/* 4 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix.authService', [])\r\n\t\t\t\t.factory('pxAuthService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\t'pxLocalStorageService',\r\n\t\t\t\t\tAuthService]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name phoenix.pxAuthService\r\n\t\t\t*\r\n\t\t\t* @description\r\n\t\t\t* A service that handles user authentication and provides information\r\n\t\t\t* about the current authenticated user\r\n\t\t\t*\r\n\t\t\t**/\r\n\t\t\tfunction AuthService($http, $q, settingsService, pxLocalStorageService) {\r\n\t\t\t\tvar _authToken = getTokenFromStorage();\r\n\t\t\t\tvar _userStats = null;\r\n\t\t\t\tvar _verifiedToken = false;\r\n\t\t\t\tvar _touchInProgress = false;\r\n\t\t\t\tvar _privileges = null;\r\n\t\r\n\t\t\t\treturn {\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthService#authenticate\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Authenticates the user and returns a promise that will\r\n\t\t\t\t\t * be resolved with Phoenix token.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @param {object} params Object containing the user's login\r\n\t\t\t\t\t * parameters.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * - email - The user's email address\r\n\t\t\t\t\t * - password - The user's password\r\n\t\t\t\t\t * - rememberMe - Should the auth token be persisted?\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @returns {Deferred} A promise that will resolve the response.data\r\n\t\t\t\t\t *\r\n\t\t\t\t\t */\r\n\t\t\t\t\tauthenticate: authenticate,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthService#invalidateLogin\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Clears the users Phoenix token\r\n\t\t\t\t\t *\r\n\t\t\t\t\t */\r\n\t\t\t\t\tinvalidateLogin: invalidateLogin,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthService#getUserStatistics\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Gets usage statistics for the authenticated user\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @returns {Deferred} A promise that will resolve with the\r\n\t\t\t\t\t * user statistics if authenticated, otherwise null.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t */\r\n\t\t\t\t\tgetUserStatistics: getUserStatistics,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name pxAuthService#resetPassword\r\n\t\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Resets a user's password\r\n\t\t\t\t\t* @param {string} authToken Token supplied by reset password emailAddress\r\n\t\t\t\t\t* @param {string} new password\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with response.data\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tresetPassword: resetPassword,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name pxAuthService#requestPasswordReset\r\n\t\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Requests an email with a link to reset the user's password\r\n\t\t\t\t\t* @param {string} email Email to request password reset for\r\n\t\t\t\t\t* @param {string} serverWebPath Domain host\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with response.data\r\n\t\t\t\t\t*\r\n\t\t\t\t\t*/\r\n\t\t\t\t\trequestPasswordReset: requestPasswordReset,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name pxAuthService#updateExpiredPassword\r\n\t\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Updates a user's expired password\r\n\t\t\t\t\t* @param {string} emailAddress User's email address\r\n\t\t\t\t\t* @param {string} oldPassword User's old password\r\n\t\t\t\t\t* @param {string} newPassword User's new password\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with response.data\r\n\t\t\t\t\t*\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tupdateExpiredPassword: updateExpiredPassword,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc property\r\n\t\t\t\t\t * @name pxAuthService#token\r\n\t\t\t\t\t * @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind property\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Returns the authenticated users Phoenix token.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @returns {string} The user's Phoenix token\r\n\t\t\t\t\t */\r\n\t\t\t\t\tget token() { return getToken(); },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc property\r\n\t\t\t\t\t * @name pxAuthService#displayName\r\n\t\t\t\t\t * @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind property\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Returns the display name of the authenticated user, or null\r\n\t\t\t\t\t * if the user is not authenticated.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @returns {string} The user's display name.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tget displayName() { return getDisplayName(); },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name pxAuthService#systemName\r\n\t\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Returns the system name of the authenticated user, or null\r\n\t\t\t\t\t* if the user is a system administrator.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {string} The user's system name.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget systemName() { return getSystemName(); },\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name pxAuthService#userId\r\n\t\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* The user ID of the authenticated user.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {int} The user's user ID.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget userId() { return _authToken ? _authToken.UserId : null; },\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name pxAuthService#deploymentId\r\n\t\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Returns the deployment ID of the authenticated user, or null\r\n\t\t\t\t\t* if the user is a system administrator.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {int} The user's deployment ID.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget deploymentId() { return _authToken ? _authToken.DeploymentId : null; },\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name pxAuthService#deploymentGroupId\r\n\t\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Returns the deployment group ID of the authenticated user, or null\r\n\t\t\t\t\t* if the user is a system administrator.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {int} The user's deployment group ID.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget deploymentGroupId() {return _authToken && _authToken.DeploymentGroupId > -1 ? _authToken.DeploymentGroupId : null; },\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc property\r\n\t\t\t\t\t * @name pxAuthService#userStatistics\r\n\t\t\t\t\t * @propertyOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind property\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * A set of usage statistics for the authenticated user.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * Calling getUserStatistics will force updates to this\r\n\t\t\t\t\t * property.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @returns {array} The user's usage data or null if the user\r\n\t\t\t\t\t * is not authenticated\r\n\t\t\t\t\t */\r\n\t\r\n\t\t\t\t\tget userStatistics() { return _userStats; },\r\n\t\t\t\t\tget isSysAdmin() { return _authToken ? _authToken.IsSysAdmin : false; },\r\n\t\t\t\t\tget isSiteAdmin() { return _authToken ? _authToken.Embedded.Roles.indexOf('SiteAdmin') >= 0 : false; },\r\n\t\t\t\t\tget isUserAdmin() { return _authToken ? _authToken.Embedded.Roles.indexOf('UserAdmin') >= 0 : false; },\r\n\t\t\t\t\tget isTenantAdmin() { return _authToken ? _authToken.Embedded.Roles.indexOf('TenantAdmin') >= 0 : false; },\r\n\t\t\t\t\tget isAdmin() { return this.isSysAdmin || this.isTenantAdmin || this.isSiteAdmin || this.isUserAdmin; },\r\n\t\t\t\t\tget isAuthenticated() {\r\n\t\t\t\t\t\tvar validToken = !!_authToken;\r\n\t\r\n\t\t\t\t\t\tif (validToken && !_touchInProgress && !_verifiedToken) {\r\n\t\t\t\t\t\t\tvalidateAuthToken(_authToken.Token);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\treturn validToken;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name pxAuthService#validateAuthToken\r\n\t\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Validates an authorization token. If none is supplied the current auth token is used\r\n\t\t\t\t\t* @param {string} authToken (Optional) Token to validate with the server\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that resolves if the token is valid\r\n\t\t\t\t\t* otherwise an exception is thrown\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tvalidateAuthToken : validateAuthToken,\r\n\t\t\t\t\tget privileges() {\r\n\t\t\t\t\t\tif(!_privileges && _authToken) {\r\n\t\t\t\t\t\t\t_privileges = createPrivs(_authToken.Embedded.Privileges);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\treturn _privileges || {};\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthService#registerDeployment\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Registers a new deployment based on an auth token that has been sent\r\n\t\t\t\t\t * to a specific user.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @param {number} id Id of the deployment to register.\r\n\t\t\t\t\t * @param {string} authToken A temporary authentication token required to validate the user to the deployment.\r\n\t\t\t\t\t * @param {string} userName User name for the user registering the deployment.\r\n\t\t\t\t\t * @param {string} password New password for the user registering the deployment.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @returns {Deferred} A promise that resolves if the deployment has been registered successfully.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tregisterDeployment: registerDeployment,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthService#validatePassword\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Validate a password agains a deployment's password policies.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @param {string} password The password to test\r\n\t\t\t\t\t * @param {string} authToken Use to test against a specific deployment's policies.\r\n\t\t\t\t\t * @returns {Deferred} A promise that will resolve to an object that indicates if the password was valid.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvalidatePassword: validatePassword\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction authenticate(emailAddress, password, rememberMe) {\r\n\t\t\t\t\tif (!angular.isString(emailAddress) || emailAddress.length === 0) {\r\n\t\t\t\t\t\tthrow new Error('emailAddress parameter required');\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (!angular.isString(password) || password.length === 0) {\r\n\t\t\t\t\t\tthrow new Error('password parameter required');\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvar httpConfig = {\r\n\t\t\t\t\t\t'headers': {\r\n\t\t\t\t\t\t\t'Authorization': function (config) {\r\n\t\t\t\t\t\t\t\tvar b64 = btoa(emailAddress + ':' + password);\r\n\t\t\t\t\t\t\t\treturn 'Basic ' + b64;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tskipAuth: true\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/authenticate', httpConfig)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\tif (tokenIsValid(response)) {\r\n\t\t\t\t\t\t\t\tstoreToken(response, rememberMe);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getDisplayName() {\r\n\t\t\t\t\treturn _authToken ? _authToken.UserName : null;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getSystemName() {\r\n\t\t\t\t\treturn _authToken ? _authToken.SystemName : null;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getToken() {\r\n\t\t\t\t\treturn _authToken ? _authToken.Token : null;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getTokenFromStorage() {\r\n\t\t\t\t\tvar authToken = pxLocalStorageService.getStoredValue('phoenix_token');\r\n\t\r\n\t\t\t\t\tif (authToken.length !== 0) {\r\n\t\t\t\t\t\tvar authTokenObj = JSON.parse(authToken);\r\n\t\t\t\t\t\tif (angular.isObject(authTokenObj)) {\r\n\t\t\t\t\t\t\treturn authTokenObj;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getUserStatistics() {\r\n\t\t\t\t\tif (!_authToken) {\r\n\t\t\t\t\t\treturn $q.resolve(null);\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvar uri = _authToken.Embedded.User.Links.StatisticsUri;\r\n\t\r\n\t\t\t\t\treturn $http.get(uri)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\tvar stats = {};\r\n\t\t\t\t\t\t\tif (response.data.length > 0) {\r\n\t\t\t\t\t\t\t\tangular.forEach(response.data, function (item) {\r\n\t\t\t\t\t\t\t\t\tstats[item.Id] = { Label: item.Label, Count: item.Count };\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_userStats = stats;\r\n\t\r\n\t\t\t\t\t\t\treturn _userStats;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction invalidateLogin() {\r\n\t\t\t\t\t_authToken = null;\r\n\t\t\t\t\t_verifiedToken = false;\r\n\t\t\t\t\tpxLocalStorageService.removeStoredValue('phoenix_token');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction resetPassword(authToken, newPassword) {\r\n\t\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/passwordcallback?auth=' + authToken,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tNewPassword: newPassword\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\tif (tokenIsValid(response)) {\r\n\t\t\t\t\t\t\t\tstoreToken(response, false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction requestPasswordReset(email, serverWebPath) {\r\n\t\t\t\t\tvar serverPath = angular.isString(serverWebPath) ? '&serverWebPath=' + encodeURIComponent(serverWebPath) : '';\r\n\t\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/passwordrequest?email=' + email + serverPath)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction storeToken(response, rememberMe) {\r\n\t\t\t\t\tvar data = response.data;\r\n\t\t\t\t\t_authToken = data;\r\n\t\r\n\t\t\t\t\tif (rememberMe) {\r\n\t\t\t\t\t\tpxLocalStorageService.setStoredValue('phoenix_token', JSON.stringify(data));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction tokenIsValid(response) {\r\n\t\t\t\t\tvar data = response.data;\r\n\t\t\t\t\treturn angular.isDefined(data.Token) && data.Token !== null;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateExpiredPassword(emailAddress, oldPassword, newPassword) {\r\n\t\t\t\t\tvar resetData = {\r\n\t\t\t\t\t\t'EmailAddress': emailAddress,\r\n\t\t\t\t\t\t'OldPassword': oldPassword,\r\n\t\t\t\t\t\t'NewPassword': newPassword\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/users/passwordchange', resetData)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction validateAuthToken(authToken) {\r\n\t\t\t\t\tif (!angular.isString(authToken)) {\r\n\t\t\t\t\t\tthrow new Error('authToken parameter required');\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t_touchInProgress = true;\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/touch?auth=' + authToken)\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t_verifiedToken = true;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t_touchInProgress = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createPrivs(privList){\r\n\t\t\t\t\treturn privList.reduce(function(privs, priv){\r\n\t\t\t\t\t\t// map privlege namespace path onto properties of object\r\n\t\t\t\t\t\tpriv.split('/')\r\n\t\t\t\t\t\t\t.reduce(function(section, sectionName, i, sectionsArr){\r\n\t\t\t\t\t\t\t\t// camel case the properties\r\n\t\t\t\t\t\t\t\tsectionName = sectionName.charAt(0).toLowerCase() + sectionName.slice(1);\r\n\t\t\t\t\t\t\t\tvar isLastSection = i === (sectionsArr.length - 1);\r\n\t\r\n\t\t\t\t\t\t\t\tif(!(sectionName in section)){\r\n\t\t\t\t\t\t\t\t\tsection[sectionName] = Object.create(null);\r\n\t\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t\tif(isLastSection) {\r\n\t\t\t\t\t\t\t\t\tsection[sectionName] = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t\treturn section[sectionName];\r\n\t\t\t\t\t\t\t}, privs);\r\n\t\r\n\t\t\t\t\t\treturn privs;\r\n\t\t\t\t\t}, {});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction registerDeployment(id, authToken, userName, password) {\r\n\t\t\t\t\tvar uri = settingsService.serverAPIPath + '/admin/registrations/' + id;\r\n\t\t\t\t\tvar userInfo = {\r\n\t\t\t\t\t\tUserName: userName,\r\n\t\t\t\t\t\tPassword: password\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar config = { headers: { Authorization: 'PHOENIX-TOKEN ' + authToken } };\r\n\t\t\t\t\treturn $http.post(uri, userInfo, config);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction validatePassword(password, authToken) {\r\n\t\t\t\t\tvar uri = settingsService.serverAPIPath + '/settings/passwordpolicy/test';\r\n\t\t\t\t\tvar checkPass = { Password: password };\r\n\t\t\t\t\tvar config = { };\r\n\t\t\t\t\tif (authToken) {\r\n\t\t\t\t\t\tconfig.headers = {\r\n\t\t\t\t\t\t\tAuthorization: 'PHOENIX-TOKEN ' + authToken\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn $http.post(uri, checkPass, config)\r\n\t\t\t\t\t\t.then(function(res) {\r\n\t\t\t\t\t\t\treturn res.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 5 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix.authInterceptor', [])\r\n\t\t\t\t.factory('pxAuthInterceptor', [\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'$location',\r\n\t\t\t\t\t'$injector',\r\n\t\t\t\t\tauthInterceptor]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name phoenix.pxAuthInterceptor\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* An http interceptor that is responsible for adding the \r\n\t\t\t* PHOENIX token to each API request. If the user is not\r\n\t\t\t* authenticated, the interceptor will redirect them to login\r\n\t\t\t* \r\n\t\t\t*\r\n\t\t\t* If the request should not include a PHOENIX-TOKEN,\r\n\t\t\t* you may include { skipAuth: true } in the http config used\r\n\t\t\t* for the request.\r\n\t\t\t*\r\n\t\t\t\r\n\t\t\t $http.get('http://localhost/home', {skipAuth: true});\r\n\t\t\t\r\n\t\t\t*\r\n\t\t\t**/\r\n\t\t\tfunction authInterceptor($q, $location, $injector) {\r\n\t\r\n\t\t\t\tvar _redirectUrl = '/';\r\n\t\r\n\t\t\t\t/*\r\n\t\t\t\t * pxAuthService is lazy loaded via the setAuthService function to eliminate any http \r\n\t\t\t\t * injector circular dependancy when adding this interceptor via a module config block.\r\n\t\t\t\t * if a better solution arises it should replace this and the pxAuthService should be \r\n\t\t\t\t * injected into the service\r\n\t\t\t\t */\r\n\t\t\t\tvar pxAuthService;\r\n\t\r\n\t\t\t\tfunction requestFn(config) {\r\n\t\t\t\t\tsetAuthService();\r\n\t\r\n\t\t\t\t\tif (!skipAuth(config)) {\r\n\t\t\t\t\t\tif (pxAuthService.token) {\r\n\t\t\t\t\t\t\tconfig.headers.Authorization = 'PHOENIX-TOKEN ' + pxAuthService.token;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn config;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction skipAuth(config) {\r\n\t\t\t\t\treturn angular.isDefined(config.skipAuth) && config.skipAuth;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction responseErrorFn(rejection) {\r\n\t\t\t\t\tsetAuthService();\r\n\t\r\n\t\t\t\t\tif (rejection.status === 401) {\r\n\t\t\t\t\t\tpxAuthService.invalidateLogin();\r\n\t\r\n\t\t\t\t\t\tif ($location.path() !== '/login') {\r\n\t\t\t\t\t\t\t_redirectUrl = $location.path();\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t$location.path('/login');\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn $q.reject(rejection);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction redirectPostLogin() {\r\n\t\t\t\t\tvar redirect = _redirectUrl;\r\n\t\r\n\t\t\t\t\t_redirectUrl = '/';\r\n\t\r\n\t\t\t\t\t$location.url(redirect);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction setAuthService() {\r\n\t\t\t\t\tif (!pxAuthService) {\r\n\t\t\t\t\t\tpxAuthService = $injector.get('pxAuthService');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthInterceptor#request\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthInterceptor\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Adds the PHOENIX token to every request\r\n\t\t\t\t\t * \r\n\t\t\t\t\t */\r\n\t\t\t\t\trequest: requestFn,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthInterceptor#responseError\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthInterceptor\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Redirects to /login on 401\r\n\t\t\t\t\t * \r\n\t\t\t\t\t */\r\n\t\t\t\t\tresponseError: responseErrorFn,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @ngdoc method\r\n\t\t\t\t\t * @name pxAuthInterceptor#redirectPostLogin\r\n\t\t\t\t\t * @methodOf phoenix.pxAuthInterceptor\r\n\t\t\t\t\t * @kind function\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @description\r\n\t\t\t\t\t * Call this to redirect back to the previous route\r\n\t\t\t\t\t * after authenticating (deep linking)\r\n\t\t\t\t\t * \r\n\t\t\t\t\t */\r\n\t\t\t\t\tredirectPostLogin: redirectPostLogin\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 6 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t\"use strict\";\r\n\t\tvar templateUrl = __webpack_require__(7);\r\n\t\tvar parentRoute = 'loginComponent';\r\n\t\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t\texports.default = angular.module('phoenix.loginComponent', ['ngMaterial', 'phoenix.authService', 'phoenix.authInterceptor'])\r\n\t\t .directive('pxLogin', ['pxProgressService', LoginDirective])\r\n\t\t .controller('pxLoginController', [\r\n\t\t 'pxAuthService',\r\n\t\t 'pxAuthInterceptor',\r\n\t\t LoginController])\r\n\t\t .run(['pxAuthService', '$rootScope', '$window', function (pxAuthService, $rootScope, $window) {\r\n\t\t $rootScope.$on('$stateChangeStart', function (evt, to) {\r\n\t\t if (to.parent === parentRoute && to.name === 'logout') {\r\n\t\t evt.preventDefault();\r\n\t\t pxAuthService.invalidateLogin();\r\n\t\t // Force reload to clear data stores\r\n\t\t $window.location.reload();\r\n\t\t }\r\n\t\t });\r\n\t\t }])\r\n\t\t .config(['$stateProvider', function ($stateProvider) {\r\n\t\t var login = {\r\n\t\t parent: parentRoute,\r\n\t\t url: '/login',\r\n\t\t params: {\r\n\t\t errorMessage: null\r\n\t\t },\r\n\t\t template: ''\r\n\t\t };\r\n\t\t $stateProvider\r\n\t\t .state('login', angular.copy(login))\r\n\t\t .state('logout', angular.copy(login))\r\n\t\t .state('forgotPassword', {\r\n\t\t parent: parentRoute,\r\n\t\t url: '/forgot_password',\r\n\t\t template: ''\r\n\t\t })\r\n\t\t .state('passwordExpired', {\r\n\t\t parent: parentRoute,\r\n\t\t url: '/password_expired',\r\n\t\t params: {\r\n\t\t emailAddress: null\r\n\t\t },\r\n\t\t template: '',\r\n\t\t controller: ['$state', '$stateParams', function ($state, $stateParams) {\r\n\t\t // State params must contain emailAddress in order to route\r\n\t\t if (!angular.isString($stateParams.emailAddress)) {\r\n\t\t $state.go('login');\r\n\t\t }\r\n\t\t }]\r\n\t\t })\r\n\t\t .state('passwordCallback', {\r\n\t\t parent: parentRoute,\r\n\t\t url: '^/passwordcallback?auth',\r\n\t\t template: '',\r\n\t\t controller: ['$state', '$stateParams', function ($state, $stateParams) {\r\n\t\t // State params must contain emailAddress in order to route\r\n\t\t if (!angular.isString($stateParams.auth)) {\r\n\t\t $state.go('login');\r\n\t\t }\r\n\t\t }]\r\n\t\t })\r\n\t\t .state('loginRegister', {\r\n\t\t parent: parentRoute,\r\n\t\t url: '^/register/:deploymentId/setpassword?auth',\r\n\t\t template: function (params) {\r\n\t\t return \"\";\r\n\t\t }\r\n\t\t });\r\n\t\t }]);\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxLogin\r\n\t\t * @module phoenix\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `pxLogin` is a universal login component for logging into the Phoenix API\r\n\t\t *\r\n\t\t * @param {string=} title This should typically be the application's name.\r\n\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t *\r\n\t\t * @param {element=} headerIcon Optional element that will be transcluded in the DOM\r\n\t\t * of the login component's header\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t *\t\r\n\t\t *\t\t
\r\n\t\t *\t
\r\n\t\t *
\r\n\t\t *\r\n\t\t */\r\n\t\tfunction LoginDirective(pxProgressService) {\r\n\t\t return {\r\n\t\t restrict: 'E',\r\n\t\t transclude: {\r\n\t\t 'headerIcon': 'headerIcon'\r\n\t\t },\r\n\t\t controller: 'pxLoginController',\r\n\t\t controllerAs: 'vm',\r\n\t\t templateUrl: templateUrl,\r\n\t\t bindToController: true,\r\n\t\t scope: {\r\n\t\t title: '@',\r\n\t\t headerIcon: '@?headerIcon'\r\n\t\t },\r\n\t\t link: function (scope, element, attrs) {\r\n\t\t //hide the progress indicator\r\n\t\t pxProgressService.visible = false;\r\n\t\t pxProgressService.backdrop = false;\r\n\t\t }\r\n\t\t };\r\n\t\t}\r\n\t\tfunction LoginController(pxAuthService, pxAuthInterceptor) {\r\n\t\t var vm = this;\r\n\t\t vm.sharedObjects = {\r\n\t\t emailAddress: '',\r\n\t\t message: ''\r\n\t\t };\r\n\t\t // If user is authenticated navigate to the default route\r\n\t\t if (pxAuthService.isAuthenticated) {\r\n\t\t pxAuthInterceptor.redirectPostLogin();\r\n\t\t }\r\n\t\t}\r\n\t\n\t\n\t/***/ },\n\t/* 7 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/login/login.template.html';\n\t\tvar html = \"\\r\\n\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t{{ vm.title }}\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t{{ vm.sharedObjects.message }}\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 8 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(9);\r\n\t\t\t\r\n\t\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t\t.directive('pxLoginExpiredPassword', LoginExpiredPasswordDirective)\r\n\t\t\t\t.controller('pxLoginExpiredPasswordController', [\r\n\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t'$window',\r\n\t\t\t\t\t'pxAuthService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'pxAuthInterceptor',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\tLoginExpiredPasswordController\r\n\t\t\t\t]);\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxLoginExpiredPassword\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `pxLoginExpiredPassword` a view component of `pxLogin`\r\n\t\t\t *\r\n\t\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t\t * @param {string=} emailAddress Email Address used to populate the email input\r\n\t\t\t */\r\n\t\t\tfunction LoginExpiredPasswordDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'pxLoginExpiredPasswordController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\tbindToController: true,\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\terrorMessage: '=?',\r\n\t\t\t\t\t\temailAddress: '=?'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction LoginExpiredPasswordController($timeout, $window, pxAuthService, pxProgressService, pxAuthInterceptor, gettextCatalog, $stateParams, $state) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\tvm.emailAddress = $stateParams.emailAddress;\r\n\t\r\n\t\t\t\tvm.submitting = false;\r\n\t\t\t\t//vm.errorMessage = gettextCatalog.getString('Your password has expired. Please enter a new one.');\r\n\t\t\t\tvm.updatePassword = updatePassword;\r\n\t\t\t\tvm.stateLogin = stateLogin;\r\n\t\r\n\t\t\t\tfunction updatePassword() {\r\n\t\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\t\tif (vm.expiredPasswordForm.$valid) {\r\n\t\t\t\t\t\tif (vm.newPassword !== vm.confirmPassword) {\r\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('New passwords don\\'t match');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tpxProgressService.text = gettextCatalog.getString('Updating Password');\r\n\t\t\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\t\t\tpxAuthService.updateExpiredPassword(vm.emailAddress, vm.oldPassword, vm.newPassword)\r\n\t\t\t\t\t\t\t\t.then(handleUpdatePasswordResult)\r\n\t\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction handleUpdatePasswordResult(result) {\r\n\t\t\t\t\tif (result.AuthenticationFailed) {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Please verify that your Current Password is correct and try again.');\r\n\t\t\t\t\t\tvm.oldPassword = '';\r\n\t\t\t\t\t\t// Required to get form in pristine state with Material\r\n\t\t\t\t\t\t// http://stackoverflow.com/a/35229876/684869\r\n\t\t\t\t\t\tvm.expiredPasswordForm.$setPristine();\r\n\t\t\t\t\t\tvm.expiredPasswordForm.$setUntouched();\r\n\t\t\t\t\t\t// Set focus to the old password field\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvar oldPasswordElement = $window.document.getElementById('oldPassword');\r\n\t\t\t\t\t\t\tif (oldPasswordElement) {\r\n\t\t\t\t\t\t\t\toldPasswordElement.focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (result.InvalidPassword) {\r\n\t\t\t\t\t\tvm.errorMessage = result.Error;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tpxAuthService.authenticate(vm.emailAddress, vm.newPassword)\r\n\t\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\t\t// route back to a previously stored location, else the main content page\r\n\t\t\t\t\t\t\t\tpxAuthInterceptor.redirectPostLogin();\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An Unexpected Error Occurred');\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction stateLogin() {\r\n\t\t\t\t\t$state.go('login');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\t\tif (submitting) {\r\n\t\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\t\tvm.submitting = submitting;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 9 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/login/login-expired-password.template.html';\n\t\tvar html = \"
\\r\\n \\r\\n \\r\\n Password Expired\\r\\n Your password has expired. Please enter a new one.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Previous password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
New password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Confirm new password is required
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Update Password \\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 10 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(11);\r\n\t\t\t\r\n\t\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t\t.directive('pxLoginForgotPassword', LoginForgotPasswordDirective)\r\n\t\t\t\t.controller('pxLoginForgotPasswordController', [\r\n\t\t\t\t\t'pxAuthService',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\tLoginForgotPasswordController\r\n\t\t\t\t]);\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxLoginForgotPassword\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `pxLoginForgotPassword` a view component of `pxLogin`\r\n\t\t\t *\r\n\t\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t\t * @param {string=} emailAddress Email Address used to populate the email input\r\n\t\t\t */\t\r\n\t\t\tfunction LoginForgotPasswordDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tcontroller: 'pxLoginForgotPasswordController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\tbindToController: true,\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\terrorMessage: '=?',\r\n\t\t\t\t\t\temailAddress: '=?'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction LoginForgotPasswordController(pxAuthService, $state, pxProgressService, gettextCatalog, settingsService) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\tvm.submitting = false;\r\n\t\t\t\tvm.requestPasswordReset = requestPasswordReset;\r\n\t\t\t\tvm.stateLogin = stateLogin;\r\n\t\r\n\t\t\t\tvm.resetSuccessful = false;\r\n\t\r\n\t\t\t\tfunction requestPasswordReset() {\r\n\t\t\t\t\tif (vm.forgotPasswordForm.$valid) {\r\n\t\t\t\t\t\tvar email = vm.emailAddress;\r\n\t\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\t\tpxAuthService.requestPasswordReset(email, settingsService.serverWebPath)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tvm.resetSuccessful = true;\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Error requesting new password');\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction stateLogin() {\r\n\t\t\t\t\t$state.go('login');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\t\tif (submitting) {\r\n\t\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\t\tvm.submitting = submitting;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 11 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/login/login-forgot-password.template.html';\n\t\tvar html = \"
\\r\\n \\r\\n \\r\\n Reset Password\\r\\n If the user's email address exists, a reset password link will be sent.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n
Please enter your email
\\r\\n
This field must be a valid email address
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{::'Request password reset' | translate}}\\r\\n {{::'Cancel' | translate}}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Reset Requested\\r\\n Check your email for a link to reset your password.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{::'Return to login' | translate}}\\r\\n \\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 12 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(13);\r\n\t\t\t\r\n\t\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t\t.directive('pxLoginMain', LoginMainDirective)\r\n\t\t\t\t.controller('pxLoginMainController', [\r\n\t\t\t\t\t'$location',\r\n\t\t\t\t\t'$filter',\r\n\t\t\t\t\t'pxAuthService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'pxAuthInterceptor',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\tLoginMainController\r\n\t\t\t\t]);\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxLoginMain\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `pxLoginMain` a view component of `pxLogin`\r\n\t\t\t *\r\n\t\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t\t * @param {string=} emailAddress Email Address used to populate the email input\r\n\t\t\t */\t\r\n\t\t\tfunction LoginMainDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'pxLoginMainController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\terrorMessage: '=?',\r\n\t\t\t\t\t\temailAddress: '=?'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbindToController: true,\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction LoginMainController($location, $filter, pxAuthService, pxProgressService, pxAuthInterceptor, gettextCatalog, $state, $stateParams) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvm.rememberMe = true;\r\n\t\t\t\tvm.errorMessage = $stateParams.errorMessage || '';\r\n\t\t\t\tvm.submitting = false;\t\t\r\n\t\t\t\tvm.login = login;\r\n\t\t\t\tvm.stateForgotPassword = stateForgetPassword;\r\n\t\r\n\t\t\t\tfunction login() {\r\n\t\t\t\t\tif (vm.loginForm.$valid) {\r\n\t\t\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\t\t\tpxProgressService.text = gettextCatalog.getString('Logging In');\r\n\t\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\t\tpxAuthService.authenticate(vm.emailAddress, vm.password, vm.rememberMe)\r\n\t\t\t\t\t\t\t.then(handleLoginResponse)\r\n\t\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\t\thandleLoginResponse(response.data);\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction handleLoginResponse(response) {\r\n\t\t\t\t\tif (response) {\r\n\t\t\t\t\t\tif (response.Token) {\r\n\t\t\t\t\t\t\t// route back to a previously stored location, else the main content page\r\n\t\t\t\t\t\t\tpxAuthInterceptor.redirectPostLogin();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (response.PasswordExpired) {\r\n\t\t\t\t\t\t\t$state.go('passwordExpired', { emailAddress: vm.emailAddress });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Invalid login or account is locked. Please verify that your e-mail and password are correct.');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction stateForgetPassword() {\r\n\t\t\t\t\t$state.go('forgotPassword');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\t\tif (submitting) {\r\n\t\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\t\tvm.submitting = submitting;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 13 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/login/login-main.template.html';\n\t\tvar html = \"
\\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n
Please enter your email
\\r\\n
This field must be a valid email address
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Please enter your password
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{'Remember me'| translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{'Forgot your password?' | translate}}\\r\\n {{'Login' | translate}}\\r\\n \\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 14 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(15);\r\n\t\t\t\r\n\t\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t\t.directive('pxLoginResetPassword', LoginResetPasswordDirective)\r\n\t\t\t\t.controller('pxLoginResetPasswordController', [\r\n\t\t\t\t\t'pxAuthService',\r\n\t\t\t\t\t'pxAuthInterceptor',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\tLoginResetPasswordController\r\n\t\t\t\t]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxLoginResetPassword\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `pxLoginResetPassword` a view component of `pxLogin`\r\n\t\t\t *\r\n\t\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t\t */\r\n\t\t\tfunction LoginResetPasswordDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'pxLoginResetPasswordController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\tbindToController: true,\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\terrorMessage: '=?'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction LoginResetPasswordController(pxAuthService, pxAuthInterceptor, pxProgressService, gettextCatalog, $stateParams, $state) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvar authToken = $stateParams.auth;\r\n\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\tvm.submitting = false;\r\n\t\t\t\tvm.resetPassword = resetPassword;\r\n\t\t\t\tvm.stateLogin = stateLogin;\r\n\t\r\n\t\t\t\tisSubmitting(true);\r\n\t\t\t\t//user is redirected back to login if the reset auth token is already expired\r\n\t\t\t\tpxAuthService.validateAuthToken(authToken)\r\n\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t$state.go('login', {\r\n\t\t\t\t\t\t\terrorMessage: gettextCatalog.getString('The password reset link has expired.')\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t});\r\n\t\r\n\t\t\t\tfunction resetPassword() {\r\n\t\t\t\t\tif (vm.resetPasswordForm.$valid) {\r\n\t\r\n\t\t\t\t\t\tif (vm.newPassword !== vm.confirmPassword) {\r\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Passwords don\\'t match');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tpxProgressService.text = gettextCatalog.getString('Updating Password');\r\n\t\t\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\t\t\tpxAuthService.resetPassword(authToken, vm.newPassword)\r\n\t\t\t\t\t\t\t\t.then(function (result) {\r\n\t\t\t\t\t\t\t\t\tif (result.InvalidPassword) {\r\n\t\t\t\t\t\t\t\t\t\tvm.errorMessage = result.Error;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tpxAuthInterceptor.redirectPostLogin();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred.');\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction stateLogin() {\r\n\t\t\t\t\t$state.go('login');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\t\tif (submitting) {\r\n\t\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\t\tvm.submitting = submitting;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 15 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/login/login-reset-password.template.html';\n\t\tvar html = \"
\\r\\n \\r\\n \\r\\n Reset Password\\r\\n You have requested a password reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
New password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Confirm new password is required
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Reset Password\\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 16 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t\"use strict\";\r\n\t\tvar registerTemplate = __webpack_require__(17);\r\n\t\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\t\texports.default = angular.module('phoenix.loginComponent')\r\n\t\t .directive('pxLoginRegister', loginRegister);\r\n\t\tvar TOAST_POSITION = 'bottom right';\r\n\t\tvar TOAST_DELAY = 3000;\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.loginComponent:pxLoginRegister\r\n\t\t * @module phoenix\r\n\t\t * @restrict E\r\n\t\t *\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `pxLoginRegister` a view component of `pxLogin`\r\n\t\t * @param {string@} deploymentId Id of the deployment being register\r\n\t\t * @param {string@} authToken A temporary authentication token used to authorize the user for registration\r\n\t\t */\r\n\t\tfunction loginRegister() {\r\n\t\t return {\r\n\t\t restrict: 'E',\r\n\t\t controller: LoginRegisterController,\r\n\t\t controllerAs: 'vm',\r\n\t\t bindToController: true,\r\n\t\t templateUrl: registerTemplate,\r\n\t\t scope: {\r\n\t\t deploymentId: '@',\r\n\t\t authToken: '@',\r\n\t\t errorMessage: '=?'\r\n\t\t }\r\n\t\t };\r\n\t\t}\r\n\t\texports.loginRegister = loginRegister;\r\n\t\t;\r\n\t\tvar LoginRegisterController = (function () {\r\n\t\t function LoginRegisterController($state, $timeout, $mdToast, gettextCatalog, pxAuthService, pxProgressService, $stateParams) {\r\n\t\t this.$state = $state;\r\n\t\t this.$timeout = $timeout;\r\n\t\t this.$mdToast = $mdToast;\r\n\t\t this.gettextCatalog = gettextCatalog;\r\n\t\t this.pxAuthService = pxAuthService;\r\n\t\t this.pxProgressService = pxProgressService;\r\n\t\t this.password = '';\r\n\t\t this.confirmPassword = '';\r\n\t\t // local fields\r\n\t\t this.errorMessage = '';\r\n\t\t this.submitting = false;\r\n\t\t // Validates token, if it is invalid redirect to the main login page with an error message\r\n\t\t this.pxAuthService.validateAuthToken($stateParams.auth)\r\n\t\t .catch(function () { return $state.go('login', {\r\n\t\t errorMessage: gettextCatalog.getString('The registration link has expired')\r\n\t\t }); });\r\n\t\t }\r\n\t\t LoginRegisterController.prototype.completeRegistration = function () {\r\n\t\t var _this = this;\r\n\t\t this.errorMessage = '';\r\n\t\t if (!this.loginRegisterForm.$valid) {\r\n\t\t return;\r\n\t\t }\r\n\t\t if (this.password !== this.confirmPassword) {\r\n\t\t this.errorMessage = this.gettextCatalog.getString(\"New passwords don't match\");\r\n\t\t }\r\n\t\t else {\r\n\t\t this.pxProgressService.text = this.gettextCatalog.getString('Registering deployment');\r\n\t\t this.isSubmitting(true);\r\n\t\t // Must explicitly make a call to validate the password. The registration endpoint does\r\n\t\t // not validate the password, and if you hit it with an invalid password, the deployment\r\n\t\t // will enter a state where the user account was not created and cannot be created by the registration form.\r\n\t\t this.pxAuthService.validatePassword(this.password, this.authToken)\r\n\t\t .then(function (data) {\r\n\t\t if (data.Valid) {\r\n\t\t return _this.pxAuthService.registerDeployment(_this.deploymentId, _this.authToken, _this.displayName, _this.password)\r\n\t\t .then(function () {\r\n\t\t _this.showRegistrationSuccessMessage();\r\n\t\t _this.$state.go('login');\r\n\t\t });\r\n\t\t }\r\n\t\t else {\r\n\t\t _this.errorMessage = data.Error;\r\n\t\t }\r\n\t\t })\r\n\t\t .catch(function () { return _this.errorMessage = _this.gettextCatalog.getString('An unexpected error has occurred'); })\r\n\t\t .finally(function () { return _this.isSubmitting(false); });\r\n\t\t }\r\n\t\t };\r\n\t\t LoginRegisterController.prototype.showRegistrationSuccessMessage = function () {\r\n\t\t var _this = this;\r\n\t\t this.$timeout(function () {\r\n\t\t _this.$mdToast.show(_this.$mdToast.simple()\r\n\t\t .textContent(_this.gettextCatalog.getString('Your account is now registered, please login to continue.'))\r\n\t\t .position(TOAST_POSITION)\r\n\t\t .hideDelay(TOAST_DELAY));\r\n\t\t }, 0);\r\n\t\t };\r\n\t\t LoginRegisterController.prototype.isSubmitting = function (submitting) {\r\n\t\t if (submitting) {\r\n\t\t this.pxProgressService.backdrop = submitting;\r\n\t\t }\r\n\t\t this.pxProgressService.visible = submitting;\r\n\t\t this.submitting = submitting;\r\n\t\t };\r\n\t\t LoginRegisterController.$inject = [\r\n\t\t '$state',\r\n\t\t '$timeout',\r\n\t\t '$mdToast',\r\n\t\t 'gettextCatalog',\r\n\t\t 'pxAuthService',\r\n\t\t 'pxProgressService',\r\n\t\t '$stateParams'\r\n\t\t ];\r\n\t\t return LoginRegisterController;\r\n\t\t}());\r\n\t\texports.LoginRegisterController = LoginRegisterController;\r\n\t\n\t\n\t/***/ },\n\t/* 17 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/login/login-register.template.html';\n\t\tvar html = \"
\\r\\n \\r\\n \\r\\n Register\\r\\n Please set your display name and password to finish registration.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n
The display name is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
New password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Confirm new password is required
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Register\\r\\n \\r\\n \\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 18 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 19 */,\n\t/* 20 */,\n\t/* 21 */,\n\t/* 22 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(23);\r\n\t\t__webpack_require__(25);\r\n\t\t__webpack_require__(27);\r\n\t\t__webpack_require__(29);\r\n\t\t__webpack_require__(31);\r\n\t\t__webpack_require__(33);\r\n\t\t__webpack_require__(35);\r\n\t\t__webpack_require__(40);\r\n\t\t__webpack_require__(45);\r\n\t\t__webpack_require__(47);\n\t\n\t/***/ },\n\t/* 23 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(24);\n\t\n\t/***/ },\n\t/* 24 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxAutocompleteClearOnBlur', ['$interval', '$timeout', AutocompleteClearOnBlurDirective]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxAutocompleteClearOnBlur\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict A\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * A directive to auto clear the autocomplete input if no item is selected \r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t *\r\n\t\t\t */\r\n\t\t\tfunction AutocompleteClearOnBlurDirective($interval, $timeout) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\trequire: 'mdAutocomplete',\r\n\t\t\t\t\tlink: function (scope, element, attrs, acCtrl) {\r\n\t\t\t\t\t\tif (!acCtrl || acCtrl.readonly) { return; }\r\n\t\r\n\t\t\t\t\t\t// amount of time in MS with which to poll for an input\r\n\t\t\t\t\t\tvar pollingThreshold = 6000; \r\n\t\t\t\t\t\tvar trigger = null;\r\n\t\t\t\t\t\tvar start = Date.now();\r\n\t\t\t\t\t\tvar timedOut = false;\r\n\t\t\t\t\t\tvar input = null;\r\n\t\t\t\t\t\tvar interval = $interval(function () {\r\n\t\t\t\t\t\t\ttimedOut = (Date.now() - start) >= pollingThreshold;\r\n\t\t\t\t\t\t\tinput = element.find('input');\r\n\t\r\n\t\t\t\t\t\t\tif (input.length === 1) {\r\n\t\t\t\t\t\t\t\t$interval.cancel(interval);\r\n\t\t\t\t\t\t\t\tinput[0].addEventListener('blur', triggerRemove);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (timedOut) {\r\n\t\t\t\t\t\t\t\t$interval.cancel(interval);\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 100);\r\n\t\r\n\t\t\t\t\t\tfunction triggerRemove() {\r\n\t\t\t\t\t\t\t//timeout to allow user to pick from autocomplete\r\n\t\t\t\t\t\t\t$timeout(removeValue, 200);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction removeValue() {\r\n\t\t\t\t\t\t\t$timeout.cancel(trigger);\r\n\t\t\t\t\t\t\t//clear the value\r\n\t\t\t\t\t\t\tif (input.val() !== '' && !acCtrl.scope.selectedItem) {\r\n\t\t\t\t\t\t\t\t//clear search text\r\n\t\t\t\t\t\t\t\tacCtrl.scope.searchText = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tif(input.length > 0) {\r\n\t\t\t\t\t\t\t\tinput[0].removeEventListener('blur', removeValue);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 25 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(26);\n\t\n\t/***/ },\n\t/* 26 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxAutoFitVirtualRepeat', [\r\n\t\t '$window',\r\n\t\t '$timeout',\r\n\t\t AutoFitVirtualRepeatDirective]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxAutoFitVirtualRepeat\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict A\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * A directive to automatically size and resize a child md-virtual-scroller-container.\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t *
\r\n\t\t\t *\t\t\r\n\t\t\t *
\r\n\t\t *\r\n\t\t\t */\r\n\t\t\tfunction AutoFitVirtualRepeatDirective($window, $timeout) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\t//get an offset if specified\r\n\t\t\t\t\t\tvar offset = element.attr('px-auto-fit-virtual-repeat-offset');\r\n\t\t\t\t\t\tvar intOffset = 0;\r\n\t\t\t\t\t\tif (offset && typeof parseInt(offset) === 'number') {\r\n\t\t\t\t\t\t\tintOffset = parseInt(offset);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction setHeight() {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tvar _height;\r\n\t\t\t\t\t\t\t\t//subtract 1px for height rounding up to closest px IE: 806.75 rounded to 807, which causes second scrollbar\r\n\t\t\t\t\t\t\t\t_height = (element[0].offsetHeight - 1) - intOffset;\r\n\t\r\n\t\t\t\t\t\t\t\telement.find('md-virtual-repeat-container').css('height', _height + 'px');\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t//https://github.com/angular/material/issues/4314\r\n\t\t\t\t\t\t\t\t\tscope.$broadcast('$md-resize');\r\n\t\t\t\t\t\t\t\t\tscope.$broadcast('px-recalculate-virtual-tile-view');\r\n\t\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//add resize events\r\n\t\t\t\t\t\tvar _timeout;\r\n\t\t\t\t\t\tfunction resizeHeight() {\r\n\t\t\t\t\t\t\telement.css({ 'overflow-y': 'hidden', 'transition-duration': '0s' }); //removes the scroll bar and transitions while resizing\r\n\t\t\t\t\t\t\t$timeout.cancel(_timeout);\r\n\t\t\t\t\t\t\t_timeout = $timeout(function () {\r\n\t\t\t\t\t\t\t\t$timeout.cancel(_timeout);\r\n\t\t\t\t\t\t\t\tsetHeight();\r\n\t\t\t\t\t\t\t\telement.css({ 'overflow-y': '', 'transition-duration': '' });\r\n\t\t\t\t\t\t\t}, 150);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t$window.addEventListener('resize', resizeHeight);\r\n\t\t\t\t\t\t$window.addEventListener('orientationchange', resizeHeight);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//add state changed event if element or child element houses a ui-view, as the child content may have changed\r\n\t\t\t\t\t\tif (element[0].querySelectorAll('[ui-view]').length > 0 || element[0].hasAttribute('ui-view')) {\r\n\t\t\t\t\t\t\tscope.$on('$stateChangeSuccess', function () {\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\tsetHeight();\r\n\t\t\t\t\t\t\t\t}, 150);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t//add a listener to force a resize\r\n\t\t\t\t\t\tscope.$on('px-recalulate-auto-fit-virtual-repeat', resizeHeight);\r\n\t\r\n\t\t\t\t\t\t//run on initial setup\r\n\t\t\t\t\t\tsetHeight();\r\n\t\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\t$window.removeEventListener('resize', resizeHeight);\r\n\t\t\t\t\t\t\t$window.removeEventListener('orientationchange', resizeHeight);\r\n\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t//watches to see if the number of rendered virtual repeat items has changed\r\n\t\t\t\t\t\tscope.$watch(\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\tvar count = 0;\r\n\t\t\t\t\t\t\t\tvar virtualCount = element.find('md-virtual-repeat-container').attr('virtual-item-count');\r\n\t\t\t\t\t\t\t\tif (virtualCount) {\r\n\t\t\t\t\t\t\t\t\tif (virtualCount > 0) {\r\n\t\t\t\t\t\t\t\t\t\tcount = element.find('md-virtual-repeat-container').attr('virtual-item-count');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn count;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\tresizeHeight();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 27 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(28);\n\t\n\t/***/ },\n\t/* 28 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxContenteditable', [ContenteditableDirective]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxContenteditable\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict A\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * Allows a div to be content editable via the ngModel\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t *
\r\n\t\t *\r\n\t\t\t */\r\n\t\t\tfunction ContenteditableDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\trequire: 'ngModel',\r\n\t\t\t\t\tlink: function (scope, element, attrs, ngModel) {\r\n\t\r\n\t\t\t\t\t\tfunction read() {\r\n\t\t\t\t\t\t\tngModel.$setViewValue(element.html());\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tngModel.$render = function () {\r\n\t\t\t\t\t\t\telement.html(ngModel.$viewValue || '');\r\n\t\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\t\telement.bind('blur keyup change', function () {\r\n\t\t\t\t\t\t\tscope.$apply(read);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 29 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(30);\n\t\n\t/***/ },\n\t/* 30 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxChipsClearOnBlur', ['$interval','$timeout', ChipsAddOnBlurDirective]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxChipsClearOnBlur\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict A\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * A directive to auto remove the value left in the md-chips interface's input \r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t *\r\n\t\t\t */\r\n\t\t\tfunction ChipsAddOnBlurDirective($interval, $timeout) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\trequire: 'mdChips',\r\n\t\t\t\t\tlink: function (scope, element, attrs, chipsCtrl) {\r\n\t\t\t\t\t\tif (!chipsCtrl || chipsCtrl.readonly) { return; }\r\n\t\r\n\t\t\t\t\t\t// amount of time in MS with which to poll for an input\r\n\t\t\t\t\t\tvar pollingThreshold = 6000; \r\n\t\t\t\t\t\tvar trigger = null;\t\t\t\t\r\n\t\t\t\t\t\tvar start = Date.now();\r\n\t\t\t\t\t\tvar timedOut = false;\r\n\t\t\t\t\t\tvar input = null;\r\n\t\t\t\t\t\tvar interval = $interval(function () {\r\n\t\t\t\t\t\t\ttimedOut = (Date.now() - start) >= pollingThreshold;\r\n\t\t\t\t\t\t\tinput = element.find('input');\r\n\t\r\n\t\t\t\t\t\t\tif (input.length === 1) {\r\n\t\t\t\t\t\t\t\t$interval.cancel(interval);\t\t\t\r\n\t\t\t\t\t\t\t\tinput[0].addEventListener('blur', triggerRemove);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (timedOut) {\r\n\t\t\t\t\t\t\t\t$interval.cancel(interval);\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 100);\r\n\t\r\n\t\t\t\t\t\tfunction triggerRemove() {\r\n\t\t\t\t\t\t\t//timeout to allow user to pick from autocomplete\r\n\t\t\t\t\t\t\t$timeout(removeValue, 500);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction removeValue() {\r\n\t\t\t\t\t\t\t$timeout.cancel(trigger);\r\n\t\t\t\t\t\t\t//clear the value\r\n\t\t\t\t\t\t\tif (input.val() !== '') {\r\n\t\t\t\t\t\t\t\tinput.val('');\r\n\t\t\t\t\t\t\t\t//clear chips search text\r\n\t\t\t\t\t\t\t\tchipsCtrl.searchText = '';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tif(input && input.length > 0) {\r\n\t\t\t\t\t\t\t\tinput[0].removeEventListener('blur', removeValue);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 31 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(32);\n\t\n\t/***/ },\n\t/* 32 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxChipsDisableDeleteKey', ['$interval', ChipsDisableDeleteKeyDirective]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxChipsDisableDeleteKey\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict A\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * A directive to disable the delete/backspace key when the input is blank\r\n\t\t\t * as the default behavior is to then select a chip and delete it \r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t *\r\n\t\t\t */\r\n\t\t\tfunction ChipsDisableDeleteKeyDirective($interval) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\trequire: 'mdChips',\r\n\t\t\t\t\tlink: function (scope, element, attrs, chipsCtrl) {\r\n\t\t\t\t\t\tif (!chipsCtrl || chipsCtrl.readonly) { return; }\r\n\t\r\n\t\t\t\t\t\t// amount of time in MS with which to poll for an input\r\n\t\t\t\t\t\tvar pollingThreshold = 6000; \r\n\t\t\t\t\t\tvar start = Date.now();\r\n\t\t\t\t\t\tvar timedOut = false;\r\n\t\t\t\t\t\tvar input = null;\r\n\t\t\t\t\t\tvar interval = $interval(function () {\r\n\t\t\t\t\t\t\ttimedOut = (Date.now() - start) > pollingThreshold;\r\n\t\t\t\t\t\t\tinput = element.find('input');\r\n\t\t\t\t\t\t\tif (input.length === 1) {\r\n\t\t\t\t\t\t\t\t$interval.cancel(interval);\r\n\t\t\t\t\t\t\t\tinput[0].addEventListener('keypress', disableDeleteKeys);\r\n\t\t\t\t\t\t\t\tinput[0].addEventListener('keydown', disableDeleteKeys);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (timedOut) {\r\n\t\t\t\t\t\t\t\t$interval.cancel(interval);\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 100);\r\n\t\r\n\t\t\t\t\t\tfunction disableDeleteKeys(event) {\r\n\t\t\t\t\t\t\tif (input.val() === '') {\r\n\t\t\t\t\t\t\t\t//disable hitting the delete/backspace button when there is no value in the input as this starts to delete tags\r\n\t\t\t\t\t\t\t\tvar key = event.keyCode || event.charCode;\r\n\t\r\n\t\t\t\t\t\t\t\tif (key === 8 || key === 46) {\r\n\t\t\t\t\t\t\t\t\t// prevent default behaviour\r\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tif(input && input.length > 0) {\r\n\t\t\t\t\t\t\t\tinput[0].removeEventListener('keypress', disableDeleteKeys);\r\n\t\t\t\t\t\t\t\tinput[0].removeEventListener('keydown', disableDeleteKeys);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 33 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(34);\n\t\n\t/***/ },\n\t/* 34 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxDebounceImage', ['$timeout', DebounceImageDirective]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name phoenix.directive:pxDebounceImage\r\n\t\t\t * @module phoenix\r\n\t\t\t * @restrict A\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * A directive to delay loading of image src and is to be used in conjunction with \r\n\t\t\t * md-virtual-repeat to limit getting thumbnails or pages if they are scrolled out\r\n\t\t\t * of the DOM.\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t *\r\n\t\t\t */\r\n\t\t\tfunction DebounceImageDirective($timeout) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tfunction loadImage() {\r\n\t\t\t\t\t\t\tif(element[0].tagName === 'IMG'){\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\telement.attr('src', ''); //clear the source\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\telement.attr('src',attrs.pxDebounceImage);\r\n\t\t\t\t\t\t\t\t}, 550);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\telement[0].style.backgroundImage = '';\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\telement[0].style.backgroundImage = attrs.pxDebounceImage;\r\n\t\t\t\t\t\t\t\t}, 550);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tattrs.$observe('pxDebounceImage', function (newVal) {\r\n\t\t\t\t\t\t\tif (!newVal) { return; }\r\n\t\t\t\t\t\t\tloadImage();\r\n\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\tloadImage();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 35 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(36);\r\n\t\t__webpack_require__(38);\r\n\t\n\t\n\t/***/ },\n\t/* 36 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 37 */,\n\t/* 38 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(39);\r\n\t\t\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc directive\r\n\t\t\t* @name phoenix.directive:pxScrollViewer\r\n\t\t\t* @module phoenix\r\n\t\t\t* @restrict A\r\n\t\t\t* @description\r\n\t\t\t*\r\n\t\t\t* A Continuous scroll viewer which displays a virtualized set of pages.\r\n\t\t\t*\r\n\t\t\t* @usage\r\n\t\t\t*
\r\n\t\t\t* \r\n\t\t\t*
\r\n\t\t\t* \r\n\t\t\t* @element input\r\n\t\t\t* @param {Array} pages An array of Urls. Each Url is used as the img src for a page\r\n\t\t\t*\r\n\t\t\t* @param {string=} fileName Used to display the name at the top of preview mode window\r\n\t\t\t*\r\n\t\t\t* @param {string=} fitSize Controls the viewers fit mode. Valid values are\r\n\t\t\t* 'width' (default) and 'height'\r\n\t\t\t*\r\n\t\t\t* @param {string=} mode Controls the display mode of the viewer. Valid values\r\n\t\t\t* are 'embed' (default) and 'preview'\r\n\t\t\t*\r\n\t\t\t* @param {expression=} closePreview Function expression to call when the preview\r\n\t\t\t* is closed. Only valid if mode='preview'\r\n\t\t\t*/\r\n\t\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxScrollViewer', [\r\n\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t'$window',\r\n\t\t\t\t\t'$interval',\r\n\t\t\t\t\t'$mdUtil',\r\n\t\t\t\t\tScrollViewerDirective])\r\n\t\t\t\t.controller('ScrollViewerController', [ScrollViewerController]);\r\n\t\r\n\t\t\tfunction ScrollViewerDirective($timeout, $window, $interval, $mdUtil) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: ScrollViewerController,\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tpages: '=',\r\n\t\t\t\t\t\tfileName: '@',\r\n\t\t\t\t\t\tfitSize: '@',\r\n\t\t\t\t\t\tmode: '@',\r\n\t\t\t\t\t\tclosePreview: '&'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tvar vm = scope.vm;\r\n\t\t\t\t\t\tvm.rowHeight = null;\r\n\t\t\t\t\t\tvm.updatePageSize = $mdUtil.debounce(updatePageSize, 400);\r\n\t\r\n\t\t\t\t\t\tvar newHeight = 0;\r\n\t\t\t\t\t\tfunction updatePageSize() {\r\n\t\t\t\t\t\t\tnewHeight = element[0].querySelector('.view__page-img').clientHeight;\r\n\t\t\t\t\t\t\tvm.pageSize = {\theight: newHeight + 'px' };\r\n\t\t\t\t\t\t\tvm.rowHeight = null; //this will reload the whole viewer with the new page heights\r\n\t\t\t\t\t\t\tvm.resizing = false; //remove autosizing as we have the new actual height\r\n\t\t\t\t\t\t\treCalcVirtual();\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction reCalcVirtual() {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tvm.rowHeight = newHeight; //set height will rerender the viewer\r\n\t\t\t\t\t\t\t\tscope.$parent.$broadcast('$md-resize');\r\n\t\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t//event listeners\r\n\t\t\t\t\t\t$window.addEventListener('orientationchange', vm.updatePageSize);\r\n\t\r\n\t\t\t\t\t\t//clean up\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\t$window.removeEventListener('orientationchange', vm.updatePageSize);\r\n\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\tvm.resizing = false;\r\n\t\t\t\t\t\tscope.$watch(function () {\r\n\t\t\t\t\t\t\treturn element[0].clientWidth;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfunction (newVal) {\r\n\t\t\t\t\t\t\t\tif (vm.rowHeight) {\r\n\t\t\t\t\t\t\t\t\tvm.resizing = true; //resizing allows the current pages to autosize\r\n\t\t\t\t\t\t\t\t\tvm.updatePageSize();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\r\n\t\t\t\t\t\t//shows & hides current page position\r\n\t\t\t\t\t\tvar pageCountTimer = null;\r\n\t\t\t\t\t\tscope.$watch('vm.pageIndex', function (newVal) {\r\n\t\t\t\t\t\t\tvm.showPageCount = true;\r\n\t\t\t\t\t\t\t$timeout.cancel(pageCountTimer);\r\n\t\t\t\t\t\t\tpageCountTimer = $timeout(function () {\r\n\t\t\t\t\t\t\t\tvm.showPageCount = false;\r\n\t\t\t\t\t\t\t}, 3000);\r\n\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t//set initial sizes\r\n\t\t\t\t\t\tvar _interval = $interval(function () {\r\n\t\t\t\t\t\t\t//wait till first page is rendered into the DOM\r\n\t\t\t\t\t\t\tvar sizer = element[0].querySelector('.view__page-img');\r\n\t\t\t\t\t\t\tif (!sizer) { return; }\r\n\t\t\t\t\t\t\tif (sizer.clientHeight < 20) { return; }\r\n\t\r\n\t\t\t\t\t\t\t$interval.cancel(_interval);\r\n\t\t\t\t\t\t\tvm.updatePageSize();\r\n\t\t\t\t\t\t}, 50);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction ScrollViewerController() {\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 39 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/scrollViewer/scrollViewer.template.html';\n\t\tvar html = \"\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

{{vm.fileName}}

\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tclose\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t
1\\\">\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t{{currentPage}} of {{totalPages}}\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 40 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(41);\r\n\t\t__webpack_require__(43);\n\t\n\t/***/ },\n\t/* 41 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 42 */,\n\t/* 43 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(44);\r\n\t\t\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc directive\r\n\t\t\t* @name phoenix.directive:pxVirtualTileContainer\r\n\t\t\t* @module phoenix\r\n\t\t\t* @restrict E\r\n\t\t\t* @description\r\n\t\t\t*\r\n\t\t\t* `pxVirtualTileContainer` is a virtualizer of tile items that groups items into rows of a fixed height to work with md-virtual-repeat-container\r\n\t\t\t*\r\n\t\t\t* @param {object} virtualItems The item to be bound to.\r\n\t\t\t*\r\n\t\t\t* @usage\r\n\t\t\t*\r\n\t\t\t* \r\n\t\t\t*/\r\n\t\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxVirtualTileContainer', [\r\n\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t'$window',\r\n\t\t\t\t\t'$mdUtil',\r\n\t\t\t\t\t'$mdMedia',\r\n\t\t\t\t\t'pxGroupItemsService',\r\n\t\t\t\t\tVirtualizeTileViewDirective\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction VirtualizeTileViewDirective($timeout, $window, $mdUtil, $mdMedia, pxGroupItemsService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: ['pxAuthService', VirtualizeTileContainerController],\r\n\t\t\t\t\tcontrollerAs: 'VirtualTileCtrl',\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\trawitems: '=virtualItems',\r\n\t\t\t\t\t\tclick: '&virtualClick',\r\n\t\t\t\t\t\tselect: '&virtualSelect'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tscope.VirtualTileCtrl.calcVirtualGroups = $mdUtil.debounce(calcVirtualGroups, 150);\r\n\t\t\t\t\t\tscope.VirtualTileCtrl.tilePerLine = null;\r\n\t\t\t\t\t\tscope.VirtualTileCtrl.style = {};\r\n\t\t\t\t\t\tvar container = null;\r\n\t\t\t\t\t\tfunction calcVirtualGroups() {\r\n\t\t\t\t\t\t\tvar TILE_WIDTH = 170;\r\n\t\t\t\t\t\t\tvar newTilePerLine = null;\r\n\t\t\t\t\t\t\tvar containerWidth = null;\r\n\t\t\t\t\t\t\tcontainer = $mdUtil.getClosest(element, 'md-virtual-repeat-container');\r\n\t\t\t\t\t\t\tif (container) {\r\n\t\t\t\t\t\t\t\tcontainerWidth = container.clientWidth;\r\n\t\t\t\t\t\t\t\tif(containerWidth > 600){\r\n\t\t\t\t\t\t\t\t\tcontainerWidth -= 16; //8px margin on each side\r\n\t\t\t\t\t\t\t\t\tnewTilePerLine = Math.floor(containerWidth / TILE_WIDTH);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if(containerWidth < 600 && containerWidth > 475){\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tcontainerWidth -= 8; //4px margin on each side\r\n\t\t\t\t\t\t\t\t\tnewTilePerLine = 3;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse{\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tcontainerWidth -= 8; //4px margin on each side\r\n\t\t\t\t\t\t\t\t\tnewTilePerLine = 2;\r\n\t\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t\tif (newTilePerLine !== scope.VirtualTileCtrl.tilePerLine) {\r\n\t\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.tilePerLine = newTilePerLine;\r\n\t\t\t\t\t\t\t\t\tvirtualizeItems();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction virtualizeItems() {\r\n\t\t\t\t\t\t\tif (scope.VirtualTileCtrl.rawitems) {\r\n\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.groupedItems = pxGroupItemsService.groupItems(scope.VirtualTileCtrl.rawitems, scope.VirtualTileCtrl.tilePerLine);\t\r\n\t\t\t\t\t\t\t\t\t//used to set the fixed width to minimize resizing of cards while resizing\r\n\t\t\t\t\t\t\t\t\tvar margin = $mdMedia('sm') || $mdMedia('xs') ? 8 : 16;\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tvar innerWidth = container.querySelector('.md-virtual-repeat-offsetter').clientWidth;\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.style.width = (innerWidth - margin) + 'px';\r\n\t\t\t\t\t\t\t\t},0);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t//new items in collection\r\n\t\t\t\t\t\tscope.$watchCollection('VirtualTileCtrl.rawitems', function (newVal, oldVal) {\r\n\t\t\t\t\t\t\tif (newVal === null) { return; }\r\n\t\t\t\t\t\t\tscope.VirtualTileCtrl.tilePerLine = null;\r\n\t\t\t\t\t\t\tscope.VirtualTileCtrl.calcVirtualGroups();\r\n\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t//element's width has changed\r\n\t\t\t\t\t\tscope.$watch(function () { return element[0].clientWidth; },\r\n\t\t\t\t\t\t\tfunction (newVal, oldVal) {\r\n\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.calcVirtualGroups();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\r\n\t\t\t\t\t\t//window size events\r\n\t\t\t\t\t\t$window.addEventListener('resize', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\t\t\t\t\t$window.addEventListener('orientationchange', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\t$window.removeEventListener('resize', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\t\t\t\t\t\t$window.removeEventListener('orientationchange', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction VirtualizeTileContainerController(pxAuthService) {\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.pxAuthService = pxAuthService;\r\n\t\t\t\tself.itemClick = function ($event, item) {\r\n\t\t\t\t\tself.click({ item: item });\r\n\t\t\t\t};\r\n\t\t\t\tself.itemSelect = function($event, item){\r\n\t\t\t\t\tself.select({item: item});\r\n\t\t\t\t};\t\t\r\n\t\t\t\tself.toggleSelected = function($event, item){\r\n\t\t\t\t\titem.selected = !item.selected;\r\n\t\t\t\t\tself.itemSelect($event, item);\r\n\t\t\t\t};\r\n\t\t\t\tself.itemSelected = function($event, item){\r\n\t\t\t\t\titem.selected = true;\t\r\n\t\t\t\t\tself.itemSelect($event, item);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 44 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'phoenix/components/virtualTileContainer/virtualTileContainer.template.html';\n\t\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tfolder\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{item.FolderName}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{item.DocumentName}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 45 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(46);\n\t\n\t/***/ },\n\t/* 46 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxOnLongClick', ['$timeout', 'pxEnvironmentService',LongClickDirective]);\r\n\t\r\n\t\t\tfunction LongClickDirective($timeout,EnvironmentService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\tlink: function($scope, $elm, $attrs) {\r\n\t\t\t\t\t\tvar timer = null;\r\n\t\t\t\t\t\tvar disableClick = false;\r\n\t\t\t\t\t\tvar _mdListTargeted = false;\r\n\t\t\t\t\t\t//detect touch set the target event\r\n\t\t\t\t\t\tvar _startEvent = 'mousedown';\r\n\t\t\t\t\t\tvar _endEvent = 'mouseup mouseleave';\r\n\t\t\t\t\t\tif(EnvironmentService.touchEnabled){\r\n\t\t\t\t\t\t\t_startEvent = 'touchstart';\r\n\t\t\t\t\t\t\t_endEvent = 'touchend touchmove';\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tretargetElement($elm);\r\n\t\r\n\t\t\t\t\t\tfunction start(event) {\r\n\t\t\t\t\t\t\ttimer = $timeout(function() {\t\r\n\t\t\t\t\t\t\t\tdisableClick = true;\r\n\t\t\t\t\t\t\t\t$scope.$eval($attrs.pxOnLongClick);\r\n\t\r\n\t\t\t\t\t\t\t\tif(_mdListTargeted){\r\n\t\t\t\t\t\t\t\t\t//disable button to eliminate click event firing\r\n\t\t\t\t\t\t\t\t\t$elm.attr('disabled', true);\r\n\t\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t\t$elm.removeAttr('disabled');\r\n\t\t\t\t\t\t\t\t\t\tdisableClick = false;\r\n\t\t\t\t\t\t\t\t\t}, 600);\r\n\t\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t}, 600);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction end(event) {\t\r\n\t\t\t\t\t\t\tif(!disableClick){\r\n\t\t\t\t\t\t\t\t$timeout.cancel(timer);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction click(event){\r\n\t\t\t\t\t\t\tif(disableClick){\r\n\t\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\tdisableClick = false;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t$timeout.cancel(timer);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction retargetElement(elm){\r\n\t\t\t\t\t\t\tswitch(elm[0].tagName){\r\n\t\t\t\t\t\t\t\tcase 'MD-LIST-ITEM':\r\n\t\t\t\t\t\t\t\t\t_mdListTargeted = true;\r\n\t\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t\t//timeout till the next digest cycle to verify all templates have rendered\r\n\t\t\t\t\t\t\t\t\t\t$elm = angular.element(elm[0].querySelector('button.md-button'));\r\n\t\t\t\t\t\t\t\t\t\t$elm.bind(_startEvent, start);\r\n\t\t\t\t\t\t\t\t\t\t$elm.bind('click', click);\r\n\t\t\t\t\t\t\t\t\t\t$elm.bind(_endEvent, end);\r\n\t\t\t\t\t\t\t\t\t},0);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t$elm.bind(_startEvent, start);\r\n\t\t\t\t\t\t\t\t\t$elm.bind('click', click);\r\n\t\t\t\t\t\t\t\t\t$elm.bind(_endEvent, end);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t$scope.$on('$destroy',function(){\r\n\t\t\t\t\t\t\t$elm.unbind(_startEvent, start);\r\n\t\t\t\t\t\t\t$elm.unbind(_endEvent, end);\r\n\t\t\t\t\t\t\t$elm.unbind('click',click);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 47 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(48);\n\t\n\t/***/ },\n\t/* 48 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('phoenix')\r\n\t\t\t\t.directive('pxOnControlClick', ['$timeout', 'pxEnvironmentService', ControlClickDirective]);\r\n\t\r\n\t\t\tfunction ControlClickDirective($timeout, EnvironmentService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'A',\r\n\t\t\t\t\tlink: function($scope, $elm, $attrs) {\r\n\t\t\t\t\t\t//only on nontouch\r\n\t\t\t\t\t\tif (EnvironmentService.touchEnabled) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tvar _mdListTargeted = false;\r\n\t\t\t\t\t\tretargetElement($elm);\r\n\t\r\n\t\t\t\t\t\tfunction click(event) {\r\n\t\t\t\t\t\t\tif (!event.ctrlKey) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tevent.stopImmediatePropagation();\t\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$scope.$apply(function(){\r\n\t\t\t\t\t\t\t\t$scope.$eval($attrs.pxOnControlClick);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tif(_mdListTargeted){\r\n\t\t\t\t\t\t\t\t$elm.attr('disabled', true);\r\n\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t$elm.removeAttr('disabled');\t\r\n\t\t\t\t\t\t\t\t}, 600);\r\n\t\t\t\t\t\t\t}\t\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tfunction retargetElement(elm){\r\n\t\t\t\t\t\t\tswitch(elm[0].tagName){\r\n\t\t\t\t\t\t\t\tcase 'MD-LIST-ITEM':\r\n\t\t\t\t\t\t\t\t\t_mdListTargeted = true;\r\n\t\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t\t//timeout till the next digest cycle to verify all templates have rendered\r\n\t\t\t\t\t\t\t\t\t\t$elm = angular.element(elm[0].querySelector('button.md-button'));\r\n\t\t\t\t\t\t\t\t\t\t$elm.bind('mousedown', click);\r\n\t\t\t\t\t\t\t\t\t},0);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t$elm.bind('click', click);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$scope.$on('$destroy',function(){\r\n\t\t\t\t\t\t\t$elm.unbind('click', click);\r\n\t\t\t\t\t\t\tif(_mdListTargeted){\r\n\t\t\t\t\t\t\t\t$elm.unbind('mousedown', click);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 49 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(50);\r\n\t\t__webpack_require__(51);\r\n\t\t__webpack_require__(52);\r\n\t\t__webpack_require__(53);\n\t\n\t/***/ },\n\t/* 50 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc filter\r\n\t\t\t* @name phoenix.filter:pxItemSize\r\n\t\t\t* @kind function\r\n\t\t\t* \r\n\t\t\t* @description\r\n\t\t\t* Converts a size in bytes to human readable text\r\n\t\t\t*\r\n\t\t\t* @param {string|number} bytes An item size in bytes.\r\n\t\t\t* \r\n\t\t\t*/\r\n\t\r\n\t\t\tvar SIZES = ['B', 'KB', 'MB', 'GB', 'TB'];\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix')\r\n\t\t\t\t.filter('pxItemSize', [ItemSizeFilter]);\r\n\t\r\n\t\t\tfunction ItemSizeFilter() {\r\n\t\t\t\treturn function toHumanReadable(bytes) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (bytes == null) {\r\n\t\t\t\t\t\treturn bytes;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tbytes = parseInt(bytes);\r\n\t\r\n\t\t\t\t\tif (bytes <= 0) {\r\n\t\t\t\t\t\treturn '0 B';\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvar unitIndex = Math.floor(Math.log(bytes) / Math.log(1024));\r\n\t\t\t\t\tvar unit = SIZES[unitIndex];\r\n\t\r\n\t\t\t\t\tvar constant = bytes / Math.pow(1024, unitIndex);\r\n\t\r\n\t\t\t\t\tif (unit !== 'B') {\r\n\t\t\t\t\t\tconstant = constant.toFixed(2);\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn constant + ' ' + unit;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 51 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix')\r\n\t\t\t\t.filter('pxTokenKeyValue', tokenKeyValueFilter);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc filter\r\n\t\t\t* @name phoenix.filter:pxTokenKeyValue\r\n\t\t\t* @kind function\r\n\t\t\t* \r\n\t\t\t* @description\r\n\t\t\t* Finds the key and value of a specific token.\r\n\t\t\t*\r\n\t\t\t* @param {searchToken} expression The name of the token to find\r\n\t\t\t* \r\n\t\t\t* @example\r\n\t\t\t* \r\n\t\t\t* {{nameString|pxTokenKeyValue:'Action').key}} - {{nameString|pxTokenKeyValue:'Action').value }}\r\n\t\t\t* \r\n\t\t\t*/\r\n\t\t\tfunction tokenKeyValueFilter() {\r\n\t\t\t\treturn function tokenKeyValueFilterReplace(str, searchToken) {\r\n\t\t\t\t\tvar retVal = { key: null, value: null };\r\n\t\t\t\t\tif (!str) {\r\n\t\t\t\t\t\treturn str;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (!searchToken || !str) {\r\n\t\t\t\t\t\treturn str;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvar tokenRegex = new RegExp('\\\\[@' + searchToken + '=(.*?)\\\\[\\/\\]');\r\n\t\t\t\t\t\r\n\t\t\t\t\tstr.replace(tokenRegex, function (token, capture) {\r\n\t\t\t\t\t\t// the captured text is in the form \"User=5]john\"\r\n\t\t\t\t\t\tvar parts = capture.split(']');\r\n\t\r\n\t\t\t\t\t\tretVal.key = parts[0];\r\n\t\t\t\t\t\tretVal.value = parts[1];\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn retVal;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 52 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\t/**\r\n\t\t\t* @ngdoc filter\r\n\t\t\t* @name phoenix.filter:pxTokenString\r\n\t\t\t* @kind function\r\n\t\t\t* \r\n\t\t\t* @description\r\n\t\t\t* Facilitates replacement of tokens in a tokenized string.\r\n\t\t\t*\r\n\t\t\t* @param {function(tokenObj)} expression The replacement function used to replace tokens.\r\n\t\t\t* - Given a token \"[@Name=john]jgaver[/]\", tokenObj will have the form\r\n\t\t\t* { attrName: 'Name', attrValue: 'john', stringValue: 'jgaver'}\r\n\t\t\t* \r\n\t\t\t* @example\r\n\t\t\t* \r\n\t\t\t* {{nameString|tokenString:function(tokenObj) { return tokenObj.stringValue; }}}\r\n\t\t\t* \r\n\t\t\t*/\r\n\t\r\n\t\t\tvar tokenRegex = /\\[@(.*?)\\[\\/\\]/g; // will capture with User=5]john from [@User=5]john[/]\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix')\r\n\t\t\t\t.filter('pxTokenString', tokenStringFilter);\r\n\t\r\n\t\t\tfunction tokenStringFilter() {\r\n\t\t\t\treturn function tokenStringFilterReplace(str, callback) {\r\n\t\r\n\t\t\t\t\tif (!callback || !str) {\r\n\t\t\t\t\t\treturn str;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn str.replace(tokenRegex, function (token, capture) {\r\n\t\t\t\t\t\t// the captured text is in the form \"User=5]john\"\r\n\t\t\t\t\t\tvar parts = capture.split(']');\r\n\t\t\t\t\t\tvar attrPart = parts[0].split('=');\r\n\t\r\n\t\t\t\t\t\treturn callback({\r\n\t\t\t\t\t\t\tattrName: attrPart[0],\r\n\t\t\t\t\t\t\tattrValue: attrPart[1],\r\n\t\t\t\t\t\t\tstringValue: parts[1],\r\n\t\t\t\t\t\t\toriginalStringValue: '[@' + capture + '[/]'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 53 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix')\r\n\t\t\t\t.filter('pxFilterUsers', [UsersFilter]);\r\n\t\r\n\t\t\tfunction UsersFilter() {\r\n\t\t\t\treturn function getUsers(users, matchText) {\r\n\t\t\t\t\tif (matchText === '' || matchText === null) { return users; }\r\n\t\t\t\t\treturn users.filter(function (user) {\r\n\t\t\t\t\t\treturn user.UserName.toLowerCase().indexOf(matchText.toLowerCase()) > -1 ||\r\n\t\t\t\t\t\t\tuser.EmailAddress.toLowerCase().indexOf(matchText.toLowerCase()) > -1 ? true : false;\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 54 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(5);\r\n\t\t__webpack_require__(55);\n\t\n\t/***/ },\n\t/* 55 */\n\t/***/ function(module, exports) {\n\t\n\t\t\"use strict\";\r\n\t\t(function () {\r\n\t\t 'use strict';\r\n\t\t var APP_IDENTIFIER_HEADER = 'x-phoenix-app-id';\r\n\t\t angular\r\n\t\t .module('phoenix.appIdentifier', [\r\n\t\t 'site.settings'\r\n\t\t ])\r\n\t\t .provider('pxAppIdentifierInterceptor', appIDInterceptorProvider);\r\n\t\t /**\r\n\t\t * @ngdoc provider\r\n\t\t * @name phoenix.appIdentifier.pxAppIdentifierInterceptor\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Provider for configuring the appIdInterceptorFactory before it is created.\r\n\t\t * If the provider is not used to configure the interceptor factory, it will\r\n\t\t * default to providing an interceptor for ShareBase.\r\n\t\t */\r\n\t\t function appIDInterceptorProvider() {\r\n\t\t var appId = 'ShareBase';\r\n\t\t return {\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAppIdentifierInterceptorProvider#setAppId\r\n\t\t * @methodOf phoenix.appIdentifier.pxAppIdentifierInterceptorProvider\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the app id that will be used in the pxAppIdentifierInterceptor\r\n\t\t *\r\n\t\t * @param {String} val The value to use as the app id.\r\n\t\t */\r\n\t\t setAppId: setAppId,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAppIdentifierInterceptorProvider#$get\r\n\t\t * @methodOf phoenix.appIdentifier.pxAppIdentifierInterceptorProvider\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Used to resolve the 'pxAppIdentifierInterceptor' service. Used by\r\n\t\t * angular's injector.\r\n\t\t */\r\n\t\t $get: getInterceptor\r\n\t\t };\r\n\t\t function setAppId(val) {\r\n\t\t appId = val;\r\n\t\t }\r\n\t\t function getInterceptor() {\r\n\t\t return appIDInterceptorFactory(appId);\r\n\t\t }\r\n\t\t }\r\n\t\t /**\r\n\t\t * @ngdoc service\r\n\t\t * @name phoenix.appIdentifier.pxAppIdentifierInterceptor\r\n\t\t *\r\n\t\t * @description\r\n\t\t * An http interceptor that adds an app id header to each request.\r\n\t\t * The app id is retrieved from the settings service and included\r\n\t\t * in each request to the API.\r\n\t\t */\r\n\t\t function appIDInterceptorFactory(appId) {\r\n\t\t return {\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAppIdentifierInterceptor#request\r\n\t\t * @methodOf phoenix.appIdentifier.pxAppIdentifierInterceptor\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Adds x-phoenix-app-id header to each request if there is an app id provided.\r\n\t\t */\r\n\t\t request: addIdToRequest\r\n\t\t };\r\n\t\t function addIdToRequest(config) {\r\n\t\t if (appId) {\r\n\t\t config.headers[APP_IDENTIFIER_HEADER] = appId;\r\n\t\t }\r\n\t\t return config;\r\n\t\t }\r\n\t\t }\r\n\t\t}());\r\n\t\n\t\n\t/***/ },\n\t/* 56 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(57);\r\n\t\t__webpack_require__(4);\r\n\t\t__webpack_require__(58);\r\n\t\t__webpack_require__(59);\r\n\t\t__webpack_require__(60);\r\n\t\t__webpack_require__(61);\r\n\t\t__webpack_require__(62);\r\n\t\t__webpack_require__(63);\r\n\t\t__webpack_require__(64);\n\t\n\t/***/ },\n\t/* 57 */\n\t/***/ function(module, exports) {\n\t\n\t\t\"use strict\";\r\n\t\t/* jshint maxcomplexity: false */\r\n\t\t/* jshint maxstatements: false */\r\n\t\t(function () {\r\n\t\t 'use strict';\r\n\t\t angular\r\n\t\t .module('phoenix.acl', [\r\n\t\t 'gettext'\r\n\t\t ])\r\n\t\t .constant('PX_OBJECT_TYPE', {\r\n\t\t DOCUMENT: 0,\r\n\t\t FOLDER: 1,\r\n\t\t LIBRARY: 2,\r\n\t\t UNDEFINED: -1\r\n\t\t })\r\n\t\t .constant('PX_RIGHTS_TYPE', {\r\n\t\t FULLCONTROL: 1,\r\n\t\t EDIT: 2,\r\n\t\t VIEW: 3,\r\n\t\t UPLOADONLY: 4,\r\n\t\t NOACCESS: 5,\r\n\t\t UNDEFINED: 0\r\n\t\t })\r\n\t\t .constant('PX_PERMISSION_TYPE', {\r\n\t\t FULLCONTROL: -1,\r\n\t\t READ: 0x0001,\r\n\t\t MODIFY: 0x0002,\r\n\t\t DELETE: 0x0004,\r\n\t\t ADDDOC: 0x0008,\r\n\t\t READDOC: 0x0010,\r\n\t\t MODDOC: 0x0020,\r\n\t\t DELDOC: 0x0040,\r\n\t\t ADDFOLD: 0x0080,\r\n\t\t READFOLD: 0x0100,\r\n\t\t MODFOLD: 0x0200,\r\n\t\t DELFOLD: 0x0400,\r\n\t\t LISTFOLD: 0x0800,\r\n\t\t SHARE: 0x1000,\r\n\t\t SHLINK: 0x2000,\r\n\t\t SHLINKR: 0x4000,\r\n\t\t DOWNLOAD: 0x8000,\r\n\t\t SHDOC: 0x10000,\r\n\t\t SHLKDOC: 0x20000,\r\n\t\t SHLKRDOC: 0x40000,\r\n\t\t DNLDDOC: 0x80000,\r\n\t\t SHFOLD: 0x200000,\r\n\t\t SHLKFOLD: 0x400000,\r\n\t\t SHLKRFOLD: 0x800000,\r\n\t\t DNLDFOLD: 0x100000,\r\n\t\t UPLOADONLY: 0x0009\r\n\t\t })\r\n\t\t .constant('PX_LINK_SETTINGS', {\r\n\t\t AuthRequired: 1,\r\n\t\t PasswordRequired: 2,\r\n\t\t SingleUse: 4,\r\n\t\t PinRequired: 8\r\n\t\t })\r\n\t\t .factory('PX_RIGHTS', [\r\n\t\t 'gettextCatalog',\r\n\t\t function (gettextCatalog) {\r\n\t\t return [{\r\n\t\t id: '',\r\n\t\t defaultPerms: [0, 0, 0],\r\n\t\t opts: false,\r\n\t\t name: ''\r\n\t\t }, {\r\n\t\t id: '1',\r\n\t\t defaultPerms: [-1, -1, -1],\r\n\t\t opts: false,\r\n\t\t name: gettextCatalog.getString('Full Control')\r\n\t\t }, {\r\n\t\t id: '2',\r\n\t\t defaultPerms: [0x188007, 0x188FFF, 0x188FFF],\r\n\t\t opts: true,\r\n\t\t name: gettextCatalog.getString('Edit')\r\n\t\t }, {\r\n\t\t id: '3',\r\n\t\t defaultPerms: [0x08001, 0x188911, 0x188911],\r\n\t\t opts: true,\r\n\t\t name: gettextCatalog.getString('View')\r\n\t\t }, {\r\n\t\t id: '4',\r\n\t\t defaultPerms: [0x0, 0x0009, 0x0],\r\n\t\t opts: true,\r\n\t\t name: gettextCatalog.getString('Upload Only')\r\n\t\t }, {\r\n\t\t id: '5',\r\n\t\t defaultPerms: [0, 0, 0],\r\n\t\t opts: false,\r\n\t\t name: gettextCatalog.getString('No Access')\r\n\t\t }];\r\n\t\t }\r\n\t\t ])\r\n\t\t .constant('PX_ACL_CONST', {\r\n\t\t AllSharePerms: 0xE77000,\r\n\t\t MaxPermission: 0x1000000\r\n\t\t })\r\n\t\t .factory('PX_EDIT_RIGHTS_OPTIONS', [\r\n\t\t 'gettextCatalog',\r\n\t\t function (gettextCatalog) {\r\n\t\t return [{\r\n\t\t id: 0,\r\n\t\t name: gettextCatalog.getString('Share with Users'),\r\n\t\t mask: [0x01000, 0x211000, 0x211000],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }, {\r\n\t\t id: 1,\r\n\t\t name: gettextCatalog.getString('Share View Link'),\r\n\t\t mask: [0x02000, 0x422000, 0x422000],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }, {\r\n\t\t id: 2,\r\n\t\t name: gettextCatalog.getString('Share Edit Link'),\r\n\t\t mask: [0x04000, 0x844000, 0x844000],\r\n\t\t apply: 'bits',\r\n\t\t constr: '+1'\r\n\t\t }, {\r\n\t\t id: 3,\r\n\t\t name: gettextCatalog.getString('Delete'),\r\n\t\t mask: [0x00004, 0x00444, 0x00444],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }];\r\n\t\t }\r\n\t\t ])\r\n\t\t .factory('PX_VIEW_RIGHTS_OPTIONS', [\r\n\t\t 'gettextCatalog',\r\n\t\t function (gettextCatalog) {\r\n\t\t return [{\r\n\t\t id: 0,\r\n\t\t name: gettextCatalog.getString('Upload'),\r\n\t\t mask: [0x00, 0x00088, 0x00088],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }, {\r\n\t\t id: 2,\r\n\t\t name: gettextCatalog.getString('Download'),\r\n\t\t mask: [0x08000, 0x188000, 0x188000],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }, {\r\n\t\t id: 3,\r\n\t\t name: gettextCatalog.getString('Share View Link'),\r\n\t\t mask: [0x02000, 0x422000, 0x422000],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }];\r\n\t\t }\r\n\t\t ])\r\n\t\t .factory('PX_UPLOAD_ONLY_RIGHTS_OPTIONS', [\r\n\t\t 'gettextCatalog',\r\n\t\t function (gettextCatalog) {\r\n\t\t return [{\r\n\t\t id: 0,\r\n\t\t name: gettextCatalog.getString('View Folder Contents'),\r\n\t\t mask: [0x00, 0x800, 0],\r\n\t\t apply: 'bits',\r\n\t\t constr: ''\r\n\t\t }];\r\n\t\t }\r\n\t\t ])\r\n\t\t .factory('pxRightsOptions', [\r\n\t\t 'PX_EDIT_RIGHTS_OPTIONS',\r\n\t\t 'PX_VIEW_RIGHTS_OPTIONS',\r\n\t\t 'PX_UPLOAD_ONLY_RIGHTS_OPTIONS',\r\n\t\t function (EditRightsOptions, ViewRightsOptions, UploadOnlyRightsOptions) {\r\n\t\t return [\r\n\t\t null,\r\n\t\t null,\r\n\t\t EditRightsOptions,\r\n\t\t ViewRightsOptions,\r\n\t\t UploadOnlyRightsOptions,\r\n\t\t null\r\n\t\t ];\r\n\t\t }\r\n\t\t ])\r\n\t\t .factory('pxObjectTypeMappings', [\r\n\t\t 'gettextCatalog',\r\n\t\t function (gettextCatalog) {\r\n\t\t return [\r\n\t\t gettextCatalog.getString('Document'),\r\n\t\t gettextCatalog.getString('Folder'),\r\n\t\t gettextCatalog.getString('Library')\r\n\t\t ];\r\n\t\t }\r\n\t\t ])\r\n\t\t .factory('pxAclService', [\r\n\t\t 'PX_OBJECT_TYPE',\r\n\t\t 'PX_RIGHTS_TYPE',\r\n\t\t 'PX_PERMISSION_TYPE',\r\n\t\t 'PX_RIGHTS',\r\n\t\t 'PX_ACL_CONST',\r\n\t\t 'pxRightsOptions',\r\n\t\t 'pxObjectTypeMappings',\r\n\t\t AclFactory\r\n\t\t ]);\r\n\t\t /**\r\n\t\t * @ngdoc service\r\n\t\t * @name phoenix.acl.pxAclService\r\n\t\t * @requires PX_OBJECT_TYPE\r\n\t\t * @requires PX_RIGHTS_TYPE\r\n\t\t * @requires PX_RIGHTS\r\n\t\t * @requires PX_ACL_CONST\r\n\t\t * @requires pxRightsOptions\r\n\t\t * @requires pxObjectTypeMappings\r\n\t\t * @description\r\n\t\t * A service used to create and interrogate ACL instances.\r\n\t\t **/\r\n\t\t function AclFactory(ObjectType, RightsType, PermissionType, Rights, AclConst, RightsOptions, ObjectTypeMappings) {\r\n\t\t function Acl(srvData, _itemType, _userName, _isGroup) {\r\n\t\t srvData = srvData || {};\r\n\t\t this.sourceName = '';\r\n\t\t this.sourceId = 0;\r\n\t\t this.sourceObjectType = ObjectType.UNDEFINED;\r\n\t\t this.isInherited = false;\r\n\t\t this.allowPerms = 0;\r\n\t\t this.isLinkAcl = false;\r\n\t\t this.isOwnerAcl = false;\r\n\t\t this.id = 0;\r\n\t\t this.rightId = 0;\r\n\t\t if (angular.isDefined(srvData.elementId)) {\r\n\t\t // this acl is an override of an existing acl\r\n\t\t this.type = _itemType;\r\n\t\t this.userId = srvData.userId;\r\n\t\t this.userName = srvData.userName;\r\n\t\t this.isGroup = srvData.isGroup;\r\n\t\t this.elementId = generateUniqueId(this.userId, this.isGroup);\r\n\t\t this.isInherited = true;\r\n\t\t return;\r\n\t\t }\r\n\t\t else if (angular.isDefined(srvData.AuthToken)) {\r\n\t\t // this acl is for a link (old version)\r\n\t\t this.id = srvData.ReferenceString;\r\n\t\t this.type = (angular.isDefined(srvData.FolderName) && srvData.FolderName) ? ObjectType.FOLDER : ObjectType.DOCUMENT;\r\n\t\t this.userId = 0;\r\n\t\t this.userName = 'anonymous';\r\n\t\t this.isGroup = false;\r\n\t\t this.isLinkAcl = true;\r\n\t\t }\r\n\t\t else if (angular.isDefined(srvData.ReferenceString)) {\r\n\t\t // this acl is for a link\r\n\t\t this.id = srvData.ReferenceString;\r\n\t\t this.type = srvData.ObjectType === 'Folder' ? ObjectType.FOLDER : ObjectType.DOCUMENT;\r\n\t\t this.userId = 0;\r\n\t\t this.userName = 'anonymous';\r\n\t\t this.isGroup = false;\r\n\t\t this.isLinkAcl = true;\r\n\t\t this.allowPerms = srvData.Permissions;\r\n\t\t }\r\n\t\t else if (_userName) {\r\n\t\t // this acl is for a new acl\r\n\t\t this.type = _itemType;\r\n\t\t this.userId = typeof (srvData) === 'number' ? srvData : 0;\r\n\t\t this.userName = _userName;\r\n\t\t this.isGroup = _isGroup;\r\n\t\t this.elementId = generateUniqueId(this.userId, this.isGroup);\r\n\t\t return;\r\n\t\t }\r\n\t\t else if (typeof srvData === 'number') {\r\n\t\t // this acl is constructed from an integer bit array\r\n\t\t this.allowPerms = srvData;\r\n\t\t this.userId = 0;\r\n\t\t this.userName = 'anonymous';\r\n\t\t this.isGroup = false;\r\n\t\t this.type = _itemType;\r\n\t\t this.updatePermissions(this.allowPerms);\r\n\t\t return;\r\n\t\t }\r\n\t\t else {\r\n\t\t // construct an Acl from a data object returned from a server API call\r\n\t\t if (angular.isDefined(srvData.FolderACLId)) {\r\n\t\t // acl is folder\r\n\t\t this.id = srvData.FolderACLId;\r\n\t\t this.type = ObjectType.FOLDER;\r\n\t\t }\r\n\t\t else if (angular.isDefined(srvData.LibraryACLId)) {\r\n\t\t // acl is library\r\n\t\t this.id = srvData.LibraryACLId;\r\n\t\t this.type = ObjectType.LIBRARY;\r\n\t\t }\r\n\t\t else {\r\n\t\t // assume Acl is on a document\r\n\t\t this.id = srvData.DocumentACLId;\r\n\t\t this.type = ObjectType.DOCUMENT;\r\n\t\t }\r\n\t\t this.isOwnerAcl = this.id < 0;\r\n\t\t if (srvData.UserGroupId !== 0) {\r\n\t\t this.userId = srvData.UserGroupId;\r\n\t\t this.userName = srvData.UserGroupName;\r\n\t\t this.isGroup = true;\r\n\t\t }\r\n\t\t else {\r\n\t\t this.userId = srvData.UserId;\r\n\t\t this.userName = srvData.UserName;\r\n\t\t this.isGroup = false;\r\n\t\t }\r\n\t\t this.elementId = generateUniqueId(this.userId, this.isGroup);\r\n\t\t if (this.type !== ObjectType.LIBRARY) {\r\n\t\t if (srvData.SourceFolderId !== 0) {\r\n\t\t this.sourceName = srvData.SourceFolderName;\r\n\t\t this.sourceId = srvData.SourceFolderId;\r\n\t\t this.sourceObjectType = ObjectType.FOLDER;\r\n\t\t this.isInherited = true;\r\n\t\t }\r\n\t\t else if (srvData.SourceLibraryId !== 0) {\r\n\t\t this.sourceName = srvData.SourceLibraryName;\r\n\t\t this.sourceId = srvData.SourceLibraryId;\r\n\t\t this.sourceObjectType = ObjectType.LIBRARY;\r\n\t\t this.isInherited = true;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t if (srvData.Embedded && srvData.Embedded.Permissions) {\r\n\t\t for (var i = 0; i < srvData.Embedded.Permissions.length; ++i) {\r\n\t\t var perm = srvData.Embedded.Permissions[i];\r\n\t\t if (perm.PermissionValue === PermissionType.FULLCONTROL) {\r\n\t\t if (perm.Allow) {\r\n\t\t this.allowPerms = -1;\r\n\t\t break;\r\n\t\t }\r\n\t\t }\r\n\t\t else {\r\n\t\t if (perm.Allow) {\r\n\t\t this.allowPerms += perm.PermissionValue;\r\n\t\t }\r\n\t\t else if (perm.Deny) {\r\n\t\t break;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t this.updatePermissions(this.allowPerms);\r\n\t\t }\r\n\t\t Acl.prototype.hasRight = function (right) {\r\n\t\t return this.rightId === right;\r\n\t\t };\r\n\t\t Acl.prototype.sourceString = function () {\r\n\t\t if (this.sourceObjectType === ObjectType.FOLDER) {\r\n\t\t return 'folder ' + this.sourceName;\r\n\t\t }\r\n\t\t else if (this.sourceObjectType === ObjectType.LIBRARY) {\r\n\t\t return 'library ' + this.sourceName;\r\n\t\t }\r\n\t\t else {\r\n\t\t return '';\r\n\t\t }\r\n\t\t };\r\n\t\t Acl.prototype.canModify = function () {\r\n\t\t return this.hasPermission(PermissionType.MODIFY);\r\n\t\t };\r\n\t\t Acl.prototype.canRead = function () {\r\n\t\t return this.hasPermission(PermissionType.READ);\r\n\t\t };\r\n\t\t Acl.prototype.canDownload = function () {\r\n\t\t return this.hasPermission(PermissionType.DOWNLOAD);\r\n\t\t };\r\n\t\t Acl.prototype.canUpload = function () {\r\n\t\t return this.hasPermission(PermissionType.ADDDOC);\r\n\t\t };\r\n\t\t Acl.prototype.canShareByLink = function () {\r\n\t\t return this.hasPermission(PermissionType.SHLINK + PermissionType.SHLINKR);\r\n\t\t };\r\n\t\t Acl.prototype.hasAllPermissions = function (perms) {\r\n\t\t /* jshint -W016 */\r\n\t\t return ((this.allowPerms & perms) === perms);\r\n\t\t /* jshint +W016 */\r\n\t\t };\r\n\t\t Acl.prototype.hasPermission = function (perms) {\r\n\t\t /* jshint -W016 */\r\n\t\t return ((this.allowPerms & perms) !== 0);\r\n\t\t /* jshint +W016 */\r\n\t\t };\r\n\t\t Acl.prototype.updatePermissions = function () {\r\n\t\t var defaultType;\r\n\t\t var defaultPerms;\r\n\t\t /* jshint -W016 */\r\n\t\t if (arguments.length === 1 && typeof arguments[0] === 'number') {\r\n\t\t this.allowPerms = arguments[0];\r\n\t\t }\r\n\t\t if (this.allowPerms === PermissionType.FULLCONTROL) {\r\n\t\t this.rightId = RightsType.FULLCONTROL;\r\n\t\t this.isModifiedRight = false;\r\n\t\t this.allowAdvancedSettings = false;\r\n\t\t }\r\n\t\t else if (this.allowPerms & PermissionType.MODIFY) {\r\n\t\t // editors have the right to modify documents\r\n\t\t this.rightId = RightsType.EDIT;\r\n\t\t defaultType = this.type > ObjectType.FOLDER ? ObjectType.FOLDER : this.type;\r\n\t\t defaultPerms = Rights[this.rightId].defaultPerms[defaultType];\r\n\t\t this.isModifiedRight = (defaultPerms !== this.allowPerms);\r\n\t\t this.allowAdvancedSettings = true;\r\n\t\t }\r\n\t\t else if (this.type === ObjectType.FOLDER && ((this.allowPerms & 0x7FF) === PermissionType.UPLOADONLY)) {\r\n\t\t this.rightId = RightsType.UPLOADONLY;\r\n\t\t this.isModifiedRight = false;\r\n\t\t this.allowAdvancedSettings = true;\r\n\t\t }\r\n\t\t else if (this.allowPerms & PermissionType.READ) {\r\n\t\t // viewers have the right to read documents\r\n\t\t this.rightId = RightsType.VIEW;\r\n\t\t defaultType = this.type > ObjectType.FOLDER ? ObjectType.FOLDER : this.type;\r\n\t\t defaultPerms = Rights[this.rightId].defaultPerms[defaultType];\r\n\t\t this.isModifiedRight = (defaultPerms !== this.allowPerms);\r\n\t\t this.allowAdvancedSettings = true;\r\n\t\t }\r\n\t\t else {\r\n\t\t this.rightId = RightsType.NOACCESS;\r\n\t\t this.isModifiedRight = false;\r\n\t\t this.allowAdvancedSettings = false;\r\n\t\t }\r\n\t\t /* jshint +W016 */\r\n\t\t };\r\n\t\t /*\r\n\t\t * @name Acl.getServerAcl\r\n\t\t *\r\n\t\t * @description\r\n\t\t * This method creates a server version of an acl so that it can be passed to the server's updatePermissions API\r\n\t\t */\r\n\t\t Acl.prototype.getServerAcl = function () {\r\n\t\t var newAcl = {\r\n\t\t UserId: this.isGroup ? 0 : this.userId,\r\n\t\t UserName: this.isGroup ? '' : this.userName,\r\n\t\t UserGroupId: this.isGroup ? this.userId : 0,\r\n\t\t UserGroupName: this.isGroup ? this.userName : '',\r\n\t\t RoleName: '' + this.rightId + (this.isModifiedRight ? '*' : ''),\r\n\t\t Embedded: {\r\n\t\t Permissions: []\r\n\t\t }\r\n\t\t };\r\n\t\t var permissionValue = PermissionType.FULLCONTROL;\r\n\t\t while (permissionValue < AclConst.MaxPermission) {\r\n\t\t var newPerm = {\r\n\t\t PermissionValue: permissionValue,\r\n\t\t Allow: false,\r\n\t\t Deny: false\r\n\t\t };\r\n\t\t if (this.rightId === RightsType.FULLCONTROL) {\r\n\t\t newPerm.Allow = true;\r\n\t\t }\r\n\t\t else if (permissionValue !== PermissionType.FULLCONTROL) {\r\n\t\t if (this.rightId === RightsType.NOACCESS) {\r\n\t\t newPerm.Deny = true;\r\n\t\t }\r\n\t\t else {\r\n\t\t /* jshint -W016 */\r\n\t\t newPerm.Allow = (permissionValue & this.allowPerms) !== 0;\r\n\t\t }\r\n\t\t }\r\n\t\t newAcl.Embedded.Permissions.push(newPerm);\r\n\t\t if (permissionValue < 0) {\r\n\t\t permissionValue = 1;\r\n\t\t }\r\n\t\t else {\r\n\t\t /* jshint -W016 */\r\n\t\t permissionValue <<= 1;\r\n\t\t }\r\n\t\t }\r\n\t\t return newAcl;\r\n\t\t };\r\n\t\t /*\r\n\t\t * @name Acl.setPermissions\r\n\t\t *\r\n\t\t * @description\r\n\t\t * This method is called to change the permission settings of the acl.\r\n\t\t */\r\n\t\t Acl.prototype.setPermissions = function (right, options) {\r\n\t\t right = +right;\r\n\t\t options = angular.isArray(options) ? options : [];\r\n\t\t this.rightId = right;\r\n\t\t var newPerms = Rights[right].defaultPerms[this.type];\r\n\t\t if (Rights[right].opts) {\r\n\t\t /* jshint -W016 */\r\n\t\t newPerms = newPerms & ~(AclConst.AllSharePerms);\r\n\t\t /* jshint +W016 */\r\n\t\t for (var i = 0; i < options.length; ++i) {\r\n\t\t var opt = options[i];\r\n\t\t var perms = opt.perms || opt.permissions;\r\n\t\t if (opt.apply === 'value') {\r\n\t\t if (opt.value === true) {\r\n\t\t newPerms = perms;\r\n\t\t break;\r\n\t\t }\r\n\t\t }\r\n\t\t else {\r\n\t\t /* jshint -W016 */\r\n\t\t if (opt.value === true) {\r\n\t\t newPerms |= perms;\r\n\t\t }\r\n\t\t else {\r\n\t\t newPerms &= ~perms;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t this.allowPerms = newPerms;\r\n\t\t this.updatePermissions();\r\n\t\t return this;\r\n\t\t };\r\n\t\t /*\r\n\t\t * @name Acl.getOptions\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Returns a string with the right options that are set\r\n\t\t */\r\n\t\t Acl.prototype.getOptions = function () {\r\n\t\t var result = '';\r\n\t\t var right = Rights[this.rightId];\r\n\t\t if (right.defaultPerms[this.type] !== 0) {\r\n\t\t var options = RightsOptions[this.rightId];\r\n\t\t if (options !== null) {\r\n\t\t for (var k = 0; k < options.length; ++k) {\r\n\t\t var option = options[k];\r\n\t\t /* jshint -W016 */\r\n\t\t if ((this.allowPerms & option.mask[this.type]) !== 0) {\r\n\t\t var nm = option.name;\r\n\t\t result = result.length > 0 ? result + ', ' + nm : nm;\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t return result;\r\n\t\t };\r\n\t\t /*\r\n\t\t * @name Acl.getAvailableRights\r\n\t\t *\r\n\t\t * @description\r\n\t\t * This method returns an array of objects where each object describes a right (i.e. Edit, View) that can\r\n\t\t * be assigned to the user given in the acl.\r\n\t\t */\r\n\t\t Acl.prototype.getAvailableRights = function (isInherited) {\r\n\t\t isInherited = typeof (isInherited) === 'boolean' ? isInherited : this.isInherited;\r\n\t\t var rights = [];\r\n\t\t for (var i = 1; i < Rights.length; ++i) {\r\n\t\t if (i >= this.rightId) {\r\n\t\t var right = Rights[i];\r\n\t\t var allowRight = false;\r\n\t\t switch (+right.id) {\r\n\t\t case RightsType.NOACCESS:\r\n\t\t allowRight = isInherited;\r\n\t\t break;\r\n\t\t case RightsType.UPLOADONLY:\r\n\t\t allowRight = false;\r\n\t\t break;\r\n\t\t default:\r\n\t\t allowRight = true;\r\n\t\t }\r\n\t\t if (allowRight) {\r\n\t\t rights.push({ id: right.id, name: right.name, options: right.opts });\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t return rights;\r\n\t\t };\r\n\t\t /*\r\n\t\t * @name Acl.getAvailableLinkRights\r\n\t\t *\r\n\t\t * @description\r\n\t\t * This method returns the list of avaiable rights and options that can be used to set the permissions on a new link\r\n\t\t */\r\n\t\t Acl.prototype.getAvailableLinkRights = function (objectType) {\r\n\t\t var rights = [];\r\n\t\t for (var i = RightsType.EDIT; i <= RightsType.UPLOADONLY; ++i) {\r\n\t\t var right = Rights[i];\r\n\t\t if (right.defaultPerms[objectType] !== 0 && i >= this.rightId && (this.hasPermission(PermissionType.SHLINKR) || i !== RightsType.EDIT)) {\r\n\t\t var options = RightsOptions[i];\r\n\t\t var uiOpts = [];\r\n\t\t if (options !== null) {\r\n\t\t for (var k = 0; k < options.length; ++k) {\r\n\t\t var option = options[k];\r\n\t\t var mask = option.mask[objectType];\r\n\t\t if (mask !== 0 &&\r\n\t\t /* jshint -W016 */\r\n\t\t (mask & AclConst.AllSharePerms) === 0 &&\r\n\t\t (mask & this.allowPerms) !== 0) {\r\n\t\t uiOpts.push({\r\n\t\t name: option.name,\r\n\t\t id: option.id,\r\n\t\t perms: mask,\r\n\t\t apply: option.apply,\r\n\t\t value: false\r\n\t\t });\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t rights.push({ id: right.id, name: right.name, options: uiOpts });\r\n\t\t }\r\n\t\t }\r\n\t\t return rights;\r\n\t\t };\r\n\t\t Acl.prototype.getAdvancedOptions = function (objectType, rightId, perms, asDict) {\r\n\t\t asDict = typeof (asDict) === 'boolean' ? asDict : false;\r\n\t\t rightId = +(rightId || this.rightId);\r\n\t\t perms = perms ? perms : Rights[rightId].defaultPerms[objectType];\r\n\t\t var result = asDict ? {} : [];\r\n\t\t var options = RightsOptions[rightId];\r\n\t\t var self = this;\r\n\t\t if (options) {\r\n\t\t options.forEach(function (option) {\r\n\t\t var mask = option.mask[objectType];\r\n\t\t /* jshint -W016 */\r\n\t\t if (mask !== 0 && (mask & self.allowPerms) !== 0) {\r\n\t\t var value = option.apply === 'bits' ?\r\n\t\t (perms & mask) === mask :\r\n\t\t perms === mask;\r\n\t\t var advOpt = {\r\n\t\t name: option.name,\r\n\t\t id: option.id,\r\n\t\t perms: mask,\r\n\t\t apply: option.apply,\r\n\t\t value: value,\r\n\t\t constr: option.constr\r\n\t\t };\r\n\t\t if (asDict) {\r\n\t\t result[advOpt.id] = advOpt;\r\n\t\t }\r\n\t\t else {\r\n\t\t result.push(advOpt);\r\n\t\t }\r\n\t\t }\r\n\t\t /* jshint +W016 */\r\n\t\t });\r\n\t\t }\r\n\t\t return result;\r\n\t\t };\r\n\t\t // define property getters/setters on the prototype\r\n\t\t Object.defineProperties(Acl.prototype, {\r\n\t\t 'rightName': {\r\n\t\t get: function () {\r\n\t\t var name = Rights[this.rightId].name;\r\n\t\t return name;\r\n\t\t }\r\n\t\t }\r\n\t\t });\r\n\t\t function generateUniqueId(principalId, isGroup) {\r\n\t\t if (isGroup === void 0) { isGroup = false; }\r\n\t\t return (isGroup ? 'acl-g' : 'acl-u') + principalId;\r\n\t\t }\r\n\t\t return {\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAclService#create\r\n\t\t * @methodOf phoenix.acl.pxAclService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Creates a new ACL instance using the most permissive arguments.\r\n\t\t *\r\n\t\t * @param {int} id The ID of the entity to generate an ACL for.\r\n\t\t *\r\n\t\t * @param {string} objectType The type of resource to generate an ACL for.\r\n\t\t *\r\n\t\t * @param {string} name The name of the entity to generate an ACL for.\r\n\t\t *\r\n\t\t * @param {bool} isGroup Value indiciating if this ACL is intended for a group.\r\n\t\t *\r\n\t\t * @returns {Object} A new Acl instance.\r\n\t\t *\r\n\t\t */\r\n\t\t create: function (id, objectType, name, isGroup) {\r\n\t\t // convert to proper array to maintain correct argument position in apply() call\r\n\t\t var args = Array.prototype.slice.call(arguments);\r\n\t\t args.unshift(null);\r\n\t\t // allow proxying of arbitrary arguments rather than keeping \r\n\t\t // method signature in sync with Acl constructor arguments\r\n\t\t /* jshint -W058 */\r\n\t\t return new (Function.prototype.bind.apply(Acl, args));\r\n\t\t /* jshint +W058 */\r\n\t\t },\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAclService#generateForEntity\r\n\t\t * @methodOf phoenix.acl.pxAclService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Convenience method that creates a new ACL instance for users or user groups.\r\n\t\t *\r\n\t\t * @param {object} entity A user or group to generate an ACL for.\r\n\t\t *\r\n\t\t * @param {string} objectType The type of resource to generate an ACL for.\r\n\t\t *\r\n\t\t * @returns {Acl} A new Acl instance.\r\n\t\t *\r\n\t\t */\r\n\t\t generateForEntity: function (entity, objectType) {\r\n\t\t var id = entity.UserId || entity.UserGroupId;\r\n\t\t var name = entity.UserName || entity.UserGroupName;\r\n\t\t var isGroup = angular.isString(entity.UserGroupName) && entity.UserGroupName.length > 0;\r\n\t\t return this.create(id, objectType, name, isGroup);\r\n\t\t },\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAclService#isAcl\r\n\t\t * @methodOf phoenix.acl.pxAclService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Verifies if the given object is an instance of an ACL.\r\n\t\t *\r\n\t\t * @param {object} obj The object to test.\r\n\t\t *\r\n\t\t * @returns {bool} True if the object is an instance of Acl.\r\n\t\t *\r\n\t\t */\r\n\t\t isAcl: function (obj) {\r\n\t\t return !!obj && (obj instanceof Acl);\r\n\t\t },\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAclService#toRoleNameFromId\r\n\t\t * @methodOf phoenix.acl.pxAclService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Converts a Phoenix role ID to its human-readable name.\r\n\t\t *\r\n\t\t * @param {int} roleId An integer ID representing an ownership role.\r\n\t\t *\r\n\t\t * @returns {string} Human readable role name localize for the current language.\r\n\t\t *\r\n\t\t */\r\n\t\t toRoleNameFromId: function (roleId) {\r\n\t\t var result = '';\r\n\t\t var rid;\r\n\t\t roleId = (roleId || '').toString();\r\n\t\t if (roleId.length > 0) {\r\n\t\t rid = +(roleId.charAt(0));\r\n\t\t result = rid in Rights ? Rights[rid].name : '';\r\n\t\t if (rid < 5) {\r\n\t\t result = ', ' + result;\r\n\t\t if (roleId.charAt(1) === '*') {\r\n\t\t result = result + '*';\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t return result;\r\n\t\t },\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name pxAclService#toTypeNameFromId\r\n\t\t * @methodOf phoenix.acl.pxAclService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Converts a phoenix resource type ID to its human-readable name.\r\n\t\t *\r\n\t\t * @param {int} typeId An integer ID representing a Phoenix resource type.\r\n\t\t *\r\n\t\t * @returns {string} Human readable role name localize for the current language.\r\n\t\t *\r\n\t\t */\r\n\t\t toTypeNameFromId: function (typeId) {\r\n\t\t return ObjectTypeMappings[typeId] || '';\r\n\t\t }\r\n\t\t };\r\n\t\t }\r\n\t\t})();\r\n\t\n\t\n\t/***/ },\n\t/* 58 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name phoenix.clipboardService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A service used to wrap clipboard.js as an injectable Angular dependecy.\r\n\t\t\t* Removes the global constructor after bootstrap.\r\n\t\t\t**/\r\n\t\t\tangular\r\n\t\t\t\t.module('phoenix')\r\n\t\t\t\t.factory('pxClipboardService', [\r\n\t\t\t\t\t'$window',\r\n\t\t\t\t\tClipboardService\r\n\t\t\t\t]);\r\n\t\t\t\r\n\t\t\tfunction ClipboardService($window) {\r\n\t\t\t\tvar instance = null;\r\n\t\t\t\tvar Clipboard = $window.Clipboard;\r\n\t\r\n\t\t\t\t// clear global reference\r\n\t\t\t\t$window.Clipboard = null;\r\n\t\t\t\tdelete $window.Clipboard;\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name clipboardService#init\r\n\t\t\t\t\t* @methodOf phoenix.clipboardService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Initializes clipboard functionality and instantiates a singleton instance.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {string} A DOM selector string.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tinit: init,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name clipboardService#copy\r\n\t\t\t\t\t* @methodOf phoenix.clipboardService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Attempts to copy the provided value to the clipboard.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {string} A value whose string representation is to be copied to the clipboard.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcopy: copy,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name clipboardService#init#clipboard\r\n\t\t\t\t\t* @propertyOf phoenix.clipboardService\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* The instantiated Clipboard instance.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Clipboard} A Clipboard object.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget clipboard() {\r\n\t\t\t\t\t\treturn instance;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction init(selector) {\r\n\t\t\t\t\tif (!instance) {\r\n\t\t\t\t\t\tif (!Clipboard) {\r\n\t\t\t\t\t\t\tthrow new Error('Clipboard.js not available.');\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tinstance = new Clipboard(selector);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t// data-clipboard-text doesn't work on Angular directives\r\n\t\t\t\tfunction copy(value) {\r\n\t\t\t\t\tvar body = angular.element($window.document.body);\r\n\t\t\t\t\tvar textarea = angular.element('\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
Email list is invalid! Please separate each address with a comma.
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\r\\n\\t\\t
\\r\\n\\t\\t{{'User Groups' | translate}}\\r\\n\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t{{'User Roles' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

Site Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow users to control features of this deployment such as libraries, password policies, API tokens, statistics and logs.

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

User Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow users to add/edit/delete users and groups for this deployment.

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t{{::'Send'| translate}}\\r\\n\\t\\t\\t{{::'Cancel'| translate}}\\r\\n\\t\\t
\\r\\n\\t\\r\\n\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 181 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(182);\r\n\t\t__webpack_require__(184);\n\t\n\t/***/ },\n\t/* 182 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 183 */,\n\t/* 184 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(185);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminLibraries\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminLibraries` displays a deployments libraryies\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminLibraries',\r\n\t\t\t\t[\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\tLibrariesDirective\r\n\t\t\t\t])\r\n\t\t\t\t.controller('sbadminLibrariesController',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'sbadminLibrariesDataStore',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tLibrariesController\r\n\t\t\t\t]);\r\n\t\t\t\r\n\t\t\tfunction LibrariesDirective(sbadminToolbarService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminLibrariesController',\r\n\t\t\t\t\tcontrollerAs: 'librariesCtrl',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction LibrariesController($state, sbadminToolbarService, sbadminLibrariesDataStore, pxProgressService, gettextCatalog) {\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.loading = false;\r\n\t\t\t\tself.sbadminLibrariesDataStore = sbadminLibrariesDataStore;\r\n\t\t\t\tself.pxProgressService = pxProgressService;\r\n\t\t\t\tself.doneLoading = doneLoading;\r\n\t\t\t\tself.goToLibrary = goToLibrary;\r\n\t\r\n\t\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Libraries');\r\n\t\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find libraries');\r\n\t\t\t\tsbadminToolbarService.actions = [{ icon: 'add', label: gettextCatalog.getString('Create Library'), trigger: function () { $state.go('administration.home.deployment.libraries.library', { libraryId: null }); } }];\r\n\t\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\r\n\t\t\t\tfunction loadLibraries() {\r\n\t\t\t\t\tisLoading();\r\n\t\t\t\t\tself.sbadminLibrariesDataStore.getLibraries()\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isLoading() {\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction doneLoading() {\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction goToLibrary(id) {\r\n\t\t\t\t\t$state.go('administration.home.deployment.libraries.library', { libraryId: id });\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tloadLibraries();\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 185 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/libraries/libraries.template.html';\n\t\tvar html = \" 0\\\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\taccount_balance\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

{{library.LibraryName}}

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\tCreated by {{personName}}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\tCreated on {{date}}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\taccount_balance\\r\\n\\t\\t
\\r\\n\\t\\t

You haven't created any libraries

\\r\\n\\t\\t

Create one by clicking here or the plus sign in the top right corner

\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 186 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(187);\r\n\t\t__webpack_require__(189);\n\t\n\t/***/ },\n\t/* 187 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 188 */,\n\t/* 189 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(190);\r\n\t\t\tvar dialogTemplateUrl = __webpack_require__(191);\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminLibrary\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminLibrary` displays a library to add/edit\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} libraryId The id of the library to display\r\n\t\t\t */\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminLibrary', [\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\tLibraryDirective\r\n\t\t\t\t])\r\n\t\t\t\t.controller('sbadminLibraryController', [\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'$mdDialog',\r\n\t\t\t\t\t'$mdMedia',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'sbToastService',\r\n\t\t\t\t\t'sbadminLibraryDataStore',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'ShareDialogTabs',\r\n\t\t\t\t\tLibraryController\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction LibraryDirective(sbadminToolbarService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminLibraryController',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tlibraryId: '@'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction LibraryController($state, $mdDialog, $mdMedia, pxProgressService, sbToastService, sbadminLibraryDataStore, sbadminToolbarService, gettextCatalog, ShareDialogTabs) {\r\n\t\t\t\tvar vm = this;\r\n\t\r\n\t\t\t\tvm.errorMessage = null;\r\n\t\t\t\tvm.doneLoading = doneLoading;\r\n\t\t\t\tvm.libraryDS = sbadminLibraryDataStore;\r\n\t\t\t\tvm.submitForm = submitForm;\r\n\t\t\t\tvm.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tvm.editShare = editShare;\r\n\t\t\t\tvm.createUserShare = createUserShare;\r\n\t\t\t\tvm.creating = !vm.libraryId && vm.libraryId > -1;\r\n\t\t\t\tsbadminToolbarService.title = vm.libraryId ? gettextCatalog.getString('Edit Library') : gettextCatalog.getString('Create Library');\r\n\t\t\t\tsbadminToolbarService.filterPlaceholder = 'Find shares';\r\n\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\r\n\t\t\t\tif (!vm.creating) {\r\n\t\t\t\t\tsbadminToolbarService.actions.push({ \r\n\t\t\t\t\t\ticon: 'share', \r\n\t\t\t\t\t\tlabel: gettextCatalog.getString('Create User Share'), \r\n\t\t\t\t\t\ttrigger: createUserShare \r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tisLoading();\r\n\t\t\t\tsbadminLibraryDataStore\r\n\t\t\t\t\t.load(vm.libraryId)\r\n\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\treturn sbadminLibraryDataStore.getShares();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\r\n\t\t\t\tfunction createUserShare($event) {\r\n\t\t\t\t\t// step index of 1 w/o share = new share\r\n\t\t\t\t\t$mdDialog.show(generateDialogConfig($event, 1));\t\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t// function createLinkShare($event) {\r\n\t\t\t\t// \t$mdDialog.show(generateDialogConfig($event, 'Create Link Share'));\t\t\r\n\t\t\t\t// }\r\n\t\r\n\t\t\t\tfunction editShare($event, share) {\r\n\t\t\t\t\t$mdDialog.show(generateDialogConfig($event, ShareDialogTabs.UserShare.Edit, share));\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction generateDialogConfig(event, targetStep, share) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcontroller: 'sbShareDialogController',\r\n\t\t\t\t\t\ttemplateUrl: dialogTemplateUrl,\r\n\t\t\t\t\t\tcontrollerAs:'vm',\r\n\t\t\t\t\t\ttargetEvent: event,\r\n\t\t\t\t\t\tfullscreen: $mdMedia('sm') || $mdMedia('xs'),\r\n\t\t\t\t\t\tclickOutsideToClose: true,\r\n\t\t\t\t\t\tlocals: {\r\n\t\t\t\t\t\t\tcontext: vm.libraryDS.library,\r\n\t\t\t\t\t\t\taclToEdit: share,\r\n\t\t\t\t\t\t\tdatastore: vm.libraryDS,\r\n\t\t\t\t\t\t\ttargetStep: targetStep\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction submitForm() {\r\n\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\tisLoading();\r\n\t\t\t\t\tsbadminLibraryDataStore.saveLibrary()\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\tsbToastService.showSimple(vm.libraryId ? gettextCatalog.getString('Library saved!') : gettextCatalog.getString('Library created!'));\r\n\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\t\t\tvm.errorMessage = e.data.Message;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isLoading() {\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction doneLoading() {\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 190 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/library/library.template.html';\n\t\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
You must supply a Library name.
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tYour name must be less than 50 characters.\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tUpdate\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tCreate\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t\\r\\n\\t{{::'Share Details' | translate}}\\r\\n\\t\\r\\n\\t\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 191 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase/components/shareDialog/shareDialog.template.html';\n\t\tvar html = \"\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

{{vm.getTitle()}}

\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tclear\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tDone\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNew Share\\r\\n\\t\\t\\t\\t\\t\\t\\tUpdate Share\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{vm.context.type === 'document' ? 'insert_drive_file' : 'folder'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{vm.context.name}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ vm.error }}\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t

Share With:

\\r\\n\\t\\t\\t\\t\\t\\t\\t

Shared With:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t

Rights:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ right.name }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
0\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tshow advanced share options\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\thide advanced share options\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
0\\\" layout=\\\"column\\\" layout-align=\\\"start stretch\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

Allow:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ao.name}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tView Existing Shares\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tCreate Share\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tUpdate Share\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tcheck_circle\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tContent has been successfully shared!\\r\\n\\t\\t\\t\\t\\t\\t\\tShare has been successfully updated!\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
Users have been notified of new shared content
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tDone\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

Rights:

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tUpload Only\\r\\n\\t\\t\\t\\t\\t\\t\\tView\\r\\n\\t\\t\\t\\t\\t\\t\\tEdit\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tshow advanced options\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t

Allow:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDelete\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tUpload\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDownload\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tView folder contents\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t

Expires:

\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t

Password:

\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t

Recipients:

\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tView Existing Shares\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tCreate Share\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tcheck_circle\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tNew share link has been generated!\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
0\\\" translate>Recipients have been emailed this new link
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{::'Copy To Clipboard' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{::'Done' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 192 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(193);\r\n\t\t__webpack_require__(195);\n\t\n\t/***/ },\n\t/* 193 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 194 */,\n\t/* 195 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(196);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminPasswordPolicies\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminPasswordPolicies` displays a deployments password policies\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminPasswordPolicies',\r\n\t\t\t\t[\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\tPasswordPoliciesDirective\r\n\t\t\t\t])\r\n\t\t\t\t.controller('sbadminPasswordPoliciesController',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'sbadminPasswordPoliciesDataStore',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tPasswordPoliciesController\r\n\t\t\t\t]);\r\n\t\t\t\r\n\t\t\tfunction PasswordPoliciesDirective(sbadminToolbarService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminPasswordPoliciesController',\r\n\t\t\t\t\tcontrollerAs: 'passwordsCtrl',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction PasswordPoliciesController($state, sbadminToolbarService, sbadminPasswordPoliciesDataStore, pxProgressService, gettextCatalog) {\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.doneLoading = doneLoading;\r\n\t\t\t\tself.pxProgressService = pxProgressService;\r\n\t\t\t\tself.passwordPoliciesDS = sbadminPasswordPoliciesDataStore;\r\n\t\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tself.goToPasswordPolicy = goToPasswordPolicy;\r\n\t\r\n\t\t\t\tsbadminToolbarService.actions = [{ icon: 'add', label: gettextCatalog.getString('Create Policy'), trigger: function () { $state.go('administration.home.deployment.passwordPolicies.details', { passwordPolicyId: '' }); } }];\r\n\t\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Password Policies');\r\n\t\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find password policies');\r\n\t\r\n\t\t\t\tfunction loadPasswordPolicies() {\r\n\t\t\t\t\tisLoading();\r\n\t\t\t\t\tsbadminPasswordPoliciesDataStore.getPasswordPolicies()\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isLoading() {\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction doneLoading() {\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction goToPasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\t$state.go('administration.home.deployment.passwordPolicies.details', { passwordPolicyId: passwordPolicyId });\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tloadPasswordPolicies();\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 196 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/passwordPolicies/passwordPolicies.template.html';\n\t\tvar html = \" 0\\\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{policy.Active === true ? 'check' : ''}}\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

{{policy.Name}}

\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Active Policy'| translate}}

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tlock_open\\r\\n\\t\\t
\\r\\n\\t\\t

You haven't created any password policies

\\r\\n\\t\\t

Create one by clicking here or the plus sign in the top right corner

\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 197 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(198);\r\n\t\t__webpack_require__(200);\n\t\n\t/***/ },\n\t/* 198 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 199 */,\n\t/* 200 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(201);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminPasswordPolicy\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminPasswordPolicy` displays a PasswordPolicy to add/edit\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} PasswordPolicyId The id of the PasswordPolicy to display\r\n\t\t\t */\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminPasswordPolicy',\r\n\t\t\t\t[\r\n\t\t\t\t\tPasswordPolicyDirective\r\n\t\t\t\t])\r\n\t\t\t\t.controller('sbadminPasswordPolicyController',\r\n\t\t\t\t[\r\n\t\t\t\t\t'sbToastService',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'sbadminPasswordPolicyDataStore',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tPasswordPolicyController\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PasswordPolicyDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminPasswordPolicyController',\r\n\t\t\t\t\tcontrollerAs: 'ppCtrl',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tpasswordPolicyId: '@'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction PasswordPolicyController(sbToastService, $state, sbadminPasswordPolicyDataStore, sbadminToolbarService, pxProgressService, gettextCatalog) {\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.loading = false;\r\n\t\t\t\tself.doneLoading = doneLoading;\r\n\t\t\t\tself.save = save;\r\n\t\t\t\tself.ppDS = sbadminPasswordPolicyDataStore;\r\n\t\t\t\tself.updateActiveStatus = updateActiveStatus;\r\n\t\r\n\t\t\t\tsbadminToolbarService.title = self.passwordPolicyId ? gettextCatalog.getString('Edit Password Policy') : gettextCatalog.getString('Create Password Policy');\r\n\t\t\t\t\r\n\t\t\t\tsbadminToolbarService.showFilter = false;\r\n\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\r\n\t\t\t\tfunction loadPasswordPolicy() {\r\n\t\t\t\t\tisLoading();\r\n\t\r\n\t\t\t\t\tsbadminPasswordPolicyDataStore.getPasswordPolicy(self.passwordPolicyId)\r\n\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\tdoneLoading();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateActiveStatus() {\r\n\t\t\t\t\tif (self.loading || !self.passwordPolicyId) { return; }\r\n\t\r\n\t\t\t\t\tif (self.ppDS.passwordPolicy.Active) {\r\n\t\t\t\t\t\tself.ppDS.activatePasswordPolicy(self.passwordPolicyId).then(function () {\r\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('{{name}} policy is now activated.', { name: self.ppDS.passwordPolicy.Name }));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tself.ppDS.deactivatePasswordPolicy(self.passwordPolicyId).then(function () {\r\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('{{name}} policy is now deactivated.', { name: self.ppDS.passwordPolicy.Name }));\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction save() {\r\n\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\tisLoading();\r\n\t\r\n\t\t\t\t\tself.ppDS.savePasswordPolicy()\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\tsbToastService.showSimple(self.passwordPolicyId ? gettextCatalog.getString('Password policy saved!') : gettextCatalog.getString('Password policy created!'));\r\n\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isLoading() {\r\n\t\t\t\t\tself.loading = true;\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction doneLoading() {\r\n\t\t\t\t\tself.loading = false;\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tloadPasswordPolicy();\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 201 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/passwordPolicy/passwordPolicy.template.html';\n\t\tvar html = \"
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tcheck\\r\\n\\t\\t\\t\\tclose\\r\\n\\t\\t\\t\\t

Active Policy

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
You must supply a name.
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tYour name must be less than 50 characters.\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Complexity

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Rotation

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Allow Reuse' | translate }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Prevent Reuse' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Prevent Reuse Within (n) Days' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{'Prevent Reuse Within (n) Changes' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Change Frequency

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Require (n) Hours Between Changes' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Expire Every (n) Days' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Content Quotas

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Account Lockout

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Lockout After (n) Failed Logins' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Lockout After Idle (n) Days' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Manual Release by Administrator' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Auto Release After (n) Minutes' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t {{::'Update' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t {{::'Create' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 202 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(203);\r\n\t\t__webpack_require__(205);\r\n\t\n\t\n\t/***/ },\n\t/* 203 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 204 */,\n\t/* 205 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(206);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminPendingDeployment\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminPendingDeployment` Displays pending deployment for editing\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} pendingDeploymentId The id of the pending deployment to edit\r\n\t\t\t */\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminPendingDeployment', DeploymentCreateDirective)\r\n\t\t\t\t.controller('sbadminPendingDeploymentController', [\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'sbadminPendingDeploymentsDataStore',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'sbToastService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'$mdDialog',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\tPendingDeploymentController\r\n\t\t\t\t]).config(['$stateProvider', function ($stateProvider) {\r\n\t\t\t\t\t$stateProvider.state('administration.home.pendingDeployment', {\r\n\t\t\t\t\t\turl: 'pending-deployment/:pendingDeploymentId',\r\n\t\t\t\t\t\tviews: {\r\n\t\t\t\t\t\t\t'adminContent@administration': {\r\n\t\t\t\t\t\t\t\ttemplate: function (params) { return ''; }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tresolve: {\r\n\t\t\t\t\t\t\tselectedDeployment: ['$stateParams', 'sbadminPendingDeploymentsDataStore', 'pxProgressService',\r\n\t\t\t\t\t\t\t\tfunction ($stateParams, sbadminPendingDeploymentsDataStore, pxProgressService) {\r\n\t\t\t\t\t\t\t\t\tpxProgressService.backdrop = false;\r\n\t\t\t\t\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.load();\r\n\t\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}]);\r\n\t\t\tfunction DeploymentCreateDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminPendingDeploymentController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: true,\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\tpendingDeploymentId: '@'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: function (scope, element, attrs) { }\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction PendingDeploymentController(sbadminToolbarService, sbadminPendingDeploymentsDataStore, pxProgressService, $state, sbToastService, gettextCatalog, $mdDialog, $q) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Pending Deployment');\r\n\t\t\t\tsbadminToolbarService.showFilter = false;\r\n\t\r\n\t\t\t\tvm.pendingDeployment = {};\r\n\t\t\t\tvm.saveAndResend = saveAndResend;\r\n\t\t\t\tvm.cancel = cancel;\r\n\t\t\t\tvm.save = save;\r\n\t\t\t\tvm.resend = resend;\r\n\t\t\t\tvm.error = false;\r\n\t\t\t\tvm.errorMessage = null;\r\n\t\t\t\tshowProgress();\r\n\t\r\n\t\t\t\tvar confirm = $mdDialog.confirm()\r\n\t\t\t\t\t.title(gettextCatalog.getString('Save Pending Deployment'))\r\n\t\t\t\t\t.textContent(gettextCatalog.getString('Would you to save your changes before resending a notification link?'))\r\n\t\t\t\t\t.ok(gettextCatalog.getString('Yes'))\r\n\t\t\t\t\t.cancel(gettextCatalog.getString('No'));\r\n\t\r\n\t\t\t\tfunction cancel() {\r\n\t\t\t\t\t$state.go('^');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction resend() {\r\n\t\t\t\t\tif (vm.form.$valid) {\r\n\t\t\t\t\t\tvar promise = $q.resolve();\r\n\t\t\t\t\t\tif (vm.form.$dirty) {\r\n\t\t\t\t\t\t\t// Ask the user if they would like to save their changes before resending the registration link\r\n\t\t\t\t\t\t\tpromise = $mdDialog.show(confirm)\r\n\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\tshowProgress();\r\n\t\t\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.save(vm.pendingDeployment)\r\n\t\t\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Deployment saved.'));\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t\t\t\t// No-op the dismissive action of the dialog.\r\n\t\t\t\t\t\t\t\t\t// This prevents the raised exception of the dialog from bubbling to the outer catch()\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpromise.then(function (response) {\r\n\t\t\t\t\t\t\tshowProgress();\r\n\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.resendNotification(vm.pendingDeployment)\r\n\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Notification resent.'));\r\n\t\t\t\t\t\t\t\t\tactionComplete();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction save() {\r\n\t\t\t\t\tif (vm.form.$valid) {\r\n\t\t\t\t\t\tshowProgress();\r\n\t\t\t\t\t\tsbadminPendingDeploymentsDataStore.save(vm.pendingDeployment)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Deployment saved.'));\r\n\t\t\t\t\t\t\t\tactionComplete();\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction saveAndResend() {\r\n\t\t\t\t\tif (vm.form.$valid) {\r\n\t\t\t\t\t\tshowProgress();\r\n\t\r\n\t\t\t\t\t\t// Cannot use $q.all[] since save must occur first\r\n\t\t\t\t\t\tsbadminPendingDeploymentsDataStore.save(vm.pendingDeployment)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.resendNotification(vm.pendingDeployment);\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Deployment saved. Notification resent.'));\r\n\t\t\t\t\t\t\t\tactionComplete();\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction actionComplete() {\r\n\t\t\t\t\thideProgress();\r\n\t\t\t\t\tvm.error = false;\r\n\t\t\t\t\t$state.go('^');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction showProgress() {\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction hideProgress() {\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction showError(response) {\r\n\t\t\t\t\tvm.error = true;\r\n\t\t\t\t\tif (response.data) {\r\n\t\t\t\t\t\tif (angular.isString(response.data)) {\r\n\t\t\t\t\t\t\tvm.errorMessage = response.data;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (response.data.ExceptionMessage && angular.isString(response.data.ExceptionMessage)) {\r\n\t\t\t\t\t\t\tvm.errorMessage = response.data.ExceptionMessage;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tsbadminPendingDeploymentsDataStore.getPendingDeployment(vm.pendingDeploymentId)\r\n\t\t\t\t\t.then(function (pendingDeployment) {\r\n\t\t\t\t\t\tvm.pendingDeployment = pendingDeployment;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t}\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 206 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/pendingDeployment/pendingDeployment.template.html';\n\t\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\tError processing request\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
Customer Identifier must be less than 40 characters.
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tSave\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tSave & Resend\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tResend\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 207 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(208);\r\n\t\t__webpack_require__(210);\n\t\n\t/***/ },\n\t/* 208 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 209 */,\n\t/* 210 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(211);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbStatisticCard\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbStatisticCard` creates a statistic card that displays an icon, label and value\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbStatisticCard', [StatisticCardDirective])\r\n\t\t\t\t.controller('sbStatisticCardController', [\r\n\t\t\t\t\tStatisticCardController\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction StatisticCardDirective($timeout, $animate) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbStatisticCardController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\ticon: '@',\r\n\t\t\t\t\t\tlabel: '@',\r\n\t\t\t\t\t\tvalue: '=value'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbindToController: true,\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction StatisticCardController() {\r\n\t\t\t}\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 211 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/statisticCard/statisticCard.template.html';\n\t\tvar html = \"\\r\\n\\t
\\r\\n\\t\\t{{vm.icon}}\\r\\n\\t\\t{{vm.value}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t{{vm.label}}\\r\\n\\t\\t\\r\\n\\t\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 212 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(213);\r\n\t\t__webpack_require__(215);\n\t\n\t/***/ },\n\t/* 213 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 214 */,\n\t/* 215 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(216);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminStatistics\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminStatistics` displays a deployments statistics\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminStatistics', [\r\n\t\t\t\t\t'$timeout',\r\n\t\t\t\t\tStatisticsDirective])\r\n\t\t\t\t.controller('sbadminStatisticsController', [\r\n\t\t\t\t\t'$mdMedia',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tStatisticsController\r\n\t\t\t\t]);\r\n\t\t\tfunction StatisticsDirective($timeout) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminStatisticsController',\r\n\t\t\t\t\tcontrollerAs: 'statisticsCtrl',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tdeploymentId:'@'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: true,\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tscope.statisticsCtrl.toggleSearch = function () {\r\n\t\t\t\t\t\t\tscope.statisticsCtrl.showSearch = !scope.statisticsCtrl.showSearch;\r\n\t\t\t\t\t\t\tif (!scope.statisticsCtrl.showSearch) {\r\n\t\t\t\t\t\t\t\tscope.statisticsCtrl.filterPhrase = '';\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tvar input = element.find('md-input-container').find('input')[0];\r\n\t\t\t\t\t\t\t\tinput.focus();\r\n\t\t\t\t\t\t\t}, 400);\r\n\t\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction StatisticsController($mdMedia, sbadminToolbarService, gettextCatalog) {\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Statistics');\r\n\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\t\t\tself.stepIndex = 0;\r\n\t\t\t\tself.recentStats = null;\r\n\t\t\t\tself.stats = null;\r\n\t\t\t\tself.users = null;\r\n\t\t\t\tself.statType = null;\r\n\t\t\t\tself.statIcon = statIcon;\r\n\t\t\t\tself.chartObject = null;\r\n\t\r\n\t\t\t\tfunction statIcon(type) {\r\n\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\tcase 'ByUser':\r\n\t\t\t\t\t\t\treturn 'person';\r\n\t\t\t\t\t\tcase 'ByDate':\r\n\t\t\t\t\t\t\treturn 'date_range';\r\n\t\t\t\t\t\tcase 'ByInstance':\r\n\t\t\t\t\t\t\treturn 'data_usage';\r\n\t\t\t\t\t\tcase 'Custom':\r\n\t\t\t\t\t\t\treturn 'assessment';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t//initialize\r\n\t\t\t\t(function loadStats() {\r\n\t\t\t\t\tself.recentStats = [\r\n\t\t\t\t\t\t{ type:'deployment', target:'Content Downloaded by Data', runDate:'2016-04-08T17:04:06.593Z', favorite:true},\r\n\t\t\t\t\t\t{ type: 'user', target: 'jeff ', runDate: '2016-04-06T17:04:08.593Z', favorite: true },\r\n\t\t\t\t\t\t{ type: 'deployment', target: 'Content Downloaded by User', runDate: '2016-04-07T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t\t{ type: 'deployment', target: 'Security Violations by Date', runDate: '2016-04-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t\t{ type: 'deployment', target: 'Security Violations by Date', runDate: '2016-04-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t\t{ type: 'deployment', target: 'Shared by User', runDate: '2016-04-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t\t{ type: 'user', target: 'Random User', runDate: '2016-03-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t\t{ type: 'user', target: 'Random User', runDate: '2016-03-06T17:04:06.593Z', favorite: false }\r\n\t\t\t\t\t];\r\n\t\r\n\t\t\t\t\tself.users = [{\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Frank Menoni',\r\n\t\t\t\t\t\t'name': 'Frank Menoni',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Statistics for user Frank Menoni',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/8/statistics',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2220'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'jeff',\r\n\t\t\t\t\t\t'name': 'jeff',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Statistics for user jeff',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/6/statistics',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2221'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Jeff Home',\r\n\t\t\t\t\t\t'name': 'Jeff Home',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Statistics for user Jeff Home',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/9/statistics',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2222'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Random User',\r\n\t\t\t\t\t\t'name': 'Random User',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Statistics for user Random User',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/10/statistics',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2223'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Test Share User',\r\n\t\t\t\t\t\t'name': 'Test Share User',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Statistics for user Test Share User',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/7/statistics',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2224'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'User Registration Test',\r\n\t\t\t\t\t\t'name': 'User Registration Test',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Statistics for user User Registration Test',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/11/statistics',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2225'\r\n\t\t\t\t\t}];\r\n\t\r\n\t\t\t\t\tself.stats = [{\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Content Downloaded by Date',\r\n\t\t\t\t\t\t'name': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'Document content downloaded by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ContentDownloadedByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2154'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Content Downloaded by User',\r\n\t\t\t\t\t\t'name': 'ContentDownloadedByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Document content downloaded by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ContentDownloadedByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2155'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Deployment Totals',\r\n\t\t\t\t\t\t'name': 'DeploymentTotalsUsage',\r\n\t\t\t\t\t\t'kind': 'Custom',\r\n\t\t\t\t\t\t'description': 'Totals for Deployment',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DeploymentTotalsUsage',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2156'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Documents Created By Date',\r\n\t\t\t\t\t\t'name': 'DocumentsCreatedByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'Documents created by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsCreatedByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2157'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Documents Created By User',\r\n\t\t\t\t\t\t'name': 'DocumentsCreatedByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Documents created by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsCreatedByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2158'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Documents Viewed By Date',\r\n\t\t\t\t\t\t'name': 'DocumentsViewedByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'The number of documents viewed by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsViewedByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2159'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Documents Viewed By User',\r\n\t\t\t\t\t\t'name': 'DocumentsViewedByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'The number of documents viewed by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsViewedByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2160'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Library Disk Usage',\r\n\t\t\t\t\t\t'name': 'LibraryDiskUsage',\r\n\t\t\t\t\t\t'kind': 'ByInstance',\r\n\t\t\t\t\t\t'description': 'The disk utilization for this library.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/LibraryDiskUsage',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2161'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Logins by Date',\r\n\t\t\t\t\t\t'name': 'LoginsByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'The number of logins for this deployment by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/LoginsByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2162'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Logins by User',\r\n\t\t\t\t\t\t'name': 'LoginsByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'The number of logins for this deployment by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/LoginsByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2163'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Security Violations by Date',\r\n\t\t\t\t\t\t'name': 'SecurityViolationsByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'The number of security violations for this deployment by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/SecurityViolationsByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2164'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Security Violations by User',\r\n\t\t\t\t\t\t'name': 'SecurityViolationsByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'The number of security violations for this deployment by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/SecurityViolationsByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2165'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Shared by Date',\r\n\t\t\t\t\t\t'name': 'SharesByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'Document shares by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SharesByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2166'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Shared by User',\r\n\t\t\t\t\t\t'name': 'SharesByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Document shares by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SharesByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2167'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Shares Downloaded by Date',\r\n\t\t\t\t\t\t'name': 'ShareContentDownloadedByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'Document shares downloaded by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ShareContentDownloadedByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2168'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Shares Downloaded by User',\r\n\t\t\t\t\t\t'name': 'ShareContentDownloadedByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Document shares downloaded by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ShareContentDownloadedByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2169'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Synced by Date',\r\n\t\t\t\t\t\t'name': 'SyncedByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'Document content synchronized offline by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SyncedByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2170'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Synced by User',\r\n\t\t\t\t\t\t'name': 'SyncedByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'Document content synchronized offline by user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SyncedByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2171'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t\t'displayName': 'Tag Count',\r\n\t\t\t\t\t\t'name': 'DocumentTags',\r\n\t\t\t\t\t\t'kind': 'Custom',\r\n\t\t\t\t\t\t'description': 'Number of document tags by tag value.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentTags',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2172'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Users Created by Date',\r\n\t\t\t\t\t\t'name': 'UsersCreatedByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'The number of users created within this deployment by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/UsersCreatedByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2173'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Users Created by User',\r\n\t\t\t\t\t\t'name': 'UsersCreatedByUser',\r\n\t\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t\t'description': 'The number of users created witin this deployment by a user.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/UsersCreatedByUser',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2174'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t\t'displayName': 'Users Self Registered By Date',\r\n\t\t\t\t\t\t'name': 'UsersSelfRegisteredByDate',\r\n\t\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t\t'description': 'The number of users that registered themselves by date.',\r\n\t\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/UsersSelfRegisteredByDate',\r\n\t\t\t\t\t\t'$$hashKey': 'object:2175'\r\n\t\t\t\t\t}];\r\n\t\r\n\t\t\t\t\tself.userData = [{\r\n\t\t\t\t\t\t'Id': 'SharesByUser',\r\n\t\t\t\t\t\t'Label': 'Shared',\r\n\t\t\t\t\t\t'Count': 9,\r\n\t\t\t\t\t\t'$$hashKey': 'object:490'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByUser',\r\n\t\t\t\t\t\t'Label': 'Content Downloaded',\r\n\t\t\t\t\t\t'Count': 6,\r\n\t\t\t\t\t\t'$$hashKey': 'object:491'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'SyncedByUser',\r\n\t\t\t\t\t\t'Label': 'Synced',\r\n\t\t\t\t\t\t'Count': 0,\r\n\t\t\t\t\t\t'$$hashKey': 'object:492'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'DocumentsCreatedByUser',\r\n\t\t\t\t\t\t'Label': 'Documents Created',\r\n\t\t\t\t\t\t'Count': 226,\r\n\t\t\t\t\t\t'$$hashKey': 'object:493'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ShareContentDownloadedByUser',\r\n\t\t\t\t\t\t'Label': 'Shares Downloaded',\r\n\t\t\t\t\t\t'Count': 0,\r\n\t\t\t\t\t\t'$$hashKey': 'object:494'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'DocumentsViewedByUser',\r\n\t\t\t\t\t\t'Label': 'Documents Viewed',\r\n\t\t\t\t\t\t'Count': 350,\r\n\t\t\t\t\t\t'$$hashKey': 'object:495'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'LibraryDiskUsage',\r\n\t\t\t\t\t\t'Label': 'Library Disk Usage (MB)',\r\n\t\t\t\t\t\t'Count': 155315940 / 1024 / 1024,\r\n\t\t\t\t\t\t'$$hashKey': 'object:496'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'LoginsByUser',\r\n\t\t\t\t\t\t'Label': 'Logins',\r\n\t\t\t\t\t\t'Count': 407,\r\n\t\t\t\t\t\t'$$hashKey': 'object:497'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'SecurityViolationsByUser',\r\n\t\t\t\t\t\t'Label': 'Security Violations',\r\n\t\t\t\t\t\t'Count': 48,\r\n\t\t\t\t\t\t'$$hashKey': 'object:498'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'UsersCreatedByUser',\r\n\t\t\t\t\t\t'Label': 'Users Created',\r\n\t\t\t\t\t\t'Count': 2,\r\n\t\t\t\t\t\t'$$hashKey': 'object:499'\r\n\t\t\t\t\t}];\r\n\t\t\t\t\tself.chartObject = {};\r\n\t\t\t\t\tself.chartObject.type = 'BarChart';\r\n\t\t\t\t\tself.chartObject.data = {\r\n\t\t\t\t\t\t'cols': [\r\n\t\t\t\t\t\t\t{ id: 't', label: 'Stat', type: 'string' },\r\n\t\t\t\t\t\t\t{ id: 's', label: 'Count', type: 'number' }\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t\t'rows': []\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\tfor (var i = 0; i < self.userData.length; i++) {\r\n\t\t\t\t\t\tself.chartObject.data.rows.push({ c: [{ v: self.userData[i].Label }, { v: self.userData[i].Count }] });\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tself.chartObject.options = {\r\n\t\t\t\t\t\t'backgroundColor': 'transparent',\r\n\t\t\t\t\t\t'colors': ['#528e42'],\r\n\t\t\t\t\t\t'legend': { 'position': 'none' }\r\n\t\t\t\t\t};\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.downloads = [{\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'Label': '1/2/2016',\r\n\t\t\t\t\t\t'Count': 15,\r\n\t\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'Label': '1/4/2016',\r\n\t\t\t\t\t\t'Count': 8,\r\n\t\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'Label': '1/15/2016',\r\n\t\t\t\t\t\t'Count': 25,\r\n\t\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'Label': '2/17/2016',\r\n\t\t\t\t\t\t'Count': 2,\r\n\t\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'Label': '3/8/2016',\r\n\t\t\t\t\t\t'Count': 5,\r\n\t\t\t\t\t\t'$$hashKey': 'object:798'\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t\t'Label': '3/23/2016',\r\n\t\t\t\t\t\t'Count': 3,\r\n\t\t\t\t\t\t'$$hashKey': 'object:799'\r\n\t\t\t\t\t}];\r\n\t\r\n\t\t\t\t\tself.lineObject = {};\r\n\t\t\t\t\tself.lineObject.type = 'LineChart';\r\n\t\t\t\t\tself.lineObject.data = {\r\n\t\t\t\t\t\t'cols': [\r\n\t\t\t\t\t\t\t{ id: 't', label: 'Date', type: 'string' },\r\n\t\t\t\t\t\t\t{ id: 's', label: 'Downloads', type: 'number' }\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t\t'rows': []\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\tfor (var x = 0; x < self.downloads.length; x++) {\r\n\t\t\t\t\t\tself.lineObject.data.rows.push({ c: [{ v: self.downloads[x].Label }, { v: self.downloads[x].Count }] });\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tself.lineObject.options = {\r\n\t\t\t\t\t\t'backgroundColor': 'transparent',\r\n\t\t\t\t\t\t'colors': ['#528e42'],\r\n\t\t\t\t\t\t'hAxis': {'slantedText': true, 'slantedTextAngle': 45},\r\n\t\t\t\t\t\t'vAxis': { 'title': 'Downloads' },\r\n\t\t\t\t\t\t'legend': {'position': 'none'}\r\n\t\t\t\t\t};\r\n\t\t\t\t}());\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 216 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/statistics/statistics.template.html';\n\t\tvar html = \"
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tStatistic Type\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tstorage\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDeployment\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tperson\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tUser\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tFavorite\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{stat.type === 'deployment' ? 'storage' : 'person'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.target}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.runDate | sbSimpleDateTimeString}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tRecent\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{stat.type === 'deployment' ? 'storage' : 'person'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.target }}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.runDate | sbSimpleDateTimeString}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tarrow_back\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

See Stats for...

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{statisticsCtrl.statIcon(stat.kind)}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.displayName}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.description}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\taccount_circle\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{user.displayName}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tarrow_back\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t

Stats for

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tattach_file\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Attach to email'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tstar_border\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Toggle favorite'| translate}}\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvisibility\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Change Chart View'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tassessment\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Bar Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tshow_chart\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Line Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tpie_chart\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Pie Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tbubble_chart\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Bubble Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
Google Chart Removed
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
Google Chart Removed
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 217 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(218);\r\n\t\t__webpack_require__(220);\n\t\n\t/***/ },\n\t/* 218 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 219 */,\n\t/* 220 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(221);\r\n\t\t\tvar userDeleteTemplateUrl = __webpack_require__(222);\r\n\t\t\tvar deploymentGroupTemplateUrl = __webpack_require__(223);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminUser\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminInviteUsers` form to invite users to a deployment\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment to invite users to\r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} userId The id of the deployment to user to view details\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminUser', [UserDirective])\r\n\t\t\t\t.controller('sbadminUserController', [\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'$mdDialog',\r\n\t\t\t\t\t'sbToastService',\r\n\t\t\t\t\t'sbUserService',\r\n\t\t\t\t\t'sbUserDataStore',\r\n\t\t\t\t\t'sbadminDeploymentGroupsDataStore',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'pxAuthService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\t\tUserController\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction UserDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminUserController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\t\tuserId: '@',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfunction UserController($q, $state, $mdDialog, sbToastService, sbUserService, sbUserDataStore, sbadminDeploymentGroupsDataStore, sbadminToolbarService, pxProgressService, pxAuthService, gettextCatalog, sbDeploymentNameService) {\r\n\t\t\t\tvar isLoading = true;\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvar initTasks = [];\r\n\t\t\t\tvar STATUS_CODES = {\r\n\t\t\t\t\tERR_USER_ALREADY_TENANT_ADMIN : gettextCatalog.getString('User is already a tenant admin.')\r\n\t\t\t\t};\r\n\t\t\t\tvar adminDeploymentGroup = null;\r\n\t\r\n\t\t\t\tvm.deploymentGroupsDS = sbadminDeploymentGroupsDataStore;\r\n\t\t\t\tvm.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tvm.sbUserDataStore = sbUserDataStore;\r\n\t\t\t\tvm.updateUserLock = updateUserLock;\r\n\t\t\t\tvm.toggleTenantAdmin = toggleTenantAdmin;\r\n\t\t\t\tvm.deleteUser = deleteUser;\r\n\t\t\t\tvm.submitForm = submitForm;\r\n\t\t\t\tvm.authService = pxAuthService;\r\n\t\t\t\tvm.toastVisible = false;\r\n\t\t\t\tvm.errorMessage = null;\r\n\t\t\t\tvm.systemName = null;\r\n\t\t\t\tvm.promotingAsAdmin = promotingAsAdmin;\r\n\t\t\t\tvm.canPromoteSiteAdmins = pxAuthService.isSiteAdmin || pxAuthService.isSysAdmin || pxAuthService.isTenantAdmin;\r\n\t\r\n\t\t\t\tsbadminToolbarService.title = !vm.userId ? gettextCatalog.getString('Create User') : gettextCatalog.getString('Edit User');\r\n\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\tsbadminToolbarService.showFilter = false;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(pxAuthService.isSysAdmin) {\r\n\t\t\t\t\tinitTasks.push(sbadminDeploymentGroupsDataStore.load());\r\n\t\t\t\t}\r\n\t\t\t\telse if (pxAuthService.isTenantAdmin) {\r\n\t\t\t\t\t// retrieve the deployment group the logged-in tenant admin administers\r\n\t\t\t\t\t// to potentially promote the modified user to\r\n\t\t\t\t\tinitTasks.push(sbUserService\r\n\t\t\t\t\t\t.getUser(pxAuthService.userId, pxAuthService.deploymentId)\r\n\t\t\t\t\t\t.then(function(user){\r\n\t\t\t\t\t\t\tadminDeploymentGroup = user.Embedded.AdministratorOfDeploymentGroups[0];\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tinitTasks.push(sbUserDataStore.getUser(vm.userId, vm.deploymentId));\r\n\t\r\n\t\t\t\tif(vm.userId) {\r\n\t\t\t\t\tvm.sbadminToolbarService.actions.push({ \r\n\t\t\t\t\t\ticon: 'delete', \r\n\t\t\t\t\t\tlabel: gettextCatalog.getString('Delete User'), \r\n\t\t\t\t\t\ttrigger: deleteUser \r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateUserLock() {\r\n\t\t\t\t\tif (isLoading || !vm.userId) { return; }\r\n\t\r\n\t\t\t\t\tif (sbUserDataStore.user.IsLocked) {\r\n\t\t\t\t\t\tsbUserDataStore.lockUser(sbUserDataStore.user.UserId, vm.deploymentId).then(function () {\r\n\t\t\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now locked', { userName: sbUserDataStore.user.UserName });\r\n\t\t\t\t\t\t\ttoast(message);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tsbUserDataStore.unlockUser(sbUserDataStore.user.UserId, vm.deploymentId).then(function () {\r\n\t\t\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now unlocked', { userName: sbUserDataStore.user.UserName });\r\n\t\t\t\t\t\t\ttoast(message);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction toggleTenantAdmin(isTenantAdmin, ev) {\r\n\t\t\t\t\tif(isTenantAdmin) {\r\n\t\t\t\t\t\tif (pxAuthService.isTenantAdmin) { \r\n\t\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = adminDeploymentGroup;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (pxAuthService.isSysAdmin) {\r\n\t\t\t\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\t\t\t\tcontroller: 'sbDeploymentGroupSelectController',\r\n\t\t\t\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\t\t\t\ttemplateUrl: deploymentGroupTemplateUrl,\r\n\t\t\t\t\t\t\t\ttargetEvent: ev,\r\n\t\t\t\t\t\t\t\tlocals:{groups: sbadminDeploymentGroupsDataStore.groups},\r\n\t\t\t\t\t\t\t\tclickOutsideToClose: false\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then(function (group) {\r\n\t\t\t\t\t\t\t\t//done\r\n\t\t\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = group;\r\n\t\t\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t\t\t//canceled\r\n\t\t\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = null;\r\n\t\t\t\t\t\t\t\tvm.sbUserDataStore.isTenantAdmin = false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deleteUser($event) {\r\n\t\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\t\tcontroller: 'sbUserDeleteDialogController',\r\n\t\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\t\ttemplateUrl: userDeleteTemplateUrl,\r\n\t\t\t\t\t\ttargetEvent: $event,\r\n\t\t\t\t\t\tlocals: {\r\n\t\t\t\t\t\t\tuser: vm.sbUserDataStore.user,\r\n\t\t\t\t\t\t\tdeploymentID: vm.deploymentId\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tclickOutsideToClose: false\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function (transferUser) {\r\n\t\t\t\t\t\t//delete user & reasign content & udate DS\r\n\t\t\t\t\t\ttransferUser = transferUser ? transferUser : null;\r\n\t\t\t\t\t\tsbUserDataStore.removeUser(vm.sbUserDataStore.user, vm.deploymentId, transferUser)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\t\tif (response.status === 409) {\r\n\t\t\t\t\t\t\t\t\t//conflict - user to delete has other users conent\r\n\t\t\t\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\r\n\t\t\t\t\t\t\t\t\t\t.title(gettextCatalog.getString('Continue with user deletion?'))\r\n\t\t\t\t\t\t\t\t\t\t.textContent(gettextCatalog.getString('{{deletedUser}} has content that is owned by a different user, which will be deleted if this user is deleted. ', { deletedUser: vm.sbUserDataStore.user.UserName }))\r\n\t\t\t\t\t\t\t\t\t\t.ariaLabel(gettextCatalog.getString('Delete User Conflict'))\r\n\t\t\t\t\t\t\t\t\t\t.ok(gettextCatalog.getString('Continue'))\r\n\t\t\t\t\t\t\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\r\n\t\t\t\t\t\t\t\t\treturn $mdDialog.show(confirm).then(function () {\r\n\t\t\t\t\t\t\t\t\t\t//delete user & force delete shared content\r\n\t\t\t\t\t\t\t\t\t\tsbUserDataStore.removeUser(vm.sbUserDataStore.user, vm.deploymentId, null, true)\r\n\t\t\t\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}, angular.noop());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}, angular.noop());\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction submitSuccess(response) {\r\n\t\t\t\t\t//REMOVE for ticket SBWEB-363\r\n\t\t\t\t\tif (response.Error) {\r\n\t\t\t\t\t\tsubmitFailure(response.Error);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//end of REMOVE\r\n\t\r\n\t\t\t\t\t//success\r\n\t\t\t\t\t//route\r\n\t\t\t\t\t$state.go('^');\r\n\t\r\n\t\t\t\t\tvar message = vm.userId !== null ? gettextCatalog.getString('User updated successfully') : gettextCatalog.getString('User created successfully');\r\n\t\t\t\t\ttoast(message);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction submitFailure(e) {\r\n\t\t\t\t\t//failure\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\tvar msg = e;\r\n\t\t\t\t\tif(e.data && e.data.StatusCode in STATUS_CODES) {\r\n\t\t\t\t\t\tmsg += ' ' + STATUS_CODES[e.data.StatusCode];\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvm.errorMessage = msg;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction submitForm() {\r\n\t\t\t\t\tif (vm.userId) {\r\n\t\t\t\t\t\t//update user\r\n\t\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\t\tshowLoader();\r\n\t\r\n\t\t\t\t\t\tsbUserDataStore\r\n\t\t\t\t\t\t\t.updateUser(sbUserDataStore.user, vm.deploymentId)\r\n\t\t\t\t\t\t\t.then(function(resp) {\r\n\t\t\t\t\t\t\t\treturn sbUserDataStore\r\n\t\t\t\t\t\t\t\t\t.updateTenantAdminRights()\r\n\t\t\t\t\t\t\t\t\t.then(function(){\r\n\t\t\t\t\t\t\t\t\t\treturn resp;\t\r\n\t\t\t\t\t\t\t\t\t}); \r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then(submitSuccess)\r\n\t\t\t\t\t\t\t.catch(submitFailure)\r\n\t\t\t\t\t\t\t.finally(hideLoader);\r\n\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//create user\r\n\t\t\t\t\t\tif (sbUserDataStore.user.Password !== vm.VerifyPassword) {\r\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Passwords do not match');\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\t\tshowLoader();\r\n\t\t\t\t\t\tvm.errorMessage = null;\r\n\t\r\n\t\t\t\t\t\tsbUserDataStore\r\n\t\t\t\t\t\t\t.addUser(sbUserDataStore.user, vm.systemName)\r\n\t\t\t\t\t\t\t.then(submitSuccess)\r\n\t\t\t\t\t\t\t.catch(submitFailure)\r\n\t\t\t\t\t\t\t.finally(hideLoader);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction toast(message) {\r\n\t\t\t\t\tvm.toastVisible = true;\r\n\t\t\t\t\tsbToastService.showSimple(message)\r\n\t\t\t\t\t\t.finally(function() {\r\n\t\t\t\t\t\t\tvm.toastVisible = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction showLoader() {\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\t\t\tfunction hideLoader() {\r\n\t\t\t\t\tisLoading = false;\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\t\t\tfunction promotingAsAdmin() {\r\n\t\t\t\t\tif (vm.sbUserDataStore.isSiteAdmin) {\r\n\t\t\t\t\t\tvm.sbUserDataStore.isUserAdmin = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t\r\n\t\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t$q.all(initTasks)\r\n\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\treturn sbDeploymentNameService.resolveSystemName(vm.deploymentId)\r\n\t\t\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\t\t\tvm.systemName = systemName;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(hideLoader);\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 221 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/user/user.template.html';\n\t\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t{{::'User Settings' | translate}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tlock\\r\\n\\t\\t\\t\\t\\t

Lock Account

\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{::'User Roles' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tgroup_work\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

Tenant Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow user to administer a group of deployments.

\\r\\n\\t\\t\\t\\t\\t

No group assigned

\\r\\n\\t\\t\\t\\t\\t

Assigned Group: {{vm.sbUserDataStore.deploymentGroupAdmin.GroupName}}

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tsettings\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

Site Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow users to control features of this deployment such as libraries, password policies, API tokens, statistics and logs.

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tpeople\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

User Administrator

\\r\\n\\t\\t\\t\\t\\t\\t

Allow users to add/edit/delete users and groups for this deployment.

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t{{::'Update' | translate}}\\r\\n\\t\\t\\t{{::'Create' | translate}}\\r\\n\\t\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 222 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/userDeleteDialog/userDeleteDialog.template.html';\n\t\tvar html = \"\\r\\n\\t\\r\\n\\t\\t

Would you like to delete this user?

\\r\\n\\t\\t

The account and content for \\\"{{::vm.user.UserName}}\\\" will be deleted. If you'd like to keep this user's content please select the user to transfer it's ownership to below.

\\r\\n\\t\\t\\r\\n\\t\\t\\tIf no new owner is selected the content will be purged!\\r\\n\\t\\t\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{'Delete & Purge Content' | translate}}\\r\\n\\t\\t\\t{{'Delete & Transfer Content' | translate}}\\r\\n\\t\\t\\r\\n\\t\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 223 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/deploymentGroupSelectDialog/deploymentGroupSelectDialog.template.html';\n\t\tvar html = \"\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

Choose the deployment group to administer

\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{group.GroupName}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t{{::'Done' | translate}}\\r\\n\\t\\t\\r\\n\\t\\r\\n
\\r\\n\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 224 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(225);\r\n\t\t__webpack_require__(227);\n\t\n\t/***/ },\n\t/* 225 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 226 */,\n\t/* 227 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.controller('sbUserDeleteDialogController', [\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'$mdDialog',\r\n\t\t\t\t\t'sbDeploymentService',\r\n\t\t\t\t\t'sbUsersDataStore',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'user',\r\n\t\t\t\t\t'deploymentID',\r\n\t\t\t\t\tUserDeleteDialogController]);\r\n\t\r\n\t\t\tfunction UserDeleteDialogController($q, $mdDialog, sbDeploymentService, sbUsersDataStore, gettextCatalog, user, deploymentID) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvm.user = user;\r\n\t\t\t\tvm.users = null;\r\n\t\t\t\tvm.querySearch = querySearch;\r\n\t\t\t\tvm.selectedUser = null;\r\n\t\t\t\tvm.cancel = function () {\r\n\t\t\t\t\t$mdDialog.cancel();\r\n\t\t\t\t};\r\n\t\t\t\tvm.delete = function () {\r\n\t\t\t\t\t$mdDialog.hide(vm.transferUser);\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getUsers() {\r\n\t\t\t\t\tif (!vm.users) {\r\n\t\t\t\t\t\treturn sbDeploymentService.getDetails(deploymentID)\r\n\t\t\t\t\t\t\t.then(function (deployment) {\r\n\t\t\t\t\t\t\t\treturn sbUsersDataStore.getUsers(deployment.SystemName);\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then(function (users) {\r\n\t\t\t\t\t\t\t\tvm.users = users;\r\n\t\t\t\t\t\t\t\treturn vm.users;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn $q.resolve(vm.users);\r\n\t\t\t\t}\r\n\t\t\t\tfunction querySearch(query) {\r\n\t\t\t\t\treturn getUsers()\r\n\t\t\t\t\t\t.then(function (users) {\r\n\t\t\t\t\t\t\tvar results = query ? users.filter(createFilterFor(query)) : [];\r\n\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tfunction createFilterFor(query) {\r\n\t\t\t\t\tvar lowercaseQuery = angular.lowercase(query);\r\n\t\t\t\t\treturn function filterFn(u) {\r\n\t\t\t\t\t\t//search username and email\r\n\t\t\t\t\t\tvar combinedUser = u.UserName + ' ' + u.EmailAddress;\r\n\t\t\t\t\t\treturn (combinedUser.indexOf(lowercaseQuery) > -1);\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 228 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(229);\r\n\t\t__webpack_require__(231);\n\t\n\t/***/ },\n\t/* 229 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 230 */,\n\t/* 231 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(232);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminUserGroup\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminAddEditUserGroup` displays a User Group to add/edit\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} UserGroupId The id of the User Group to display\r\n\t\t\t */\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminUserGroup',[\r\n\t\t\t\t\tUserGroupDirective\r\n\t\t\t\t])\r\n\t\t\t\t.controller('sbadminUserGroupController',[\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'$mdMedia',\r\n\t\t\t\t\t'sbToastService',\r\n\t\t\t\t\t'sbUserGroupDataStore',\r\n\t\t\t\t\t'sbUsersDataStore',\r\n\t\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tUserGroupController\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction UserGroupDirective() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminUserGroupController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\t\tuserGroupId: '@'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction UserGroupController($q, $state, $mdMedia, sbToastService, sbUserGroupDataStore, sbUsersDataStore, sbDeploymentNameService, sbadminToolbarService, pxProgressService, gettextCatalog) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvm.loading = false;\r\n\t\t\t\tvm.mdMedia = $mdMedia;\r\n\t\t\t\tvm.doneLoading = doneLoading;\r\n\t\t\t\tvm.userGroupDS = sbUserGroupDataStore;\r\n\t\t\t\tvm.usersDS = sbUsersDataStore;\r\n\t\t\t\tvm.save = save;\r\n\t\t\t\tvm.textCatalog = gettextCatalog;\r\n\t\t\t\tvm.systemName = null;\r\n\t\t\t\tvm.MaxLinkExpirationDays = null;\r\n\t\t\t\tvm.MinLinkAuthenticationType = null;\r\n\t\t\t\t\r\n\t\t\t\tsbadminToolbarService.title = vm.userGroupId ? gettextCatalog.getString('Edit User Group') : gettextCatalog.getString('Create User Group');\r\n\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\tsbadminToolbarService.showFilter = false;\r\n\t\r\n\t\t\t\tfunction loadUserGroup() {\r\n\t\t\t\t\tisLoading();\r\n\t\r\n\t\t\t\t\tsbDeploymentNameService.resolveSystemName(vm.deploymentId)\r\n\t\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\t\tvm.systemName = systemName;\r\n\t\t\t\t\t\t\tvar initTasks = [\r\n\t\t\t\t\t\t\t\tvm.userGroupDS.getUserGroup(vm.userGroupId, systemName),\r\n\t\t\t\t\t\t\t\tvm.usersDS.getUsers(systemName)\r\n\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\tif (vm.userGroupId) {\r\n\t\t\t\t\t\t\t\tinitTasks.push(vm.userGroupDS.getUserGroupPolicy(vm.userGroupId));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn $q.all(initTasks);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\tif (vm.userGroupId) {\r\n\t\t\t\t\t\t\t\tvm.MaxLinkExpirationDays = vm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays;\r\n\t\t\t\t\t\t\t\tvm.expirationSelection = vm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays === null ? 0 : 1;\r\n\t\t\t\t\t\t\t\tvm.MinLinkAuthenticationType = vm.userGroupDS.userGroupPolicy.MinLinkAuthenticationType === -1 ? 0 : vm.userGroupDS.userGroupPolicy.MinLinkAuthenticationType;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction save() {\r\n\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\tisLoading();\r\n\t\r\n\t\t\t\t\tvar initTasks = [];\r\n\t\r\n\t\t\t\t\tif (vm.userGroupId) {\t\t\t\t\t\r\n\t\t\t\t\t\tif (vm.expirationSelection === 0) {\r\n\t\t\t\t\t\t\tvm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays = vm.MaxLinkExpirationDays;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.userGroupDS.userGroupPolicy.MinLinkAuthenticationType = vm.MinLinkAuthenticationType;\t\r\n\t\r\n\t\t\t\t\t\t// system groups can only have their policy edited, but not \r\n\t\t\t\t\t\t// membership or details\r\n\t\t\t\t\t\tinitTasks.push(vm.userGroupDS.saveUserGroupPolicy(vm.userGroupDS.userGroupPolicy));\r\n\t\r\n\t\t\t\t\t\tif(!vm.userGroupDS.userGroup.isSystemGroup) {\r\n\t\t\t\t\t\t\tinitTasks.push(vm.userGroupDS.saveUserGroup(vm.systemName));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} \r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinitTasks.push(vm.userGroupDS.saveUserGroup(vm.systemName));\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn $q.all(initTasks)\r\n\t\t\t\t\t\t.then(function (responses) {\r\n\t\t\t\t\t\t\tvm.userGroup = responses[0];\r\n\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t\tsbToastService.showSimple(vm.userGroupId ? gettextCatalog.getString('User group saved!') : gettextCatalog.getString('New user group created!'));\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isLoading() {\r\n\t\t\t\t\tvm.loading = true;\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction doneLoading() {\r\n\t\t\t\t\tvm.loading = false;\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tloadUserGroup();\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 232 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/userGroup/userGroup.template.html';\n\t\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

{{::vm.userGroupDS.userGroup.name}}

\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\twarning\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tSettings within this System User Group are the default for all users\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
You must supply a User Group name.
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tYour name must be less than 50 characters.\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Assigned Users

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Share Link Settings

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tNo Restrictions\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDefault\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tEmail Secure Password\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tNo Maximum\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tDefault\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tDays\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tYou cannot exceed 999 days\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tYou must supply a valid duration\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tYou must supply a duration\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t{{ vm.userGroupDS.userGroup.id ? vm.textCatalog.getString('Update') : vm.textCatalog.getString('Create') }}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\tCancel\\r\\n\\t\\t\\r\\n\\t
\\r\\n
\\r\\n\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 233 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(234);\r\n\t\t__webpack_require__(236);\n\t\n\t/***/ },\n\t/* 234 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 235 */,\n\t/* 236 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(237);\r\n\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminUserGroups\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminUserGroups` displays a deployments user groups\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminUserGroups',\r\n\t\t\t\t[\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\tUserGroupsDirective\r\n\t\t\t\t])\r\n\t\t\t\t.controller('sbadminUserGroupsController', [\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'sbUserGroupsDataStore',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tUserGroupsController\r\n\t\t\t\t]);\r\n\t\t\t\r\n\t\t\tfunction UserGroupsDirective(sbadminToolbarService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminUserGroupsController',\r\n\t\t\t\t\tcontrollerAs: 'userGroupsCtrl',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction UserGroupsController($state, sbUserGroupsDataStore, sbadminToolbarService, sbDeploymentNameService, pxProgressService, gettextCatalog) {\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.loading = false;\r\n\t\t\t\tself.userGroupDS = sbUserGroupsDataStore;\r\n\t\t\t\tself.editGroup = editGroup;\r\n\t\r\n\t\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tsbadminToolbarService.title = gettextCatalog.getString('User Groups');\r\n\t\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find user groups');\r\n\t\t\t\tsbadminToolbarService.actions = [{ icon: 'add', label: gettextCatalog.getString('Create Group'), trigger: function () { $state.go('administration.home.deployment.userGroups.details'); } }];\r\n\t\t\t\tsbadminToolbarService.showFilter = true;\t\t\r\n\t\r\n\t\t\t\t(function loadUserGroups() {\r\n\t\t\t\t\tisLoading();\r\n\t\t\t\t\tsbDeploymentNameService\r\n\t\t\t\t\t\t.resolveSystemName(self.deploymentId)\r\n\t\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\t\tself.systemName = systemName;\r\n\t\t\t\t\t\t\treturn sbUserGroupsDataStore\r\n\t\t\t\t\t\t\t\t.getUserGroups(systemName);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t\t})();\r\n\t\r\n\t\t\t\tfunction editGroup(group) {\r\n\t\t\t\t\t$state.go('administration.home.deployment.userGroups.details', { userGroupId: group.UserGroupId });\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction isLoading() {\r\n\t\t\t\t\tself.loading = true;\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction doneLoading() {\r\n\t\t\t\t\tself.loading = false;\r\n\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 237 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/userGroups/userGroups.template.html';\n\t\tvar html = \" 0\\\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tperm_identity\\r\\n\\t\\t\\t\\t\\tsupervisor_account\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

{{ group.UserGroupName }}

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{userCount}} users in group\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tgroup\\r\\n\\t\\t
\\r\\n\\t\\t

You haven't created any user groups

\\r\\n\\t\\t

Create one by clicking here or the plus sign in the top right corner

\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 238 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(239);\r\n\t\t__webpack_require__(241);\n\t\n\t/***/ },\n\t/* 239 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ },\n\t/* 240 */,\n\t/* 241 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tvar templateUrl = __webpack_require__(242);\r\n\t\t\tvar userDeleteTemplateUrl = __webpack_require__(222);\r\n\t\t\t\r\n\t\t\t/**\r\n\t\t\t * @ngdoc directive\r\n\t\t\t * @name sharebase-admin.directive:sbadminUsers\r\n\t\t\t * @module sharebase-admin\r\n\t\t\t * @restrict E\r\n\t\t\t * @description\r\n\t\t\t *\r\n\t\t\t * `sbadminUsers` displays a deployments users\r\n\t\t\t *\r\n\t\t\t * @usage\r\n\t\t\t *\r\n\t\t\t * \r\n\t\t\t * \r\n\t\t\t * @element input\r\n\t\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t\t */\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.directive('sbadminUsers', [\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\tUsersDirective])\r\n\t\t\t\t.controller('sbadminUsersController', [\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'$mdDialog',\r\n\t\t\t\t\t'sbUserDataStore',\r\n\t\t\t\t\t'sbUsersDataStore',\r\n\t\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t\t'sbDeploymentService',\r\n\t\t\t\t\t'pxProgressService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\t'sbToastService',\r\n\t\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\t\tUsersController]);\r\n\t\r\n\t\t\tfunction UsersDirective(sbadminToolbarService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: 'E',\r\n\t\t\t\t\tcontroller: 'sbadminUsersController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\t\tbindToController: {\r\n\t\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tscope: {},\r\n\t\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\t\r\n\t\t\tfunction UsersController($q, $state, $mdDialog, sbUserDataStore, sbUsersDataStore, sbadminToolbarService, sbDeploymentService, pxProgressService, gettextCatalog, sbToastService, sbDeploymentNameService) {\r\n\t\t\t\tvar vm = this;\r\n\t\r\n\t\t\t\t// Attribute translations do not support comments and a comment was requested for this string\t\t\r\n\t\t\t\t/// Used as a label above a list of registered users\r\n\t\t\t\tvm.registeredLabel = gettextCatalog.getString('Registered');\r\n\t\r\n\t\t\t\tvm.sbUsersDataStore = sbUsersDataStore;\r\n\t\t\t\tvm.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\t\tvm.pxProgressService = pxProgressService;\r\n\t\t\t\tvm.inviteUsers = inviteUsers;\r\n\t\t\t\tvm.editUser = editUser;\r\n\t\t\t\tvm.deleteUser = deleteUser;\r\n\t\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Users');\r\n\t\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find users');\r\n\t\t\t\tsbadminToolbarService.actions = [\r\n\t\t\t\t\t{ icon: 'person_add', label: gettextCatalog.getString('Create User'), trigger: createUser },\r\n\t\t\t\t\t{ icon: 'email', label: gettextCatalog.getString('Invite Users'), trigger: vm.inviteUsers }\r\n\t\t\t\t];\r\n\t\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\r\n\t\t\t\tfunction inviteUsers() {\r\n\t\t\t\t\t$state.go('administration.home.deployment.users.invite');\r\n\t\t\t\t}\r\n\t\t\t\tfunction editUser(user) {\r\n\t\t\t\t\t$state.go('administration.home.deployment.users.details', { deploymentID: vm.deploymentId, userID: user.UserId });\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createUser() {\r\n\t\t\t\t\t$state.go('administration.home.deployment.users.details', { deploymentID: vm.deploymentId, userID: '' });\r\n\t\t\t\t}\r\n\t\t\t\tfunction deleteUser($event, userToDelete) {\r\n\t\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\t\tcontroller: 'sbUserDeleteDialogController',\r\n\t\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\t\ttemplateUrl: userDeleteTemplateUrl,\r\n\t\t\t\t\t\ttargetEvent: $event,\r\n\t\t\t\t\t\tlocals: {\r\n\t\t\t\t\t\t\tuser: userToDelete,\r\n\t\t\t\t\t\t\tdeploymentID: vm.deploymentId\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tclickOutsideToClose: false\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function (transferUser) {\r\n\t\t\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\t\t\t//delete user & reasign content & udate DS\r\n\t\t\t\t\t\t\ttransferUser = transferUser ? transferUser : null;\r\n\t\t\t\t\t\t\tsbUserDataStore.removeUser(userToDelete, vm.deploymentId, transferUser)\r\n\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\tremoveUserFromList(userToDelete);\r\n\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\t\t\t\t\tif (response.status === 409) {\r\n\t\t\t\t\t\t\t\t\t\t//conflict - user to delete has other users conent\r\n\t\t\t\t\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\r\n\t\t\t\t\t\t\t\t\t\t\t.title(gettextCatalog.getString('Continue with user deletion?'))\r\n\t\t\t\t\t\t\t\t\t\t\t.textContent(gettextCatalog.getString('{{deletedUser}} has content that is owned by a different user, which will be deleted if this user is deleted. ', { deletedUser: userToDelete.UserName }))\r\n\t\t\t\t\t\t\t\t\t\t\t.ariaLabel(gettextCatalog.getString('Delete User Conflict'))\r\n\t\t\t\t\t\t\t\t\t\t\t.ok(gettextCatalog.getString('Continue'))\r\n\t\t\t\t\t\t\t\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\r\n\t\t\t\t\t\t\t\t\t\treturn $mdDialog.show(confirm).then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t//delete user & force delete shared content\r\n\t\t\t\t\t\t\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\t\t\t\t\t\t\treturn sbUserDataStore.removeUser(userToDelete, vm.deploymentId, null, true)\r\n\t\t\t\t\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tremoveUserFromList(userToDelete);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}, angular.noop());\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, angular.noop());\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction removeUserFromList(removedUser) {\r\n\t\t\t\t\tvm.sbUsersDataStore.users = vm.sbUsersDataStore.users.filter(function(user){\r\n\t\t\t\t\t\treturn user.UserId !== removedUser.UserId;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t//initialize\r\n\t\t\t\t(function loadUsers() {\r\n\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\tsbDeploymentNameService.resolveSystemName(vm.deploymentId)\r\n\t\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\t\tvm.systemName = systemName;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\treturn $q.all([\r\n\t\t\t\t\t\t\t\tvm.sbUsersDataStore.getUsers(vm.systemName),\r\n\t\t\t\t\t\t\t\tvm.sbUsersDataStore.getPendingUsers()\r\n\t\t\t\t\t\t\t]);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t} ());\r\n\t\t\t}\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 242 */\n\t/***/ function(module, exports) {\n\t\n\t\tvar path = 'sharebase-admin/components/users/users.template.html';\n\t\tvar html = \"\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\taccount_circle\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tlock\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{user.UserName}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{user.EmailAddress}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tCreated on {{date}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclear\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t 0\\\" translate-comment=\\\"value between double braces will become a count of users\\\">\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\taccount_circle\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{user.EmailAddress}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tExpires on {{date}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\t\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\t\tmodule.exports = path;\n\t\n\t/***/ },\n\t/* 243 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t\"use strict\";\r\n\t\t__webpack_require__(244);\r\n\t\t__webpack_require__(245);\r\n\t\t__webpack_require__(246);\r\n\t\t__webpack_require__(247);\r\n\t\t__webpack_require__(248);\r\n\t\t__webpack_require__(249);\r\n\t\t__webpack_require__(250);\r\n\t\t__webpack_require__(251);\r\n\t\t__webpack_require__(252);\r\n\t\t__webpack_require__(253);\r\n\t\t__webpack_require__(254);\r\n\t\t__webpack_require__(255);\r\n\t\t__webpack_require__(256);\r\n\t\t__webpack_require__(257);\r\n\t\tangular\r\n\t\t .module('sharebase-admin');\r\n\t\n\t\n\t/***/ },\n\t/* 244 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminActiveDirectoryService\r\n\t\t\t* @requires $http\r\n\t\t\t* @requires $q\r\n\t\t\t* @requires pxUriPathService\r\n\t\t\t* @description\r\n\t\t\t* A service used to interact with the ActiveDirectory sync agent.\r\n\t\t\t**/\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminActiveDirectoryService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'$q',\r\n\t\t\t\t'pxUriPathService',\r\n\t\t\t\tActiveDirectoryService\r\n\t\t\t]);\r\n\t\r\n\t\t\tfunction ActiveDirectoryService($http, $q, uriPathService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminActiveDirectoryService#generateSyncSecret\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminActiveDirectoryService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Generates a new ActiveDirectory sync secret.\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {String} A hash to be placed in the config file of the sync agent.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgenerateSyncSecret: generateSyncSecret\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction generateSyncSecret(id) {\r\n\t\t\t\t\tvar uri = uriPathService.resolvePath('/admin/deployments/{id}/newSecret', { id: id });\r\n\t\t\t\t\treturn $http\r\n\t\t\t\t\t\t.post(uri)\r\n\t\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\t\treturn resp.data.Secret;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 245 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminApiTokenService\r\n\t\t\t* @requires $http\r\n\t\t\t* @requires pxUriPathService\r\n\t\t\t* @description\r\n\t\t\t* A service used to interact with the ActiveDirectory sync agent.\r\n\t\t\t**/\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminApiTokenService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'pxUriPathService',\r\n\t\t\t\t\tApiTokenService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction ApiTokenService($http, uriPathService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminApiTokenService#getTokens\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets all API tokens for any users of the deployment who have generated them. \r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Array} An array of tokens.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetTokens: getTokens,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminApiTokenService#createToken\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a new token given an email, password, and expiration. \r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the newly created token.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreateToken: createToken,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminApiTokenService#deleteToken\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Delete the token with the specified ID. \r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} An HTTP response promise.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeleteToken: deleteToken\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getTokens(deploymentId) {\r\n\t\t\t\t\tvar uri = uriPathService.resolvePath('/users/apitokens');\r\n\t\t\t\t\treturn $http\r\n\t\t\t\t\t\t.get(uri)\r\n\t\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\t\treturn resp.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createToken(email, password, expireMeaning) {\r\n\t\t\t\t\texpireMeaning = typeof(expireMeaning) === 'string' ? expireMeaning : 'never';\r\n\t\t\t\t\tvar uri = uriPathService.resolvePath('/users/apitoken');\r\n\t\t\t\t\tvar data = {\r\n\t\t\t\t\t\tEmailAddress: email,\r\n\t\t\t\t\t\tPassword: password,\r\n\t\t\t\t\t\tExpireMeaning: expireMeaning\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\treturn $http\r\n\t\t\t\t\t\t.post(uri, data)\r\n\t\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\t\treturn resp.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deleteToken(tokenId) {\r\n\t\t\t\t\tvar uri = uriPathService.resolvePath('/users/apitoken/{id}', { \r\n\t\t\t\t\t\tid : tokenId \r\n\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\treturn $http\r\n\t\t\t\t\t\t.delete(uri);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 246 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t* @requires $http\r\n\t\t\t* @requires settingService\r\n\t\t\t* @description\r\n\t\t\t* A service used to retrieve deployment groups\r\n\t\t\t**/\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminDeploymentGroupsService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\tDeploymentGroupsService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction DeploymentGroupsService($http, settingsService, $q) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsService#getDeploymentGroup\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves a deployment group\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with requested deployment group\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\t//getDeploymentGroup: getDeploymentGroup,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsService#getDeploymentGroups\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves deployment groups\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeploymentGroups: getDeploymentGroups,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsService#getDeploymentGroupAdmins\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves deployment group tenant admins\r\n\t\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of tenant admins\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeploymentGroupAdmins: getDeploymentGroupAdmins,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsService#createDeploymentGroup\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a deployment group\r\n\t\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreateDeploymentGroup: createDeploymentGroup,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsService#updateDeploymentGroup\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Updates a deployment group\r\n\t\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the updated deployment group\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tupdateDeploymentGroup: updateDeploymentGroup\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction createDeploymentGroup(deploymentGroup) {\r\n\t\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/admin/deploymentgroups',\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tgroupName: deploymentGroup.GroupName,\r\n\t\t\t\t\t\t\tpartnerIdentifier: deploymentGroup.PartnerIdentifier,\r\n\t\t\t\t\t\t\tdatabaseServer: deploymentGroup.DatabaseServer,\r\n\t\t\t\t\t\t\tdatabaseRootPath: deploymentGroup.DatabaseRootPath,\r\n\t\t\t\t\t\t\tlogFileRootPath: deploymentGroup.LogFileRootPath,\r\n\t\t\t\t\t\t\tdiskgroupRootPath: deploymentGroup.DiskgroupRootPath\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getDeploymentGroups() {\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/deploymentgroups')\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateDeploymentGroup(deploymentGroup) {\r\n\t\t\t\t\treturn $http.patch(settingsService.serverAPIPath + '/admin/deploymentgroups/' + deploymentGroup.DeploymentGroupId,\r\n\t\t\t\t\t\tdeploymentGroup)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getDeploymentGroupAdmins(deploymentGroup) {\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/deploymentgroups/' + deploymentGroup.DeploymentGroupId + '/admins')\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} ());\n\t\n\t/***/ },\n\t/* 247 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentsService\r\n\t\t\t* @requires $http\r\n\t\t\t* @requires $q\r\n\t\t\t* @requires settingsService\r\n\t\t\t* @description\r\n\t\t\t* A service used to retrieve active deployments\r\n\t\t\t**/\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminDeploymentsService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\tDeploymentsService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction DeploymentsService($http, $q, settingsService) {\r\n\t\t\t\tvar deploymentsEndpoint = settingsService.serverAPIPath + '/admin/deployments';\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentsService#getDeployments\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves active deployments\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with active deployments.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeployments: getDeployments\t\t\t\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getDeployments() {\r\n\t\t\t\t\treturn $http.get(deploymentsEndpoint)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data.Embedded.Deployments;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 248 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentStatisticsService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* Retrieves statistics for a deployment\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminDeploymentStatisticsService',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'pxUriPathService',\r\n\t\t\t\t\tDeploymentStatisticsService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction DeploymentStatisticsService($http, pxUriPathService) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentStatisticsService#getDeploymentTotalsUsage\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentStatisticsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves the \"Core/DeploymentTotalUsage\" statistics \r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @param {deploymentName} The deployment name used to calculate the statistics\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an object with the following\r\n\t\t\t\t\t* statistics: TotalLibraryDiskUsage, TotalDocumentsCreated, TotalDocumentsViewed, TotalUsers, and TotalLibraries\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeploymentTotalsUsage: getDeploymentTotalsUsage,\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getDeploymentTotalsUsage(deploymentName) {\r\n\t\t\t\t\treturn fetchStatistic(deploymentName, 'Core', 'DeploymentTotalsUsage').then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction fetchStatistic(deploymentName, type, label) {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/statistics/' + type + '/' + label, {\r\n\t\t\t\t\t\tsystem: deploymentName\r\n\t\t\t\t\t}));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 249 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminLibrariesService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t\t* libraries\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminLibrariesService',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'pxUriPathService',\r\n\t\t\t\t\tLibrariesService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction LibrariesService($http, pxUriPathService) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminLibrariesService#getLibraries\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminLibrariesService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a collection of libraries\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of libraries\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetLibraries: getLibraries\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getLibraries() {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries')).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 250 */\n\t/***/ function(module, exports) {\n\t\n\t\t\"use strict\";\r\n\t\t(function () {\r\n\t\t 'use strict';\r\n\t\t /**\r\n\t\t * @ngdoc service\r\n\t\t * @name sharebase-admin.sbadminLibraryService\r\n\t\t *\r\n\t\t * @description\r\n\t\t * A service used to retrieve and interact with a ShareBase\r\n\t\t * library\r\n\t\t **/\r\n\t\t angular\r\n\t\t .module('sharebase-admin')\r\n\t\t .factory('sbadminLibraryService', [\r\n\t\t '$http',\r\n\t\t 'pxUriPathService',\r\n\t\t LibraryService\r\n\t\t ]);\r\n\t\t function LibraryService($http, pxUriPathService) {\r\n\t\t var service = {\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryService#getLibrary\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Gets a library\r\n\t\t *\r\n\t\t * @param {objectId} libraryId A string to represent the library Id\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with a library\r\n\t\t *\r\n\t\t */\r\n\t\t getLibrary: getLibrary,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryService#addLibrary\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Adds a library\r\n\t\t *\r\n\t\t * @param {objectId} library An object to represent the library\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with a library\r\n\t\t *\r\n\t\t */\r\n\t\t addLibrary: addLibrary,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryService#updateLibrary\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Updates a library\r\n\t\t *\r\n\t\t * @param {objectId} library An object to represent the library\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with a library\r\n\t\t *\r\n\t\t */\r\n\t\t updateLibrary: updateLibrary,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryService#savePermissions\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Sets permissions for the specified library ID.\r\n\t\t *\r\n\t\t * @param {libraryId} ID of the library to set permissions for.\r\n\t\t *\r\n\t\t * @param {acls} Array of ACLs to set for the library.\r\n\t\t *\r\n\t\t * @returns {Deferred} An $http promise.\r\n\t\t *\r\n\t\t */\r\n\t\t savePermissions: savePermissions,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryService#getPermissions\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Retrieves permissions for the specified library ID.\r\n\t\t *\r\n\t\t * @param {libraryId} ID of the library to get permissions for.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise resolving with an array of the retrieved permissions.\r\n\t\t *\r\n\t\t */\r\n\t\t getPermissions: getPermissions,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryService#getPermissionsForCurrentUser\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Retrieves permissions for the current user for the specified library ID.\r\n\t\t *\r\n\t\t * @param {libraryId} ID of the library to get permissions for.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise resolving with an array of the retrieved permissions.\r\n\t\t *\r\n\t\t */\r\n\t\t getPermissionsForCurrentUser: getPermissionsForCurrentUser\r\n\t\t };\r\n\t\t return service;\r\n\t\t function getLibrary(libraryId) {\r\n\t\t return $http.get(pxUriPathService.resolvePath('/libraries/' + libraryId)).then(function (response) {\r\n\t\t return response.data;\r\n\t\t });\r\n\t\t }\r\n\t\t function addLibrary(library) {\r\n\t\t return $http.post(pxUriPathService.resolvePath('/libraries'), library).then(function (response) {\r\n\t\t return response.data;\r\n\t\t });\r\n\t\t }\r\n\t\t function updateLibrary(library) {\r\n\t\t return $http.patch(library.Links.SelfUri, library).then(function (response) {\r\n\t\t return response.data;\r\n\t\t });\r\n\t\t }\r\n\t\t function savePermissions(libraryId, acls) {\r\n\t\t var uri = pxUriPathService.resolvePath('/libraries/{id}/permissions/replace', {\r\n\t\t id: libraryId\r\n\t\t });\r\n\t\t return $http.post(uri, acls);\r\n\t\t }\r\n\t\t function getPermissionsForCurrentUser(libraryId) {\r\n\t\t var uri = pxUriPathService.resolvePath('/libraries/{id}/permissionsforuser', {\r\n\t\t id: libraryId\r\n\t\t });\r\n\t\t return $http\r\n\t\t .get(uri)\r\n\t\t .then(function (response) {\r\n\t\t return response.data;\r\n\t\t });\r\n\t\t }\r\n\t\t function getPermissions(libraryId, compact) {\r\n\t\t compact = typeof (compact) === 'boolean' ? compact : true;\r\n\t\t var uri = pxUriPathService.resolvePath('/libraries/{id}/permissions', {\r\n\t\t id: libraryId\r\n\t\t });\r\n\t\t if (compact) {\r\n\t\t uri += '?compact=true';\r\n\t\t }\r\n\t\t return $http\r\n\t\t .get(uri)\r\n\t\t .then(function (response) {\r\n\t\t return response.data;\r\n\t\t });\r\n\t\t }\r\n\t\t }\r\n\t\t})();\r\n\t\n\t\n\t/***/ },\n\t/* 251 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPasswordPoliciesService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t\t* password policies\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPasswordPoliciesService',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'pxUriPathService',\r\n\t\t\t\t\tPasswordPoliciesService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PasswordPoliciesService($http, pxUriPathService) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPoliciesService#getPasswordPolicies\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPoliciesService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a collection of password policies\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of password policies\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetPasswordPolicies: getPasswordPolicies,\r\n\t\t\t\t\t\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getPasswordPolicies() {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy')).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\t\t\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 252 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t\t* password policies\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPasswordPolicyService',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'pxUriPathService',\r\n\t\t\t\t\tPasswordPolicyService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PasswordPolicyService($http, pxUriPathService) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyService#getPasswordPolicies\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a collection of password policies\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @param {string} passwordPolicyId A string to represent a password policy Id\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetPasswordPolicy: getPasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyService#createPasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a document\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreatePasswordPolicy: createPasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyService#updatePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a document\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tupdatePasswordPolicy: updatePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyService#deletePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a deleted password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeletePasswordPolicy: deletePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyService#activatePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an active password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tactivatePasswordPolicy: activatePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyService#deactivatePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a deactivated password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeactivatePasswordPolicy: deactivatePasswordPolicy\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getPasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId)).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createPasswordPolicy(passwordPolicy) {\r\n\t\t\t\t\treturn $http.post(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/newpolicy'), passwordPolicy).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updatePasswordPolicy(passwordPolicy) {\r\n\t\t\t\t\treturn $http.post(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicy.PasswordPolicyId + '/update'), passwordPolicy).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deletePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId + '/delete')).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction activatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId + '/activate')).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deactivatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId + '/deactivate')).then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 253 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t* @requires $http\r\n\t\t\t* @requires settingService\r\n\t\t\t* @description\r\n\t\t\t* A service used to retrieve pending deployments\r\n\t\t\t**/\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPendingDeploymentsService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\tPendingDeploymentsService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PendingDeploymentsService($http, settingsService) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsService#getDeployments\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves pending deployments\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with pending deployments\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeployments: getDeployments,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsService#resendNotification\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Resends email notification to owner of pending deployment\r\n\t\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the server response\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tresendNotification: resendNotification,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsService#save\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Saves a deployment\r\n\t\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with pending deployments\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tsave: save\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getDeployments() {\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/registrations').then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction save(pendingDeployment) {\r\n\t\t\t\t\treturn $http.patch(pendingDeployment.Links.SelfUri, pendingDeployment);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction resendNotification(pendingDeployment) {\r\n\t\t\t\t\treturn $http.post(pendingDeployment.Links.NotificationUri);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 254 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function() {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPermissionsService\r\n\t\t\t* @requires $state\r\n\t\t\t* @requires pxAuthService\r\n\t\t\t* @description\r\n\t\t\t* A service used to determine rights the current administator has related to ShareBase\r\n\t\t\t* concepts such as Deployments and Systems.\r\n\t\t\t**/\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPermissionsService', [\r\n\t\t\t\t\t'$state',\r\n\t\t\t\t\t'pxAuthService',\r\n\t\t\t\t\tPermissionsService\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PermissionsService($state, authService) {\r\n\t\t\t\tvar _current = {\r\n\t\t\t\t\tget depId() {\r\n\t\t\t\t\t\treturn $state.params.deploymentId || $state.params.deploymentID;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @namespace system\t\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Namespace for system-level rights. \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tsystem: {\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t* @ngdoc property\t\r\n\t\t\t\t\t\t* @memberof system\t\t\t\r\n\t\t\t\t\t\t* @name sbadminPermissionsService.system#hasRights\r\n\t\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t\t*\r\n\t\t\t\t\t\t* @description\r\n\t\t\t\t\t\t* Boolean indicating if the current user has system administration rights. \r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t\tget hasRights() {\r\n\t\t\t\t\t\t\treturn authService.isSysAdmin || authService.isTenantAdmin;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @namespace deployment\t\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Namespace for deployment-level rights. \t\t\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeployment : {\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t* @ngdoc property\t\r\n\t\t\t\t\t\t* @memberof deployment\t\t\t\r\n\t\t\t\t\t\t* @name sbadminPermissionsService.deployment#belongsToCurrent\r\n\t\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t\t*\r\n\t\t\t\t\t\t* @description\r\n\t\t\t\t\t\t* Boolean indicating if the current user's home deployment is the currently viewed deployment. \r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t\tget belongsToCurrent() {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\treturn authService.deploymentId == _current.depId;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t* @ngdoc property\t\r\n\t\t\t\t\t\t* @memberof deployment\t\t\t\r\n\t\t\t\t\t\t* @name sbadminPermissionsService.deployment#hasRights\r\n\t\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t\t*\r\n\t\t\t\t\t\t* @description\r\n\t\t\t\t\t\t* Boolean indicating if the current user has admin rights to the currently viewed deployment. \r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t\tget hasRights() {\t\t\t\t\t\r\n\t\t\t\t\t\t\treturn this.belongsToCurrent && (authService.isSiteAdmin || authService.isTenantAdmin);\t\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t* @ngdoc property\t\t\r\n\t\t\t\t\t\t* @memberof deployment\t\t\r\n\t\t\t\t\t\t* @name sbadminPermissionsService.deployment#isHomed\r\n\t\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t\t*\r\n\t\t\t\t\t\t* @description\r\n\t\t\t\t\t\t* Boolean indicating if the current user has a home deployment (system admins do not). \r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t\tget isHomed() {\r\n\t\t\t\t\t\t\treturn authService.deploymentId >= 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 255 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminTenantAdminService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A service used to retrieve and interact with a ShareBase\r\n\t\t\t* tenant administrator\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminTenantAdminService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\tTenantAdminFactory]);\r\n\t\r\n\t\t\tfunction TenantAdminFactory($http, $q, settingsService) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminTenantAdminService#createAdministrator\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a new tenant administrator\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @param {integer} groupID The id of the group to add administrator to\r\n\t\t\t\t\t* @param {string} newUsername The username of the new administrator\r\n\t\t\t\t\t* @param {string} newEmailAddress The email address of the new administrator\r\n\t\t\t\t\t* @param {string} newPassword The password of the new administrator \r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the result of the post\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreateAdministrator: createAdministrator,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminTenantAdminService#addAdministrator\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Assigns a current user as a tenant administrator\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @param {integer} groupID The id of the group to add administrator to\r\n\t\t\t\t\t* @param {integer} userID The id of the user to add as administrator\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\taddAdministrator: addAdministrator,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminTenantAdminService#deleteAdministrator\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a new tenant administrator\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @param {integer} groupID The id of the group to remove administrator from\r\n\t\t\t\t\t* @param {integer} userID The id of the user to remove as administrator\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeleteAdministrator: deleteAdministrator\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction createAdministrator(groupID, newUsername, newEmailAddress, newPassword) {\r\n\t\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/admin/deploymentgroups/' + groupID + '/admins',\r\n\t\t\t\t\t\t\t{ UserName: newUsername, EmailAddress: newEmailAddress, Password: newPassword }\r\n\t\t\t\t\t\t).then(function (response) {\r\n\t\t\t\t\t\t\tif (response.Error) {\r\n\t\t\t\t\t\t\t\treturn $q.reject(response);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction addAdministrator(groupID, userID) {\r\n\t\t\t\t\t/* TODO - new api end point to set a current user as group admin */\r\n\t\t\t\t\t//return $http.post(settingsService.serverAPIPath + '/admin/deploymentgroups/' + groupID + '/admins');\r\n\t\t\t\t\tthrow new Error('setAsAdministrator is not implemented!');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deleteAdministrator(groupID, userID) {\r\n\t\t\t\t\t/* TODO - find out how to delete admin current UI just shows an alert*/\r\n\t\t\t\t\t//return $http.delete(settingsService.serverAPIPath + '/admin/deploymentgroups/' + groupID + '/admins');\r\n\t\t\t\t\tthrow new Error('deleteAdministrator is not implemented!');\r\n\t\t\t\t}\r\n\t\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 256 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminTenantAdminsService\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t\t* tenant administrators\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminTenantAdminsService', [\r\n\t\t\t\t\t'$http',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'settingsService',\r\n\t\t\t\t\tTenantAdminsFactory]);\r\n\t\r\n\t\t\tfunction TenantAdminsFactory($http, $q, settingsService) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminTenantAdminsService#getAdministrators\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminsService\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets the list of available tenant administrators\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an\r\n\t\t\t\t\t* array of users\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetAdministrators: getAdministrators,\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getAdministrators() {\r\n\t\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/deploymentgroups/admins/')\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 257 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminToolbarService', [\r\n\t\t\t\t\t'pxLocalStorageService',\r\n\t\t\t\t\t'gettextCatalog',\r\n\t\t\t\t\tAdminToolbarService]);\r\n\t\t\t/**\r\n\t\t * @ngdoc service\r\n\t\t * @name sharebase-admin.sbadminToolbarService\r\n\t\t * \r\n\t\t * @description \r\n\t\t * A service used to retrieve and interact with ShareBase app \r\n\t\t * content toolbar\r\n\t\t * \r\n\t\t **/\r\n\t\t\tfunction AdminToolbarService(pxLocalStorageService, gettextCatalog) {\r\n\t\t\t\tvar _defaultFilterPlaceholder = gettextCatalog.getString('Find content');\r\n\t\t\t\tvar _title = null;\r\n\t\t\t\tvar _filterPhrase = '';\r\n\t\t\t\tvar _filterPlaceholder = _defaultFilterPlaceholder;\r\n\t\t\t\tvar _showFilter = false;\r\n\t\t\t\tvar _view = pxLocalStorageService.getStoredValue('sba_user_viewType') === 'list' ? 'list' : 'card';\r\n\t\t\t\tvar _breadCrumbs = [];\r\n\t\t\t\tvar _actions = [];\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#title\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Title assigned to content toolbar\r\n\t\t *\r\n\t\t * @returns {string} value of title \r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tget title() { return _title; },\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#title\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the title for content toolbar\r\n\t\t *\r\n\t\t * @returns {string} value of title \r\n\t\t * @param {string} val Title to assign to content toolbar \r\n\t\t */\r\n\t\t\t\t\tset title(val) { _title = val; },\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#viewType\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Content view style to be used\r\n\t\t *\r\n\t\t * @returns {string} value of the view type \r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tget viewType() { return _view; },\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#viewType\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the content view style\r\n\t\t *\r\n\t\t * @returns {string} value of the view type \r\n\t\t * @param {string} val View type to assign to content \r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tset viewType(val) {\r\n\t\t\t\t\t\t_view = val === 'list' ? 'list' : 'card';\r\n\t\t\t\t\t\tpxLocalStorageService.setStoredValue('sba_user_viewType', _view);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tget breadCrumbs() { return _breadCrumbs; },\r\n\t\t\t\t\tset breadCrumbs(val) {\r\n\t\t\t\t\t\tif (!angular.isArray(val)) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t_breadCrumbs = val;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#actions\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Get the registered actions to display in the UI\r\n\t\t *\r\n\t\t * @returns {array} list of registered actions \r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tget actions() { return _actions; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#actions\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the registered actions to display in the UI\r\n\t\t *\r\n\t\t * @param {array} val List of actions\r\n\t\t * @usage\r\n\t\t * actions = [{ icon: 'search', label: 'Find content', trigger: self.navItemClicked }]\r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tset actions(val) {\r\n\t\t\t\t\t\tif (!angular.isArray(val)) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t_actions = val;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#filterPhrase\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Get the content of the filter phrase\r\n\t\t *\r\n\t\t * @returns {string} value of the filter phrase \r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tget filterPhrase() { return _filterPhrase; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#filterPhrase\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the content of the filter phrase\r\n\t\t *\r\n\t\t * @param {string} val New value of the filter phrase \r\n\t\t */\r\n\t\t\t\t\tset filterPhrase(val) { _filterPhrase = val !== '' || val !== undefined ? val : ''; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#showFilter\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Get the value of the show filter UI\r\n\t\t *\r\n\t\t * @returns {bool} to show the filter UI\r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tget showFilter() { return _showFilter; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#showFilter\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the value of the show filter UI\r\n\t\t *\r\n\t\t * @param {bool} val Value of wheither to show the filter UI \r\n\t\t */\r\n\t\t\t\t\tset showFilter(val) { _showFilter = val === true ? true : false; },\r\n\t\t\t\t\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#filterPlaceholder\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Get the value of the filter placeholder\r\n\t\t *\r\n\t\t * @returns {string} to show as the filter placeholder\r\n\t\t * \r\n\t\t */\r\n\t\t\t\t\tget filterPlaceholder() { return _filterPlaceholder; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminToolbarService#filterPlaceholder\r\n\t\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Set the value of the filter placeholder\r\n\t\t *\r\n\t\t * @param {string} val Value of the filter placeholder \r\n\t\t */\r\n\t\t\t\t\tset filterPlaceholder(val) { _filterPlaceholder = val === null || val === undefined ? _defaultFilterPlaceholder : val; }\r\n\t\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\r\n\t\t}());\n\t\n\t/***/ },\n\t/* 258 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t__webpack_require__(259);\r\n\t\t__webpack_require__(260);\r\n\t\t__webpack_require__(261);\r\n\t\t__webpack_require__(262);\r\n\t\t__webpack_require__(263);\r\n\t\t__webpack_require__(264);\r\n\t\t__webpack_require__(265);\r\n\t\t__webpack_require__(266);\r\n\t\t__webpack_require__(267);\r\n\t\t__webpack_require__(268);\r\n\t\t__webpack_require__(269);\r\n\t\t__webpack_require__(270);\n\t\n\t/***/ },\n\t/* 259 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminApiTokenDataStore', [\r\n\t\t\t\t\t'$filter',\r\n\t\t\t\t\t'sbadminApiTokenService',\r\n\t\t\t\t\tApiTokenDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with API tokens generated for the current deployment.\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tfunction ApiTokenDataStore($filter, apiTokenService) {\r\n\t\t\t\tvar _tokens = [];\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminApiTokenDataStore#load\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Loads all of the generated tokens from users in the deployment.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the API tokens of the current deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tload: loadApiTokens,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminApiTokenDataStore#createToken\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates an API token that never expires given an email and password.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the newly created token.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreateToken: createToken,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminApiTokenDataStore#deleteToken\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Delete the specified API token.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the API tokens of the current deployment. \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeleteToken: deleteToken,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminApiTokenDataStore#ltokens\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* A list of tokens generated by users of the current deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget tokens() {\r\n\t\t\t\t\t\treturn _tokens;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction loadApiTokens() {\r\n\t\t\t\t\treturn apiTokenService\r\n\t\t\t\t\t\t.getTokens()\r\n\t\t\t\t\t\t.then(function (tokens) {\r\n\t\t\t\t\t\t\t// change to domain object shape\r\n\t\t\t\t\t\t\t_tokens = tokens.map(function (token) {\r\n\t\t\t\t\t\t\t\treturn toDomainObject(token);\r\n\t\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t\t_tokens = $filter('orderBy')(_tokens, 'userName');\r\n\t\r\n\t\t\t\t\t\t\treturn _tokens;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createToken(email, password) {\r\n\t\t\t\t\treturn apiTokenService\r\n\t\t\t\t\t\t.createToken(email, password, 'never')\r\n\t\t\t\t\t\t.then(function(token) {\r\n\t\t\t\t\t\t\ttoken = toDomainObject(token);\t\r\n\t\t\t\t\t\t\t_tokens.push(token);\r\n\t\r\n\t\t\t\t\t\t\treturn token;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deleteToken(tokenId) {\r\n\t\t\t\t\treturn apiTokenService\r\n\t\t\t\t\t\t.deleteToken(tokenId)\r\n\t\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\t\t_tokens = _tokens.filter(function(token) {\r\n\t\t\t\t\t\t\t\treturn token.id !== tokenId;\r\n\t\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t\treturn _tokens;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t\tfunction toDomainObject(data) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: data.ApiTokenId,\r\n\t\t\t\t\tdateCreated: data.IssuedDate,\r\n\t\t\t\t\texpires: data.Embedded.AuthToken.ExpirationDate,\r\n\t\t\t\t\tuserName: data.Embedded.AuthToken.UserName,\r\n\t\t\t\t\tvalue: data.Embedded.AuthToken.Token\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 260 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminDeploymentDataStore', [\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'sbDeploymentService',\r\n\t\t\t\t\tDeplomentDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with all active ShareBase deployment details.\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tfunction DeplomentDataStore($q, deploymentService) {\r\n\t\t\t\tvar _details;\r\n\t\t\t\tvar _originalDetails;\r\n\t\t\t\tvar _settings;\r\n\t\t\t\treset();\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#load\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Loads details of the specified deployment.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the details of the specified ShareBase deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tload: loadDeployment,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#reset\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Sets the datastore back to its default state.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\treset: reset,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#create\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a new ShareBase deplomynet.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the details created deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreateDeployment: createDeployment,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#save\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Updates details of the specified deployment.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the status of the attempted save operation.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tsaveDeployment: saveDeployment,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#getSettings\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves and populates the settings for the currently loaded deployment.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of settings for the deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetSettings: getSettings,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#updateSettings\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Updates the settings for the currently loaded deployment.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of updated settings for the deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tupdateSettings: updateSettings,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#details\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Details of the loaded deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget details() { return _details; },\r\n\t\t\t\t\t/* @ngdoc property\r\n\t\t\t\t\t* @name sbadminDeploymentDataStore#settings\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Settings of the loaded deployment.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget settings() { return _settings; }\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction loadDeployment(deploymentId) {\r\n\t\t\t\t\tvar p;\r\n\t\t\t\t\tif (deploymentId) {\r\n\t\t\t\t\t\tp = deploymentService.getDetails(deploymentId)\r\n\t\t\t\t\t\t\t.then(storeDeploymentData);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treset();\r\n\t\t\t\t\t\tp = $q.resolve(_details);\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction reset() {\r\n\t\t\t\t\t_details = {\t\t\r\n\t\t\t\t\t\tDeploymentId: null,\t\r\n\t\t\t\t\t\tCustomerIdentifier: '',\r\n\t\t\t\t\t\tSystemName : '',\r\n\t\t\t\t\t\tName: '',\r\n\t\t\t\t\t\tDatabaseName: '',\r\n\t\t\t\t\t\tDatabaseServer: '',\r\n\t\t\t\t\t\tDatabaseRootPath: '',\r\n\t\t\t\t\t\tDiskgroupRootPath: ''\r\n\t\t\t\t\t};\r\n\t\r\n\t\t\t\t\t_originalDetails = angular.copy(_details);\r\n\t\t\t\t\t_settings = [];\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createDeployment() {\r\n\t\t\t\t\treturn deploymentService.createDeployment(_details)\r\n\t\t\t\t\t\t.then(storeDeploymentData);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction saveDeployment() {\r\n\t\t\t\t\tvar p = $q.reject(new Error('Cannot save deployment; none specified.'));\r\n\t\r\n\t\t\t\t\tif(_details.DeploymentId) {\r\n\t\t\t\t\t\tp = deploymentService.updateDeployment(_details.DeploymentId, diff(_originalDetails, _details));\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateSettings() {\r\n\t\t\t\t\tvar p = $q.reject(new Error('Cannot save deployment; none specified.'));\r\n\t\r\n\t\t\t\t\tif(_details.DeploymentId) {\r\n\t\t\t\t\t\tp = deploymentService.updateSettings(_details.DeploymentId, {\r\n\t\t\t\t\t\t\t'CoreRuntimeDeploymentSettings' : _settings\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getSettings() {\r\n\t\t\t\t\tvar p = $q.reject(new Error('Cannot retrieve settings. No deployment loaded.'));\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(_details.DeploymentId) {\r\n\t\t\t\t\t\tp = deploymentService\r\n\t\t\t\t\t\t\t.getSettings(_details.DeploymentId)\r\n\t\t\t\t\t\t\t.then(function(settings) {\r\n\t\t\t\t\t\t\t\t// for now, only show the CoreRuntimedeploymentSettings\r\n\t\t\t\t\t\t\t\t_settings = settings.CoreRuntimeDeploymentSettings;\r\n\t\t\t\t\t\t\t\t_settings = _settings.map(function (setting) {\r\n\t\t\t\t\t\t\t\t\tif (setting.DataType.indexOf('DataSet:') !== 0) { return setting; }\r\n\t\r\n\t\t\t\t\t\t\t\t\tsetting.isDataset = true;\r\n\t\t\t\t\t\t\t\t\t//pull dataset values into a more easily bindable array\r\n\t\t\t\t\t\t\t\t\tvar dataType = setting.DataType;\r\n\t\t\t\t\t\t\t\t\tsetting.dataSet = dataType.replace('DataSet:', '').split('|');\r\n\t\t\t\t\t\t\t\t\treturn setting;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\treturn _settings;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\treturn p;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction storeDeploymentData(resp) {\r\n\t\t\t\t\t_details = resp;\r\n\t\r\n\t\t\t\t\t// cache a copy of the deployment details to diff against on update to send only the changed values up\r\n\t\t\t\t\t_originalDetails = angular.copy(_details); \r\n\t\t\t\t\treturn _details;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\t// generates an object containing key/value pairs that don't exist or are different between two objects\r\n\t\t\t\tfunction diff(old, updated) {\r\n\t\t\t\t\tif(old === null || \r\n\t\t\t\t\t\t!angular.isDefined(old) || \r\n\t\t\t\t\t\tupdated === null ||\r\n\t\t\t\t\t\t!angular.isDefined(updated)) {\r\n\t\t\t\t\t\tthrow new Error('Two non-null objects required to diff.');\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tvar diffSet = Object.keys(updated)\r\n\t\t\t\t\t\t// filter keys down to the properties that are new or updated\r\n\t\t\t\t\t\t.filter(function(k){\r\n\t\t\t\t\t\t\treturn angular.isDefined(updated[k]) &&\r\n\t\t\t\t\t\t\t\t(!(k in old) || !angular.equals(updated[k], old[k])); \r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.reduce(function(originalDiffSet, k){\r\n\t\t\t\t\t\t\toriginalDiffSet[k] = updated[k];\r\n\t\t\t\t\t\t\treturn originalDiffSet;\r\n\t\t\t\t\t\t}, {});\r\n\t\r\n\t\t\t\t\treturn diffSet;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 261 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminDeploymentGroupsDataStore', [\r\n\t\t\t\t\t'sbadminDeploymentGroupsService',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\tDeploymentGroupsDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with the deployment groups\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tfunction DeploymentGroupsDataStore(sbadminDeploymentGroupsService, $q) {\r\n\t\t\t\tvar _deploymentGroups = null;\r\n\t\t\t\t/* eslint-disable no-unused-vars*/\r\n\t\t\t\tvar _deploymentGroupAdmins = null;\r\n\t\t\t\t/* eslint-enable no-unused-vars */\r\n\t\t\t\tvar _newDeploymentGroup = {\r\n\t\t\t\t\tgroupName : null,\r\n\t\t\t\t\tpartnerIdentifier: null,\r\n\t\t\t\t\tdatabaseServer: null,\r\n\t\t\t\t\tdatabaseRootPath: null,\r\n\t\t\t\t\tlogFileRootPath: null,\r\n\t\t\t\t\tdiskgroupRootPath : null\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsDataStore#loadDeploymentGroups\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Loads deployment groups\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tload: loadDeploymentGroups,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsDataStore#groups\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Returns currently loaded deployment groups\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget groups() { return _deploymentGroups; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsDataStore#getDeploymentGroup\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves a deployment group\r\n\t\t\t\t\t* @param {integer} Deployment group Id\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with selected deployment group or return a new deployment group\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeploymentGroup: getDeploymentGroup,\r\n\t\t\t\t\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsDataStore#getDeploymentGroupAdmins\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves deployment group tenant admins\r\n\t\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of tenant admins\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetDeploymentGroupAdmins : getDeploymentGroupAdmins,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsDataStore#create\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a deployment group\r\n\t\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreate: sbadminDeploymentGroupsService.createDeploymentGroup,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentGroupsDataStore#update\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Updates a deployment group\r\n\t\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the updated deployment group\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tupdate: updateDeploymentGroup,\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction filterDeploymentGroupsById(deploymentGroupId) {\r\n\t\t\t\t\tvar deploymentGroup = null;\r\n\t\t\t\t\tif (_deploymentGroups) {\r\n\t\t\t\t\t\tfor (var i = 0, ii = _deploymentGroups.length; i < ii; i++) {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\tif (_deploymentGroups[i].DeploymentGroupId == deploymentGroupId) {\r\n\t\t\t\t\t\t\t\tdeploymentGroup = _deploymentGroups[i];\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn deploymentGroup;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getDeploymentGroup(deploymentGroupId) {\r\n\t\t\t\t\tvar promise = $q.resolve();\r\n\t\r\n\t\t\t\t\tif (!deploymentGroupId) {\r\n\t\t\t\t\t\tpromise = $q.resolve(angular.copy(_newDeploymentGroup));\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (!_deploymentGroups) {\r\n\t\t\t\t\t\t\tpromise = loadDeploymentGroups();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpromise = promise.then(function () {\r\n\t\t\t\t\t\t\treturn filterDeploymentGroupsById(deploymentGroupId);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn promise;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getDeploymentGroupAdmins(deploymentGroup) {\r\n\t\t\t\t\treturn sbadminDeploymentGroupsService.getDeploymentGroupAdmins(deploymentGroup).then(function (admins) {\r\n\t\t\t\t\t\t_deploymentGroupAdmins = admins;\r\n\t\t\t\t\t\treturn admins;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction loadDeploymentGroups() {\r\n\t\t\t\t\treturn sbadminDeploymentGroupsService.getDeploymentGroups().then(function (deploymentGroups) {\r\n\t\t\t\t\t\t_deploymentGroups = deploymentGroups;\r\n\t\t\t\t\t\treturn _deploymentGroups;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateDeploymentGroup(deploymentGroup) {\r\n\t\t\t\t\treturn sbadminDeploymentGroupsService.updateDeploymentGroup(deploymentGroup).then(function () {\r\n\t\t\t\t\t\tvar deploymentGroupId = deploymentGroup.DeploymentGroupId;\r\n\t\t\t\t\t\t// Update data store\r\n\t\t\t\t\t\tif (_deploymentGroups) {\r\n\t\t\t\t\t\t\tfor (var i = 0, ii = _deploymentGroups.length; i < ii; i++) {\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tif (_deploymentGroups[i].DeploymentGroupId == deploymentGroupId) {\r\n\t\t\t\t\t\t\t\t\t_deploymentGroups[i] = deploymentGroup;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn deploymentGroup;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 262 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminDeploymentsDataStore', [\r\n\t\t\t\t\t'sbadminDeploymentsService',\r\n\t\t\t\t\tDeploymentsDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentsDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with all active ShareBase deployments.\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tfunction DeploymentsDataStore(deploymentsService) {\r\n\t\t\t\tvar _deployments = [];\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentsDataStore#load\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Loads active deployments.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with all active ShareBase deployments.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tload: loadDeployments,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminDeploymentsDataStore#deployments\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentsDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* User's active deployments.\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget deployments() { return _deployments; }\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction loadDeployments() {\r\n\t\t\t\t\treturn deploymentsService\r\n\t\t\t\t\t\t.getDeployments()\r\n\t\t\t\t\t\t.then(function(deployments) {\r\n\t\t\t\t\t\t\t_deployments = deployments.map(function(dep) {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\tid: dep.DeploymentId,\r\n\t\t\t\t\t\t\t\t\tgroupName: dep.DeploymentGroupName,\r\n\t\t\t\t\t\t\t\t\tname: dep.Name,\r\n\t\t\t\t\t\t\t\t\tdbServer: dep.DatabaseServer,\r\n\t\t\t\t\t\t\t\t\tdbName: dep.DatabaseName,\r\n\t\t\t\t\t\t\t\t\tapiPath: dep.Links.ApiPath\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t\treturn _deployments;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 263 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t .module('sharebase-admin')\r\n\t\t .factory('sbadminDeploymentStatisticsDataStore', [\r\n\t\t 'sbadminDeploymentStatisticsService',\r\n\t\t '$q',\r\n\t\t DeploymentStatisticsDataStore\r\n\t\t ]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminDeploymentStatisticsDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with a deployment's statistics\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tfunction DeploymentStatisticsDataStore(sbadminDeploymentStatisticsService, $q) {\r\n\t\t\t\tvar _deploymentsStatistics = {};\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentStatisticsDataStore#getStatistics\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentStatisticsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Retrieves deployment statistics\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a deployment's statistic\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetStatistics: getStatistics,\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminDeploymentStatisticsDataStore#refreshStatistics\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentStatisticsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Clears old and retrieves new deployment statistics\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a deployment's refreshed statistic\r\n\t\t\t\t\t*/\r\n\t\t\t\t\trefreshStatistics: refreshStatistics,\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction fetchStatistics(deploymentName) {\r\n\t\t\t\t\treturn sbadminDeploymentStatisticsService.getDeploymentTotalsUsage(deploymentName)\r\n\t\t\t\t\t\t.then(function (result) {\r\n\t\t\t\t\t\t\tvar statistics = {};\r\n\t\t\t\t\t\t\tresult.forEach(function (statistic) {\r\n\t\t\t\t\t\t\t\tstatistics[statistic.Id] = statistic.Count || 0;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tstatistics.lastUpdated = Date.now();\r\n\t\t\t\t\t\t\tupdateDataStore(deploymentName, statistics);\r\n\t\t\t\t\t\t\treturn statistics;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getStatistics(deploymentName) {\r\n\t\t\t\t\tvar deploymentStatistics = _deploymentsStatistics[deploymentName];\r\n\t\t\t\t\tvar promise = $q.resolve(deploymentStatistics);\r\n\t\r\n\t\t\t\t\tif (!deploymentStatistics) {\r\n\t\t\t\t\t\tpromise = fetchStatistics(deploymentName);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn promise;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction refreshStatistics(deploymentName) {\r\n\t\t\t\t\tdelete _deploymentsStatistics[deploymentName];\r\n\t\t\t\t\treturn getStatistics(deploymentName);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction updateDataStore(deploymentName, statistics) {\r\n\t\t\t\t\t// Update datastore with deploymentName as key\r\n\t\t\t\t\t_deploymentsStatistics[deploymentName] = statistics;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 264 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminLibrariesDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with ShareBase libraries\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminLibrariesDataStore',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$filter',\r\n\t\t\t\t\t'sbadminLibrariesService',\r\n\t\t\t\t\tLibraryDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction LibraryDataStore($filter, sbadminLibrariesService) {\r\n\t\t\t\tvar _libraries = [];\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminLibrariesDataStore#getLibraries\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminLibrariesDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a collection of libraries\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of libraries\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetLibraries: getLibraries,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminLibrariesDataStore#libraries\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminLibrariesDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* A collection of libraries\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {array} An array of libraries\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget libraries() { return _libraries; },\r\n\t\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getLibraries() {\r\n\t\t\t\t\treturn sbadminLibrariesService.getLibraries().then(function (response) {\r\n\t\t\t\t\t\t_libraries = $filter('orderBy')(response, 'LibraryName');\r\n\t\r\n\t\t\t\t\t\treturn _libraries;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 265 */\n\t/***/ function(module, exports) {\n\t\n\t\t\"use strict\";\r\n\t\t(function () {\r\n\t\t 'use strict';\r\n\t\t /**\r\n\t\t * @ngdoc service\r\n\t\t * @name sharebase-admin.sbadminLibraryDataStore\r\n\t\t *\r\n\t\t * @description\r\n\t\t * A datastore used to interact with ShareBase libraries\r\n\t\t **/\r\n\t\t angular\r\n\t\t .module('sharebase-admin')\r\n\t\t .factory('sbadminLibraryDataStore', [\r\n\t\t '$q',\r\n\t\t 'PX_OBJECT_TYPE',\r\n\t\t 'sbShareService',\r\n\t\t 'sbadminLibraryService',\r\n\t\t LibraryDataStore\r\n\t\t ]);\r\n\t\t function LibraryDataStore($q, ObjectType, shareService, libraryService) {\r\n\t\t var _library = null;\r\n\t\t var _shares = [];\r\n\t\t var _newLibrary = {\r\n\t\t LibraryId: null,\r\n\t\t LibraryName: null\r\n\t\t };\r\n\t\t var datastore = {\r\n\t\t /**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminLibraryDataStore#type\r\n\t\t * @propertyOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * PX_OBJECT_TYPES enum designation of the entities contained within.\r\n\t\t *\r\n\t\t * @returns {int} PX_OBJECT_TYPES enum value.\r\n\t\t */\r\n\t\t type: ObjectType.LIBRARY,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#getLibrary\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Gets a library\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with a library\r\n\t\t *\r\n\t\t */\r\n\t\t load: getLibrary,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#saveLibrary\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Saves a library\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with a library\r\n\t\t *\r\n\t\t */\r\n\t\t saveLibrary: saveLibrary,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#getShares\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Retrieves the associates shares for the currently loaded library.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with a library's shares.\r\n\t\t *\r\n\t\t */\r\n\t\t getShares: getShares,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#createShare\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Creates a new share for the currently loaded library.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with the new share.\r\n\t\t *\r\n\t\t */\r\n\t\t createShare: createShare,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#createShares\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Creates new shares for the currently loaded library.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with the new shares.\r\n\t\t *\r\n\t\t */\r\n\t\t createShares: createShares,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#updateShare\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Updates the rights and advanced permissions of the provided share for the loaded library.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with the updated share.\r\n\t\t *\r\n\t\t */\r\n\t\t updateShare: function (updatedShare, rightId, rights) {\r\n\t\t guardLibrary();\r\n\t\t return shareService\r\n\t\t .updateShare(_library.LibraryId, updatedShare, rightId, rights)\r\n\t\t .then(assignShares);\r\n\t\t },\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#deleteShare\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Deletes the provided share for the loaded library.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with the deleted share.\r\n\t\t *\r\n\t\t */\r\n\t\t deleteShare: deleteShare,\r\n\t\t /**\r\n\t\t * @ngdoc method\r\n\t\t * @name sbadminLibraryDataStore#getPermissions\r\n\t\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind function\r\n\t\t *\r\n\t\t * @description\r\n\t\t * Gets the available rights and advanced options for the provided share.\r\n\t\t *\r\n\t\t * @returns {Deferred} A promise that will resolve with the available rights and advanced options for the share.\r\n\t\t *\r\n\t\t */\r\n\t\t getPermissions: getPermissions,\r\n\t\t /**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminLibraryDataStore#library\r\n\t\t * @propertyOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * A library\r\n\t\t *\r\n\t\t * @returns {array} A library\r\n\t\t */\r\n\t\t get library() { return _library; },\r\n\t\t set library(lib) { _library = lib; },\r\n\t\t /**\r\n\t\t * @ngdoc property\r\n\t\t * @name sbadminLibraryDataStore#shares\r\n\t\t * @propertyOf sharebase-admin.sbadminLibraryDataStore\r\n\t\t * @kind property\r\n\t\t *\r\n\t\t * @description\r\n\t\t * A list of users or groups this library is shared with, if any.\r\n\t\t *\r\n\t\t * @returns {array} An an array of shared users or groups.\r\n\t\t */\r\n\t\t get shares() { return _shares; }\r\n\t\t };\r\n\t\t shareService.configure(datastore.type, libraryService, function () { return _shares; });\r\n\t\t return datastore;\r\n\t\t function getLibrary(libraryId) {\r\n\t\t if (!libraryId) {\r\n\t\t //create a new instance\r\n\t\t _library = _newLibrary;\r\n\t\t return $q.resolve(_newLibrary);\r\n\t\t }\r\n\t\t return libraryService\r\n\t\t .getLibrary(libraryId)\r\n\t\t .then(function (lib) {\r\n\t\t _library = lib;\r\n\t\t return _library;\r\n\t\t });\r\n\t\t }\r\n\t\t function getCurrentUserAcl() {\r\n\t\t guardLibrary();\r\n\t\t return shareService.getCurrentUserAcl(_library.LibraryId);\r\n\t\t }\r\n\t\t function getPermissions(share) {\r\n\t\t return getCurrentUserAcl()\r\n\t\t .then(function (myAcl) { return shareService.getRights(myAcl, datastore.type, share); });\r\n\t\t }\r\n\t\t function getShares() {\r\n\t\t guardLibrary();\r\n\t\t return shareService\r\n\t\t .getShares(_library.LibraryId)\r\n\t\t .then(assignShares);\r\n\t\t }\r\n\t\t function createShare(entity, rightId, rights) {\r\n\t\t guardLibrary();\r\n\t\t return shareService\r\n\t\t .createShare(_library.LibraryId, entity, rightId, rights)\r\n\t\t .then(assignShares);\r\n\t\t }\r\n\t\t function createShares(entities, rightId, rights) {\r\n\t\t guardLibrary();\r\n\t\t return shareService\r\n\t\t .createShares(_library.LibraryId, entities, rightId, rights)\r\n\t\t .then(assignShares);\r\n\t\t }\r\n\t\t function deleteShare(deletedShare) {\r\n\t\t guardLibrary();\r\n\t\t return shareService\r\n\t\t .deleteShare(_library.LibraryId, deletedShare)\r\n\t\t .then(assignShares);\r\n\t\t }\r\n\t\t function saveLibrary() {\r\n\t\t guardLibrary();\r\n\t\t if (_library.LibraryId) {\r\n\t\t return libraryService.updateLibrary(_library)\r\n\t\t .then(function (lib) {\r\n\t\t return lib;\r\n\t\t });\r\n\t\t }\r\n\t\t else {\r\n\t\t return libraryService.addLibrary(_library)\r\n\t\t .then(function (lib) {\r\n\t\t _library = lib;\r\n\t\t return lib;\r\n\t\t });\r\n\t\t }\r\n\t\t }\r\n\t\t function assignShares(shares) {\r\n\t\t return _shares = shares;\r\n\t\t }\r\n\t\t function guardLibrary() {\r\n\t\t if (!angular.isDefined(_library) || _library === null) {\r\n\t\t throw new Error('No library loaded.');\r\n\t\t }\r\n\t\t }\r\n\t\t }\r\n\t\t})();\r\n\t\n\t\n\t/***/ },\n\t/* 266 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPasswordPoliciesDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with ShareBase password policies\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPasswordPoliciesDataStore',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$filter',\r\n\t\t\t\t\t'sbadminPasswordPoliciesService',\r\n\t\t\t\t\tPasswordPoliciesDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PasswordPoliciesDataStore($filter, sbadminPasswordPoliciesService) {\r\n\t\t\t\tvar _passwordPolicies = null;\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPoliciesDataStore#getPasswordPolicies\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPoliciesDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a collection of password policies\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of password policies\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetPasswordPolicies: getPasswordPolicies,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPoliciesDataStore#passwordPolicies\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPoliciesDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* A collection of password policies\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {array} An array of password policies\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget passwordPolicies() { return _passwordPolicies; },\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getPasswordPolicies() {\r\n\t\t\t\t\treturn sbadminPasswordPoliciesService.getPasswordPolicies().then(function (response) {\r\n\t\t\t\t\t\t_passwordPolicies = $filter('orderBy')(response.Embedded.PasswordPolicies, 'Name');\r\n\t\r\n\t\t\t\t\t\treturn _passwordPolicies;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 267 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with a ShareBase password policy\r\n\t\t\t**/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPasswordPolicyDataStore',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'sbadminPasswordPolicyService',\r\n\t\t\t\t\tPasswordPolicyDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\tfunction PasswordPolicyDataStore($q, sbadminPasswordPolicyService) {\r\n\t\t\t\tvar _passwordPolicy = null;\r\n\t\r\n\t\t\t\tvar _enforceIdle = null;\r\n\t\t\t\tvar _enforceFailure = null;\r\n\t\t\t\tvar _expire = null;\r\n\t\t\t\tvar _requireWait = null;\r\n\t\r\n\t\t\t\tvar _newPasswordPolicy = {\r\n\t\t\t\t\tActive: false,\r\n\t\t\t\t\tPasswordPolicyId: null,\r\n\t\t\t\t\tIdleLimit: 360,\r\n\t\t\t\t\tFailedLoginLimit: 10,\r\n\t\t\t\t\tAutoRelease: true,\r\n\t\t\t\t\tLockoutLength: 5,\r\n\t\t\t\t\tReuseStyle: 0,\r\n\t\t\t\t\tReuseChangesLimit: 3,\r\n\t\t\t\t\tReuseDaysLimit: 0,\r\n\t\t\t\t\tHoursBetweenChanges: 24,\r\n\t\t\t\t\tExpiryDays: 180,\r\n\t\t\t\t\tAlphaQuota: 0,\r\n\t\t\t\t\tNumericQuota: 0,\r\n\t\t\t\t\tSpecialQuota: 0,\r\n\t\t\t\t\tUppercaseQuota: 0,\r\n\t\t\t\t\tLowercaseQuota: 0,\r\n\t\t\t\t\tRequiredQuotaMatch: 5,\r\n\t\t\t\t\tMaxRepeatedChars: 3,\r\n\t\t\t\t\tMinLength: 15\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#getPasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetPasswordPolicy: getPasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#savePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Saves a specific password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tsavePasswordPolicy: savePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#deletePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a deleted password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeletePasswordPolicy: deletePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#activatePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with an active password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tactivatePasswordPolicy: activatePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#deactivatePasswordPolicy\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a deactivated password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tdeactivatePasswordPolicy: deactivatePasswordPolicy,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#passwordPolicy\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* An existing password policy\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {object} An existing password policy\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget passwordPolicy() { return _passwordPolicy; },\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#requireWait\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Require Hours Between Changes'\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {boolean} A boolean representing 'Require Hours Between Changes'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget requireWait() {\r\n\t\t\t\t\t\tif (_requireWait === null) {\r\n\t\t\t\t\t\t\t_requireWait = _passwordPolicy ? (_passwordPolicy.HoursBetweenChanges > 0) : null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn _requireWait;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#requireWait\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Require Hours Between Changes'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tset requireWait(val) {\r\n\t\t\t\t\t\t_requireWait = val;\r\n\t\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t\t_passwordPolicy.HoursBetweenChanges = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#expire\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Expire Every Days'\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {boolean} A boolean representing 'Expire Every Days'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget expire() {\r\n\t\t\t\t\t\tif (_expire === null) {\r\n\t\t\t\t\t\t\t_expire = _passwordPolicy ? (_passwordPolicy.ExpiryDays > 0) : null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn _expire;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#expire\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Expire Every Days'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tset expire(val) {\r\n\t\t\t\t\t\t_expire = val;\r\n\t\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t\t_passwordPolicy.ExpiryDays = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceFailure\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Lockout After Failed Logins'\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {boolean} A boolean representing 'Lockout After Failed Logins'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget enforceFailure() {\r\n\t\t\t\t\t\tif (_enforceFailure === null) {\r\n\t\t\t\t\t\t\t_enforceFailure = _passwordPolicy ? (_passwordPolicy.FailedLoginLimit > 0) : null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn _enforceFailure;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceFailure\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Lockout After Failed Logins'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tset enforceFailure(val) {\r\n\t\t\t\t\t\t_enforceFailure = val;\r\n\t\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t\t_passwordPolicy.FailedLoginLimit = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceIdle\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Lockout After Idle Days'\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {boolean} A boolean representing 'Lockout After Idle Days'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget enforceIdle() {\r\n\t\t\t\t\t\tif (_enforceIdle === null) {\r\n\t\t\t\t\t\t\t_enforceIdle = _passwordPolicy ? (_passwordPolicy.IdleLimit > 0) : null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn _enforceIdle;\r\n\t\t\t\t\t},\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceIdle\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* 'Lockout After Idle Days'\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tset enforceIdle(val) {\r\n\t\t\t\t\t\t_enforceIdle = val;\r\n\t\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t\t_passwordPolicy.IdleLimit = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getPasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\tresetProperties();\r\n\t\r\n\t\t\t\t\tif (!passwordPolicyId) {\r\n\t\t\t\t\t\t_passwordPolicy = angular.copy(_newPasswordPolicy);\r\n\t\r\n\t\t\t\t\t\treturn $q.resolve(_passwordPolicy);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn sbadminPasswordPolicyService.getPasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\t\t_passwordPolicy = response;\r\n\t\r\n\t\t\t\t\t\treturn _passwordPolicy;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction savePasswordPolicy() {\r\n\t\t\t\t\tif (_passwordPolicy.PasswordPolicyId) {\r\n\t\t\t\t\t\treturn sbadminPasswordPolicyService.updatePasswordPolicy(_passwordPolicy).then(function (response) {\r\n\t\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treturn sbadminPasswordPolicyService.createPasswordPolicy(_passwordPolicy).then(function (response) {\r\n\t\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deletePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn sbadminPasswordPolicyService.deletePasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction activatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn sbadminPasswordPolicyService.activatePasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction deactivatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t\treturn sbadminPasswordPolicyService.deactivatePasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction resetProperties() {\r\n\t\t\t\t\t_passwordPolicy = null;\r\n\t\r\n\t\t\t\t\t_enforceIdle = null;\r\n\t\t\t\t\t_enforceFailure = null;\r\n\t\t\t\t\t_expire = null;\r\n\t\t\t\t\t_requireWait = null;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t}\r\n\t\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 268 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminPendingDeploymentsDataStore', [\r\n\t\t\t\t\t'sbadminPendingDeploymentsService',\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\tPendingDeploymentsDataStore\r\n\t\t\t\t]);\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with the contents of a Document.\r\n\t\t\t* \r\n\t\t\t**/\r\n\t\t\tfunction PendingDeploymentsDataStore(sbadminPendingDeploymentsService, $q) {\r\n\t\t\t\tvar _deployments = null;\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsDataStore#pageCount\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* User's pending deployments \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget deployments() { return _deployments; },\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsDataStore#getPendingDeployment\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Load a pending deployment\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a pending deployment model\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetPendingDeployment: getPendingDeployment,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsDataStore#loadPendingDeployments\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Loads pending deployments\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a selected document\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tload: loadPendingDeployments,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsDataStore#resend\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Resends email notification to owner of pending deployment\r\n\t\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the server response\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tresendNotification: resendNotification,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminPendingDeploymentsDataStore#save\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Saves a pending deployment\r\n\t\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with the server response\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tsave: save\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction filterDeploymentsById(pendingDeploymentId) {\r\n\t\t\t\t\tvar pendingDeployment = null;\r\n\t\t\t\t\tif (_deployments) {\r\n\t\t\t\t\t\tfor (var i = 0, ii = _deployments.length; i < ii; i++) {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\tif (_deployments[i].PendingDeploymentRegistrationId == pendingDeploymentId) { \r\n\t\t\t\t\t\t\t\tpendingDeployment = _deployments[i];\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn pendingDeployment;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction getPendingDeployment(pendingDeploymentId) {\r\n\t\t\t\t\tvar promise = $q.resolve();\r\n\t\r\n\t\t\t\t\tif (!_deployments) {\r\n\t\t\t\t\t\tpromise = loadPendingDeployments();\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tpromise = promise.then(function () {\r\n\t\t\t\t\t\treturn filterDeploymentsById(pendingDeploymentId);\r\n\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\treturn promise;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\tfunction loadPendingDeployments() {\r\n\t\t\t\t\treturn sbadminPendingDeploymentsService.getDeployments().then(function (deployments) {\r\n\t\t\t\t\t\t_deployments = deployments;\r\n\t\t\t\t\t\treturn _deployments;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction resendNotification(pendingDeployment) {\r\n\t\t\t\t\treturn sbadminPendingDeploymentsService.resendNotification(pendingDeployment);\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction save(pendingDeployment) {\r\n\t\t\t\t\treturn sbadminPendingDeploymentsService.save(pendingDeployment).then(function () {\r\n\t\t\t\t\t\tvar pendingDeploymentId = pendingDeployment.pendingDeploymentId;\r\n\t\t\t\t\t\t// Update data store\r\n\t\t\t\t\t\tif (_deployments) {\r\n\t\t\t\t\t\t\tfor (var i = 0, ii = _deployments.length; i < ii; i++) {\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tif (_deployments[i].PendingDeploymentRegistrationId == pendingDeploymentId) {\r\n\t\t\t\t\t\t\t\t\t_deployments[i] = pendingDeployment;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn pendingDeployment;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 269 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminTenantAdminDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with a ShareBase tenant administrator\r\n\t\t\t* \r\n\t\t\t*/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminTenantAdminDataStore',\r\n\t\t\t\t[\r\n\t\t\t\t\t'sbadminTenantAdminService',\r\n\t\t\t\t\tTenantAdminDataStore\r\n\t\t\t\t]);\r\n\t\t\t\r\n\t\t\tfunction TenantAdminDataStore(sbadminTenantAdminService) {\r\n\t\t\t\tvar _administrator = null;\r\n\t\r\n\t\t\t\treturn {\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminTenantAdminDataStore#saveAdministrator\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminTenantAdminDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @param {integer} groupID The id of the group to add administrator to\r\n\t\t\t\t\t* @param {string} username The username of the new administrator\r\n\t\t\t\t\t* @param {string} emailAddress The email address of the new administrator\r\n\t\t\t\t\t* @param {string} password The password of the new administrator \r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Creates a new user that is a tenant administrator\r\n\t\t\t\t\t* \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tcreateAdministrator: createAdministrator,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminTenantAdminDataStore#administrator\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminTenantAdminDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* A tenant administrator\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {object} A tenant administrator\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget administrator() { return _administrator || getAdministrator(); }\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getAdministrator() {\r\n\t\t\t\t\treturn sbadminTenantAdminService.getAdministrator().then(function (response) {\r\n\t\t\t\t\t\t_administrator = response;\r\n\t\r\n\t\t\t\t\t\treturn _administrator;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tfunction createAdministrator(groupID, username, emailAddress, password) {\r\n\t\t\t\t\treturn sbadminTenantAdminService.createAdministrator(groupID, username, emailAddress, password);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 270 */\n\t/***/ function(module, exports) {\n\t\n\t\t(function () {\r\n\t\t\t'use strict';\r\n\t\r\n\t\t\t/**\r\n\t\t\t* @ngdoc service\r\n\t\t\t* @name sharebase-admin.sbadminTenantAdminsDataStore\r\n\t\t\t* \r\n\t\t\t* @description \r\n\t\t\t* A datastore used to interact with ShareBase tenant administrators\r\n\t\t\t* \r\n\t\t\t*/\r\n\t\r\n\t\t\tangular\r\n\t\t\t\t.module('sharebase-admin')\r\n\t\t\t\t.factory('sbadminTenantAdminsDataStore',\r\n\t\t\t\t[\r\n\t\t\t\t\t'$q',\r\n\t\t\t\t\t'sbadminTenantAdminsService',\r\n\t\t\t\t\tTenantAdminsDataStore\r\n\t\t\t\t]);\r\n\t\t\t\r\n\t\t\tfunction TenantAdminsDataStore($q, sbadminTenantAdminsService) {\r\n\t\t\t\tvar _administrators = null;\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc method\r\n\t\t\t\t\t* @name sbadminTenantAdminsDataStore#getAdministrators\r\n\t\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminsDataStore\r\n\t\t\t\t\t* @kind function\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Loads or refreshes list of tenant admins\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* @returns {Deferred} A promise that will resolve with a list of group admins\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tgetAdministrators: getAdministrators,\r\n\t\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\r\n\t\t\t\t\t* @name sbadminTenantAdminsDataStore#administrators\r\n\t\t\t\t\t* @propertyOf sharebase-admin.sbadminTenantAdminsDataStore\r\n\t\t\t\t\t* @kind property\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* A list of tenant admins\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @returns {object} An array of tenant admins\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget administrators() { return _administrators; },\r\n\t\t\t\t};\r\n\t\r\n\t\t\t\tfunction getAdministrators() {\r\n\t\t\t\t\treturn sbadminTenantAdminsService.getAdministrators().then(function (response) {\r\n\t\t\t\t\t\t_administrators = response;\r\n\t\r\n\t\t\t\t\t\treturn _administrators;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\n\t\n\t/***/ },\n\t/* 271 */\n\t/***/ function(module, exports) {\n\t\n\t\t// removed by extract-text-webpack-plugin\n\t\n\t/***/ }\n\t/******/ ]);\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// sharebase.b198df.min.js","require('sharebase-bundle/sharebase');\nrequire('sharebase-bundle/sharebase.css');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/sharebase.js\n// module id = 0\n// module chunks = 3","/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(1);\r\n\t__webpack_require__(2);\r\n\t__webpack_require__(67);\r\n\t__webpack_require__(131);\r\n\t__webpack_require__(271);\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular.module('sharebase-config', [])\r\n\t\t\t.constant('debugInfoEnabled', false);\r\n\t})();\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar login_1 = __webpack_require__(3);\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.default = angular.module('phoenix', [\r\n\t 'ngMaterial',\r\n\t 'ngMessages',\r\n\t 'site.settings',\r\n\t 'ui.router',\r\n\t login_1.default.name\r\n\t]);\r\n\t__webpack_require__(22);\r\n\t__webpack_require__(49);\r\n\t__webpack_require__(54);\r\n\t__webpack_require__(56);\r\n\t__webpack_require__(65);\r\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t__webpack_require__(4);\r\n\t__webpack_require__(5);\r\n\tvar login_component_1 = __webpack_require__(6);\r\n\t__webpack_require__(8);\r\n\t__webpack_require__(10);\r\n\t__webpack_require__(12);\r\n\t__webpack_require__(14);\r\n\t__webpack_require__(16);\r\n\t__webpack_require__(18);\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.default = login_component_1.default;\r\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('phoenix.authService', [])\r\n\t\t\t.factory('pxAuthService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'$q',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\t'pxLocalStorageService',\r\n\t\t\t\tAuthService]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name phoenix.pxAuthService\r\n\t\t*\r\n\t\t* @description\r\n\t\t* A service that handles user authentication and provides information\r\n\t\t* about the current authenticated user\r\n\t\t*\r\n\t\t**/\r\n\t\tfunction AuthService($http, $q, settingsService, pxLocalStorageService) {\r\n\t\t\tvar _authToken = getTokenFromStorage();\r\n\t\t\tvar _userStats = null;\r\n\t\t\tvar _verifiedToken = false;\r\n\t\t\tvar _touchInProgress = false;\r\n\t\t\tvar _privileges = null;\r\n\r\n\t\t\treturn {\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthService#authenticate\r\n\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Authenticates the user and returns a promise that will\r\n\t\t\t\t * be resolved with Phoenix token.\r\n\t\t\t\t *\r\n\t\t\t\t * @param {object} params Object containing the user's login\r\n\t\t\t\t * parameters.\r\n\t\t\t\t *\r\n\t\t\t\t * - email - The user's email address\r\n\t\t\t\t * - password - The user's password\r\n\t\t\t\t * - rememberMe - Should the auth token be persisted?\r\n\t\t\t\t *\r\n\t\t\t\t * @returns {Deferred} A promise that will resolve the response.data\r\n\t\t\t\t *\r\n\t\t\t\t */\r\n\t\t\t\tauthenticate: authenticate,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthService#invalidateLogin\r\n\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Clears the users Phoenix token\r\n\t\t\t\t *\r\n\t\t\t\t */\r\n\t\t\t\tinvalidateLogin: invalidateLogin,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthService#getUserStatistics\r\n\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Gets usage statistics for the authenticated user\r\n\t\t\t\t *\r\n\t\t\t\t * @returns {Deferred} A promise that will resolve with the\r\n\t\t\t\t * user statistics if authenticated, otherwise null.\r\n\t\t\t\t *\r\n\t\t\t\t */\r\n\t\t\t\tgetUserStatistics: getUserStatistics,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name pxAuthService#resetPassword\r\n\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Resets a user's password\r\n\t\t\t\t* @param {string} authToken Token supplied by reset password emailAddress\r\n\t\t\t\t* @param {string} new password\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with response.data\r\n\t\t\t\t*/\r\n\t\t\t\tresetPassword: resetPassword,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name pxAuthService#requestPasswordReset\r\n\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Requests an email with a link to reset the user's password\r\n\t\t\t\t* @param {string} email Email to request password reset for\r\n\t\t\t\t* @param {string} serverWebPath Domain host\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with response.data\r\n\t\t\t\t*\r\n\t\t\t\t*/\r\n\t\t\t\trequestPasswordReset: requestPasswordReset,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name pxAuthService#updateExpiredPassword\r\n\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Updates a user's expired password\r\n\t\t\t\t* @param {string} emailAddress User's email address\r\n\t\t\t\t* @param {string} oldPassword User's old password\r\n\t\t\t\t* @param {string} newPassword User's new password\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with response.data\r\n\t\t\t\t*\r\n\t\t\t\t*/\r\n\t\t\t\tupdateExpiredPassword: updateExpiredPassword,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc property\r\n\t\t\t\t * @name pxAuthService#token\r\n\t\t\t\t * @propertyOf phoenix.pxAuthService\r\n\t\t\t\t * @kind property\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Returns the authenticated users Phoenix token.\r\n\t\t\t\t *\r\n\t\t\t\t * @returns {string} The user's Phoenix token\r\n\t\t\t\t */\r\n\t\t\t\tget token() { return getToken(); },\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc property\r\n\t\t\t\t * @name pxAuthService#displayName\r\n\t\t\t\t * @propertyOf phoenix.pxAuthService\r\n\t\t\t\t * @kind property\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Returns the display name of the authenticated user, or null\r\n\t\t\t\t * if the user is not authenticated.\r\n\t\t\t\t *\r\n\t\t\t\t * @returns {string} The user's display name.\r\n\t\t\t\t */\r\n\t\t\t\tget displayName() { return getDisplayName(); },\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name pxAuthService#systemName\r\n\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Returns the system name of the authenticated user, or null\r\n\t\t\t\t* if the user is a system administrator.\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {string} The user's system name.\r\n\t\t\t\t*/\r\n\t\t\t\tget systemName() { return getSystemName(); },\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name pxAuthService#userId\r\n\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* The user ID of the authenticated user.\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {int} The user's user ID.\r\n\t\t\t\t*/\r\n\t\t\t\tget userId() { return _authToken ? _authToken.UserId : null; },\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name pxAuthService#deploymentId\r\n\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Returns the deployment ID of the authenticated user, or null\r\n\t\t\t\t* if the user is a system administrator.\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {int} The user's deployment ID.\r\n\t\t\t\t*/\r\n\t\t\t\tget deploymentId() { return _authToken ? _authToken.DeploymentId : null; },\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name pxAuthService#deploymentGroupId\r\n\t\t\t\t* @propertyOf phoenix.pxAuthService\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Returns the deployment group ID of the authenticated user, or null\r\n\t\t\t\t* if the user is a system administrator.\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {int} The user's deployment group ID.\r\n\t\t\t\t*/\r\n\t\t\t\tget deploymentGroupId() {return _authToken && _authToken.DeploymentGroupId > -1 ? _authToken.DeploymentGroupId : null; },\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc property\r\n\t\t\t\t * @name pxAuthService#userStatistics\r\n\t\t\t\t * @propertyOf phoenix.pxAuthService\r\n\t\t\t\t * @kind property\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * A set of usage statistics for the authenticated user.\r\n\t\t\t\t *\r\n\t\t\t\t * Calling getUserStatistics will force updates to this\r\n\t\t\t\t * property.\r\n\t\t\t\t *\r\n\t\t\t\t * @returns {array} The user's usage data or null if the user\r\n\t\t\t\t * is not authenticated\r\n\t\t\t\t */\r\n\r\n\t\t\t\tget userStatistics() { return _userStats; },\r\n\t\t\t\tget isSysAdmin() { return _authToken ? _authToken.IsSysAdmin : false; },\r\n\t\t\t\tget isSiteAdmin() { return _authToken ? _authToken.Embedded.Roles.indexOf('SiteAdmin') >= 0 : false; },\r\n\t\t\t\tget isUserAdmin() { return _authToken ? _authToken.Embedded.Roles.indexOf('UserAdmin') >= 0 : false; },\r\n\t\t\t\tget isTenantAdmin() { return _authToken ? _authToken.Embedded.Roles.indexOf('TenantAdmin') >= 0 : false; },\r\n\t\t\t\tget isAdmin() { return this.isSysAdmin || this.isTenantAdmin || this.isSiteAdmin || this.isUserAdmin; },\r\n\t\t\t\tget isAuthenticated() {\r\n\t\t\t\t\tvar validToken = !!_authToken;\r\n\r\n\t\t\t\t\tif (validToken && !_touchInProgress && !_verifiedToken) {\r\n\t\t\t\t\t\tvalidateAuthToken(_authToken.Token);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn validToken;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name pxAuthService#validateAuthToken\r\n\t\t\t\t* @methodOf phoenix.pxAuthService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Validates an authorization token. If none is supplied the current auth token is used\r\n\t\t\t\t* @param {string} authToken (Optional) Token to validate with the server\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that resolves if the token is valid\r\n\t\t\t\t* otherwise an exception is thrown\r\n\t\t\t\t*/\r\n\t\t\t\tvalidateAuthToken : validateAuthToken,\r\n\t\t\t\tget privileges() {\r\n\t\t\t\t\tif(!_privileges && _authToken) {\r\n\t\t\t\t\t\t_privileges = createPrivs(_authToken.Embedded.Privileges);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn _privileges || {};\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthService#registerDeployment\r\n\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Registers a new deployment based on an auth token that has been sent\r\n\t\t\t\t * to a specific user.\r\n\t\t\t\t *\r\n\t\t\t\t * @param {number} id Id of the deployment to register.\r\n\t\t\t\t * @param {string} authToken A temporary authentication token required to validate the user to the deployment.\r\n\t\t\t\t * @param {string} userName User name for the user registering the deployment.\r\n\t\t\t\t * @param {string} password New password for the user registering the deployment.\r\n\t\t\t\t *\r\n\t\t\t\t * @returns {Deferred} A promise that resolves if the deployment has been registered successfully.\r\n\t\t\t\t */\r\n\t\t\t\tregisterDeployment: registerDeployment,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthService#validatePassword\r\n\t\t\t\t * @methodOf phoenix.pxAuthService\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Validate a password agains a deployment's password policies.\r\n\t\t\t\t *\r\n\t\t\t\t * @param {string} password The password to test\r\n\t\t\t\t * @param {string} authToken Use to test against a specific deployment's policies.\r\n\t\t\t\t * @returns {Deferred} A promise that will resolve to an object that indicates if the password was valid.\r\n\t\t\t\t */\r\n\t\t\t\tvalidatePassword: validatePassword\r\n\t\t\t};\r\n\r\n\t\t\tfunction authenticate(emailAddress, password, rememberMe) {\r\n\t\t\t\tif (!angular.isString(emailAddress) || emailAddress.length === 0) {\r\n\t\t\t\t\tthrow new Error('emailAddress parameter required');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!angular.isString(password) || password.length === 0) {\r\n\t\t\t\t\tthrow new Error('password parameter required');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar httpConfig = {\r\n\t\t\t\t\t'headers': {\r\n\t\t\t\t\t\t'Authorization': function (config) {\r\n\t\t\t\t\t\t\tvar b64 = btoa(emailAddress + ':' + password);\r\n\t\t\t\t\t\t\treturn 'Basic ' + b64;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tskipAuth: true\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/authenticate', httpConfig)\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\tif (tokenIsValid(response)) {\r\n\t\t\t\t\t\t\tstoreToken(response, rememberMe);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction getDisplayName() {\r\n\t\t\t\treturn _authToken ? _authToken.UserName : null;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getSystemName() {\r\n\t\t\t\treturn _authToken ? _authToken.SystemName : null;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getToken() {\r\n\t\t\t\treturn _authToken ? _authToken.Token : null;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getTokenFromStorage() {\r\n\t\t\t\tvar authToken = pxLocalStorageService.getStoredValue('phoenix_token');\r\n\r\n\t\t\t\tif (authToken.length !== 0) {\r\n\t\t\t\t\tvar authTokenObj = JSON.parse(authToken);\r\n\t\t\t\t\tif (angular.isObject(authTokenObj)) {\r\n\t\t\t\t\t\treturn authTokenObj;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getUserStatistics() {\r\n\t\t\t\tif (!_authToken) {\r\n\t\t\t\t\treturn $q.resolve(null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar uri = _authToken.Embedded.User.Links.StatisticsUri;\r\n\r\n\t\t\t\treturn $http.get(uri)\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\tvar stats = {};\r\n\t\t\t\t\t\tif (response.data.length > 0) {\r\n\t\t\t\t\t\t\tangular.forEach(response.data, function (item) {\r\n\t\t\t\t\t\t\t\tstats[item.Id] = { Label: item.Label, Count: item.Count };\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t_userStats = stats;\r\n\r\n\t\t\t\t\t\treturn _userStats;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction invalidateLogin() {\r\n\t\t\t\t_authToken = null;\r\n\t\t\t\t_verifiedToken = false;\r\n\t\t\t\tpxLocalStorageService.removeStoredValue('phoenix_token');\r\n\t\t\t}\r\n\r\n\t\t\tfunction resetPassword(authToken, newPassword) {\r\n\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/passwordcallback?auth=' + authToken,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tNewPassword: newPassword\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\tif (tokenIsValid(response)) {\r\n\t\t\t\t\t\t\tstoreToken(response, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction requestPasswordReset(email, serverWebPath) {\r\n\t\t\t\tvar serverPath = angular.isString(serverWebPath) ? '&serverWebPath=' + encodeURIComponent(serverWebPath) : '';\r\n\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/passwordrequest?email=' + email + serverPath)\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction storeToken(response, rememberMe) {\r\n\t\t\t\tvar data = response.data;\r\n\t\t\t\t_authToken = data;\r\n\r\n\t\t\t\tif (rememberMe) {\r\n\t\t\t\t\tpxLocalStorageService.setStoredValue('phoenix_token', JSON.stringify(data));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction tokenIsValid(response) {\r\n\t\t\t\tvar data = response.data;\r\n\t\t\t\treturn angular.isDefined(data.Token) && data.Token !== null;\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateExpiredPassword(emailAddress, oldPassword, newPassword) {\r\n\t\t\t\tvar resetData = {\r\n\t\t\t\t\t'EmailAddress': emailAddress,\r\n\t\t\t\t\t'OldPassword': oldPassword,\r\n\t\t\t\t\t'NewPassword': newPassword\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/users/passwordchange', resetData)\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction validateAuthToken(authToken) {\r\n\t\t\t\tif (!angular.isString(authToken)) {\r\n\t\t\t\t\tthrow new Error('authToken parameter required');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_touchInProgress = true;\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/touch?auth=' + authToken)\r\n\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t_verifiedToken = true;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t_touchInProgress = false;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction createPrivs(privList){\r\n\t\t\t\treturn privList.reduce(function(privs, priv){\r\n\t\t\t\t\t// map privlege namespace path onto properties of object\r\n\t\t\t\t\tpriv.split('/')\r\n\t\t\t\t\t\t.reduce(function(section, sectionName, i, sectionsArr){\r\n\t\t\t\t\t\t\t// camel case the properties\r\n\t\t\t\t\t\t\tsectionName = sectionName.charAt(0).toLowerCase() + sectionName.slice(1);\r\n\t\t\t\t\t\t\tvar isLastSection = i === (sectionsArr.length - 1);\r\n\r\n\t\t\t\t\t\t\tif(!(sectionName in section)){\r\n\t\t\t\t\t\t\t\tsection[sectionName] = Object.create(null);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(isLastSection) {\r\n\t\t\t\t\t\t\t\tsection[sectionName] = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn section[sectionName];\r\n\t\t\t\t\t\t}, privs);\r\n\r\n\t\t\t\t\treturn privs;\r\n\t\t\t\t}, {});\r\n\t\t\t}\r\n\r\n\t\t\tfunction registerDeployment(id, authToken, userName, password) {\r\n\t\t\t\tvar uri = settingsService.serverAPIPath + '/admin/registrations/' + id;\r\n\t\t\t\tvar userInfo = {\r\n\t\t\t\t\tUserName: userName,\r\n\t\t\t\t\tPassword: password\r\n\t\t\t\t};\r\n\t\t\t\tvar config = { headers: { Authorization: 'PHOENIX-TOKEN ' + authToken } };\r\n\t\t\t\treturn $http.post(uri, userInfo, config);\r\n\t\t\t}\r\n\r\n\t\t\tfunction validatePassword(password, authToken) {\r\n\t\t\t\tvar uri = settingsService.serverAPIPath + '/settings/passwordpolicy/test';\r\n\t\t\t\tvar checkPass = { Password: password };\r\n\t\t\t\tvar config = { };\r\n\t\t\t\tif (authToken) {\r\n\t\t\t\t\tconfig.headers = {\r\n\t\t\t\t\t\tAuthorization: 'PHOENIX-TOKEN ' + authToken\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\treturn $http.post(uri, checkPass, config)\r\n\t\t\t\t\t.then(function(res) {\r\n\t\t\t\t\t\treturn res.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('phoenix.authInterceptor', [])\r\n\t\t\t.factory('pxAuthInterceptor', [\r\n\t\t\t\t'$q',\r\n\t\t\t\t'$location',\r\n\t\t\t\t'$injector',\r\n\t\t\t\tauthInterceptor]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name phoenix.pxAuthInterceptor\r\n\t\t* \r\n\t\t* @description \r\n\t\t* An http interceptor that is responsible for adding the \r\n\t\t* PHOENIX token to each API request. If the user is not\r\n\t\t* authenticated, the interceptor will redirect them to login\r\n\t\t* \r\n\t\t*\r\n\t\t* If the request should not include a PHOENIX-TOKEN,\r\n\t\t* you may include { skipAuth: true } in the http config used\r\n\t\t* for the request.\r\n\t\t*\r\n\t\t\r\n\t\t $http.get('http://localhost/home', {skipAuth: true});\r\n\t\t\r\n\t\t*\r\n\t\t**/\r\n\t\tfunction authInterceptor($q, $location, $injector) {\r\n\r\n\t\t\tvar _redirectUrl = '/';\r\n\r\n\t\t\t/*\r\n\t\t\t * pxAuthService is lazy loaded via the setAuthService function to eliminate any http \r\n\t\t\t * injector circular dependancy when adding this interceptor via a module config block.\r\n\t\t\t * if a better solution arises it should replace this and the pxAuthService should be \r\n\t\t\t * injected into the service\r\n\t\t\t */\r\n\t\t\tvar pxAuthService;\r\n\r\n\t\t\tfunction requestFn(config) {\r\n\t\t\t\tsetAuthService();\r\n\r\n\t\t\t\tif (!skipAuth(config)) {\r\n\t\t\t\t\tif (pxAuthService.token) {\r\n\t\t\t\t\t\tconfig.headers.Authorization = 'PHOENIX-TOKEN ' + pxAuthService.token;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn config;\r\n\t\t\t}\r\n\r\n\t\t\tfunction skipAuth(config) {\r\n\t\t\t\treturn angular.isDefined(config.skipAuth) && config.skipAuth;\r\n\t\t\t}\r\n\r\n\t\t\tfunction responseErrorFn(rejection) {\r\n\t\t\t\tsetAuthService();\r\n\r\n\t\t\t\tif (rejection.status === 401) {\r\n\t\t\t\t\tpxAuthService.invalidateLogin();\r\n\r\n\t\t\t\t\tif ($location.path() !== '/login') {\r\n\t\t\t\t\t\t_redirectUrl = $location.path();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$location.path('/login');\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn $q.reject(rejection);\r\n\t\t\t}\r\n\r\n\t\t\tfunction redirectPostLogin() {\r\n\t\t\t\tvar redirect = _redirectUrl;\r\n\r\n\t\t\t\t_redirectUrl = '/';\r\n\r\n\t\t\t\t$location.url(redirect);\r\n\t\t\t}\r\n\r\n\t\t\tfunction setAuthService() {\r\n\t\t\t\tif (!pxAuthService) {\r\n\t\t\t\t\tpxAuthService = $injector.get('pxAuthService');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthInterceptor#request\r\n\t\t\t\t * @methodOf phoenix.pxAuthInterceptor\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Adds the PHOENIX token to every request\r\n\t\t\t\t * \r\n\t\t\t\t */\r\n\t\t\t\trequest: requestFn,\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthInterceptor#responseError\r\n\t\t\t\t * @methodOf phoenix.pxAuthInterceptor\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Redirects to /login on 401\r\n\t\t\t\t * \r\n\t\t\t\t */\r\n\t\t\t\tresponseError: responseErrorFn,\r\n\t\t\t\t/**\r\n\t\t\t\t * @ngdoc method\r\n\t\t\t\t * @name pxAuthInterceptor#redirectPostLogin\r\n\t\t\t\t * @methodOf phoenix.pxAuthInterceptor\r\n\t\t\t\t * @kind function\r\n\t\t\t\t *\r\n\t\t\t\t * @description\r\n\t\t\t\t * Call this to redirect back to the previous route\r\n\t\t\t\t * after authenticating (deep linking)\r\n\t\t\t\t * \r\n\t\t\t\t */\r\n\t\t\t\tredirectPostLogin: redirectPostLogin\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar templateUrl = __webpack_require__(7);\r\n\tvar parentRoute = 'loginComponent';\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.default = angular.module('phoenix.loginComponent', ['ngMaterial', 'phoenix.authService', 'phoenix.authInterceptor'])\r\n\t .directive('pxLogin', ['pxProgressService', LoginDirective])\r\n\t .controller('pxLoginController', [\r\n\t 'pxAuthService',\r\n\t 'pxAuthInterceptor',\r\n\t LoginController])\r\n\t .run(['pxAuthService', '$rootScope', '$window', function (pxAuthService, $rootScope, $window) {\r\n\t $rootScope.$on('$stateChangeStart', function (evt, to) {\r\n\t if (to.parent === parentRoute && to.name === 'logout') {\r\n\t evt.preventDefault();\r\n\t pxAuthService.invalidateLogin();\r\n\t // Force reload to clear data stores\r\n\t $window.location.reload();\r\n\t }\r\n\t });\r\n\t }])\r\n\t .config(['$stateProvider', function ($stateProvider) {\r\n\t var login = {\r\n\t parent: parentRoute,\r\n\t url: '/login',\r\n\t params: {\r\n\t errorMessage: null\r\n\t },\r\n\t template: ''\r\n\t };\r\n\t $stateProvider\r\n\t .state('login', angular.copy(login))\r\n\t .state('logout', angular.copy(login))\r\n\t .state('forgotPassword', {\r\n\t parent: parentRoute,\r\n\t url: '/forgot_password',\r\n\t template: ''\r\n\t })\r\n\t .state('passwordExpired', {\r\n\t parent: parentRoute,\r\n\t url: '/password_expired',\r\n\t params: {\r\n\t emailAddress: null\r\n\t },\r\n\t template: '',\r\n\t controller: ['$state', '$stateParams', function ($state, $stateParams) {\r\n\t // State params must contain emailAddress in order to route\r\n\t if (!angular.isString($stateParams.emailAddress)) {\r\n\t $state.go('login');\r\n\t }\r\n\t }]\r\n\t })\r\n\t .state('passwordCallback', {\r\n\t parent: parentRoute,\r\n\t url: '^/passwordcallback?auth',\r\n\t template: '',\r\n\t controller: ['$state', '$stateParams', function ($state, $stateParams) {\r\n\t // State params must contain emailAddress in order to route\r\n\t if (!angular.isString($stateParams.auth)) {\r\n\t $state.go('login');\r\n\t }\r\n\t }]\r\n\t })\r\n\t .state('loginRegister', {\r\n\t parent: parentRoute,\r\n\t url: '^/register/:deploymentId/setpassword?auth',\r\n\t template: function (params) {\r\n\t return \"\";\r\n\t }\r\n\t });\r\n\t }]);\r\n\t/**\r\n\t * @ngdoc directive\r\n\t * @name phoenix.directive:pxLogin\r\n\t * @module phoenix\r\n\t * @restrict E\r\n\t * @description\r\n\t *\r\n\t * `pxLogin` is a universal login component for logging into the Phoenix API\r\n\t *\r\n\t * @param {string=} title This should typically be the application's name.\r\n\t * If no title is supplied the control's header will not be displayed\r\n\t *\r\n\t * @param {element=} headerIcon Optional element that will be transcluded in the DOM\r\n\t * of the login component's header\r\n\t *\r\n\t * @usage\r\n\t *\r\n\t * \r\n\t *\t\r\n\t *\t\t
\r\n\t *\t
\r\n\t *
\r\n\t *\r\n\t */\r\n\tfunction LoginDirective(pxProgressService) {\r\n\t return {\r\n\t restrict: 'E',\r\n\t transclude: {\r\n\t 'headerIcon': 'headerIcon'\r\n\t },\r\n\t controller: 'pxLoginController',\r\n\t controllerAs: 'vm',\r\n\t templateUrl: templateUrl,\r\n\t bindToController: true,\r\n\t scope: {\r\n\t title: '@',\r\n\t headerIcon: '@?headerIcon'\r\n\t },\r\n\t link: function (scope, element, attrs) {\r\n\t //hide the progress indicator\r\n\t pxProgressService.visible = false;\r\n\t pxProgressService.backdrop = false;\r\n\t }\r\n\t };\r\n\t}\r\n\tfunction LoginController(pxAuthService, pxAuthInterceptor) {\r\n\t var vm = this;\r\n\t vm.sharedObjects = {\r\n\t emailAddress: '',\r\n\t message: ''\r\n\t };\r\n\t // If user is authenticated navigate to the default route\r\n\t if (pxAuthService.isAuthenticated) {\r\n\t pxAuthInterceptor.redirectPostLogin();\r\n\t }\r\n\t}\r\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/login/login.template.html';\n\tvar html = \"\\r\\n\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t{{ vm.title }}\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t{{ vm.sharedObjects.message }}\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(9);\r\n\t\t\r\n\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t.directive('pxLoginExpiredPassword', LoginExpiredPasswordDirective)\r\n\t\t\t.controller('pxLoginExpiredPasswordController', [\r\n\t\t\t\t'$timeout',\r\n\t\t\t\t'$window',\r\n\t\t\t\t'pxAuthService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'pxAuthInterceptor',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'$stateParams',\r\n\t\t\t\t'$state',\r\n\t\t\t\tLoginExpiredPasswordController\r\n\t\t\t]);\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxLoginExpiredPassword\r\n\t\t * @module phoenix\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `pxLoginExpiredPassword` a view component of `pxLogin`\r\n\t\t *\r\n\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t * @param {string=} emailAddress Email Address used to populate the email input\r\n\t\t */\r\n\t\tfunction LoginExpiredPasswordDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'pxLoginExpiredPasswordController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tscope: {\r\n\t\t\t\t\terrorMessage: '=?',\r\n\t\t\t\t\temailAddress: '=?'\r\n\t\t\t\t},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction LoginExpiredPasswordController($timeout, $window, pxAuthService, pxProgressService, pxAuthInterceptor, gettextCatalog, $stateParams, $state) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.errorMessage = '';\r\n\t\t\tvm.emailAddress = $stateParams.emailAddress;\r\n\r\n\t\t\tvm.submitting = false;\r\n\t\t\t//vm.errorMessage = gettextCatalog.getString('Your password has expired. Please enter a new one.');\r\n\t\t\tvm.updatePassword = updatePassword;\r\n\t\t\tvm.stateLogin = stateLogin;\r\n\r\n\t\t\tfunction updatePassword() {\r\n\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\tif (vm.expiredPasswordForm.$valid) {\r\n\t\t\t\t\tif (vm.newPassword !== vm.confirmPassword) {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('New passwords don\\'t match');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tpxProgressService.text = gettextCatalog.getString('Updating Password');\r\n\t\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\t\tpxAuthService.updateExpiredPassword(vm.emailAddress, vm.oldPassword, vm.newPassword)\r\n\t\t\t\t\t\t\t.then(handleUpdatePasswordResult)\r\n\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction handleUpdatePasswordResult(result) {\r\n\t\t\t\tif (result.AuthenticationFailed) {\r\n\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Please verify that your Current Password is correct and try again.');\r\n\t\t\t\t\tvm.oldPassword = '';\r\n\t\t\t\t\t// Required to get form in pristine state with Material\r\n\t\t\t\t\t// http://stackoverflow.com/a/35229876/684869\r\n\t\t\t\t\tvm.expiredPasswordForm.$setPristine();\r\n\t\t\t\t\tvm.expiredPasswordForm.$setUntouched();\r\n\t\t\t\t\t// Set focus to the old password field\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvar oldPasswordElement = $window.document.getElementById('oldPassword');\r\n\t\t\t\t\t\tif (oldPasswordElement) {\r\n\t\t\t\t\t\t\toldPasswordElement.focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse if (result.InvalidPassword) {\r\n\t\t\t\t\tvm.errorMessage = result.Error;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tpxAuthService.authenticate(vm.emailAddress, vm.newPassword)\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\t// route back to a previously stored location, else the main content page\r\n\t\t\t\t\t\t\tpxAuthInterceptor.redirectPostLogin();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An Unexpected Error Occurred');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction stateLogin() {\r\n\t\t\t\t$state.go('login');\r\n\t\t\t}\r\n\r\n\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\tif (submitting) {\r\n\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t}\r\n\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\tvm.submitting = submitting;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t} ());\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/login/login-expired-password.template.html';\n\tvar html = \"
\\r\\n \\r\\n \\r\\n Password Expired\\r\\n Your password has expired. Please enter a new one.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Previous password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
New password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Confirm new password is required
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Update Password \\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(11);\r\n\t\t\r\n\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t.directive('pxLoginForgotPassword', LoginForgotPasswordDirective)\r\n\t\t\t.controller('pxLoginForgotPasswordController', [\r\n\t\t\t\t'pxAuthService',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\tLoginForgotPasswordController\r\n\t\t\t]);\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxLoginForgotPassword\r\n\t\t * @module phoenix\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `pxLoginForgotPassword` a view component of `pxLogin`\r\n\t\t *\r\n\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t * @param {string=} emailAddress Email Address used to populate the email input\r\n\t\t */\t\r\n\t\tfunction LoginForgotPasswordDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tcontroller: 'pxLoginForgotPasswordController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\tscope: {\r\n\t\t\t\t\terrorMessage: '=?',\r\n\t\t\t\t\temailAddress: '=?'\r\n\t\t\t\t},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction LoginForgotPasswordController(pxAuthService, $state, pxProgressService, gettextCatalog, settingsService) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.errorMessage = '';\r\n\t\t\tvm.submitting = false;\r\n\t\t\tvm.requestPasswordReset = requestPasswordReset;\r\n\t\t\tvm.stateLogin = stateLogin;\r\n\r\n\t\t\tvm.resetSuccessful = false;\r\n\r\n\t\t\tfunction requestPasswordReset() {\r\n\t\t\t\tif (vm.forgotPasswordForm.$valid) {\r\n\t\t\t\t\tvar email = vm.emailAddress;\r\n\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\tpxAuthService.requestPasswordReset(email, settingsService.serverWebPath)\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\tvm.resetSuccessful = true;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Error requesting new password');\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction stateLogin() {\r\n\t\t\t\t$state.go('login');\r\n\t\t\t}\r\n\r\n\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\tif (submitting) {\r\n\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t}\r\n\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\tvm.submitting = submitting;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t} ());\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/login/login-forgot-password.template.html';\n\tvar html = \"
\\r\\n \\r\\n \\r\\n Reset Password\\r\\n If the user's email address exists, a reset password link will be sent.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n
Please enter your email
\\r\\n
This field must be a valid email address
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{::'Request password reset' | translate}}\\r\\n {{::'Cancel' | translate}}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Reset Requested\\r\\n Check your email for a link to reset your password.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{::'Return to login' | translate}}\\r\\n \\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(13);\r\n\t\t\r\n\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t.directive('pxLoginMain', LoginMainDirective)\r\n\t\t\t.controller('pxLoginMainController', [\r\n\t\t\t\t'$location',\r\n\t\t\t\t'$filter',\r\n\t\t\t\t'pxAuthService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'pxAuthInterceptor',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'$stateParams',\r\n\t\t\t\tLoginMainController\r\n\t\t\t]);\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxLoginMain\r\n\t\t * @module phoenix\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `pxLoginMain` a view component of `pxLogin`\r\n\t\t *\r\n\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t * @param {string=} emailAddress Email Address used to populate the email input\r\n\t\t */\t\r\n\t\tfunction LoginMainDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'pxLoginMainController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tscope: {\r\n\t\t\t\t\terrorMessage: '=?',\r\n\t\t\t\t\temailAddress: '=?'\r\n\t\t\t\t},\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction LoginMainController($location, $filter, pxAuthService, pxProgressService, pxAuthInterceptor, gettextCatalog, $state, $stateParams) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.rememberMe = true;\r\n\t\t\tvm.errorMessage = $stateParams.errorMessage || '';\r\n\t\t\tvm.submitting = false;\t\t\r\n\t\t\tvm.login = login;\r\n\t\t\tvm.stateForgotPassword = stateForgetPassword;\r\n\r\n\t\t\tfunction login() {\r\n\t\t\t\tif (vm.loginForm.$valid) {\r\n\t\t\t\t\tvm.errorMessage = '';\r\n\t\t\t\t\tpxProgressService.text = gettextCatalog.getString('Logging In');\r\n\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\tpxAuthService.authenticate(vm.emailAddress, vm.password, vm.rememberMe)\r\n\t\t\t\t\t\t.then(handleLoginResponse)\r\n\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\thandleLoginResponse(response.data);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction handleLoginResponse(response) {\r\n\t\t\t\tif (response) {\r\n\t\t\t\t\tif (response.Token) {\r\n\t\t\t\t\t\t// route back to a previously stored location, else the main content page\r\n\t\t\t\t\t\tpxAuthInterceptor.redirectPostLogin();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (response.PasswordExpired) {\r\n\t\t\t\t\t\t$state.go('passwordExpired', { emailAddress: vm.emailAddress });\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Invalid login or account is locked. Please verify that your e-mail and password are correct.');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction stateForgetPassword() {\r\n\t\t\t\t$state.go('forgotPassword');\r\n\t\t\t}\r\n\r\n\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\tif (submitting) {\r\n\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t}\r\n\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\tvm.submitting = submitting;\r\n\t\t\t}\r\n\t\t}\r\n\t} ());\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/login/login-main.template.html';\n\tvar html = \"
\\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n
Please enter your email
\\r\\n
This field must be a valid email address
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Please enter your password
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{'Remember me'| translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{'Forgot your password?' | translate}}\\r\\n {{'Login' | translate}}\\r\\n \\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(15);\r\n\t\t\r\n\t\tangular.module('phoenix.loginComponent')\r\n\t\t\t.directive('pxLoginResetPassword', LoginResetPasswordDirective)\r\n\t\t\t.controller('pxLoginResetPasswordController', [\r\n\t\t\t\t'pxAuthService',\r\n\t\t\t\t'pxAuthInterceptor',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'$stateParams',\r\n\t\t\t\t'$state',\r\n\t\t\t\tLoginResetPasswordController\r\n\t\t\t]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxLoginResetPassword\r\n\t\t * @module phoenix\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `pxLoginResetPassword` a view component of `pxLogin`\r\n\t\t *\r\n\t\t * @param {string=} errorMessage This should typically be the application's name.\r\n\t\t * If no title is supplied the control's header will not be displayed\r\n\t\t */\r\n\t\tfunction LoginResetPasswordDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'pxLoginResetPasswordController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tscope: {\r\n\t\t\t\t\terrorMessage: '=?'\r\n\t\t\t\t},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction LoginResetPasswordController(pxAuthService, pxAuthInterceptor, pxProgressService, gettextCatalog, $stateParams, $state) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvar authToken = $stateParams.auth;\r\n\t\t\tvm.errorMessage = '';\r\n\t\t\tvm.submitting = false;\r\n\t\t\tvm.resetPassword = resetPassword;\r\n\t\t\tvm.stateLogin = stateLogin;\r\n\r\n\t\t\tisSubmitting(true);\r\n\t\t\t//user is redirected back to login if the reset auth token is already expired\r\n\t\t\tpxAuthService.validateAuthToken(authToken)\r\n\t\t\t\t.catch(function () {\r\n\t\t\t\t\t$state.go('login', {\r\n\t\t\t\t\t\terrorMessage: gettextCatalog.getString('The password reset link has expired.')\r\n\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t\t.finally(function () {\r\n\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t});\r\n\r\n\t\t\tfunction resetPassword() {\r\n\t\t\t\tif (vm.resetPasswordForm.$valid) {\r\n\r\n\t\t\t\t\tif (vm.newPassword !== vm.confirmPassword) {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Passwords don\\'t match');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tpxProgressService.text = gettextCatalog.getString('Updating Password');\r\n\t\t\t\t\t\tisSubmitting(true);\r\n\t\t\t\t\t\tpxAuthService.resetPassword(authToken, vm.newPassword)\r\n\t\t\t\t\t\t\t.then(function (result) {\r\n\t\t\t\t\t\t\t\tif (result.InvalidPassword) {\r\n\t\t\t\t\t\t\t\t\tvm.errorMessage = result.Error;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tpxAuthInterceptor.redirectPostLogin();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred.');\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\tisSubmitting(false);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction stateLogin() {\r\n\t\t\t\t$state.go('login');\r\n\t\t\t}\r\n\r\n\t\t\tfunction isSubmitting(submitting) {\r\n\t\t\t\tif (submitting) {\r\n\t\t\t\t\tpxProgressService.backdrop = submitting;\r\n\t\t\t\t}\r\n\t\t\t\tpxProgressService.visible = submitting;\r\n\t\t\t\tvm.submitting = submitting;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t} ());\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/login/login-reset-password.template.html';\n\tvar html = \"
\\r\\n \\r\\n \\r\\n Reset Password\\r\\n You have requested a password reset\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
New password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Confirm new password is required
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Reset Password\\r\\n \\r\\n \\r\\n Cancel\\r\\n \\r\\n \\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\tvar registerTemplate = __webpack_require__(17);\r\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\texports.default = angular.module('phoenix.loginComponent')\r\n\t .directive('pxLoginRegister', loginRegister);\r\n\tvar TOAST_POSITION = 'bottom right';\r\n\tvar TOAST_DELAY = 3000;\r\n\t/**\r\n\t * @ngdoc directive\r\n\t * @name phoenix.loginComponent:pxLoginRegister\r\n\t * @module phoenix\r\n\t * @restrict E\r\n\t *\r\n\t * @description\r\n\t *\r\n\t * `pxLoginRegister` a view component of `pxLogin`\r\n\t * @param {string@} deploymentId Id of the deployment being register\r\n\t * @param {string@} authToken A temporary authentication token used to authorize the user for registration\r\n\t */\r\n\tfunction loginRegister() {\r\n\t return {\r\n\t restrict: 'E',\r\n\t controller: LoginRegisterController,\r\n\t controllerAs: 'vm',\r\n\t bindToController: true,\r\n\t templateUrl: registerTemplate,\r\n\t scope: {\r\n\t deploymentId: '@',\r\n\t authToken: '@',\r\n\t errorMessage: '=?'\r\n\t }\r\n\t };\r\n\t}\r\n\texports.loginRegister = loginRegister;\r\n\t;\r\n\tvar LoginRegisterController = (function () {\r\n\t function LoginRegisterController($state, $timeout, $mdToast, gettextCatalog, pxAuthService, pxProgressService, $stateParams) {\r\n\t this.$state = $state;\r\n\t this.$timeout = $timeout;\r\n\t this.$mdToast = $mdToast;\r\n\t this.gettextCatalog = gettextCatalog;\r\n\t this.pxAuthService = pxAuthService;\r\n\t this.pxProgressService = pxProgressService;\r\n\t this.password = '';\r\n\t this.confirmPassword = '';\r\n\t // local fields\r\n\t this.errorMessage = '';\r\n\t this.submitting = false;\r\n\t // Validates token, if it is invalid redirect to the main login page with an error message\r\n\t this.pxAuthService.validateAuthToken($stateParams.auth)\r\n\t .catch(function () { return $state.go('login', {\r\n\t errorMessage: gettextCatalog.getString('The registration link has expired')\r\n\t }); });\r\n\t }\r\n\t LoginRegisterController.prototype.completeRegistration = function () {\r\n\t var _this = this;\r\n\t this.errorMessage = '';\r\n\t if (!this.loginRegisterForm.$valid) {\r\n\t return;\r\n\t }\r\n\t if (this.password !== this.confirmPassword) {\r\n\t this.errorMessage = this.gettextCatalog.getString(\"New passwords don't match\");\r\n\t }\r\n\t else {\r\n\t this.pxProgressService.text = this.gettextCatalog.getString('Registering deployment');\r\n\t this.isSubmitting(true);\r\n\t // Must explicitly make a call to validate the password. The registration endpoint does\r\n\t // not validate the password, and if you hit it with an invalid password, the deployment\r\n\t // will enter a state where the user account was not created and cannot be created by the registration form.\r\n\t this.pxAuthService.validatePassword(this.password, this.authToken)\r\n\t .then(function (data) {\r\n\t if (data.Valid) {\r\n\t return _this.pxAuthService.registerDeployment(_this.deploymentId, _this.authToken, _this.displayName, _this.password)\r\n\t .then(function () {\r\n\t _this.showRegistrationSuccessMessage();\r\n\t _this.$state.go('login');\r\n\t });\r\n\t }\r\n\t else {\r\n\t _this.errorMessage = data.Error;\r\n\t }\r\n\t })\r\n\t .catch(function () { return _this.errorMessage = _this.gettextCatalog.getString('An unexpected error has occurred'); })\r\n\t .finally(function () { return _this.isSubmitting(false); });\r\n\t }\r\n\t };\r\n\t LoginRegisterController.prototype.showRegistrationSuccessMessage = function () {\r\n\t var _this = this;\r\n\t this.$timeout(function () {\r\n\t _this.$mdToast.show(_this.$mdToast.simple()\r\n\t .textContent(_this.gettextCatalog.getString('Your account is now registered, please login to continue.'))\r\n\t .position(TOAST_POSITION)\r\n\t .hideDelay(TOAST_DELAY));\r\n\t }, 0);\r\n\t };\r\n\t LoginRegisterController.prototype.isSubmitting = function (submitting) {\r\n\t if (submitting) {\r\n\t this.pxProgressService.backdrop = submitting;\r\n\t }\r\n\t this.pxProgressService.visible = submitting;\r\n\t this.submitting = submitting;\r\n\t };\r\n\t LoginRegisterController.$inject = [\r\n\t '$state',\r\n\t '$timeout',\r\n\t '$mdToast',\r\n\t 'gettextCatalog',\r\n\t 'pxAuthService',\r\n\t 'pxProgressService',\r\n\t '$stateParams'\r\n\t ];\r\n\t return LoginRegisterController;\r\n\t}());\r\n\texports.LoginRegisterController = LoginRegisterController;\r\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/login/login-register.template.html';\n\tvar html = \"
\\r\\n \\r\\n \\r\\n Register\\r\\n Please set your display name and password to finish registration.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person\\r\\n \\r\\n \\r\\n
\\r\\n
The display name is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
New password is required
\\r\\n
\\r\\n
\\r\\n \\r\\n vpn_key\\r\\n \\r\\n \\r\\n
\\r\\n
Confirm new password is required
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Register\\r\\n \\r\\n \\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(23);\r\n\t__webpack_require__(25);\r\n\t__webpack_require__(27);\r\n\t__webpack_require__(29);\r\n\t__webpack_require__(31);\r\n\t__webpack_require__(33);\r\n\t__webpack_require__(35);\r\n\t__webpack_require__(40);\r\n\t__webpack_require__(45);\r\n\t__webpack_require__(47);\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(24);\n\n/***/ },\n/* 24 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxAutocompleteClearOnBlur', ['$interval', '$timeout', AutocompleteClearOnBlurDirective]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxAutocompleteClearOnBlur\r\n\t\t * @module phoenix\r\n\t\t * @restrict A\r\n\t\t * @description\r\n\t\t *\r\n\t\t * A directive to auto clear the autocomplete input if no item is selected \r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t *\r\n\t\t */\r\n\t\tfunction AutocompleteClearOnBlurDirective($interval, $timeout) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\trequire: 'mdAutocomplete',\r\n\t\t\t\tlink: function (scope, element, attrs, acCtrl) {\r\n\t\t\t\t\tif (!acCtrl || acCtrl.readonly) { return; }\r\n\r\n\t\t\t\t\t// amount of time in MS with which to poll for an input\r\n\t\t\t\t\tvar pollingThreshold = 6000; \r\n\t\t\t\t\tvar trigger = null;\r\n\t\t\t\t\tvar start = Date.now();\r\n\t\t\t\t\tvar timedOut = false;\r\n\t\t\t\t\tvar input = null;\r\n\t\t\t\t\tvar interval = $interval(function () {\r\n\t\t\t\t\t\ttimedOut = (Date.now() - start) >= pollingThreshold;\r\n\t\t\t\t\t\tinput = element.find('input');\r\n\r\n\t\t\t\t\t\tif (input.length === 1) {\r\n\t\t\t\t\t\t\t$interval.cancel(interval);\r\n\t\t\t\t\t\t\tinput[0].addEventListener('blur', triggerRemove);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (timedOut) {\r\n\t\t\t\t\t\t\t$interval.cancel(interval);\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 100);\r\n\r\n\t\t\t\t\tfunction triggerRemove() {\r\n\t\t\t\t\t\t//timeout to allow user to pick from autocomplete\r\n\t\t\t\t\t\t$timeout(removeValue, 200);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction removeValue() {\r\n\t\t\t\t\t\t$timeout.cancel(trigger);\r\n\t\t\t\t\t\t//clear the value\r\n\t\t\t\t\t\tif (input.val() !== '' && !acCtrl.scope.selectedItem) {\r\n\t\t\t\t\t\t\t//clear search text\r\n\t\t\t\t\t\t\tacCtrl.scope.searchText = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tif(input.length > 0) {\r\n\t\t\t\t\t\t\tinput[0].removeEventListener('blur', removeValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(26);\n\n/***/ },\n/* 26 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxAutoFitVirtualRepeat', [\r\n\t '$window',\r\n\t '$timeout',\r\n\t AutoFitVirtualRepeatDirective]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxAutoFitVirtualRepeat\r\n\t\t * @module phoenix\r\n\t\t * @restrict A\r\n\t\t * @description\r\n\t\t *\r\n\t\t * A directive to automatically size and resize a child md-virtual-scroller-container.\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t *
\r\n\t\t *\t\t\r\n\t\t *
\r\n\t *\r\n\t\t */\r\n\t\tfunction AutoFitVirtualRepeatDirective($window, $timeout) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\t//get an offset if specified\r\n\t\t\t\t\tvar offset = element.attr('px-auto-fit-virtual-repeat-offset');\r\n\t\t\t\t\tvar intOffset = 0;\r\n\t\t\t\t\tif (offset && typeof parseInt(offset) === 'number') {\r\n\t\t\t\t\t\tintOffset = parseInt(offset);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction setHeight() {\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvar _height;\r\n\t\t\t\t\t\t\t//subtract 1px for height rounding up to closest px IE: 806.75 rounded to 807, which causes second scrollbar\r\n\t\t\t\t\t\t\t_height = (element[0].offsetHeight - 1) - intOffset;\r\n\r\n\t\t\t\t\t\t\telement.find('md-virtual-repeat-container').css('height', _height + 'px');\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t//https://github.com/angular/material/issues/4314\r\n\t\t\t\t\t\t\t\tscope.$broadcast('$md-resize');\r\n\t\t\t\t\t\t\t\tscope.$broadcast('px-recalculate-virtual-tile-view');\r\n\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t//add resize events\r\n\t\t\t\t\tvar _timeout;\r\n\t\t\t\t\tfunction resizeHeight() {\r\n\t\t\t\t\t\telement.css({ 'overflow-y': 'hidden', 'transition-duration': '0s' }); //removes the scroll bar and transitions while resizing\r\n\t\t\t\t\t\t$timeout.cancel(_timeout);\r\n\t\t\t\t\t\t_timeout = $timeout(function () {\r\n\t\t\t\t\t\t\t$timeout.cancel(_timeout);\r\n\t\t\t\t\t\t\tsetHeight();\r\n\t\t\t\t\t\t\telement.css({ 'overflow-y': '', 'transition-duration': '' });\r\n\t\t\t\t\t\t}, 150);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$window.addEventListener('resize', resizeHeight);\r\n\t\t\t\t\t$window.addEventListener('orientationchange', resizeHeight);\r\n\t\t\t\t\t\r\n\t\t\t\t\t//add state changed event if element or child element houses a ui-view, as the child content may have changed\r\n\t\t\t\t\tif (element[0].querySelectorAll('[ui-view]').length > 0 || element[0].hasAttribute('ui-view')) {\r\n\t\t\t\t\t\tscope.$on('$stateChangeSuccess', function () {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tsetHeight();\r\n\t\t\t\t\t\t\t}, 150);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//add a listener to force a resize\r\n\t\t\t\t\tscope.$on('px-recalulate-auto-fit-virtual-repeat', resizeHeight);\r\n\r\n\t\t\t\t\t//run on initial setup\r\n\t\t\t\t\tsetHeight();\r\n\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t$window.removeEventListener('resize', resizeHeight);\r\n\t\t\t\t\t\t$window.removeEventListener('orientationchange', resizeHeight);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t//watches to see if the number of rendered virtual repeat items has changed\r\n\t\t\t\t\tscope.$watch(\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\tvar count = 0;\r\n\t\t\t\t\t\t\tvar virtualCount = element.find('md-virtual-repeat-container').attr('virtual-item-count');\r\n\t\t\t\t\t\t\tif (virtualCount) {\r\n\t\t\t\t\t\t\t\tif (virtualCount > 0) {\r\n\t\t\t\t\t\t\t\t\tcount = element.find('md-virtual-repeat-container').attr('virtual-item-count');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn count;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\tresizeHeight();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(28);\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxContenteditable', [ContenteditableDirective]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxContenteditable\r\n\t\t * @module phoenix\r\n\t\t * @restrict A\r\n\t\t * @description\r\n\t\t *\r\n\t\t * Allows a div to be content editable via the ngModel\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t *
\r\n\t *\r\n\t\t */\r\n\t\tfunction ContenteditableDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\trequire: 'ngModel',\r\n\t\t\t\tlink: function (scope, element, attrs, ngModel) {\r\n\r\n\t\t\t\t\tfunction read() {\r\n\t\t\t\t\t\tngModel.$setViewValue(element.html());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tngModel.$render = function () {\r\n\t\t\t\t\t\telement.html(ngModel.$viewValue || '');\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\telement.bind('blur keyup change', function () {\r\n\t\t\t\t\t\tscope.$apply(read);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(30);\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxChipsClearOnBlur', ['$interval','$timeout', ChipsAddOnBlurDirective]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxChipsClearOnBlur\r\n\t\t * @module phoenix\r\n\t\t * @restrict A\r\n\t\t * @description\r\n\t\t *\r\n\t\t * A directive to auto remove the value left in the md-chips interface's input \r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t *\r\n\t\t */\r\n\t\tfunction ChipsAddOnBlurDirective($interval, $timeout) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\trequire: 'mdChips',\r\n\t\t\t\tlink: function (scope, element, attrs, chipsCtrl) {\r\n\t\t\t\t\tif (!chipsCtrl || chipsCtrl.readonly) { return; }\r\n\r\n\t\t\t\t\t// amount of time in MS with which to poll for an input\r\n\t\t\t\t\tvar pollingThreshold = 6000; \r\n\t\t\t\t\tvar trigger = null;\t\t\t\t\r\n\t\t\t\t\tvar start = Date.now();\r\n\t\t\t\t\tvar timedOut = false;\r\n\t\t\t\t\tvar input = null;\r\n\t\t\t\t\tvar interval = $interval(function () {\r\n\t\t\t\t\t\ttimedOut = (Date.now() - start) >= pollingThreshold;\r\n\t\t\t\t\t\tinput = element.find('input');\r\n\r\n\t\t\t\t\t\tif (input.length === 1) {\r\n\t\t\t\t\t\t\t$interval.cancel(interval);\t\t\t\r\n\t\t\t\t\t\t\tinput[0].addEventListener('blur', triggerRemove);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (timedOut) {\r\n\t\t\t\t\t\t\t$interval.cancel(interval);\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 100);\r\n\r\n\t\t\t\t\tfunction triggerRemove() {\r\n\t\t\t\t\t\t//timeout to allow user to pick from autocomplete\r\n\t\t\t\t\t\t$timeout(removeValue, 500);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction removeValue() {\r\n\t\t\t\t\t\t$timeout.cancel(trigger);\r\n\t\t\t\t\t\t//clear the value\r\n\t\t\t\t\t\tif (input.val() !== '') {\r\n\t\t\t\t\t\t\tinput.val('');\r\n\t\t\t\t\t\t\t//clear chips search text\r\n\t\t\t\t\t\t\tchipsCtrl.searchText = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tif(input && input.length > 0) {\r\n\t\t\t\t\t\t\tinput[0].removeEventListener('blur', removeValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(32);\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxChipsDisableDeleteKey', ['$interval', ChipsDisableDeleteKeyDirective]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxChipsDisableDeleteKey\r\n\t\t * @module phoenix\r\n\t\t * @restrict A\r\n\t\t * @description\r\n\t\t *\r\n\t\t * A directive to disable the delete/backspace key when the input is blank\r\n\t\t * as the default behavior is to then select a chip and delete it \r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t *\r\n\t\t */\r\n\t\tfunction ChipsDisableDeleteKeyDirective($interval) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\trequire: 'mdChips',\r\n\t\t\t\tlink: function (scope, element, attrs, chipsCtrl) {\r\n\t\t\t\t\tif (!chipsCtrl || chipsCtrl.readonly) { return; }\r\n\r\n\t\t\t\t\t// amount of time in MS with which to poll for an input\r\n\t\t\t\t\tvar pollingThreshold = 6000; \r\n\t\t\t\t\tvar start = Date.now();\r\n\t\t\t\t\tvar timedOut = false;\r\n\t\t\t\t\tvar input = null;\r\n\t\t\t\t\tvar interval = $interval(function () {\r\n\t\t\t\t\t\ttimedOut = (Date.now() - start) > pollingThreshold;\r\n\t\t\t\t\t\tinput = element.find('input');\r\n\t\t\t\t\t\tif (input.length === 1) {\r\n\t\t\t\t\t\t\t$interval.cancel(interval);\r\n\t\t\t\t\t\t\tinput[0].addEventListener('keypress', disableDeleteKeys);\r\n\t\t\t\t\t\t\tinput[0].addEventListener('keydown', disableDeleteKeys);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (timedOut) {\r\n\t\t\t\t\t\t\t$interval.cancel(interval);\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 100);\r\n\r\n\t\t\t\t\tfunction disableDeleteKeys(event) {\r\n\t\t\t\t\t\tif (input.val() === '') {\r\n\t\t\t\t\t\t\t//disable hitting the delete/backspace button when there is no value in the input as this starts to delete tags\r\n\t\t\t\t\t\t\tvar key = event.keyCode || event.charCode;\r\n\r\n\t\t\t\t\t\t\tif (key === 8 || key === 46) {\r\n\t\t\t\t\t\t\t\t// prevent default behaviour\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tif(input && input.length > 0) {\r\n\t\t\t\t\t\t\tinput[0].removeEventListener('keypress', disableDeleteKeys);\r\n\t\t\t\t\t\t\tinput[0].removeEventListener('keydown', disableDeleteKeys);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(34);\n\n/***/ },\n/* 34 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxDebounceImage', ['$timeout', DebounceImageDirective]);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name phoenix.directive:pxDebounceImage\r\n\t\t * @module phoenix\r\n\t\t * @restrict A\r\n\t\t * @description\r\n\t\t *\r\n\t\t * A directive to delay loading of image src and is to be used in conjunction with \r\n\t\t * md-virtual-repeat to limit getting thumbnails or pages if they are scrolled out\r\n\t\t * of the DOM.\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t *\r\n\t\t */\r\n\t\tfunction DebounceImageDirective($timeout) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tfunction loadImage() {\r\n\t\t\t\t\t\tif(element[0].tagName === 'IMG'){\t\t\t\t\t\t\r\n\t\t\t\t\t\t\telement.attr('src', ''); //clear the source\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\telement.attr('src',attrs.pxDebounceImage);\r\n\t\t\t\t\t\t\t}, 550);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\telement[0].style.backgroundImage = '';\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\telement[0].style.backgroundImage = attrs.pxDebounceImage;\r\n\t\t\t\t\t\t\t}, 550);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tattrs.$observe('pxDebounceImage', function (newVal) {\r\n\t\t\t\t\t\tif (!newVal) { return; }\r\n\t\t\t\t\t\tloadImage();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tloadImage();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(36);\r\n\t__webpack_require__(38);\r\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 37 */,\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(39);\r\n\t\t\r\n\t\t/**\r\n\t\t* @ngdoc directive\r\n\t\t* @name phoenix.directive:pxScrollViewer\r\n\t\t* @module phoenix\r\n\t\t* @restrict A\r\n\t\t* @description\r\n\t\t*\r\n\t\t* A Continuous scroll viewer which displays a virtualized set of pages.\r\n\t\t*\r\n\t\t* @usage\r\n\t\t*
\r\n\t\t* \r\n\t\t*
\r\n\t\t* \r\n\t\t* @element input\r\n\t\t* @param {Array} pages An array of Urls. Each Url is used as the img src for a page\r\n\t\t*\r\n\t\t* @param {string=} fileName Used to display the name at the top of preview mode window\r\n\t\t*\r\n\t\t* @param {string=} fitSize Controls the viewers fit mode. Valid values are\r\n\t\t* 'width' (default) and 'height'\r\n\t\t*\r\n\t\t* @param {string=} mode Controls the display mode of the viewer. Valid values\r\n\t\t* are 'embed' (default) and 'preview'\r\n\t\t*\r\n\t\t* @param {expression=} closePreview Function expression to call when the preview\r\n\t\t* is closed. Only valid if mode='preview'\r\n\t\t*/\r\n\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxScrollViewer', [\r\n\t\t\t\t'$timeout',\r\n\t\t\t\t'$window',\r\n\t\t\t\t'$interval',\r\n\t\t\t\t'$mdUtil',\r\n\t\t\t\tScrollViewerDirective])\r\n\t\t\t.controller('ScrollViewerController', [ScrollViewerController]);\r\n\r\n\t\tfunction ScrollViewerDirective($timeout, $window, $interval, $mdUtil) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: ScrollViewerController,\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tpages: '=',\r\n\t\t\t\t\tfileName: '@',\r\n\t\t\t\t\tfitSize: '@',\r\n\t\t\t\t\tmode: '@',\r\n\t\t\t\t\tclosePreview: '&'\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tvar vm = scope.vm;\r\n\t\t\t\t\tvm.rowHeight = null;\r\n\t\t\t\t\tvm.updatePageSize = $mdUtil.debounce(updatePageSize, 400);\r\n\r\n\t\t\t\t\tvar newHeight = 0;\r\n\t\t\t\t\tfunction updatePageSize() {\r\n\t\t\t\t\t\tnewHeight = element[0].querySelector('.view__page-img').clientHeight;\r\n\t\t\t\t\t\tvm.pageSize = {\theight: newHeight + 'px' };\r\n\t\t\t\t\t\tvm.rowHeight = null; //this will reload the whole viewer with the new page heights\r\n\t\t\t\t\t\tvm.resizing = false; //remove autosizing as we have the new actual height\r\n\t\t\t\t\t\treCalcVirtual();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction reCalcVirtual() {\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.rowHeight = newHeight; //set height will rerender the viewer\r\n\t\t\t\t\t\t\tscope.$parent.$broadcast('$md-resize');\r\n\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//event listeners\r\n\t\t\t\t\t$window.addEventListener('orientationchange', vm.updatePageSize);\r\n\r\n\t\t\t\t\t//clean up\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t$window.removeEventListener('orientationchange', vm.updatePageSize);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvm.resizing = false;\r\n\t\t\t\t\tscope.$watch(function () {\r\n\t\t\t\t\t\treturn element[0].clientWidth;\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\tfunction (newVal) {\r\n\t\t\t\t\t\t\tif (vm.rowHeight) {\r\n\t\t\t\t\t\t\t\tvm.resizing = true; //resizing allows the current pages to autosize\r\n\t\t\t\t\t\t\t\tvm.updatePageSize();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t//shows & hides current page position\r\n\t\t\t\t\tvar pageCountTimer = null;\r\n\t\t\t\t\tscope.$watch('vm.pageIndex', function (newVal) {\r\n\t\t\t\t\t\tvm.showPageCount = true;\r\n\t\t\t\t\t\t$timeout.cancel(pageCountTimer);\r\n\t\t\t\t\t\tpageCountTimer = $timeout(function () {\r\n\t\t\t\t\t\t\tvm.showPageCount = false;\r\n\t\t\t\t\t\t}, 3000);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t//set initial sizes\r\n\t\t\t\t\tvar _interval = $interval(function () {\r\n\t\t\t\t\t\t//wait till first page is rendered into the DOM\r\n\t\t\t\t\t\tvar sizer = element[0].querySelector('.view__page-img');\r\n\t\t\t\t\t\tif (!sizer) { return; }\r\n\t\t\t\t\t\tif (sizer.clientHeight < 20) { return; }\r\n\r\n\t\t\t\t\t\t$interval.cancel(_interval);\r\n\t\t\t\t\t\tvm.updatePageSize();\r\n\t\t\t\t\t}, 50);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction ScrollViewerController() {\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/scrollViewer/scrollViewer.template.html';\n\tvar html = \"\\r\\n\\r\\n
\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

{{vm.fileName}}

\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tclose\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t
1\\\">\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t{{currentPage}} of {{totalPages}}\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(41);\r\n\t__webpack_require__(43);\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 42 */,\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(44);\r\n\t\t\r\n\t\t/**\r\n\t\t* @ngdoc directive\r\n\t\t* @name phoenix.directive:pxVirtualTileContainer\r\n\t\t* @module phoenix\r\n\t\t* @restrict E\r\n\t\t* @description\r\n\t\t*\r\n\t\t* `pxVirtualTileContainer` is a virtualizer of tile items that groups items into rows of a fixed height to work with md-virtual-repeat-container\r\n\t\t*\r\n\t\t* @param {object} virtualItems The item to be bound to.\r\n\t\t*\r\n\t\t* @usage\r\n\t\t*\r\n\t\t* \r\n\t\t*/\r\n\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxVirtualTileContainer', [\r\n\t\t\t\t'$timeout',\r\n\t\t\t\t'$window',\r\n\t\t\t\t'$mdUtil',\r\n\t\t\t\t'$mdMedia',\r\n\t\t\t\t'pxGroupItemsService',\r\n\t\t\t\tVirtualizeTileViewDirective\r\n\t\t\t]);\r\n\r\n\t\tfunction VirtualizeTileViewDirective($timeout, $window, $mdUtil, $mdMedia, pxGroupItemsService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: ['pxAuthService', VirtualizeTileContainerController],\r\n\t\t\t\tcontrollerAs: 'VirtualTileCtrl',\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\trawitems: '=virtualItems',\r\n\t\t\t\t\tclick: '&virtualClick',\r\n\t\t\t\t\tselect: '&virtualSelect'\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tscope.VirtualTileCtrl.calcVirtualGroups = $mdUtil.debounce(calcVirtualGroups, 150);\r\n\t\t\t\t\tscope.VirtualTileCtrl.tilePerLine = null;\r\n\t\t\t\t\tscope.VirtualTileCtrl.style = {};\r\n\t\t\t\t\tvar container = null;\r\n\t\t\t\t\tfunction calcVirtualGroups() {\r\n\t\t\t\t\t\tvar TILE_WIDTH = 170;\r\n\t\t\t\t\t\tvar newTilePerLine = null;\r\n\t\t\t\t\t\tvar containerWidth = null;\r\n\t\t\t\t\t\tcontainer = $mdUtil.getClosest(element, 'md-virtual-repeat-container');\r\n\t\t\t\t\t\tif (container) {\r\n\t\t\t\t\t\t\tcontainerWidth = container.clientWidth;\r\n\t\t\t\t\t\t\tif(containerWidth > 600){\r\n\t\t\t\t\t\t\t\tcontainerWidth -= 16; //8px margin on each side\r\n\t\t\t\t\t\t\t\tnewTilePerLine = Math.floor(containerWidth / TILE_WIDTH);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(containerWidth < 600 && containerWidth > 475){\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tcontainerWidth -= 8; //4px margin on each side\r\n\t\t\t\t\t\t\t\tnewTilePerLine = 3;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tcontainerWidth -= 8; //4px margin on each side\r\n\t\t\t\t\t\t\t\tnewTilePerLine = 2;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (newTilePerLine !== scope.VirtualTileCtrl.tilePerLine) {\r\n\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.tilePerLine = newTilePerLine;\r\n\t\t\t\t\t\t\t\tvirtualizeItems();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction virtualizeItems() {\r\n\t\t\t\t\t\tif (scope.VirtualTileCtrl.rawitems) {\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.groupedItems = pxGroupItemsService.groupItems(scope.VirtualTileCtrl.rawitems, scope.VirtualTileCtrl.tilePerLine);\t\r\n\t\t\t\t\t\t\t\t//used to set the fixed width to minimize resizing of cards while resizing\r\n\t\t\t\t\t\t\t\tvar margin = $mdMedia('sm') || $mdMedia('xs') ? 8 : 16;\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvar innerWidth = container.querySelector('.md-virtual-repeat-offsetter').clientWidth;\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tscope.VirtualTileCtrl.style.width = (innerWidth - margin) + 'px';\r\n\t\t\t\t\t\t\t},0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//new items in collection\r\n\t\t\t\t\tscope.$watchCollection('VirtualTileCtrl.rawitems', function (newVal, oldVal) {\r\n\t\t\t\t\t\tif (newVal === null) { return; }\r\n\t\t\t\t\t\tscope.VirtualTileCtrl.tilePerLine = null;\r\n\t\t\t\t\t\tscope.VirtualTileCtrl.calcVirtualGroups();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t//element's width has changed\r\n\t\t\t\t\tscope.$watch(function () { return element[0].clientWidth; },\r\n\t\t\t\t\t\tfunction (newVal, oldVal) {\r\n\t\t\t\t\t\t\tscope.VirtualTileCtrl.calcVirtualGroups();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t//window size events\r\n\t\t\t\t\t$window.addEventListener('resize', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\t\t\t\t$window.addEventListener('orientationchange', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\t$window.removeEventListener('resize', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\t\t\t\t\t$window.removeEventListener('orientationchange', scope.VirtualTileCtrl.calcVirtualGroups);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction VirtualizeTileContainerController(pxAuthService) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.pxAuthService = pxAuthService;\r\n\t\t\tself.itemClick = function ($event, item) {\r\n\t\t\t\tself.click({ item: item });\r\n\t\t\t};\r\n\t\t\tself.itemSelect = function($event, item){\r\n\t\t\t\tself.select({item: item});\r\n\t\t\t};\t\t\r\n\t\t\tself.toggleSelected = function($event, item){\r\n\t\t\t\titem.selected = !item.selected;\r\n\t\t\t\tself.itemSelect($event, item);\r\n\t\t\t};\r\n\t\t\tself.itemSelected = function($event, item){\r\n\t\t\t\titem.selected = true;\t\r\n\t\t\t\tself.itemSelect($event, item);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 44 */\n/***/ function(module, exports) {\n\n\tvar path = 'phoenix/components/virtualTileContainer/virtualTileContainer.template.html';\n\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tfolder\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{item.FolderName}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{item.DocumentName}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(46);\n\n/***/ },\n/* 46 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxOnLongClick', ['$timeout', 'pxEnvironmentService',LongClickDirective]);\r\n\r\n\t\tfunction LongClickDirective($timeout,EnvironmentService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\tlink: function($scope, $elm, $attrs) {\r\n\t\t\t\t\tvar timer = null;\r\n\t\t\t\t\tvar disableClick = false;\r\n\t\t\t\t\tvar _mdListTargeted = false;\r\n\t\t\t\t\t//detect touch set the target event\r\n\t\t\t\t\tvar _startEvent = 'mousedown';\r\n\t\t\t\t\tvar _endEvent = 'mouseup mouseleave';\r\n\t\t\t\t\tif(EnvironmentService.touchEnabled){\r\n\t\t\t\t\t\t_startEvent = 'touchstart';\r\n\t\t\t\t\t\t_endEvent = 'touchend touchmove';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tretargetElement($elm);\r\n\r\n\t\t\t\t\tfunction start(event) {\r\n\t\t\t\t\t\ttimer = $timeout(function() {\t\r\n\t\t\t\t\t\t\tdisableClick = true;\r\n\t\t\t\t\t\t\t$scope.$eval($attrs.pxOnLongClick);\r\n\r\n\t\t\t\t\t\t\tif(_mdListTargeted){\r\n\t\t\t\t\t\t\t\t//disable button to eliminate click event firing\r\n\t\t\t\t\t\t\t\t$elm.attr('disabled', true);\r\n\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t$elm.removeAttr('disabled');\r\n\t\t\t\t\t\t\t\t\tdisableClick = false;\r\n\t\t\t\t\t\t\t\t}, 600);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}, 600);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction end(event) {\t\r\n\t\t\t\t\t\tif(!disableClick){\r\n\t\t\t\t\t\t\t$timeout.cancel(timer);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction click(event){\r\n\t\t\t\t\t\tif(disableClick){\r\n\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\tdisableClick = false;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$timeout.cancel(timer);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction retargetElement(elm){\r\n\t\t\t\t\t\tswitch(elm[0].tagName){\r\n\t\t\t\t\t\t\tcase 'MD-LIST-ITEM':\r\n\t\t\t\t\t\t\t\t_mdListTargeted = true;\r\n\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t//timeout till the next digest cycle to verify all templates have rendered\r\n\t\t\t\t\t\t\t\t\t$elm = angular.element(elm[0].querySelector('button.md-button'));\r\n\t\t\t\t\t\t\t\t\t$elm.bind(_startEvent, start);\r\n\t\t\t\t\t\t\t\t\t$elm.bind('click', click);\r\n\t\t\t\t\t\t\t\t\t$elm.bind(_endEvent, end);\r\n\t\t\t\t\t\t\t\t},0);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t$elm.bind(_startEvent, start);\r\n\t\t\t\t\t\t\t\t$elm.bind('click', click);\r\n\t\t\t\t\t\t\t\t$elm.bind(_endEvent, end);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$scope.$on('$destroy',function(){\r\n\t\t\t\t\t\t$elm.unbind(_startEvent, start);\r\n\t\t\t\t\t\t$elm.unbind(_endEvent, end);\r\n\t\t\t\t\t\t$elm.unbind('click',click);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(48);\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('phoenix')\r\n\t\t\t.directive('pxOnControlClick', ['$timeout', 'pxEnvironmentService', ControlClickDirective]);\r\n\r\n\t\tfunction ControlClickDirective($timeout, EnvironmentService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'A',\r\n\t\t\t\tlink: function($scope, $elm, $attrs) {\r\n\t\t\t\t\t//only on nontouch\r\n\t\t\t\t\tif (EnvironmentService.touchEnabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar _mdListTargeted = false;\r\n\t\t\t\t\tretargetElement($elm);\r\n\r\n\t\t\t\t\tfunction click(event) {\r\n\t\t\t\t\t\tif (!event.ctrlKey) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tevent.stopImmediatePropagation();\t\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$scope.$apply(function(){\r\n\t\t\t\t\t\t\t$scope.$eval($attrs.pxOnControlClick);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(_mdListTargeted){\r\n\t\t\t\t\t\t\t$elm.attr('disabled', true);\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t$elm.removeAttr('disabled');\t\r\n\t\t\t\t\t\t\t}, 600);\r\n\t\t\t\t\t\t}\t\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction retargetElement(elm){\r\n\t\t\t\t\t\tswitch(elm[0].tagName){\r\n\t\t\t\t\t\t\tcase 'MD-LIST-ITEM':\r\n\t\t\t\t\t\t\t\t_mdListTargeted = true;\r\n\t\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t\t\t//timeout till the next digest cycle to verify all templates have rendered\r\n\t\t\t\t\t\t\t\t\t$elm = angular.element(elm[0].querySelector('button.md-button'));\r\n\t\t\t\t\t\t\t\t\t$elm.bind('mousedown', click);\r\n\t\t\t\t\t\t\t\t},0);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t$elm.bind('click', click);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$scope.$on('$destroy',function(){\r\n\t\t\t\t\t\t$elm.unbind('click', click);\r\n\t\t\t\t\t\tif(_mdListTargeted){\r\n\t\t\t\t\t\t\t$elm.unbind('mousedown', click);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(50);\r\n\t__webpack_require__(51);\r\n\t__webpack_require__(52);\r\n\t__webpack_require__(53);\n\n/***/ },\n/* 50 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc filter\r\n\t\t* @name phoenix.filter:pxItemSize\r\n\t\t* @kind function\r\n\t\t* \r\n\t\t* @description\r\n\t\t* Converts a size in bytes to human readable text\r\n\t\t*\r\n\t\t* @param {string|number} bytes An item size in bytes.\r\n\t\t* \r\n\t\t*/\r\n\r\n\t\tvar SIZES = ['B', 'KB', 'MB', 'GB', 'TB'];\r\n\r\n\t\tangular\r\n\t\t\t.module('phoenix')\r\n\t\t\t.filter('pxItemSize', [ItemSizeFilter]);\r\n\r\n\t\tfunction ItemSizeFilter() {\r\n\t\t\treturn function toHumanReadable(bytes) {\r\n\t\t\t\t\r\n\t\t\t\tif (bytes == null) {\r\n\t\t\t\t\treturn bytes;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbytes = parseInt(bytes);\r\n\r\n\t\t\t\tif (bytes <= 0) {\r\n\t\t\t\t\treturn '0 B';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar unitIndex = Math.floor(Math.log(bytes) / Math.log(1024));\r\n\t\t\t\tvar unit = SIZES[unitIndex];\r\n\r\n\t\t\t\tvar constant = bytes / Math.pow(1024, unitIndex);\r\n\r\n\t\t\t\tif (unit !== 'B') {\r\n\t\t\t\t\tconstant = constant.toFixed(2);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn constant + ' ' + unit;\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 51 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular\r\n\t\t\t.module('phoenix')\r\n\t\t\t.filter('pxTokenKeyValue', tokenKeyValueFilter);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc filter\r\n\t\t* @name phoenix.filter:pxTokenKeyValue\r\n\t\t* @kind function\r\n\t\t* \r\n\t\t* @description\r\n\t\t* Finds the key and value of a specific token.\r\n\t\t*\r\n\t\t* @param {searchToken} expression The name of the token to find\r\n\t\t* \r\n\t\t* @example\r\n\t\t* \r\n\t\t* {{nameString|pxTokenKeyValue:'Action').key}} - {{nameString|pxTokenKeyValue:'Action').value }}\r\n\t\t* \r\n\t\t*/\r\n\t\tfunction tokenKeyValueFilter() {\r\n\t\t\treturn function tokenKeyValueFilterReplace(str, searchToken) {\r\n\t\t\t\tvar retVal = { key: null, value: null };\r\n\t\t\t\tif (!str) {\r\n\t\t\t\t\treturn str;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!searchToken || !str) {\r\n\t\t\t\t\treturn str;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar tokenRegex = new RegExp('\\\\[@' + searchToken + '=(.*?)\\\\[\\/\\]');\r\n\t\t\t\t\r\n\t\t\t\tstr.replace(tokenRegex, function (token, capture) {\r\n\t\t\t\t\t// the captured text is in the form \"User=5]john\"\r\n\t\t\t\t\tvar parts = capture.split(']');\r\n\r\n\t\t\t\t\tretVal.key = parts[0];\r\n\t\t\t\t\tretVal.value = parts[1];\r\n\t\t\t\t});\r\n\t\t\t\treturn retVal;\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 52 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* @ngdoc filter\r\n\t\t* @name phoenix.filter:pxTokenString\r\n\t\t* @kind function\r\n\t\t* \r\n\t\t* @description\r\n\t\t* Facilitates replacement of tokens in a tokenized string.\r\n\t\t*\r\n\t\t* @param {function(tokenObj)} expression The replacement function used to replace tokens.\r\n\t\t* - Given a token \"[@Name=john]jgaver[/]\", tokenObj will have the form\r\n\t\t* { attrName: 'Name', attrValue: 'john', stringValue: 'jgaver'}\r\n\t\t* \r\n\t\t* @example\r\n\t\t* \r\n\t\t* {{nameString|tokenString:function(tokenObj) { return tokenObj.stringValue; }}}\r\n\t\t* \r\n\t\t*/\r\n\r\n\t\tvar tokenRegex = /\\[@(.*?)\\[\\/\\]/g; // will capture with User=5]john from [@User=5]john[/]\r\n\r\n\t\tangular\r\n\t\t\t.module('phoenix')\r\n\t\t\t.filter('pxTokenString', tokenStringFilter);\r\n\r\n\t\tfunction tokenStringFilter() {\r\n\t\t\treturn function tokenStringFilterReplace(str, callback) {\r\n\r\n\t\t\t\tif (!callback || !str) {\r\n\t\t\t\t\treturn str;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn str.replace(tokenRegex, function (token, capture) {\r\n\t\t\t\t\t// the captured text is in the form \"User=5]john\"\r\n\t\t\t\t\tvar parts = capture.split(']');\r\n\t\t\t\t\tvar attrPart = parts[0].split('=');\r\n\r\n\t\t\t\t\treturn callback({\r\n\t\t\t\t\t\tattrName: attrPart[0],\r\n\t\t\t\t\t\tattrValue: attrPart[1],\r\n\t\t\t\t\t\tstringValue: parts[1],\r\n\t\t\t\t\t\toriginalStringValue: '[@' + capture + '[/]'\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 53 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('phoenix')\r\n\t\t\t.filter('pxFilterUsers', [UsersFilter]);\r\n\r\n\t\tfunction UsersFilter() {\r\n\t\t\treturn function getUsers(users, matchText) {\r\n\t\t\t\tif (matchText === '' || matchText === null) { return users; }\r\n\t\t\t\treturn users.filter(function (user) {\r\n\t\t\t\t\treturn user.UserName.toLowerCase().indexOf(matchText.toLowerCase()) > -1 ||\r\n\t\t\t\t\t\tuser.EmailAddress.toLowerCase().indexOf(matchText.toLowerCase()) > -1 ? true : false;\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(5);\r\n\t__webpack_require__(55);\n\n/***/ },\n/* 55 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t(function () {\r\n\t 'use strict';\r\n\t var APP_IDENTIFIER_HEADER = 'x-phoenix-app-id';\r\n\t angular\r\n\t .module('phoenix.appIdentifier', [\r\n\t 'site.settings'\r\n\t ])\r\n\t .provider('pxAppIdentifierInterceptor', appIDInterceptorProvider);\r\n\t /**\r\n\t * @ngdoc provider\r\n\t * @name phoenix.appIdentifier.pxAppIdentifierInterceptor\r\n\t *\r\n\t * @description\r\n\t * Provider for configuring the appIdInterceptorFactory before it is created.\r\n\t * If the provider is not used to configure the interceptor factory, it will\r\n\t * default to providing an interceptor for ShareBase.\r\n\t */\r\n\t function appIDInterceptorProvider() {\r\n\t var appId = 'ShareBase';\r\n\t return {\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAppIdentifierInterceptorProvider#setAppId\r\n\t * @methodOf phoenix.appIdentifier.pxAppIdentifierInterceptorProvider\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Set the app id that will be used in the pxAppIdentifierInterceptor\r\n\t *\r\n\t * @param {String} val The value to use as the app id.\r\n\t */\r\n\t setAppId: setAppId,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAppIdentifierInterceptorProvider#$get\r\n\t * @methodOf phoenix.appIdentifier.pxAppIdentifierInterceptorProvider\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Used to resolve the 'pxAppIdentifierInterceptor' service. Used by\r\n\t * angular's injector.\r\n\t */\r\n\t $get: getInterceptor\r\n\t };\r\n\t function setAppId(val) {\r\n\t appId = val;\r\n\t }\r\n\t function getInterceptor() {\r\n\t return appIDInterceptorFactory(appId);\r\n\t }\r\n\t }\r\n\t /**\r\n\t * @ngdoc service\r\n\t * @name phoenix.appIdentifier.pxAppIdentifierInterceptor\r\n\t *\r\n\t * @description\r\n\t * An http interceptor that adds an app id header to each request.\r\n\t * The app id is retrieved from the settings service and included\r\n\t * in each request to the API.\r\n\t */\r\n\t function appIDInterceptorFactory(appId) {\r\n\t return {\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAppIdentifierInterceptor#request\r\n\t * @methodOf phoenix.appIdentifier.pxAppIdentifierInterceptor\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Adds x-phoenix-app-id header to each request if there is an app id provided.\r\n\t */\r\n\t request: addIdToRequest\r\n\t };\r\n\t function addIdToRequest(config) {\r\n\t if (appId) {\r\n\t config.headers[APP_IDENTIFIER_HEADER] = appId;\r\n\t }\r\n\t return config;\r\n\t }\r\n\t }\r\n\t}());\r\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(57);\r\n\t__webpack_require__(4);\r\n\t__webpack_require__(58);\r\n\t__webpack_require__(59);\r\n\t__webpack_require__(60);\r\n\t__webpack_require__(61);\r\n\t__webpack_require__(62);\r\n\t__webpack_require__(63);\r\n\t__webpack_require__(64);\n\n/***/ },\n/* 57 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t/* jshint maxcomplexity: false */\r\n\t/* jshint maxstatements: false */\r\n\t(function () {\r\n\t 'use strict';\r\n\t angular\r\n\t .module('phoenix.acl', [\r\n\t 'gettext'\r\n\t ])\r\n\t .constant('PX_OBJECT_TYPE', {\r\n\t DOCUMENT: 0,\r\n\t FOLDER: 1,\r\n\t LIBRARY: 2,\r\n\t UNDEFINED: -1\r\n\t })\r\n\t .constant('PX_RIGHTS_TYPE', {\r\n\t FULLCONTROL: 1,\r\n\t EDIT: 2,\r\n\t VIEW: 3,\r\n\t UPLOADONLY: 4,\r\n\t NOACCESS: 5,\r\n\t UNDEFINED: 0\r\n\t })\r\n\t .constant('PX_PERMISSION_TYPE', {\r\n\t FULLCONTROL: -1,\r\n\t READ: 0x0001,\r\n\t MODIFY: 0x0002,\r\n\t DELETE: 0x0004,\r\n\t ADDDOC: 0x0008,\r\n\t READDOC: 0x0010,\r\n\t MODDOC: 0x0020,\r\n\t DELDOC: 0x0040,\r\n\t ADDFOLD: 0x0080,\r\n\t READFOLD: 0x0100,\r\n\t MODFOLD: 0x0200,\r\n\t DELFOLD: 0x0400,\r\n\t LISTFOLD: 0x0800,\r\n\t SHARE: 0x1000,\r\n\t SHLINK: 0x2000,\r\n\t SHLINKR: 0x4000,\r\n\t DOWNLOAD: 0x8000,\r\n\t SHDOC: 0x10000,\r\n\t SHLKDOC: 0x20000,\r\n\t SHLKRDOC: 0x40000,\r\n\t DNLDDOC: 0x80000,\r\n\t SHFOLD: 0x200000,\r\n\t SHLKFOLD: 0x400000,\r\n\t SHLKRFOLD: 0x800000,\r\n\t DNLDFOLD: 0x100000,\r\n\t UPLOADONLY: 0x0009\r\n\t })\r\n\t .constant('PX_LINK_SETTINGS', {\r\n\t AuthRequired: 1,\r\n\t PasswordRequired: 2,\r\n\t SingleUse: 4,\r\n\t PinRequired: 8\r\n\t })\r\n\t .factory('PX_RIGHTS', [\r\n\t 'gettextCatalog',\r\n\t function (gettextCatalog) {\r\n\t return [{\r\n\t id: '',\r\n\t defaultPerms: [0, 0, 0],\r\n\t opts: false,\r\n\t name: ''\r\n\t }, {\r\n\t id: '1',\r\n\t defaultPerms: [-1, -1, -1],\r\n\t opts: false,\r\n\t name: gettextCatalog.getString('Full Control')\r\n\t }, {\r\n\t id: '2',\r\n\t defaultPerms: [0x188007, 0x188FFF, 0x188FFF],\r\n\t opts: true,\r\n\t name: gettextCatalog.getString('Edit')\r\n\t }, {\r\n\t id: '3',\r\n\t defaultPerms: [0x08001, 0x188911, 0x188911],\r\n\t opts: true,\r\n\t name: gettextCatalog.getString('View')\r\n\t }, {\r\n\t id: '4',\r\n\t defaultPerms: [0x0, 0x0009, 0x0],\r\n\t opts: true,\r\n\t name: gettextCatalog.getString('Upload Only')\r\n\t }, {\r\n\t id: '5',\r\n\t defaultPerms: [0, 0, 0],\r\n\t opts: false,\r\n\t name: gettextCatalog.getString('No Access')\r\n\t }];\r\n\t }\r\n\t ])\r\n\t .constant('PX_ACL_CONST', {\r\n\t AllSharePerms: 0xE77000,\r\n\t MaxPermission: 0x1000000\r\n\t })\r\n\t .factory('PX_EDIT_RIGHTS_OPTIONS', [\r\n\t 'gettextCatalog',\r\n\t function (gettextCatalog) {\r\n\t return [{\r\n\t id: 0,\r\n\t name: gettextCatalog.getString('Share with Users'),\r\n\t mask: [0x01000, 0x211000, 0x211000],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }, {\r\n\t id: 1,\r\n\t name: gettextCatalog.getString('Share View Link'),\r\n\t mask: [0x02000, 0x422000, 0x422000],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }, {\r\n\t id: 2,\r\n\t name: gettextCatalog.getString('Share Edit Link'),\r\n\t mask: [0x04000, 0x844000, 0x844000],\r\n\t apply: 'bits',\r\n\t constr: '+1'\r\n\t }, {\r\n\t id: 3,\r\n\t name: gettextCatalog.getString('Delete'),\r\n\t mask: [0x00004, 0x00444, 0x00444],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }];\r\n\t }\r\n\t ])\r\n\t .factory('PX_VIEW_RIGHTS_OPTIONS', [\r\n\t 'gettextCatalog',\r\n\t function (gettextCatalog) {\r\n\t return [{\r\n\t id: 0,\r\n\t name: gettextCatalog.getString('Upload'),\r\n\t mask: [0x00, 0x00088, 0x00088],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }, {\r\n\t id: 2,\r\n\t name: gettextCatalog.getString('Download'),\r\n\t mask: [0x08000, 0x188000, 0x188000],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }, {\r\n\t id: 3,\r\n\t name: gettextCatalog.getString('Share View Link'),\r\n\t mask: [0x02000, 0x422000, 0x422000],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }];\r\n\t }\r\n\t ])\r\n\t .factory('PX_UPLOAD_ONLY_RIGHTS_OPTIONS', [\r\n\t 'gettextCatalog',\r\n\t function (gettextCatalog) {\r\n\t return [{\r\n\t id: 0,\r\n\t name: gettextCatalog.getString('View Folder Contents'),\r\n\t mask: [0x00, 0x800, 0],\r\n\t apply: 'bits',\r\n\t constr: ''\r\n\t }];\r\n\t }\r\n\t ])\r\n\t .factory('pxRightsOptions', [\r\n\t 'PX_EDIT_RIGHTS_OPTIONS',\r\n\t 'PX_VIEW_RIGHTS_OPTIONS',\r\n\t 'PX_UPLOAD_ONLY_RIGHTS_OPTIONS',\r\n\t function (EditRightsOptions, ViewRightsOptions, UploadOnlyRightsOptions) {\r\n\t return [\r\n\t null,\r\n\t null,\r\n\t EditRightsOptions,\r\n\t ViewRightsOptions,\r\n\t UploadOnlyRightsOptions,\r\n\t null\r\n\t ];\r\n\t }\r\n\t ])\r\n\t .factory('pxObjectTypeMappings', [\r\n\t 'gettextCatalog',\r\n\t function (gettextCatalog) {\r\n\t return [\r\n\t gettextCatalog.getString('Document'),\r\n\t gettextCatalog.getString('Folder'),\r\n\t gettextCatalog.getString('Library')\r\n\t ];\r\n\t }\r\n\t ])\r\n\t .factory('pxAclService', [\r\n\t 'PX_OBJECT_TYPE',\r\n\t 'PX_RIGHTS_TYPE',\r\n\t 'PX_PERMISSION_TYPE',\r\n\t 'PX_RIGHTS',\r\n\t 'PX_ACL_CONST',\r\n\t 'pxRightsOptions',\r\n\t 'pxObjectTypeMappings',\r\n\t AclFactory\r\n\t ]);\r\n\t /**\r\n\t * @ngdoc service\r\n\t * @name phoenix.acl.pxAclService\r\n\t * @requires PX_OBJECT_TYPE\r\n\t * @requires PX_RIGHTS_TYPE\r\n\t * @requires PX_RIGHTS\r\n\t * @requires PX_ACL_CONST\r\n\t * @requires pxRightsOptions\r\n\t * @requires pxObjectTypeMappings\r\n\t * @description\r\n\t * A service used to create and interrogate ACL instances.\r\n\t **/\r\n\t function AclFactory(ObjectType, RightsType, PermissionType, Rights, AclConst, RightsOptions, ObjectTypeMappings) {\r\n\t function Acl(srvData, _itemType, _userName, _isGroup) {\r\n\t srvData = srvData || {};\r\n\t this.sourceName = '';\r\n\t this.sourceId = 0;\r\n\t this.sourceObjectType = ObjectType.UNDEFINED;\r\n\t this.isInherited = false;\r\n\t this.allowPerms = 0;\r\n\t this.isLinkAcl = false;\r\n\t this.isOwnerAcl = false;\r\n\t this.id = 0;\r\n\t this.rightId = 0;\r\n\t if (angular.isDefined(srvData.elementId)) {\r\n\t // this acl is an override of an existing acl\r\n\t this.type = _itemType;\r\n\t this.userId = srvData.userId;\r\n\t this.userName = srvData.userName;\r\n\t this.isGroup = srvData.isGroup;\r\n\t this.elementId = generateUniqueId(this.userId, this.isGroup);\r\n\t this.isInherited = true;\r\n\t return;\r\n\t }\r\n\t else if (angular.isDefined(srvData.AuthToken)) {\r\n\t // this acl is for a link (old version)\r\n\t this.id = srvData.ReferenceString;\r\n\t this.type = (angular.isDefined(srvData.FolderName) && srvData.FolderName) ? ObjectType.FOLDER : ObjectType.DOCUMENT;\r\n\t this.userId = 0;\r\n\t this.userName = 'anonymous';\r\n\t this.isGroup = false;\r\n\t this.isLinkAcl = true;\r\n\t }\r\n\t else if (angular.isDefined(srvData.ReferenceString)) {\r\n\t // this acl is for a link\r\n\t this.id = srvData.ReferenceString;\r\n\t this.type = srvData.ObjectType === 'Folder' ? ObjectType.FOLDER : ObjectType.DOCUMENT;\r\n\t this.userId = 0;\r\n\t this.userName = 'anonymous';\r\n\t this.isGroup = false;\r\n\t this.isLinkAcl = true;\r\n\t this.allowPerms = srvData.Permissions;\r\n\t }\r\n\t else if (_userName) {\r\n\t // this acl is for a new acl\r\n\t this.type = _itemType;\r\n\t this.userId = typeof (srvData) === 'number' ? srvData : 0;\r\n\t this.userName = _userName;\r\n\t this.isGroup = _isGroup;\r\n\t this.elementId = generateUniqueId(this.userId, this.isGroup);\r\n\t return;\r\n\t }\r\n\t else if (typeof srvData === 'number') {\r\n\t // this acl is constructed from an integer bit array\r\n\t this.allowPerms = srvData;\r\n\t this.userId = 0;\r\n\t this.userName = 'anonymous';\r\n\t this.isGroup = false;\r\n\t this.type = _itemType;\r\n\t this.updatePermissions(this.allowPerms);\r\n\t return;\r\n\t }\r\n\t else {\r\n\t // construct an Acl from a data object returned from a server API call\r\n\t if (angular.isDefined(srvData.FolderACLId)) {\r\n\t // acl is folder\r\n\t this.id = srvData.FolderACLId;\r\n\t this.type = ObjectType.FOLDER;\r\n\t }\r\n\t else if (angular.isDefined(srvData.LibraryACLId)) {\r\n\t // acl is library\r\n\t this.id = srvData.LibraryACLId;\r\n\t this.type = ObjectType.LIBRARY;\r\n\t }\r\n\t else {\r\n\t // assume Acl is on a document\r\n\t this.id = srvData.DocumentACLId;\r\n\t this.type = ObjectType.DOCUMENT;\r\n\t }\r\n\t this.isOwnerAcl = this.id < 0;\r\n\t if (srvData.UserGroupId !== 0) {\r\n\t this.userId = srvData.UserGroupId;\r\n\t this.userName = srvData.UserGroupName;\r\n\t this.isGroup = true;\r\n\t }\r\n\t else {\r\n\t this.userId = srvData.UserId;\r\n\t this.userName = srvData.UserName;\r\n\t this.isGroup = false;\r\n\t }\r\n\t this.elementId = generateUniqueId(this.userId, this.isGroup);\r\n\t if (this.type !== ObjectType.LIBRARY) {\r\n\t if (srvData.SourceFolderId !== 0) {\r\n\t this.sourceName = srvData.SourceFolderName;\r\n\t this.sourceId = srvData.SourceFolderId;\r\n\t this.sourceObjectType = ObjectType.FOLDER;\r\n\t this.isInherited = true;\r\n\t }\r\n\t else if (srvData.SourceLibraryId !== 0) {\r\n\t this.sourceName = srvData.SourceLibraryName;\r\n\t this.sourceId = srvData.SourceLibraryId;\r\n\t this.sourceObjectType = ObjectType.LIBRARY;\r\n\t this.isInherited = true;\r\n\t }\r\n\t }\r\n\t }\r\n\t if (srvData.Embedded && srvData.Embedded.Permissions) {\r\n\t for (var i = 0; i < srvData.Embedded.Permissions.length; ++i) {\r\n\t var perm = srvData.Embedded.Permissions[i];\r\n\t if (perm.PermissionValue === PermissionType.FULLCONTROL) {\r\n\t if (perm.Allow) {\r\n\t this.allowPerms = -1;\r\n\t break;\r\n\t }\r\n\t }\r\n\t else {\r\n\t if (perm.Allow) {\r\n\t this.allowPerms += perm.PermissionValue;\r\n\t }\r\n\t else if (perm.Deny) {\r\n\t break;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t this.updatePermissions(this.allowPerms);\r\n\t }\r\n\t Acl.prototype.hasRight = function (right) {\r\n\t return this.rightId === right;\r\n\t };\r\n\t Acl.prototype.sourceString = function () {\r\n\t if (this.sourceObjectType === ObjectType.FOLDER) {\r\n\t return 'folder ' + this.sourceName;\r\n\t }\r\n\t else if (this.sourceObjectType === ObjectType.LIBRARY) {\r\n\t return 'library ' + this.sourceName;\r\n\t }\r\n\t else {\r\n\t return '';\r\n\t }\r\n\t };\r\n\t Acl.prototype.canModify = function () {\r\n\t return this.hasPermission(PermissionType.MODIFY);\r\n\t };\r\n\t Acl.prototype.canRead = function () {\r\n\t return this.hasPermission(PermissionType.READ);\r\n\t };\r\n\t Acl.prototype.canDownload = function () {\r\n\t return this.hasPermission(PermissionType.DOWNLOAD);\r\n\t };\r\n\t Acl.prototype.canUpload = function () {\r\n\t return this.hasPermission(PermissionType.ADDDOC);\r\n\t };\r\n\t Acl.prototype.canShareByLink = function () {\r\n\t return this.hasPermission(PermissionType.SHLINK + PermissionType.SHLINKR);\r\n\t };\r\n\t Acl.prototype.hasAllPermissions = function (perms) {\r\n\t /* jshint -W016 */\r\n\t return ((this.allowPerms & perms) === perms);\r\n\t /* jshint +W016 */\r\n\t };\r\n\t Acl.prototype.hasPermission = function (perms) {\r\n\t /* jshint -W016 */\r\n\t return ((this.allowPerms & perms) !== 0);\r\n\t /* jshint +W016 */\r\n\t };\r\n\t Acl.prototype.updatePermissions = function () {\r\n\t var defaultType;\r\n\t var defaultPerms;\r\n\t /* jshint -W016 */\r\n\t if (arguments.length === 1 && typeof arguments[0] === 'number') {\r\n\t this.allowPerms = arguments[0];\r\n\t }\r\n\t if (this.allowPerms === PermissionType.FULLCONTROL) {\r\n\t this.rightId = RightsType.FULLCONTROL;\r\n\t this.isModifiedRight = false;\r\n\t this.allowAdvancedSettings = false;\r\n\t }\r\n\t else if (this.allowPerms & PermissionType.MODIFY) {\r\n\t // editors have the right to modify documents\r\n\t this.rightId = RightsType.EDIT;\r\n\t defaultType = this.type > ObjectType.FOLDER ? ObjectType.FOLDER : this.type;\r\n\t defaultPerms = Rights[this.rightId].defaultPerms[defaultType];\r\n\t this.isModifiedRight = (defaultPerms !== this.allowPerms);\r\n\t this.allowAdvancedSettings = true;\r\n\t }\r\n\t else if (this.type === ObjectType.FOLDER && ((this.allowPerms & 0x7FF) === PermissionType.UPLOADONLY)) {\r\n\t this.rightId = RightsType.UPLOADONLY;\r\n\t this.isModifiedRight = false;\r\n\t this.allowAdvancedSettings = true;\r\n\t }\r\n\t else if (this.allowPerms & PermissionType.READ) {\r\n\t // viewers have the right to read documents\r\n\t this.rightId = RightsType.VIEW;\r\n\t defaultType = this.type > ObjectType.FOLDER ? ObjectType.FOLDER : this.type;\r\n\t defaultPerms = Rights[this.rightId].defaultPerms[defaultType];\r\n\t this.isModifiedRight = (defaultPerms !== this.allowPerms);\r\n\t this.allowAdvancedSettings = true;\r\n\t }\r\n\t else {\r\n\t this.rightId = RightsType.NOACCESS;\r\n\t this.isModifiedRight = false;\r\n\t this.allowAdvancedSettings = false;\r\n\t }\r\n\t /* jshint +W016 */\r\n\t };\r\n\t /*\r\n\t * @name Acl.getServerAcl\r\n\t *\r\n\t * @description\r\n\t * This method creates a server version of an acl so that it can be passed to the server's updatePermissions API\r\n\t */\r\n\t Acl.prototype.getServerAcl = function () {\r\n\t var newAcl = {\r\n\t UserId: this.isGroup ? 0 : this.userId,\r\n\t UserName: this.isGroup ? '' : this.userName,\r\n\t UserGroupId: this.isGroup ? this.userId : 0,\r\n\t UserGroupName: this.isGroup ? this.userName : '',\r\n\t RoleName: '' + this.rightId + (this.isModifiedRight ? '*' : ''),\r\n\t Embedded: {\r\n\t Permissions: []\r\n\t }\r\n\t };\r\n\t var permissionValue = PermissionType.FULLCONTROL;\r\n\t while (permissionValue < AclConst.MaxPermission) {\r\n\t var newPerm = {\r\n\t PermissionValue: permissionValue,\r\n\t Allow: false,\r\n\t Deny: false\r\n\t };\r\n\t if (this.rightId === RightsType.FULLCONTROL) {\r\n\t newPerm.Allow = true;\r\n\t }\r\n\t else if (permissionValue !== PermissionType.FULLCONTROL) {\r\n\t if (this.rightId === RightsType.NOACCESS) {\r\n\t newPerm.Deny = true;\r\n\t }\r\n\t else {\r\n\t /* jshint -W016 */\r\n\t newPerm.Allow = (permissionValue & this.allowPerms) !== 0;\r\n\t }\r\n\t }\r\n\t newAcl.Embedded.Permissions.push(newPerm);\r\n\t if (permissionValue < 0) {\r\n\t permissionValue = 1;\r\n\t }\r\n\t else {\r\n\t /* jshint -W016 */\r\n\t permissionValue <<= 1;\r\n\t }\r\n\t }\r\n\t return newAcl;\r\n\t };\r\n\t /*\r\n\t * @name Acl.setPermissions\r\n\t *\r\n\t * @description\r\n\t * This method is called to change the permission settings of the acl.\r\n\t */\r\n\t Acl.prototype.setPermissions = function (right, options) {\r\n\t right = +right;\r\n\t options = angular.isArray(options) ? options : [];\r\n\t this.rightId = right;\r\n\t var newPerms = Rights[right].defaultPerms[this.type];\r\n\t if (Rights[right].opts) {\r\n\t /* jshint -W016 */\r\n\t newPerms = newPerms & ~(AclConst.AllSharePerms);\r\n\t /* jshint +W016 */\r\n\t for (var i = 0; i < options.length; ++i) {\r\n\t var opt = options[i];\r\n\t var perms = opt.perms || opt.permissions;\r\n\t if (opt.apply === 'value') {\r\n\t if (opt.value === true) {\r\n\t newPerms = perms;\r\n\t break;\r\n\t }\r\n\t }\r\n\t else {\r\n\t /* jshint -W016 */\r\n\t if (opt.value === true) {\r\n\t newPerms |= perms;\r\n\t }\r\n\t else {\r\n\t newPerms &= ~perms;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t this.allowPerms = newPerms;\r\n\t this.updatePermissions();\r\n\t return this;\r\n\t };\r\n\t /*\r\n\t * @name Acl.getOptions\r\n\t *\r\n\t * @description\r\n\t * Returns a string with the right options that are set\r\n\t */\r\n\t Acl.prototype.getOptions = function () {\r\n\t var result = '';\r\n\t var right = Rights[this.rightId];\r\n\t if (right.defaultPerms[this.type] !== 0) {\r\n\t var options = RightsOptions[this.rightId];\r\n\t if (options !== null) {\r\n\t for (var k = 0; k < options.length; ++k) {\r\n\t var option = options[k];\r\n\t /* jshint -W016 */\r\n\t if ((this.allowPerms & option.mask[this.type]) !== 0) {\r\n\t var nm = option.name;\r\n\t result = result.length > 0 ? result + ', ' + nm : nm;\r\n\t }\r\n\t }\r\n\t }\r\n\t }\r\n\t return result;\r\n\t };\r\n\t /*\r\n\t * @name Acl.getAvailableRights\r\n\t *\r\n\t * @description\r\n\t * This method returns an array of objects where each object describes a right (i.e. Edit, View) that can\r\n\t * be assigned to the user given in the acl.\r\n\t */\r\n\t Acl.prototype.getAvailableRights = function (isInherited) {\r\n\t isInherited = typeof (isInherited) === 'boolean' ? isInherited : this.isInherited;\r\n\t var rights = [];\r\n\t for (var i = 1; i < Rights.length; ++i) {\r\n\t if (i >= this.rightId) {\r\n\t var right = Rights[i];\r\n\t var allowRight = false;\r\n\t switch (+right.id) {\r\n\t case RightsType.NOACCESS:\r\n\t allowRight = isInherited;\r\n\t break;\r\n\t case RightsType.UPLOADONLY:\r\n\t allowRight = false;\r\n\t break;\r\n\t default:\r\n\t allowRight = true;\r\n\t }\r\n\t if (allowRight) {\r\n\t rights.push({ id: right.id, name: right.name, options: right.opts });\r\n\t }\r\n\t }\r\n\t }\r\n\t return rights;\r\n\t };\r\n\t /*\r\n\t * @name Acl.getAvailableLinkRights\r\n\t *\r\n\t * @description\r\n\t * This method returns the list of avaiable rights and options that can be used to set the permissions on a new link\r\n\t */\r\n\t Acl.prototype.getAvailableLinkRights = function (objectType) {\r\n\t var rights = [];\r\n\t for (var i = RightsType.EDIT; i <= RightsType.UPLOADONLY; ++i) {\r\n\t var right = Rights[i];\r\n\t if (right.defaultPerms[objectType] !== 0 && i >= this.rightId && (this.hasPermission(PermissionType.SHLINKR) || i !== RightsType.EDIT)) {\r\n\t var options = RightsOptions[i];\r\n\t var uiOpts = [];\r\n\t if (options !== null) {\r\n\t for (var k = 0; k < options.length; ++k) {\r\n\t var option = options[k];\r\n\t var mask = option.mask[objectType];\r\n\t if (mask !== 0 &&\r\n\t /* jshint -W016 */\r\n\t (mask & AclConst.AllSharePerms) === 0 &&\r\n\t (mask & this.allowPerms) !== 0) {\r\n\t uiOpts.push({\r\n\t name: option.name,\r\n\t id: option.id,\r\n\t perms: mask,\r\n\t apply: option.apply,\r\n\t value: false\r\n\t });\r\n\t }\r\n\t }\r\n\t }\r\n\t rights.push({ id: right.id, name: right.name, options: uiOpts });\r\n\t }\r\n\t }\r\n\t return rights;\r\n\t };\r\n\t Acl.prototype.getAdvancedOptions = function (objectType, rightId, perms, asDict) {\r\n\t asDict = typeof (asDict) === 'boolean' ? asDict : false;\r\n\t rightId = +(rightId || this.rightId);\r\n\t perms = perms ? perms : Rights[rightId].defaultPerms[objectType];\r\n\t var result = asDict ? {} : [];\r\n\t var options = RightsOptions[rightId];\r\n\t var self = this;\r\n\t if (options) {\r\n\t options.forEach(function (option) {\r\n\t var mask = option.mask[objectType];\r\n\t /* jshint -W016 */\r\n\t if (mask !== 0 && (mask & self.allowPerms) !== 0) {\r\n\t var value = option.apply === 'bits' ?\r\n\t (perms & mask) === mask :\r\n\t perms === mask;\r\n\t var advOpt = {\r\n\t name: option.name,\r\n\t id: option.id,\r\n\t perms: mask,\r\n\t apply: option.apply,\r\n\t value: value,\r\n\t constr: option.constr\r\n\t };\r\n\t if (asDict) {\r\n\t result[advOpt.id] = advOpt;\r\n\t }\r\n\t else {\r\n\t result.push(advOpt);\r\n\t }\r\n\t }\r\n\t /* jshint +W016 */\r\n\t });\r\n\t }\r\n\t return result;\r\n\t };\r\n\t // define property getters/setters on the prototype\r\n\t Object.defineProperties(Acl.prototype, {\r\n\t 'rightName': {\r\n\t get: function () {\r\n\t var name = Rights[this.rightId].name;\r\n\t return name;\r\n\t }\r\n\t }\r\n\t });\r\n\t function generateUniqueId(principalId, isGroup) {\r\n\t if (isGroup === void 0) { isGroup = false; }\r\n\t return (isGroup ? 'acl-g' : 'acl-u') + principalId;\r\n\t }\r\n\t return {\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAclService#create\r\n\t * @methodOf phoenix.acl.pxAclService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Creates a new ACL instance using the most permissive arguments.\r\n\t *\r\n\t * @param {int} id The ID of the entity to generate an ACL for.\r\n\t *\r\n\t * @param {string} objectType The type of resource to generate an ACL for.\r\n\t *\r\n\t * @param {string} name The name of the entity to generate an ACL for.\r\n\t *\r\n\t * @param {bool} isGroup Value indiciating if this ACL is intended for a group.\r\n\t *\r\n\t * @returns {Object} A new Acl instance.\r\n\t *\r\n\t */\r\n\t create: function (id, objectType, name, isGroup) {\r\n\t // convert to proper array to maintain correct argument position in apply() call\r\n\t var args = Array.prototype.slice.call(arguments);\r\n\t args.unshift(null);\r\n\t // allow proxying of arbitrary arguments rather than keeping \r\n\t // method signature in sync with Acl constructor arguments\r\n\t /* jshint -W058 */\r\n\t return new (Function.prototype.bind.apply(Acl, args));\r\n\t /* jshint +W058 */\r\n\t },\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAclService#generateForEntity\r\n\t * @methodOf phoenix.acl.pxAclService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Convenience method that creates a new ACL instance for users or user groups.\r\n\t *\r\n\t * @param {object} entity A user or group to generate an ACL for.\r\n\t *\r\n\t * @param {string} objectType The type of resource to generate an ACL for.\r\n\t *\r\n\t * @returns {Acl} A new Acl instance.\r\n\t *\r\n\t */\r\n\t generateForEntity: function (entity, objectType) {\r\n\t var id = entity.UserId || entity.UserGroupId;\r\n\t var name = entity.UserName || entity.UserGroupName;\r\n\t var isGroup = angular.isString(entity.UserGroupName) && entity.UserGroupName.length > 0;\r\n\t return this.create(id, objectType, name, isGroup);\r\n\t },\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAclService#isAcl\r\n\t * @methodOf phoenix.acl.pxAclService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Verifies if the given object is an instance of an ACL.\r\n\t *\r\n\t * @param {object} obj The object to test.\r\n\t *\r\n\t * @returns {bool} True if the object is an instance of Acl.\r\n\t *\r\n\t */\r\n\t isAcl: function (obj) {\r\n\t return !!obj && (obj instanceof Acl);\r\n\t },\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAclService#toRoleNameFromId\r\n\t * @methodOf phoenix.acl.pxAclService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Converts a Phoenix role ID to its human-readable name.\r\n\t *\r\n\t * @param {int} roleId An integer ID representing an ownership role.\r\n\t *\r\n\t * @returns {string} Human readable role name localize for the current language.\r\n\t *\r\n\t */\r\n\t toRoleNameFromId: function (roleId) {\r\n\t var result = '';\r\n\t var rid;\r\n\t roleId = (roleId || '').toString();\r\n\t if (roleId.length > 0) {\r\n\t rid = +(roleId.charAt(0));\r\n\t result = rid in Rights ? Rights[rid].name : '';\r\n\t if (rid < 5) {\r\n\t result = ', ' + result;\r\n\t if (roleId.charAt(1) === '*') {\r\n\t result = result + '*';\r\n\t }\r\n\t }\r\n\t }\r\n\t return result;\r\n\t },\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name pxAclService#toTypeNameFromId\r\n\t * @methodOf phoenix.acl.pxAclService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Converts a phoenix resource type ID to its human-readable name.\r\n\t *\r\n\t * @param {int} typeId An integer ID representing a Phoenix resource type.\r\n\t *\r\n\t * @returns {string} Human readable role name localize for the current language.\r\n\t *\r\n\t */\r\n\t toTypeNameFromId: function (typeId) {\r\n\t return ObjectTypeMappings[typeId] || '';\r\n\t }\r\n\t };\r\n\t }\r\n\t})();\r\n\n\n/***/ },\n/* 58 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name phoenix.clipboardService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A service used to wrap clipboard.js as an injectable Angular dependecy.\r\n\t\t* Removes the global constructor after bootstrap.\r\n\t\t**/\r\n\t\tangular\r\n\t\t\t.module('phoenix')\r\n\t\t\t.factory('pxClipboardService', [\r\n\t\t\t\t'$window',\r\n\t\t\t\tClipboardService\r\n\t\t\t]);\r\n\t\t\r\n\t\tfunction ClipboardService($window) {\r\n\t\t\tvar instance = null;\r\n\t\t\tvar Clipboard = $window.Clipboard;\r\n\r\n\t\t\t// clear global reference\r\n\t\t\t$window.Clipboard = null;\r\n\t\t\tdelete $window.Clipboard;\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name clipboardService#init\r\n\t\t\t\t* @methodOf phoenix.clipboardService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Initializes clipboard functionality and instantiates a singleton instance.\r\n\t\t\t\t* \r\n\t\t\t\t* @param {string} A DOM selector string.\r\n\t\t\t\t*\r\n\t\t\t\t*/\r\n\t\t\t\tinit: init,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name clipboardService#copy\r\n\t\t\t\t* @methodOf phoenix.clipboardService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Attempts to copy the provided value to the clipboard.\r\n\t\t\t\t* \r\n\t\t\t\t* @param {string} A value whose string representation is to be copied to the clipboard.\r\n\t\t\t\t*\r\n\t\t\t\t*/\r\n\t\t\t\tcopy: copy,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name clipboardService#init#clipboard\r\n\t\t\t\t* @propertyOf phoenix.clipboardService\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* The instantiated Clipboard instance.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Clipboard} A Clipboard object.\r\n\t\t\t\t*/\r\n\t\t\t\tget clipboard() {\r\n\t\t\t\t\treturn instance;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tfunction init(selector) {\r\n\t\t\t\tif (!instance) {\r\n\t\t\t\t\tif (!Clipboard) {\r\n\t\t\t\t\t\tthrow new Error('Clipboard.js not available.');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinstance = new Clipboard(selector);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// data-clipboard-text doesn't work on Angular directives\r\n\t\t\tfunction copy(value) {\r\n\t\t\t\tvar body = angular.element($window.document.body);\r\n\t\t\t\tvar textarea = angular.element('\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
Email list is invalid! Please separate each address with a comma.
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\r\\n\\t\\t
\\r\\n\\t\\t{{'User Groups' | translate}}\\r\\n\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t{{'User Roles' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

Site Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow users to control features of this deployment such as libraries, password policies, API tokens, statistics and logs.

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

User Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow users to add/edit/delete users and groups for this deployment.

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t{{::'Send'| translate}}\\r\\n\\t\\t\\t{{::'Cancel'| translate}}\\r\\n\\t\\t
\\r\\n\\t\\r\\n\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 181 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(182);\r\n\t__webpack_require__(184);\n\n/***/ },\n/* 182 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 183 */,\n/* 184 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(185);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminLibraries\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminLibraries` displays a deployments libraryies\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminLibraries',\r\n\t\t\t[\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\tLibrariesDirective\r\n\t\t\t])\r\n\t\t\t.controller('sbadminLibrariesController',\r\n\t\t\t[\r\n\t\t\t\t'$state',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'sbadminLibrariesDataStore',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tLibrariesController\r\n\t\t\t]);\r\n\t\t\r\n\t\tfunction LibrariesDirective(sbadminToolbarService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminLibrariesController',\r\n\t\t\t\tcontrollerAs: 'librariesCtrl',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction LibrariesController($state, sbadminToolbarService, sbadminLibrariesDataStore, pxProgressService, gettextCatalog) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.loading = false;\r\n\t\t\tself.sbadminLibrariesDataStore = sbadminLibrariesDataStore;\r\n\t\t\tself.pxProgressService = pxProgressService;\r\n\t\t\tself.doneLoading = doneLoading;\r\n\t\t\tself.goToLibrary = goToLibrary;\r\n\r\n\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Libraries');\r\n\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find libraries');\r\n\t\t\tsbadminToolbarService.actions = [{ icon: 'add', label: gettextCatalog.getString('Create Library'), trigger: function () { $state.go('administration.home.deployment.libraries.library', { libraryId: null }); } }];\r\n\t\t\tsbadminToolbarService.showFilter = true;\r\n\r\n\t\t\tfunction loadLibraries() {\r\n\t\t\t\tisLoading();\r\n\t\t\t\tself.sbadminLibrariesDataStore.getLibraries()\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t}\r\n\r\n\t\t\tfunction isLoading() {\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction doneLoading() {\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tfunction goToLibrary(id) {\r\n\t\t\t\t$state.go('administration.home.deployment.libraries.library', { libraryId: id });\r\n\t\t\t}\r\n\r\n\t\t\tloadLibraries();\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 185 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/libraries/libraries.template.html';\n\tvar html = \" 0\\\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\taccount_balance\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

{{library.LibraryName}}

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\tCreated by {{personName}}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\tCreated on {{date}}\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\taccount_balance\\r\\n\\t\\t
\\r\\n\\t\\t

You haven't created any libraries

\\r\\n\\t\\t

Create one by clicking here or the plus sign in the top right corner

\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 186 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(187);\r\n\t__webpack_require__(189);\n\n/***/ },\n/* 187 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 188 */,\n/* 189 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(190);\r\n\t\tvar dialogTemplateUrl = __webpack_require__(191);\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminLibrary\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminLibrary` displays a library to add/edit\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} libraryId The id of the library to display\r\n\t\t */\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.directive('sbadminLibrary', [\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\tLibraryDirective\r\n\t\t\t])\r\n\t\t\t.controller('sbadminLibraryController', [\r\n\t\t\t\t'$state',\r\n\t\t\t\t'$mdDialog',\r\n\t\t\t\t'$mdMedia',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'sbToastService',\r\n\t\t\t\t'sbadminLibraryDataStore',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'ShareDialogTabs',\r\n\t\t\t\tLibraryController\r\n\t\t\t]);\r\n\r\n\t\tfunction LibraryDirective(sbadminToolbarService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminLibraryController',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tlibraryId: '@'\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction LibraryController($state, $mdDialog, $mdMedia, pxProgressService, sbToastService, sbadminLibraryDataStore, sbadminToolbarService, gettextCatalog, ShareDialogTabs) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\tvm.errorMessage = null;\r\n\t\t\tvm.doneLoading = doneLoading;\r\n\t\t\tvm.libraryDS = sbadminLibraryDataStore;\r\n\t\t\tvm.submitForm = submitForm;\r\n\t\t\tvm.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tvm.editShare = editShare;\r\n\t\t\tvm.createUserShare = createUserShare;\r\n\t\t\tvm.creating = !vm.libraryId && vm.libraryId > -1;\r\n\t\t\tsbadminToolbarService.title = vm.libraryId ? gettextCatalog.getString('Edit Library') : gettextCatalog.getString('Create Library');\r\n\t\t\tsbadminToolbarService.filterPlaceholder = 'Find shares';\r\n\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\tsbadminToolbarService.showFilter = true;\r\n\r\n\t\t\tif (!vm.creating) {\r\n\t\t\t\tsbadminToolbarService.actions.push({ \r\n\t\t\t\t\ticon: 'share', \r\n\t\t\t\t\tlabel: gettextCatalog.getString('Create User Share'), \r\n\t\t\t\t\ttrigger: createUserShare \r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tisLoading();\r\n\t\t\tsbadminLibraryDataStore\r\n\t\t\t\t.load(vm.libraryId)\r\n\t\t\t\t.then(function() {\r\n\t\t\t\t\treturn sbadminLibraryDataStore.getShares();\r\n\t\t\t\t})\r\n\t\t\t\t.finally(doneLoading);\r\n\r\n\t\t\tfunction createUserShare($event) {\r\n\t\t\t\t// step index of 1 w/o share = new share\r\n\t\t\t\t$mdDialog.show(generateDialogConfig($event, 1));\t\r\n\t\t\t}\r\n\r\n\t\t\t// function createLinkShare($event) {\r\n\t\t\t// \t$mdDialog.show(generateDialogConfig($event, 'Create Link Share'));\t\t\r\n\t\t\t// }\r\n\r\n\t\t\tfunction editShare($event, share) {\r\n\t\t\t\t$mdDialog.show(generateDialogConfig($event, ShareDialogTabs.UserShare.Edit, share));\r\n\t\t\t}\r\n\r\n\t\t\tfunction generateDialogConfig(event, targetStep, share) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tcontroller: 'sbShareDialogController',\r\n\t\t\t\t\ttemplateUrl: dialogTemplateUrl,\r\n\t\t\t\t\tcontrollerAs:'vm',\r\n\t\t\t\t\ttargetEvent: event,\r\n\t\t\t\t\tfullscreen: $mdMedia('sm') || $mdMedia('xs'),\r\n\t\t\t\t\tclickOutsideToClose: true,\r\n\t\t\t\t\tlocals: {\r\n\t\t\t\t\t\tcontext: vm.libraryDS.library,\r\n\t\t\t\t\t\taclToEdit: share,\r\n\t\t\t\t\t\tdatastore: vm.libraryDS,\r\n\t\t\t\t\t\ttargetStep: targetStep\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tfunction submitForm() {\r\n\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\tisLoading();\r\n\t\t\t\tsbadminLibraryDataStore.saveLibrary()\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\tsbToastService.showSimple(vm.libraryId ? gettextCatalog.getString('Library saved!') : gettextCatalog.getString('Library created!'));\r\n\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function (e) {\r\n\t\t\t\t\t\tvm.errorMessage = e.data.Message;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t}\r\n\r\n\t\t\tfunction isLoading() {\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction doneLoading() {\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 190 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/library/library.template.html';\n\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
You must supply a Library name.
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\tYour name must be less than 50 characters.\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tUpdate\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tCreate\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t\\r\\n\\t{{::'Share Details' | translate}}\\r\\n\\t\\r\\n\\t\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 191 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase/components/shareDialog/shareDialog.template.html';\n\tvar html = \"\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

{{vm.getTitle()}}

\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tclear\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tDone\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tNew Share\\r\\n\\t\\t\\t\\t\\t\\t\\tUpdate Share\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{vm.context.type === 'document' ? 'insert_drive_file' : 'folder'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{vm.context.name}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t{{ vm.error }}\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t

Share With:

\\r\\n\\t\\t\\t\\t\\t\\t\\t

Shared With:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t

Rights:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ right.name }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
0\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tshow advanced share options\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\thide advanced share options\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
0\\\" layout=\\\"column\\\" layout-align=\\\"start stretch\\\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

Allow:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ao.name}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tView Existing Shares\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tCreate Share\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tUpdate Share\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tcheck_circle\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tContent has been successfully shared!\\r\\n\\t\\t\\t\\t\\t\\t\\tShare has been successfully updated!\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
Users have been notified of new shared content
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tDone\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

Rights:

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tUpload Only\\r\\n\\t\\t\\t\\t\\t\\t\\tView\\r\\n\\t\\t\\t\\t\\t\\t\\tEdit\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tshow advanced options\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t

Allow:

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDelete\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tUpload\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDownload\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tView folder contents\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t

Expires:

\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t

Password:

\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t

Recipients:

\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tView Existing Shares\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tCreate Share\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tcheck_circle\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\tNew share link has been generated!\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
0\\\" translate>Recipients have been emailed this new link
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{::'Copy To Clipboard' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{::'Done' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 192 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(193);\r\n\t__webpack_require__(195);\n\n/***/ },\n/* 193 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 194 */,\n/* 195 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(196);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminPasswordPolicies\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminPasswordPolicies` displays a deployments password policies\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminPasswordPolicies',\r\n\t\t\t[\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\tPasswordPoliciesDirective\r\n\t\t\t])\r\n\t\t\t.controller('sbadminPasswordPoliciesController',\r\n\t\t\t[\r\n\t\t\t\t'$state',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'sbadminPasswordPoliciesDataStore',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tPasswordPoliciesController\r\n\t\t\t]);\r\n\t\t\r\n\t\tfunction PasswordPoliciesDirective(sbadminToolbarService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminPasswordPoliciesController',\r\n\t\t\t\tcontrollerAs: 'passwordsCtrl',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction PasswordPoliciesController($state, sbadminToolbarService, sbadminPasswordPoliciesDataStore, pxProgressService, gettextCatalog) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.doneLoading = doneLoading;\r\n\t\t\tself.pxProgressService = pxProgressService;\r\n\t\t\tself.passwordPoliciesDS = sbadminPasswordPoliciesDataStore;\r\n\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tself.goToPasswordPolicy = goToPasswordPolicy;\r\n\r\n\t\t\tsbadminToolbarService.actions = [{ icon: 'add', label: gettextCatalog.getString('Create Policy'), trigger: function () { $state.go('administration.home.deployment.passwordPolicies.details', { passwordPolicyId: '' }); } }];\r\n\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Password Policies');\r\n\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find password policies');\r\n\r\n\t\t\tfunction loadPasswordPolicies() {\r\n\t\t\t\tisLoading();\r\n\t\t\t\tsbadminPasswordPoliciesDataStore.getPasswordPolicies()\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t}\r\n\r\n\t\t\tfunction isLoading() {\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction doneLoading() {\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tfunction goToPasswordPolicy(passwordPolicyId) {\r\n\t\t\t\t$state.go('administration.home.deployment.passwordPolicies.details', { passwordPolicyId: passwordPolicyId });\r\n\t\t\t}\r\n\r\n\t\t\tloadPasswordPolicies();\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 196 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/passwordPolicies/passwordPolicies.template.html';\n\tvar html = \" 0\\\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{policy.Active === true ? 'check' : ''}}\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

{{policy.Name}}

\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Active Policy'| translate}}

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tlock_open\\r\\n\\t\\t
\\r\\n\\t\\t

You haven't created any password policies

\\r\\n\\t\\t

Create one by clicking here or the plus sign in the top right corner

\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 197 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(198);\r\n\t__webpack_require__(200);\n\n/***/ },\n/* 198 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 199 */,\n/* 200 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(201);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminPasswordPolicy\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminPasswordPolicy` displays a PasswordPolicy to add/edit\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} PasswordPolicyId The id of the PasswordPolicy to display\r\n\t\t */\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.directive('sbadminPasswordPolicy',\r\n\t\t\t[\r\n\t\t\t\tPasswordPolicyDirective\r\n\t\t\t])\r\n\t\t\t.controller('sbadminPasswordPolicyController',\r\n\t\t\t[\r\n\t\t\t\t'sbToastService',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'sbadminPasswordPolicyDataStore',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tPasswordPolicyController\r\n\t\t\t]);\r\n\r\n\t\tfunction PasswordPolicyDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminPasswordPolicyController',\r\n\t\t\t\tcontrollerAs: 'ppCtrl',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tpasswordPolicyId: '@'\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction PasswordPolicyController(sbToastService, $state, sbadminPasswordPolicyDataStore, sbadminToolbarService, pxProgressService, gettextCatalog) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.loading = false;\r\n\t\t\tself.doneLoading = doneLoading;\r\n\t\t\tself.save = save;\r\n\t\t\tself.ppDS = sbadminPasswordPolicyDataStore;\r\n\t\t\tself.updateActiveStatus = updateActiveStatus;\r\n\r\n\t\t\tsbadminToolbarService.title = self.passwordPolicyId ? gettextCatalog.getString('Edit Password Policy') : gettextCatalog.getString('Create Password Policy');\r\n\t\t\t\r\n\t\t\tsbadminToolbarService.showFilter = false;\r\n\t\t\tsbadminToolbarService.actions = [];\r\n\r\n\t\t\tfunction loadPasswordPolicy() {\r\n\t\t\t\tisLoading();\r\n\r\n\t\t\t\tsbadminPasswordPolicyDataStore.getPasswordPolicy(self.passwordPolicyId)\r\n\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\tdoneLoading();\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateActiveStatus() {\r\n\t\t\t\tif (self.loading || !self.passwordPolicyId) { return; }\r\n\r\n\t\t\t\tif (self.ppDS.passwordPolicy.Active) {\r\n\t\t\t\t\tself.ppDS.activatePasswordPolicy(self.passwordPolicyId).then(function () {\r\n\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('{{name}} policy is now activated.', { name: self.ppDS.passwordPolicy.Name }));\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.ppDS.deactivatePasswordPolicy(self.passwordPolicyId).then(function () {\r\n\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('{{name}} policy is now deactivated.', { name: self.ppDS.passwordPolicy.Name }));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction save() {\r\n\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\tisLoading();\r\n\r\n\t\t\t\tself.ppDS.savePasswordPolicy()\r\n\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\tsbToastService.showSimple(self.passwordPolicyId ? gettextCatalog.getString('Password policy saved!') : gettextCatalog.getString('Password policy created!'));\r\n\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t}\r\n\r\n\t\t\tfunction isLoading() {\r\n\t\t\t\tself.loading = true;\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction doneLoading() {\r\n\t\t\t\tself.loading = false;\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tloadPasswordPolicy();\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 201 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/passwordPolicy/passwordPolicy.template.html';\n\tvar html = \"
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tcheck\\r\\n\\t\\t\\t\\tclose\\r\\n\\t\\t\\t\\t

Active Policy

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
You must supply a name.
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tYour name must be less than 50 characters.\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Complexity

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Rotation

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Allow Reuse' | translate }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Prevent Reuse' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Prevent Reuse Within (n) Days' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{'Prevent Reuse Within (n) Changes' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Change Frequency

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Require (n) Hours Between Changes' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Expire Every (n) Days' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Content Quotas

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Account Lockout

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Lockout After (n) Failed Logins' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

{{::'Lockout After Idle (n) Days' | translate}}

\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Manual Release by Administrator' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Auto Release After (n) Minutes' | translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t {{::'Update' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t {{::'Create' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 202 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(203);\r\n\t__webpack_require__(205);\r\n\n\n/***/ },\n/* 203 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 204 */,\n/* 205 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(206);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminPendingDeployment\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminPendingDeployment` Displays pending deployment for editing\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} pendingDeploymentId The id of the pending deployment to edit\r\n\t\t */\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminPendingDeployment', DeploymentCreateDirective)\r\n\t\t\t.controller('sbadminPendingDeploymentController', [\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'sbadminPendingDeploymentsDataStore',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'sbToastService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'$mdDialog',\r\n\t\t\t\t'$q',\r\n\t\t\t\tPendingDeploymentController\r\n\t\t\t]).config(['$stateProvider', function ($stateProvider) {\r\n\t\t\t\t$stateProvider.state('administration.home.pendingDeployment', {\r\n\t\t\t\t\turl: 'pending-deployment/:pendingDeploymentId',\r\n\t\t\t\t\tviews: {\r\n\t\t\t\t\t\t'adminContent@administration': {\r\n\t\t\t\t\t\t\ttemplate: function (params) { return ''; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tresolve: {\r\n\t\t\t\t\t\tselectedDeployment: ['$stateParams', 'sbadminPendingDeploymentsDataStore', 'pxProgressService',\r\n\t\t\t\t\t\t\tfunction ($stateParams, sbadminPendingDeploymentsDataStore, pxProgressService) {\r\n\t\t\t\t\t\t\t\tpxProgressService.backdrop = false;\r\n\t\t\t\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.load();\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}]);\r\n\t\tfunction DeploymentCreateDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminPendingDeploymentController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\tscope: {\r\n\t\t\t\t\tpendingDeploymentId: '@'\r\n\t\t\t\t},\r\n\t\t\t\tlink: function (scope, element, attrs) { }\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction PendingDeploymentController(sbadminToolbarService, sbadminPendingDeploymentsDataStore, pxProgressService, $state, sbToastService, gettextCatalog, $mdDialog, $q) {\r\n\t\t\tvar vm = this;\r\n\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Pending Deployment');\r\n\t\t\tsbadminToolbarService.showFilter = false;\r\n\r\n\t\t\tvm.pendingDeployment = {};\r\n\t\t\tvm.saveAndResend = saveAndResend;\r\n\t\t\tvm.cancel = cancel;\r\n\t\t\tvm.save = save;\r\n\t\t\tvm.resend = resend;\r\n\t\t\tvm.error = false;\r\n\t\t\tvm.errorMessage = null;\r\n\t\t\tshowProgress();\r\n\r\n\t\t\tvar confirm = $mdDialog.confirm()\r\n\t\t\t\t.title(gettextCatalog.getString('Save Pending Deployment'))\r\n\t\t\t\t.textContent(gettextCatalog.getString('Would you to save your changes before resending a notification link?'))\r\n\t\t\t\t.ok(gettextCatalog.getString('Yes'))\r\n\t\t\t\t.cancel(gettextCatalog.getString('No'));\r\n\r\n\t\t\tfunction cancel() {\r\n\t\t\t\t$state.go('^');\r\n\t\t\t}\r\n\r\n\t\t\tfunction resend() {\r\n\t\t\t\tif (vm.form.$valid) {\r\n\t\t\t\t\tvar promise = $q.resolve();\r\n\t\t\t\t\tif (vm.form.$dirty) {\r\n\t\t\t\t\t\t// Ask the user if they would like to save their changes before resending the registration link\r\n\t\t\t\t\t\tpromise = $mdDialog.show(confirm)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tshowProgress();\r\n\t\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.save(vm.pendingDeployment)\r\n\t\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Deployment saved.'));\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t\t\t// No-op the dismissive action of the dialog.\r\n\t\t\t\t\t\t\t\t// This prevents the raised exception of the dialog from bubbling to the outer catch()\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpromise.then(function (response) {\r\n\t\t\t\t\t\tshowProgress();\r\n\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.resendNotification(vm.pendingDeployment)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Notification resent.'));\r\n\t\t\t\t\t\t\t\tactionComplete();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction save() {\r\n\t\t\t\tif (vm.form.$valid) {\r\n\t\t\t\t\tshowProgress();\r\n\t\t\t\t\tsbadminPendingDeploymentsDataStore.save(vm.pendingDeployment)\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Deployment saved.'));\r\n\t\t\t\t\t\t\tactionComplete();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction saveAndResend() {\r\n\t\t\t\tif (vm.form.$valid) {\r\n\t\t\t\t\tshowProgress();\r\n\r\n\t\t\t\t\t// Cannot use $q.all[] since save must occur first\r\n\t\t\t\t\tsbadminPendingDeploymentsDataStore.save(vm.pendingDeployment)\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\treturn sbadminPendingDeploymentsDataStore.resendNotification(vm.pendingDeployment);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Deployment saved. Notification resent.'));\r\n\t\t\t\t\t\t\tactionComplete();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(showError)\r\n\t\t\t\t\t\t.finally(hideProgress);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction actionComplete() {\r\n\t\t\t\thideProgress();\r\n\t\t\t\tvm.error = false;\r\n\t\t\t\t$state.go('^');\r\n\t\t\t}\r\n\r\n\t\t\tfunction showProgress() {\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction hideProgress() {\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tfunction showError(response) {\r\n\t\t\t\tvm.error = true;\r\n\t\t\t\tif (response.data) {\r\n\t\t\t\t\tif (angular.isString(response.data)) {\r\n\t\t\t\t\t\tvm.errorMessage = response.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (response.data.ExceptionMessage && angular.isString(response.data.ExceptionMessage)) {\r\n\t\t\t\t\t\tvm.errorMessage = response.data.ExceptionMessage;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('An unexpected error has occurred.');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsbadminPendingDeploymentsDataStore.getPendingDeployment(vm.pendingDeploymentId)\r\n\t\t\t\t.then(function (pendingDeployment) {\r\n\t\t\t\t\tvm.pendingDeployment = pendingDeployment;\r\n\t\t\t\t})\r\n\t\t\t\t.catch(showError)\r\n\t\t\t\t.finally(hideProgress);\r\n\t\t}\r\n\t} ());\n\n/***/ },\n/* 206 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/pendingDeployment/pendingDeployment.template.html';\n\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\tError processing request\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
Customer Identifier must be less than 40 characters.
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tSave\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tSave & Resend\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tResend\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tCancel\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 207 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(208);\r\n\t__webpack_require__(210);\n\n/***/ },\n/* 208 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 209 */,\n/* 210 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(211);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbStatisticCard\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbStatisticCard` creates a statistic card that displays an icon, label and value\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbStatisticCard', [StatisticCardDirective])\r\n\t\t\t.controller('sbStatisticCardController', [\r\n\t\t\t\tStatisticCardController\r\n\t\t\t]);\r\n\r\n\t\tfunction StatisticCardDirective($timeout, $animate) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbStatisticCardController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tscope: {\r\n\t\t\t\t\ticon: '@',\r\n\t\t\t\t\tlabel: '@',\r\n\t\t\t\t\tvalue: '=value'\r\n\t\t\t\t},\r\n\t\t\t\tbindToController: true,\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction StatisticCardController() {\r\n\t\t}\r\n\t} ());\n\n/***/ },\n/* 211 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/statisticCard/statisticCard.template.html';\n\tvar html = \"\\r\\n\\t
\\r\\n\\t\\t{{vm.icon}}\\r\\n\\t\\t{{vm.value}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t{{vm.label}}\\r\\n\\t\\t\\r\\n\\t\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 212 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(213);\r\n\t__webpack_require__(215);\n\n/***/ },\n/* 213 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 214 */,\n/* 215 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(216);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminStatistics\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminStatistics` displays a deployments statistics\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminStatistics', [\r\n\t\t\t\t'$timeout',\r\n\t\t\t\tStatisticsDirective])\r\n\t\t\t.controller('sbadminStatisticsController', [\r\n\t\t\t\t'$mdMedia',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tStatisticsController\r\n\t\t\t]);\r\n\t\tfunction StatisticsDirective($timeout) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminStatisticsController',\r\n\t\t\t\tcontrollerAs: 'statisticsCtrl',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tdeploymentId:'@'\r\n\t\t\t\t},\r\n\t\t\t\tscope: true,\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tscope.statisticsCtrl.toggleSearch = function () {\r\n\t\t\t\t\t\tscope.statisticsCtrl.showSearch = !scope.statisticsCtrl.showSearch;\r\n\t\t\t\t\t\tif (!scope.statisticsCtrl.showSearch) {\r\n\t\t\t\t\t\t\tscope.statisticsCtrl.filterPhrase = '';\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvar input = element.find('md-input-container').find('input')[0];\r\n\t\t\t\t\t\t\tinput.focus();\r\n\t\t\t\t\t\t}, 400);\r\n\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction StatisticsController($mdMedia, sbadminToolbarService, gettextCatalog) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Statistics');\r\n\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\tsbadminToolbarService.showFilter = true;\r\n\t\t\tself.stepIndex = 0;\r\n\t\t\tself.recentStats = null;\r\n\t\t\tself.stats = null;\r\n\t\t\tself.users = null;\r\n\t\t\tself.statType = null;\r\n\t\t\tself.statIcon = statIcon;\r\n\t\t\tself.chartObject = null;\r\n\r\n\t\t\tfunction statIcon(type) {\r\n\t\t\t\tswitch (type) {\r\n\t\t\t\t\tcase 'ByUser':\r\n\t\t\t\t\t\treturn 'person';\r\n\t\t\t\t\tcase 'ByDate':\r\n\t\t\t\t\t\treturn 'date_range';\r\n\t\t\t\t\tcase 'ByInstance':\r\n\t\t\t\t\t\treturn 'data_usage';\r\n\t\t\t\t\tcase 'Custom':\r\n\t\t\t\t\t\treturn 'assessment';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t//initialize\r\n\t\t\t(function loadStats() {\r\n\t\t\t\tself.recentStats = [\r\n\t\t\t\t\t{ type:'deployment', target:'Content Downloaded by Data', runDate:'2016-04-08T17:04:06.593Z', favorite:true},\r\n\t\t\t\t\t{ type: 'user', target: 'jeff ', runDate: '2016-04-06T17:04:08.593Z', favorite: true },\r\n\t\t\t\t\t{ type: 'deployment', target: 'Content Downloaded by User', runDate: '2016-04-07T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t{ type: 'deployment', target: 'Security Violations by Date', runDate: '2016-04-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t{ type: 'deployment', target: 'Security Violations by Date', runDate: '2016-04-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t{ type: 'deployment', target: 'Shared by User', runDate: '2016-04-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t{ type: 'user', target: 'Random User', runDate: '2016-03-06T17:04:06.593Z', favorite: false },\r\n\t\t\t\t\t{ type: 'user', target: 'Random User', runDate: '2016-03-06T17:04:06.593Z', favorite: false }\r\n\t\t\t\t];\r\n\r\n\t\t\t\tself.users = [{\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Frank Menoni',\r\n\t\t\t\t\t'name': 'Frank Menoni',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Statistics for user Frank Menoni',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/8/statistics',\r\n\t\t\t\t\t'$$hashKey': 'object:2220'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'jeff',\r\n\t\t\t\t\t'name': 'jeff',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Statistics for user jeff',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/6/statistics',\r\n\t\t\t\t\t'$$hashKey': 'object:2221'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Jeff Home',\r\n\t\t\t\t\t'name': 'Jeff Home',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Statistics for user Jeff Home',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/9/statistics',\r\n\t\t\t\t\t'$$hashKey': 'object:2222'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Random User',\r\n\t\t\t\t\t'name': 'Random User',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Statistics for user Random User',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/10/statistics',\r\n\t\t\t\t\t'$$hashKey': 'object:2223'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Test Share User',\r\n\t\t\t\t\t'name': 'Test Share User',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Statistics for user Test Share User',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/7/statistics',\r\n\t\t\t\t\t'$$hashKey': 'object:2224'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'User Registration Test',\r\n\t\t\t\t\t'name': 'User Registration Test',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Statistics for user User Registration Test',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/users/11/statistics',\r\n\t\t\t\t\t'$$hashKey': 'object:2225'\r\n\t\t\t\t}];\r\n\r\n\t\t\t\tself.stats = [{\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Content Downloaded by Date',\r\n\t\t\t\t\t'name': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'Document content downloaded by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ContentDownloadedByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2154'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Content Downloaded by User',\r\n\t\t\t\t\t'name': 'ContentDownloadedByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Document content downloaded by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ContentDownloadedByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2155'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Deployment Totals',\r\n\t\t\t\t\t'name': 'DeploymentTotalsUsage',\r\n\t\t\t\t\t'kind': 'Custom',\r\n\t\t\t\t\t'description': 'Totals for Deployment',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DeploymentTotalsUsage',\r\n\t\t\t\t\t'$$hashKey': 'object:2156'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Documents Created By Date',\r\n\t\t\t\t\t'name': 'DocumentsCreatedByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'Documents created by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsCreatedByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2157'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Documents Created By User',\r\n\t\t\t\t\t'name': 'DocumentsCreatedByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Documents created by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsCreatedByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2158'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Documents Viewed By Date',\r\n\t\t\t\t\t'name': 'DocumentsViewedByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'The number of documents viewed by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsViewedByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2159'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Documents Viewed By User',\r\n\t\t\t\t\t'name': 'DocumentsViewedByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'The number of documents viewed by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentsViewedByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2160'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Library Disk Usage',\r\n\t\t\t\t\t'name': 'LibraryDiskUsage',\r\n\t\t\t\t\t'kind': 'ByInstance',\r\n\t\t\t\t\t'description': 'The disk utilization for this library.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/LibraryDiskUsage',\r\n\t\t\t\t\t'$$hashKey': 'object:2161'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Logins by Date',\r\n\t\t\t\t\t'name': 'LoginsByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'The number of logins for this deployment by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/LoginsByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2162'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Logins by User',\r\n\t\t\t\t\t'name': 'LoginsByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'The number of logins for this deployment by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/LoginsByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2163'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Security Violations by Date',\r\n\t\t\t\t\t'name': 'SecurityViolationsByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'The number of security violations for this deployment by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/SecurityViolationsByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2164'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Security Violations by User',\r\n\t\t\t\t\t'name': 'SecurityViolationsByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'The number of security violations for this deployment by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/SecurityViolationsByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2165'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Shared by Date',\r\n\t\t\t\t\t'name': 'SharesByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'Document shares by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SharesByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2166'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Shared by User',\r\n\t\t\t\t\t'name': 'SharesByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Document shares by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SharesByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2167'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Shares Downloaded by Date',\r\n\t\t\t\t\t'name': 'ShareContentDownloadedByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'Document shares downloaded by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ShareContentDownloadedByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2168'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Shares Downloaded by User',\r\n\t\t\t\t\t'name': 'ShareContentDownloadedByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Document shares downloaded by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/ShareContentDownloadedByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2169'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Synced by Date',\r\n\t\t\t\t\t'name': 'SyncedByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'Document content synchronized offline by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SyncedByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2170'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Synced by User',\r\n\t\t\t\t\t'name': 'SyncedByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'Document content synchronized offline by user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/SyncedByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2171'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'Core',\r\n\t\t\t\t\t'displayName': 'Tag Count',\r\n\t\t\t\t\t'name': 'DocumentTags',\r\n\t\t\t\t\t'kind': 'Custom',\r\n\t\t\t\t\t'description': 'Number of document tags by tag value.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/Core/DocumentTags',\r\n\t\t\t\t\t'$$hashKey': 'object:2172'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Users Created by Date',\r\n\t\t\t\t\t'name': 'UsersCreatedByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'The number of users created within this deployment by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/UsersCreatedByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2173'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Users Created by User',\r\n\t\t\t\t\t'name': 'UsersCreatedByUser',\r\n\t\t\t\t\t'kind': 'ByUser',\r\n\t\t\t\t\t'description': 'The number of users created witin this deployment by a user.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/UsersCreatedByUser',\r\n\t\t\t\t\t'$$hashKey': 'object:2174'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'scope': 'System',\r\n\t\t\t\t\t'displayName': 'Users Self Registered By Date',\r\n\t\t\t\t\t'name': 'UsersSelfRegisteredByDate',\r\n\t\t\t\t\t'kind': 'ByDate',\r\n\t\t\t\t\t'description': 'The number of users that registered themselves by date.',\r\n\t\t\t\t\t'uri': 'http://dev-024762/sharebase-api/jeff/statistics/System/UsersSelfRegisteredByDate',\r\n\t\t\t\t\t'$$hashKey': 'object:2175'\r\n\t\t\t\t}];\r\n\r\n\t\t\t\tself.userData = [{\r\n\t\t\t\t\t'Id': 'SharesByUser',\r\n\t\t\t\t\t'Label': 'Shared',\r\n\t\t\t\t\t'Count': 9,\r\n\t\t\t\t\t'$$hashKey': 'object:490'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ContentDownloadedByUser',\r\n\t\t\t\t\t'Label': 'Content Downloaded',\r\n\t\t\t\t\t'Count': 6,\r\n\t\t\t\t\t'$$hashKey': 'object:491'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'SyncedByUser',\r\n\t\t\t\t\t'Label': 'Synced',\r\n\t\t\t\t\t'Count': 0,\r\n\t\t\t\t\t'$$hashKey': 'object:492'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'DocumentsCreatedByUser',\r\n\t\t\t\t\t'Label': 'Documents Created',\r\n\t\t\t\t\t'Count': 226,\r\n\t\t\t\t\t'$$hashKey': 'object:493'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ShareContentDownloadedByUser',\r\n\t\t\t\t\t'Label': 'Shares Downloaded',\r\n\t\t\t\t\t'Count': 0,\r\n\t\t\t\t\t'$$hashKey': 'object:494'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'DocumentsViewedByUser',\r\n\t\t\t\t\t'Label': 'Documents Viewed',\r\n\t\t\t\t\t'Count': 350,\r\n\t\t\t\t\t'$$hashKey': 'object:495'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'LibraryDiskUsage',\r\n\t\t\t\t\t'Label': 'Library Disk Usage (MB)',\r\n\t\t\t\t\t'Count': 155315940 / 1024 / 1024,\r\n\t\t\t\t\t'$$hashKey': 'object:496'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'LoginsByUser',\r\n\t\t\t\t\t'Label': 'Logins',\r\n\t\t\t\t\t'Count': 407,\r\n\t\t\t\t\t'$$hashKey': 'object:497'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'SecurityViolationsByUser',\r\n\t\t\t\t\t'Label': 'Security Violations',\r\n\t\t\t\t\t'Count': 48,\r\n\t\t\t\t\t'$$hashKey': 'object:498'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'UsersCreatedByUser',\r\n\t\t\t\t\t'Label': 'Users Created',\r\n\t\t\t\t\t'Count': 2,\r\n\t\t\t\t\t'$$hashKey': 'object:499'\r\n\t\t\t\t}];\r\n\t\t\t\tself.chartObject = {};\r\n\t\t\t\tself.chartObject.type = 'BarChart';\r\n\t\t\t\tself.chartObject.data = {\r\n\t\t\t\t\t'cols': [\r\n\t\t\t\t\t\t{ id: 't', label: 'Stat', type: 'string' },\r\n\t\t\t\t\t\t{ id: 's', label: 'Count', type: 'number' }\r\n\t\t\t\t\t],\r\n\t\t\t\t\t'rows': []\r\n\t\t\t\t};\r\n\r\n\t\t\t\tfor (var i = 0; i < self.userData.length; i++) {\r\n\t\t\t\t\tself.chartObject.data.rows.push({ c: [{ v: self.userData[i].Label }, { v: self.userData[i].Count }] });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.chartObject.options = {\r\n\t\t\t\t\t'backgroundColor': 'transparent',\r\n\t\t\t\t\t'colors': ['#528e42'],\r\n\t\t\t\t\t'legend': { 'position': 'none' }\r\n\t\t\t\t};\r\n\t\t\t\t\r\n\t\t\t\tself.downloads = [{\r\n\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'Label': '1/2/2016',\r\n\t\t\t\t\t'Count': 15,\r\n\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'Label': '1/4/2016',\r\n\t\t\t\t\t'Count': 8,\r\n\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'Label': '1/15/2016',\r\n\t\t\t\t\t'Count': 25,\r\n\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'Label': '2/17/2016',\r\n\t\t\t\t\t'Count': 2,\r\n\t\t\t\t\t'$$hashKey': 'object:797'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'Label': '3/8/2016',\r\n\t\t\t\t\t'Count': 5,\r\n\t\t\t\t\t'$$hashKey': 'object:798'\r\n\t\t\t\t}, {\r\n\t\t\t\t\t'Id': 'ContentDownloadedByDate',\r\n\t\t\t\t\t'Label': '3/23/2016',\r\n\t\t\t\t\t'Count': 3,\r\n\t\t\t\t\t'$$hashKey': 'object:799'\r\n\t\t\t\t}];\r\n\r\n\t\t\t\tself.lineObject = {};\r\n\t\t\t\tself.lineObject.type = 'LineChart';\r\n\t\t\t\tself.lineObject.data = {\r\n\t\t\t\t\t'cols': [\r\n\t\t\t\t\t\t{ id: 't', label: 'Date', type: 'string' },\r\n\t\t\t\t\t\t{ id: 's', label: 'Downloads', type: 'number' }\r\n\t\t\t\t\t],\r\n\t\t\t\t\t'rows': []\r\n\t\t\t\t};\r\n\r\n\t\t\t\tfor (var x = 0; x < self.downloads.length; x++) {\r\n\t\t\t\t\tself.lineObject.data.rows.push({ c: [{ v: self.downloads[x].Label }, { v: self.downloads[x].Count }] });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.lineObject.options = {\r\n\t\t\t\t\t'backgroundColor': 'transparent',\r\n\t\t\t\t\t'colors': ['#528e42'],\r\n\t\t\t\t\t'hAxis': {'slantedText': true, 'slantedTextAngle': 45},\r\n\t\t\t\t\t'vAxis': { 'title': 'Downloads' },\r\n\t\t\t\t\t'legend': {'position': 'none'}\r\n\t\t\t\t};\r\n\t\t\t}());\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 216 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/statistics/statistics.template.html';\n\tvar html = \"
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tStatistic Type\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tstorage\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDeployment\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tperson\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tUser\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tFavorite\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{stat.type === 'deployment' ? 'storage' : 'person'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.target}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.runDate | sbSimpleDateTimeString}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tRecent\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t{{stat.type === 'deployment' ? 'storage' : 'person'}}\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.target }}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.runDate | sbSimpleDateTimeString}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tarrow_back\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t

See Stats for...

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{statisticsCtrl.statIcon(stat.kind)}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.displayName}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{stat.description}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\taccount_circle\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

{{user.displayName}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tarrow_back\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t

Stats for

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tattach_file\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Attach to email'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tstar_border\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{::'Toggle favorite'| translate}}\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvisibility\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Change Chart View'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tassessment\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Bar Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tshow_chart\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Line Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tpie_chart\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Pie Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tbubble_chart\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{::'Bubble Chart'| translate}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
Google Chart Removed
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
Google Chart Removed
\\r\\n\\t\\t\\t\\t
\\r\\n\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 217 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(218);\r\n\t__webpack_require__(220);\n\n/***/ },\n/* 218 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 219 */,\n/* 220 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(221);\r\n\t\tvar userDeleteTemplateUrl = __webpack_require__(222);\r\n\t\tvar deploymentGroupTemplateUrl = __webpack_require__(223);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminUser\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminInviteUsers` form to invite users to a deployment\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment to invite users to\r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} userId The id of the deployment to user to view details\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminUser', [UserDirective])\r\n\t\t\t.controller('sbadminUserController', [\r\n\t\t\t\t'$q',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'$mdDialog',\r\n\t\t\t\t'sbToastService',\r\n\t\t\t\t'sbUserService',\r\n\t\t\t\t'sbUserDataStore',\r\n\t\t\t\t'sbadminDeploymentGroupsDataStore',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'pxAuthService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\tUserController\r\n\t\t\t]);\r\n\r\n\t\tfunction UserDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminUserController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\tuserId: '@',\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction UserController($q, $state, $mdDialog, sbToastService, sbUserService, sbUserDataStore, sbadminDeploymentGroupsDataStore, sbadminToolbarService, pxProgressService, pxAuthService, gettextCatalog, sbDeploymentNameService) {\r\n\t\t\tvar isLoading = true;\r\n\t\t\tvar vm = this;\r\n\t\t\tvar initTasks = [];\r\n\t\t\tvar STATUS_CODES = {\r\n\t\t\t\tERR_USER_ALREADY_TENANT_ADMIN : gettextCatalog.getString('User is already a tenant admin.')\r\n\t\t\t};\r\n\t\t\tvar adminDeploymentGroup = null;\r\n\r\n\t\t\tvm.deploymentGroupsDS = sbadminDeploymentGroupsDataStore;\r\n\t\t\tvm.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tvm.sbUserDataStore = sbUserDataStore;\r\n\t\t\tvm.updateUserLock = updateUserLock;\r\n\t\t\tvm.toggleTenantAdmin = toggleTenantAdmin;\r\n\t\t\tvm.deleteUser = deleteUser;\r\n\t\t\tvm.submitForm = submitForm;\r\n\t\t\tvm.authService = pxAuthService;\r\n\t\t\tvm.toastVisible = false;\r\n\t\t\tvm.errorMessage = null;\r\n\t\t\tvm.systemName = null;\r\n\t\t\tvm.promotingAsAdmin = promotingAsAdmin;\r\n\t\t\tvm.canPromoteSiteAdmins = pxAuthService.isSiteAdmin || pxAuthService.isSysAdmin || pxAuthService.isTenantAdmin;\r\n\r\n\t\t\tsbadminToolbarService.title = !vm.userId ? gettextCatalog.getString('Create User') : gettextCatalog.getString('Edit User');\r\n\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\tsbadminToolbarService.showFilter = false;\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif(pxAuthService.isSysAdmin) {\r\n\t\t\t\tinitTasks.push(sbadminDeploymentGroupsDataStore.load());\r\n\t\t\t}\r\n\t\t\telse if (pxAuthService.isTenantAdmin) {\r\n\t\t\t\t// retrieve the deployment group the logged-in tenant admin administers\r\n\t\t\t\t// to potentially promote the modified user to\r\n\t\t\t\tinitTasks.push(sbUserService\r\n\t\t\t\t\t.getUser(pxAuthService.userId, pxAuthService.deploymentId)\r\n\t\t\t\t\t.then(function(user){\r\n\t\t\t\t\t\tadminDeploymentGroup = user.Embedded.AdministratorOfDeploymentGroups[0];\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tinitTasks.push(sbUserDataStore.getUser(vm.userId, vm.deploymentId));\r\n\r\n\t\t\tif(vm.userId) {\r\n\t\t\t\tvm.sbadminToolbarService.actions.push({ \r\n\t\t\t\t\ticon: 'delete', \r\n\t\t\t\t\tlabel: gettextCatalog.getString('Delete User'), \r\n\t\t\t\t\ttrigger: deleteUser \r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateUserLock() {\r\n\t\t\t\tif (isLoading || !vm.userId) { return; }\r\n\r\n\t\t\t\tif (sbUserDataStore.user.IsLocked) {\r\n\t\t\t\t\tsbUserDataStore.lockUser(sbUserDataStore.user.UserId, vm.deploymentId).then(function () {\r\n\t\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now locked', { userName: sbUserDataStore.user.UserName });\r\n\t\t\t\t\t\ttoast(message);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsbUserDataStore.unlockUser(sbUserDataStore.user.UserId, vm.deploymentId).then(function () {\r\n\t\t\t\t\t\tvar message = gettextCatalog.getString('{{userName}} is now unlocked', { userName: sbUserDataStore.user.UserName });\r\n\t\t\t\t\t\ttoast(message);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction toggleTenantAdmin(isTenantAdmin, ev) {\r\n\t\t\t\tif(isTenantAdmin) {\r\n\t\t\t\t\tif (pxAuthService.isTenantAdmin) { \r\n\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = adminDeploymentGroup;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (pxAuthService.isSysAdmin) {\r\n\t\t\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\t\t\tcontroller: 'sbDeploymentGroupSelectController',\r\n\t\t\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\t\t\ttemplateUrl: deploymentGroupTemplateUrl,\r\n\t\t\t\t\t\t\ttargetEvent: ev,\r\n\t\t\t\t\t\t\tlocals:{groups: sbadminDeploymentGroupsDataStore.groups},\r\n\t\t\t\t\t\t\tclickOutsideToClose: false\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function (group) {\r\n\t\t\t\t\t\t\t//done\r\n\t\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = group;\r\n\t\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t\t//canceled\r\n\t\t\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = null;\r\n\t\t\t\t\t\t\tvm.sbUserDataStore.isTenantAdmin = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsbUserDataStore.deploymentGroupAdmin = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction deleteUser($event) {\r\n\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\tcontroller: 'sbUserDeleteDialogController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: userDeleteTemplateUrl,\r\n\t\t\t\t\ttargetEvent: $event,\r\n\t\t\t\t\tlocals: {\r\n\t\t\t\t\t\tuser: vm.sbUserDataStore.user,\r\n\t\t\t\t\t\tdeploymentID: vm.deploymentId\r\n\t\t\t\t\t},\r\n\t\t\t\t\tclickOutsideToClose: false\r\n\t\t\t\t})\r\n\t\t\t\t.then(function (transferUser) {\r\n\t\t\t\t\t//delete user & reasign content & udate DS\r\n\t\t\t\t\ttransferUser = transferUser ? transferUser : null;\r\n\t\t\t\t\tsbUserDataStore.removeUser(vm.sbUserDataStore.user, vm.deploymentId, transferUser)\r\n\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\tif (response.status === 409) {\r\n\t\t\t\t\t\t\t\t//conflict - user to delete has other users conent\r\n\t\t\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\r\n\t\t\t\t\t\t\t\t\t.title(gettextCatalog.getString('Continue with user deletion?'))\r\n\t\t\t\t\t\t\t\t\t.textContent(gettextCatalog.getString('{{deletedUser}} has content that is owned by a different user, which will be deleted if this user is deleted. ', { deletedUser: vm.sbUserDataStore.user.UserName }))\r\n\t\t\t\t\t\t\t\t\t.ariaLabel(gettextCatalog.getString('Delete User Conflict'))\r\n\t\t\t\t\t\t\t\t\t.ok(gettextCatalog.getString('Continue'))\r\n\t\t\t\t\t\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\r\n\t\t\t\t\t\t\t\treturn $mdDialog.show(confirm).then(function () {\r\n\t\t\t\t\t\t\t\t\t//delete user & force delete shared content\r\n\t\t\t\t\t\t\t\t\tsbUserDataStore.removeUser(vm.sbUserDataStore.user, vm.deploymentId, null, true)\r\n\t\t\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}, angular.noop());\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: vm.sbUserDataStore.user.UserName }));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}, angular.noop());\r\n\t\t\t}\r\n\r\n\t\t\tfunction submitSuccess(response) {\r\n\t\t\t\t//REMOVE for ticket SBWEB-363\r\n\t\t\t\tif (response.Error) {\r\n\t\t\t\t\tsubmitFailure(response.Error);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t//end of REMOVE\r\n\r\n\t\t\t\t//success\r\n\t\t\t\t//route\r\n\t\t\t\t$state.go('^');\r\n\r\n\t\t\t\tvar message = vm.userId !== null ? gettextCatalog.getString('User updated successfully') : gettextCatalog.getString('User created successfully');\r\n\t\t\t\ttoast(message);\r\n\t\t\t}\r\n\r\n\t\t\tfunction submitFailure(e) {\r\n\t\t\t\t//failure\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\tvar msg = e;\r\n\t\t\t\tif(e.data && e.data.StatusCode in STATUS_CODES) {\r\n\t\t\t\t\tmsg += ' ' + STATUS_CODES[e.data.StatusCode];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.errorMessage = msg;\r\n\t\t\t}\r\n\r\n\t\t\tfunction submitForm() {\r\n\t\t\t\tif (vm.userId) {\r\n\t\t\t\t\t//update user\r\n\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\tshowLoader();\r\n\r\n\t\t\t\t\tsbUserDataStore\r\n\t\t\t\t\t\t.updateUser(sbUserDataStore.user, vm.deploymentId)\r\n\t\t\t\t\t\t.then(function(resp) {\r\n\t\t\t\t\t\t\treturn sbUserDataStore\r\n\t\t\t\t\t\t\t\t.updateTenantAdminRights()\r\n\t\t\t\t\t\t\t\t.then(function(){\r\n\t\t\t\t\t\t\t\t\treturn resp;\t\r\n\t\t\t\t\t\t\t\t}); \r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(submitSuccess)\r\n\t\t\t\t\t\t.catch(submitFailure)\r\n\t\t\t\t\t\t.finally(hideLoader);\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//create user\r\n\t\t\t\t\tif (sbUserDataStore.user.Password !== vm.VerifyPassword) {\r\n\t\t\t\t\t\tvm.errorMessage = gettextCatalog.getString('Passwords do not match');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\t\tshowLoader();\r\n\t\t\t\t\tvm.errorMessage = null;\r\n\r\n\t\t\t\t\tsbUserDataStore\r\n\t\t\t\t\t\t.addUser(sbUserDataStore.user, vm.systemName)\r\n\t\t\t\t\t\t.then(submitSuccess)\r\n\t\t\t\t\t\t.catch(submitFailure)\r\n\t\t\t\t\t\t.finally(hideLoader);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction toast(message) {\r\n\t\t\t\tvm.toastVisible = true;\r\n\t\t\t\tsbToastService.showSimple(message)\r\n\t\t\t\t\t.finally(function() {\r\n\t\t\t\t\t\tvm.toastVisible = false;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction showLoader() {\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\t\t\tfunction hideLoader() {\r\n\t\t\t\tisLoading = false;\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\t\t\tfunction promotingAsAdmin() {\r\n\t\t\t\tif (vm.sbUserDataStore.isSiteAdmin) {\r\n\t\t\t\t\tvm.sbUserDataStore.isUserAdmin = true;\r\n\t\t\t\t}\r\n\t\t\t}\t\r\n\r\n\t\t\tpxProgressService.visible = true;\r\n\t\t\t$q.all(initTasks)\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t\treturn sbDeploymentNameService.resolveSystemName(vm.deploymentId)\r\n\t\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\t\tvm.systemName = systemName;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t\t.finally(hideLoader);\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 221 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/user/user.template.html';\n\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t{{::'User Settings' | translate}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tlock\\r\\n\\t\\t\\t\\t\\t

Lock Account

\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{::'User Roles' | translate}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tgroup_work\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

Tenant Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow user to administer a group of deployments.

\\r\\n\\t\\t\\t\\t\\t

No group assigned

\\r\\n\\t\\t\\t\\t\\t

Assigned Group: {{vm.sbUserDataStore.deploymentGroupAdmin.GroupName}}

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\tsettings\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t

Site Administrator

\\r\\n\\t\\t\\t\\t\\t

Allow users to control features of this deployment such as libraries, password policies, API tokens, statistics and logs.

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tpeople\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

User Administrator

\\r\\n\\t\\t\\t\\t\\t\\t

Allow users to add/edit/delete users and groups for this deployment.

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\t\\t\\t\\r\\n\\t\\t\\t{{::'Update' | translate}}\\r\\n\\t\\t\\t{{::'Create' | translate}}\\r\\n\\t\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 222 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/userDeleteDialog/userDeleteDialog.template.html';\n\tvar html = \"\\r\\n\\t\\r\\n\\t\\t

Would you like to delete this user?

\\r\\n\\t\\t

The account and content for \\\"{{::vm.user.UserName}}\\\" will be deleted. If you'd like to keep this user's content please select the user to transfer it's ownership to below.

\\r\\n\\t\\t\\r\\n\\t\\t\\tIf no new owner is selected the content will be purged!\\r\\n\\t\\t\\r\\n\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{'Delete & Purge Content' | translate}}\\r\\n\\t\\t\\t{{'Delete & Transfer Content' | translate}}\\r\\n\\t\\t\\r\\n\\t\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 223 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/deploymentGroupSelectDialog/deploymentGroupSelectDialog.template.html';\n\tvar html = \"\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

Choose the deployment group to administer

\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{group.GroupName}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t{{::'Cancel' | translate}}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t{{::'Done' | translate}}\\r\\n\\t\\t\\r\\n\\t\\r\\n
\\r\\n\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 224 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(225);\r\n\t__webpack_require__(227);\n\n/***/ },\n/* 225 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 226 */,\n/* 227 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.controller('sbUserDeleteDialogController', [\r\n\t\t\t\t'$q',\r\n\t\t\t\t'$mdDialog',\r\n\t\t\t\t'sbDeploymentService',\r\n\t\t\t\t'sbUsersDataStore',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'user',\r\n\t\t\t\t'deploymentID',\r\n\t\t\t\tUserDeleteDialogController]);\r\n\r\n\t\tfunction UserDeleteDialogController($q, $mdDialog, sbDeploymentService, sbUsersDataStore, gettextCatalog, user, deploymentID) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.user = user;\r\n\t\t\tvm.users = null;\r\n\t\t\tvm.querySearch = querySearch;\r\n\t\t\tvm.selectedUser = null;\r\n\t\t\tvm.cancel = function () {\r\n\t\t\t\t$mdDialog.cancel();\r\n\t\t\t};\r\n\t\t\tvm.delete = function () {\r\n\t\t\t\t$mdDialog.hide(vm.transferUser);\r\n\t\t\t};\r\n\r\n\t\t\tfunction getUsers() {\r\n\t\t\t\tif (!vm.users) {\r\n\t\t\t\t\treturn sbDeploymentService.getDetails(deploymentID)\r\n\t\t\t\t\t\t.then(function (deployment) {\r\n\t\t\t\t\t\t\treturn sbUsersDataStore.getUsers(deployment.SystemName);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then(function (users) {\r\n\t\t\t\t\t\t\tvm.users = users;\r\n\t\t\t\t\t\t\treturn vm.users;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn $q.resolve(vm.users);\r\n\t\t\t}\r\n\t\t\tfunction querySearch(query) {\r\n\t\t\t\treturn getUsers()\r\n\t\t\t\t\t.then(function (users) {\r\n\t\t\t\t\t\tvar results = query ? users.filter(createFilterFor(query)) : [];\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfunction createFilterFor(query) {\r\n\t\t\t\tvar lowercaseQuery = angular.lowercase(query);\r\n\t\t\t\treturn function filterFn(u) {\r\n\t\t\t\t\t//search username and email\r\n\t\t\t\t\tvar combinedUser = u.UserName + ' ' + u.EmailAddress;\r\n\t\t\t\t\treturn (combinedUser.indexOf(lowercaseQuery) > -1);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 228 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(229);\r\n\t__webpack_require__(231);\n\n/***/ },\n/* 229 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 230 */,\n/* 231 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(232);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminUserGroup\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminAddEditUserGroup` displays a User Group to add/edit\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} UserGroupId The id of the User Group to display\r\n\t\t */\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.directive('sbadminUserGroup',[\r\n\t\t\t\tUserGroupDirective\r\n\t\t\t])\r\n\t\t\t.controller('sbadminUserGroupController',[\r\n\t\t\t\t'$q',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'$mdMedia',\r\n\t\t\t\t'sbToastService',\r\n\t\t\t\t'sbUserGroupDataStore',\r\n\t\t\t\t'sbUsersDataStore',\r\n\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tUserGroupController\r\n\t\t\t]);\r\n\r\n\t\tfunction UserGroupDirective() {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminUserGroupController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t\tuserGroupId: '@'\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction UserGroupController($q, $state, $mdMedia, sbToastService, sbUserGroupDataStore, sbUsersDataStore, sbDeploymentNameService, sbadminToolbarService, pxProgressService, gettextCatalog) {\r\n\t\t\tvar vm = this;\r\n\t\t\tvm.loading = false;\r\n\t\t\tvm.mdMedia = $mdMedia;\r\n\t\t\tvm.doneLoading = doneLoading;\r\n\t\t\tvm.userGroupDS = sbUserGroupDataStore;\r\n\t\t\tvm.usersDS = sbUsersDataStore;\r\n\t\t\tvm.save = save;\r\n\t\t\tvm.textCatalog = gettextCatalog;\r\n\t\t\tvm.systemName = null;\r\n\t\t\tvm.MaxLinkExpirationDays = null;\r\n\t\t\tvm.MinLinkAuthenticationType = null;\r\n\t\t\t\r\n\t\t\tsbadminToolbarService.title = vm.userGroupId ? gettextCatalog.getString('Edit User Group') : gettextCatalog.getString('Create User Group');\r\n\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\tsbadminToolbarService.showFilter = false;\r\n\r\n\t\t\tfunction loadUserGroup() {\r\n\t\t\t\tisLoading();\r\n\r\n\t\t\t\tsbDeploymentNameService.resolveSystemName(vm.deploymentId)\r\n\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\tvm.systemName = systemName;\r\n\t\t\t\t\t\tvar initTasks = [\r\n\t\t\t\t\t\t\tvm.userGroupDS.getUserGroup(vm.userGroupId, systemName),\r\n\t\t\t\t\t\t\tvm.usersDS.getUsers(systemName)\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\tif (vm.userGroupId) {\r\n\t\t\t\t\t\t\tinitTasks.push(vm.userGroupDS.getUserGroupPolicy(vm.userGroupId));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn $q.all(initTasks);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\tif (vm.userGroupId) {\r\n\t\t\t\t\t\t\tvm.MaxLinkExpirationDays = vm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays;\r\n\t\t\t\t\t\t\tvm.expirationSelection = vm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays === null ? 0 : 1;\r\n\t\t\t\t\t\t\tvm.MinLinkAuthenticationType = vm.userGroupDS.userGroupPolicy.MinLinkAuthenticationType === -1 ? 0 : vm.userGroupDS.userGroupPolicy.MinLinkAuthenticationType;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t}\r\n\r\n\t\t\tfunction save() {\r\n\t\t\t\tpxProgressService.backdrop = true;\r\n\t\t\t\tisLoading();\r\n\r\n\t\t\t\tvar initTasks = [];\r\n\r\n\t\t\t\tif (vm.userGroupId) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.expirationSelection === 0) {\r\n\t\t\t\t\t\tvm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.userGroupDS.userGroupPolicy.MaxLinkExpirationDays = vm.MaxLinkExpirationDays;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.userGroupDS.userGroupPolicy.MinLinkAuthenticationType = vm.MinLinkAuthenticationType;\t\r\n\r\n\t\t\t\t\t// system groups can only have their policy edited, but not \r\n\t\t\t\t\t// membership or details\r\n\t\t\t\t\tinitTasks.push(vm.userGroupDS.saveUserGroupPolicy(vm.userGroupDS.userGroupPolicy));\r\n\r\n\t\t\t\t\tif(!vm.userGroupDS.userGroup.isSystemGroup) {\r\n\t\t\t\t\t\tinitTasks.push(vm.userGroupDS.saveUserGroup(vm.systemName));\r\n\t\t\t\t\t}\r\n\t\t\t\t} \r\n\t\t\t\telse {\r\n\t\t\t\t\tinitTasks.push(vm.userGroupDS.saveUserGroup(vm.systemName));\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn $q.all(initTasks)\r\n\t\t\t\t\t.then(function (responses) {\r\n\t\t\t\t\t\tvm.userGroup = responses[0];\r\n\t\t\t\t\t\t$state.go('^');\r\n\t\t\t\t\t\tsbToastService.showSimple(vm.userGroupId ? gettextCatalog.getString('User group saved!') : gettextCatalog.getString('New user group created!'));\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t}\r\n\r\n\t\t\tfunction isLoading() {\r\n\t\t\t\tvm.loading = true;\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction doneLoading() {\r\n\t\t\t\tvm.loading = false;\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\r\n\t\t\tloadUserGroup();\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 232 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/userGroup/userGroup.template.html';\n\tvar html = \"
\\r\\n\\t
\\r\\n\\t\\t{{vm.errorMessage}}\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t

{{::vm.userGroupDS.userGroup.name}}

\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\twarning\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\tSettings within this System User Group are the default for all users\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
You must supply a User Group name.
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\tYour name must be less than 50 characters.\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Assigned Users

\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Share Link Settings

\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tNo Restrictions\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tDefault\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tEmail Secure Password\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tNo Maximum\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tDefault\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tDays\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tYou cannot exceed 999 days\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tYou must supply a valid duration\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tYou must supply a duration\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t{{ vm.userGroupDS.userGroup.id ? vm.textCatalog.getString('Update') : vm.textCatalog.getString('Create') }}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\tCancel\\r\\n\\t\\t\\r\\n\\t
\\r\\n
\\r\\n\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 233 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(234);\r\n\t__webpack_require__(236);\n\n/***/ },\n/* 234 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 235 */,\n/* 236 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(237);\r\n\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminUserGroups\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminUserGroups` displays a deployments user groups\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminUserGroups',\r\n\t\t\t[\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\tUserGroupsDirective\r\n\t\t\t])\r\n\t\t\t.controller('sbadminUserGroupsController', [\r\n\t\t\t\t'$state',\r\n\t\t\t\t'sbUserGroupsDataStore',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tUserGroupsController\r\n\t\t\t]);\r\n\t\t\r\n\t\tfunction UserGroupsDirective(sbadminToolbarService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminUserGroupsController',\r\n\t\t\t\tcontrollerAs: 'userGroupsCtrl',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction UserGroupsController($state, sbUserGroupsDataStore, sbadminToolbarService, sbDeploymentNameService, pxProgressService, gettextCatalog) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.loading = false;\r\n\t\t\tself.userGroupDS = sbUserGroupsDataStore;\r\n\t\t\tself.editGroup = editGroup;\r\n\r\n\t\t\tself.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tsbadminToolbarService.title = gettextCatalog.getString('User Groups');\r\n\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find user groups');\r\n\t\t\tsbadminToolbarService.actions = [{ icon: 'add', label: gettextCatalog.getString('Create Group'), trigger: function () { $state.go('administration.home.deployment.userGroups.details'); } }];\r\n\t\t\tsbadminToolbarService.showFilter = true;\t\t\r\n\r\n\t\t\t(function loadUserGroups() {\r\n\t\t\t\tisLoading();\r\n\t\t\t\tsbDeploymentNameService\r\n\t\t\t\t\t.resolveSystemName(self.deploymentId)\r\n\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\tself.systemName = systemName;\r\n\t\t\t\t\t\treturn sbUserGroupsDataStore\r\n\t\t\t\t\t\t\t.getUserGroups(systemName);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(doneLoading);\r\n\t\t\t})();\r\n\r\n\t\t\tfunction editGroup(group) {\r\n\t\t\t\t$state.go('administration.home.deployment.userGroups.details', { userGroupId: group.UserGroupId });\r\n\t\t\t}\r\n\r\n\t\t\tfunction isLoading() {\r\n\t\t\t\tself.loading = true;\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t}\r\n\r\n\t\t\tfunction doneLoading() {\r\n\t\t\t\tself.loading = false;\r\n\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 237 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/userGroups/userGroups.template.html';\n\tvar html = \" 0\\\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\tperm_identity\\r\\n\\t\\t\\t\\t\\tsupervisor_account\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

{{ group.UserGroupName }}

\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t{{userCount}} users in group\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\tgroup\\r\\n\\t\\t
\\r\\n\\t\\t

You haven't created any user groups

\\r\\n\\t\\t

Create one by clicking here or the plus sign in the top right corner

\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 238 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(239);\r\n\t__webpack_require__(241);\n\n/***/ },\n/* 239 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 240 */,\n/* 241 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tvar templateUrl = __webpack_require__(242);\r\n\t\tvar userDeleteTemplateUrl = __webpack_require__(222);\r\n\t\t\r\n\t\t/**\r\n\t\t * @ngdoc directive\r\n\t\t * @name sharebase-admin.directive:sbadminUsers\r\n\t\t * @module sharebase-admin\r\n\t\t * @restrict E\r\n\t\t * @description\r\n\t\t *\r\n\t\t * `sbadminUsers` displays a deployments users\r\n\t\t *\r\n\t\t * @usage\r\n\t\t *\r\n\t\t * \r\n\t\t * \r\n\t\t * @element input\r\n\t\t * @param {number=} deploymentId The id of the deployment display api tokens for\r\n\t\t */\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.directive('sbadminUsers', [\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\tUsersDirective])\r\n\t\t\t.controller('sbadminUsersController', [\r\n\t\t\t\t'$q',\r\n\t\t\t\t'$state',\r\n\t\t\t\t'$mdDialog',\r\n\t\t\t\t'sbUserDataStore',\r\n\t\t\t\t'sbUsersDataStore',\r\n\t\t\t\t'sbadminToolbarService',\r\n\t\t\t\t'sbDeploymentService',\r\n\t\t\t\t'pxProgressService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\t'sbToastService',\r\n\t\t\t\t'sbDeploymentNameService',\r\n\t\t\t\tUsersController]);\r\n\r\n\t\tfunction UsersDirective(sbadminToolbarService) {\r\n\t\t\treturn {\r\n\t\t\t\trestrict: 'E',\r\n\t\t\t\tcontroller: 'sbadminUsersController',\r\n\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\ttemplateUrl: templateUrl,\r\n\t\t\t\tbindToController: {\r\n\t\t\t\t\tdeploymentId: '@',\r\n\t\t\t\t},\r\n\t\t\t\tscope: {},\r\n\t\t\t\tlink: function (scope, element, attrs) {\r\n\t\t\t\t\tscope.$on('$destroy', function () {\r\n\t\t\t\t\t\tsbadminToolbarService.filterPlaceholder = null;\r\n\t\t\t\t\t\tsbadminToolbarService.actions = [];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\t\r\n\t\tfunction UsersController($q, $state, $mdDialog, sbUserDataStore, sbUsersDataStore, sbadminToolbarService, sbDeploymentService, pxProgressService, gettextCatalog, sbToastService, sbDeploymentNameService) {\r\n\t\t\tvar vm = this;\r\n\r\n\t\t\t// Attribute translations do not support comments and a comment was requested for this string\t\t\r\n\t\t\t/// Used as a label above a list of registered users\r\n\t\t\tvm.registeredLabel = gettextCatalog.getString('Registered');\r\n\r\n\t\t\tvm.sbUsersDataStore = sbUsersDataStore;\r\n\t\t\tvm.sbadminToolbarService = sbadminToolbarService;\r\n\t\t\tvm.pxProgressService = pxProgressService;\r\n\t\t\tvm.inviteUsers = inviteUsers;\r\n\t\t\tvm.editUser = editUser;\r\n\t\t\tvm.deleteUser = deleteUser;\r\n\t\t\tsbadminToolbarService.title = gettextCatalog.getString('Users');\r\n\t\t\tsbadminToolbarService.filterPlaceholder = gettextCatalog.getString('Find users');\r\n\t\t\tsbadminToolbarService.actions = [\r\n\t\t\t\t{ icon: 'person_add', label: gettextCatalog.getString('Create User'), trigger: createUser },\r\n\t\t\t\t{ icon: 'email', label: gettextCatalog.getString('Invite Users'), trigger: vm.inviteUsers }\r\n\t\t\t];\r\n\t\t\tsbadminToolbarService.showFilter = true;\r\n\r\n\t\t\tfunction inviteUsers() {\r\n\t\t\t\t$state.go('administration.home.deployment.users.invite');\r\n\t\t\t}\r\n\t\t\tfunction editUser(user) {\r\n\t\t\t\t$state.go('administration.home.deployment.users.details', { deploymentID: vm.deploymentId, userID: user.UserId });\r\n\t\t\t}\r\n\r\n\t\t\tfunction createUser() {\r\n\t\t\t\t$state.go('administration.home.deployment.users.details', { deploymentID: vm.deploymentId, userID: '' });\r\n\t\t\t}\r\n\t\t\tfunction deleteUser($event, userToDelete) {\r\n\t\t\t\t$mdDialog.show({\r\n\t\t\t\t\tcontroller: 'sbUserDeleteDialogController',\r\n\t\t\t\t\tcontrollerAs: 'vm',\r\n\t\t\t\t\ttemplateUrl: userDeleteTemplateUrl,\r\n\t\t\t\t\ttargetEvent: $event,\r\n\t\t\t\t\tlocals: {\r\n\t\t\t\t\t\tuser: userToDelete,\r\n\t\t\t\t\t\tdeploymentID: vm.deploymentId\r\n\t\t\t\t\t},\r\n\t\t\t\t\tclickOutsideToClose: false\r\n\t\t\t\t})\r\n\t\t\t\t\t.then(function (transferUser) {\r\n\t\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\t\t//delete user & reasign content & udate DS\r\n\t\t\t\t\t\ttransferUser = transferUser ? transferUser : null;\r\n\t\t\t\t\t\tsbUserDataStore.removeUser(userToDelete, vm.deploymentId, transferUser)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tremoveUserFromList(userToDelete);\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(function (response) {\r\n\t\t\t\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\t\t\t\tif (response.status === 409) {\r\n\t\t\t\t\t\t\t\t\t//conflict - user to delete has other users conent\r\n\t\t\t\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\r\n\t\t\t\t\t\t\t\t\t\t.title(gettextCatalog.getString('Continue with user deletion?'))\r\n\t\t\t\t\t\t\t\t\t\t.textContent(gettextCatalog.getString('{{deletedUser}} has content that is owned by a different user, which will be deleted if this user is deleted. ', { deletedUser: userToDelete.UserName }))\r\n\t\t\t\t\t\t\t\t\t\t.ariaLabel(gettextCatalog.getString('Delete User Conflict'))\r\n\t\t\t\t\t\t\t\t\t\t.ok(gettextCatalog.getString('Continue'))\r\n\t\t\t\t\t\t\t\t\t\t.cancel(gettextCatalog.getString('Cancel'));\r\n\t\t\t\t\t\t\t\t\treturn $mdDialog.show(confirm).then(function () {\r\n\t\t\t\t\t\t\t\t\t\t//delete user & force delete shared content\r\n\t\t\t\t\t\t\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\t\t\t\t\t\t\treturn sbUserDataStore.removeUser(userToDelete, vm.deploymentId, null, true)\r\n\t\t\t\t\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tremoveUserFromList(userToDelete);\r\n\t\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('User \"{{deletedUser}}\" deleted successfully.', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.catch(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}, angular.noop());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tsbToastService.showSimple(gettextCatalog.getString('Error deleting user \"{{deletedUser}}\".', { deletedUser: userToDelete.UserName }));\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}, angular.noop());\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeUserFromList(removedUser) {\r\n\t\t\t\tvm.sbUsersDataStore.users = vm.sbUsersDataStore.users.filter(function(user){\r\n\t\t\t\t\treturn user.UserId !== removedUser.UserId;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t//initialize\r\n\t\t\t(function loadUsers() {\r\n\t\t\t\tpxProgressService.visible = true;\r\n\t\t\t\tsbDeploymentNameService.resolveSystemName(vm.deploymentId)\r\n\t\t\t\t\t.then(function (systemName) {\r\n\t\t\t\t\t\tvm.systemName = systemName;\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\treturn $q.all([\r\n\t\t\t\t\t\t\tvm.sbUsersDataStore.getUsers(vm.systemName),\r\n\t\t\t\t\t\t\tvm.sbUsersDataStore.getPendingUsers()\r\n\t\t\t\t\t\t]);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(function () {\r\n\t\t\t\t\t\tpxProgressService.visible = false;\r\n\t\t\t\t\t});\r\n\t\t\t} ());\r\n\t\t}\r\n\t} ());\n\n/***/ },\n/* 242 */\n/***/ function(module, exports) {\n\n\tvar path = 'sharebase-admin/components/users/users.template.html';\n\tvar html = \"\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\taccount_circle\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tlock\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{user.UserName}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{user.EmailAddress}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tCreated on {{date}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclear\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t 0\\\" translate-comment=\\\"value between double braces will become a count of users\\\">\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\taccount_circle\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

{{user.EmailAddress}}

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tExpires on {{date}}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\";\n\twindow.angular.module('ng').run(['$templateCache', function(c) { c.put(path, html) }]);\n\tmodule.exports = path;\n\n/***/ },\n/* 243 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\r\n\t__webpack_require__(244);\r\n\t__webpack_require__(245);\r\n\t__webpack_require__(246);\r\n\t__webpack_require__(247);\r\n\t__webpack_require__(248);\r\n\t__webpack_require__(249);\r\n\t__webpack_require__(250);\r\n\t__webpack_require__(251);\r\n\t__webpack_require__(252);\r\n\t__webpack_require__(253);\r\n\t__webpack_require__(254);\r\n\t__webpack_require__(255);\r\n\t__webpack_require__(256);\r\n\t__webpack_require__(257);\r\n\tangular\r\n\t .module('sharebase-admin');\r\n\n\n/***/ },\n/* 244 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminActiveDirectoryService\r\n\t\t* @requires $http\r\n\t\t* @requires $q\r\n\t\t* @requires pxUriPathService\r\n\t\t* @description\r\n\t\t* A service used to interact with the ActiveDirectory sync agent.\r\n\t\t**/\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.factory('sbadminActiveDirectoryService', [\r\n\t\t\t'$http',\r\n\t\t\t'$q',\r\n\t\t\t'pxUriPathService',\r\n\t\t\tActiveDirectoryService\r\n\t\t]);\r\n\r\n\t\tfunction ActiveDirectoryService($http, $q, uriPathService) {\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminActiveDirectoryService#generateSyncSecret\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminActiveDirectoryService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Generates a new ActiveDirectory sync secret.\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {String} A hash to be placed in the config file of the sync agent.\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgenerateSyncSecret: generateSyncSecret\r\n\t\t\t};\r\n\r\n\t\t\tfunction generateSyncSecret(id) {\r\n\t\t\t\tvar uri = uriPathService.resolvePath('/admin/deployments/{id}/newSecret', { id: id });\r\n\t\t\t\treturn $http\r\n\t\t\t\t\t.post(uri)\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\treturn resp.data.Secret;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 245 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminApiTokenService\r\n\t\t* @requires $http\r\n\t\t* @requires pxUriPathService\r\n\t\t* @description\r\n\t\t* A service used to interact with the ActiveDirectory sync agent.\r\n\t\t**/\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminApiTokenService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'pxUriPathService',\r\n\t\t\t\tApiTokenService\r\n\t\t\t]);\r\n\r\n\t\tfunction ApiTokenService($http, uriPathService) {\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminApiTokenService#getTokens\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets all API tokens for any users of the deployment who have generated them. \r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Array} An array of tokens.\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetTokens: getTokens,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminApiTokenService#createToken\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a new token given an email, password, and expiration. \r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the newly created token.\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tcreateToken: createToken,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminApiTokenService#deleteToken\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Delete the token with the specified ID. \r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} An HTTP response promise.\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tdeleteToken: deleteToken\r\n\t\t\t};\r\n\r\n\t\t\tfunction getTokens(deploymentId) {\r\n\t\t\t\tvar uri = uriPathService.resolvePath('/users/apitokens');\r\n\t\t\t\treturn $http\r\n\t\t\t\t\t.get(uri)\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\treturn resp.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction createToken(email, password, expireMeaning) {\r\n\t\t\t\texpireMeaning = typeof(expireMeaning) === 'string' ? expireMeaning : 'never';\r\n\t\t\t\tvar uri = uriPathService.resolvePath('/users/apitoken');\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\tEmailAddress: email,\r\n\t\t\t\t\tPassword: password,\r\n\t\t\t\t\tExpireMeaning: expireMeaning\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn $http\r\n\t\t\t\t\t.post(uri, data)\r\n\t\t\t\t\t.then(function (resp) {\r\n\t\t\t\t\t\treturn resp.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction deleteToken(tokenId) {\r\n\t\t\t\tvar uri = uriPathService.resolvePath('/users/apitoken/{id}', { \r\n\t\t\t\t\tid : tokenId \r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn $http\r\n\t\t\t\t\t.delete(uri);\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 246 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t* @requires $http\r\n\t\t* @requires settingService\r\n\t\t* @description\r\n\t\t* A service used to retrieve deployment groups\r\n\t\t**/\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.factory('sbadminDeploymentGroupsService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\t'$q',\r\n\t\t\t\tDeploymentGroupsService\r\n\t\t\t]);\r\n\r\n\t\tfunction DeploymentGroupsService($http, settingsService, $q) {\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsService#getDeploymentGroup\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves a deployment group\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with requested deployment group\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\t//getDeploymentGroup: getDeploymentGroup,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsService#getDeploymentGroups\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves deployment groups\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeploymentGroups: getDeploymentGroups,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsService#getDeploymentGroupAdmins\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves deployment group tenant admins\r\n\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of tenant admins\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeploymentGroupAdmins: getDeploymentGroupAdmins,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsService#createDeploymentGroup\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a deployment group\r\n\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tcreateDeploymentGroup: createDeploymentGroup,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsService#updateDeploymentGroup\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Updates a deployment group\r\n\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the updated deployment group\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tupdateDeploymentGroup: updateDeploymentGroup\r\n\t\t\t};\r\n\r\n\t\t\tfunction createDeploymentGroup(deploymentGroup) {\r\n\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/admin/deploymentgroups',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tgroupName: deploymentGroup.GroupName,\r\n\t\t\t\t\t\tpartnerIdentifier: deploymentGroup.PartnerIdentifier,\r\n\t\t\t\t\t\tdatabaseServer: deploymentGroup.DatabaseServer,\r\n\t\t\t\t\t\tdatabaseRootPath: deploymentGroup.DatabaseRootPath,\r\n\t\t\t\t\t\tlogFileRootPath: deploymentGroup.LogFileRootPath,\r\n\t\t\t\t\t\tdiskgroupRootPath: deploymentGroup.DiskgroupRootPath\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction getDeploymentGroups() {\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/deploymentgroups')\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateDeploymentGroup(deploymentGroup) {\r\n\t\t\t\treturn $http.patch(settingsService.serverAPIPath + '/admin/deploymentgroups/' + deploymentGroup.DeploymentGroupId,\r\n\t\t\t\t\tdeploymentGroup)\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction getDeploymentGroupAdmins(deploymentGroup) {\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/deploymentgroups/' + deploymentGroup.DeploymentGroupId + '/admins')\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t} ());\n\n/***/ },\n/* 247 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentsService\r\n\t\t* @requires $http\r\n\t\t* @requires $q\r\n\t\t* @requires settingsService\r\n\t\t* @description\r\n\t\t* A service used to retrieve active deployments\r\n\t\t**/\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminDeploymentsService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'$q',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\tDeploymentsService\r\n\t\t\t]);\r\n\r\n\t\tfunction DeploymentsService($http, $q, settingsService) {\r\n\t\t\tvar deploymentsEndpoint = settingsService.serverAPIPath + '/admin/deployments';\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentsService#getDeployments\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves active deployments\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with active deployments.\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeployments: getDeployments\t\t\t\r\n\t\t\t};\r\n\r\n\t\t\tfunction getDeployments() {\r\n\t\t\t\treturn $http.get(deploymentsEndpoint)\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data.Embedded.Deployments;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 248 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentStatisticsService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* Retrieves statistics for a deployment\r\n\t\t* \r\n\t\t**/\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminDeploymentStatisticsService',\r\n\t\t\t[\r\n\t\t\t\t'$http',\r\n\t\t\t\t'pxUriPathService',\r\n\t\t\t\tDeploymentStatisticsService\r\n\t\t\t]);\r\n\r\n\t\tfunction DeploymentStatisticsService($http, pxUriPathService) {\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentStatisticsService#getDeploymentTotalsUsage\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentStatisticsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves the \"Core/DeploymentTotalUsage\" statistics \r\n\t\t\t\t*\r\n\t\t\t\t* @param {deploymentName} The deployment name used to calculate the statistics\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an object with the following\r\n\t\t\t\t* statistics: TotalLibraryDiskUsage, TotalDocumentsCreated, TotalDocumentsViewed, TotalUsers, and TotalLibraries\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeploymentTotalsUsage: getDeploymentTotalsUsage,\r\n\t\t\t};\r\n\r\n\t\t\tfunction getDeploymentTotalsUsage(deploymentName) {\r\n\t\t\t\treturn fetchStatistic(deploymentName, 'Core', 'DeploymentTotalsUsage').then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction fetchStatistic(deploymentName, type, label) {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/statistics/' + type + '/' + label, {\r\n\t\t\t\t\tsystem: deploymentName\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 249 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminLibrariesService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t* libraries\r\n\t\t**/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminLibrariesService',\r\n\t\t\t[\r\n\t\t\t\t'$http',\r\n\t\t\t\t'pxUriPathService',\r\n\t\t\t\tLibrariesService\r\n\t\t\t]);\r\n\r\n\t\tfunction LibrariesService($http, pxUriPathService) {\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminLibrariesService#getLibraries\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminLibrariesService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a collection of libraries\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of libraries\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetLibraries: getLibraries\r\n\t\t\t};\r\n\r\n\t\t\tfunction getLibraries() {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/libraries')).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 250 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t(function () {\r\n\t 'use strict';\r\n\t /**\r\n\t * @ngdoc service\r\n\t * @name sharebase-admin.sbadminLibraryService\r\n\t *\r\n\t * @description\r\n\t * A service used to retrieve and interact with a ShareBase\r\n\t * library\r\n\t **/\r\n\t angular\r\n\t .module('sharebase-admin')\r\n\t .factory('sbadminLibraryService', [\r\n\t '$http',\r\n\t 'pxUriPathService',\r\n\t LibraryService\r\n\t ]);\r\n\t function LibraryService($http, pxUriPathService) {\r\n\t var service = {\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryService#getLibrary\r\n\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Gets a library\r\n\t *\r\n\t * @param {objectId} libraryId A string to represent the library Id\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with a library\r\n\t *\r\n\t */\r\n\t getLibrary: getLibrary,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryService#addLibrary\r\n\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Adds a library\r\n\t *\r\n\t * @param {objectId} library An object to represent the library\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with a library\r\n\t *\r\n\t */\r\n\t addLibrary: addLibrary,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryService#updateLibrary\r\n\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Updates a library\r\n\t *\r\n\t * @param {objectId} library An object to represent the library\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with a library\r\n\t *\r\n\t */\r\n\t updateLibrary: updateLibrary,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryService#savePermissions\r\n\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Sets permissions for the specified library ID.\r\n\t *\r\n\t * @param {libraryId} ID of the library to set permissions for.\r\n\t *\r\n\t * @param {acls} Array of ACLs to set for the library.\r\n\t *\r\n\t * @returns {Deferred} An $http promise.\r\n\t *\r\n\t */\r\n\t savePermissions: savePermissions,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryService#getPermissions\r\n\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Retrieves permissions for the specified library ID.\r\n\t *\r\n\t * @param {libraryId} ID of the library to get permissions for.\r\n\t *\r\n\t * @returns {Deferred} A promise resolving with an array of the retrieved permissions.\r\n\t *\r\n\t */\r\n\t getPermissions: getPermissions,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryService#getPermissionsForCurrentUser\r\n\t * @methodOf sharebase-admin.sbadminLibraryService\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Retrieves permissions for the current user for the specified library ID.\r\n\t *\r\n\t * @param {libraryId} ID of the library to get permissions for.\r\n\t *\r\n\t * @returns {Deferred} A promise resolving with an array of the retrieved permissions.\r\n\t *\r\n\t */\r\n\t getPermissionsForCurrentUser: getPermissionsForCurrentUser\r\n\t };\r\n\t return service;\r\n\t function getLibrary(libraryId) {\r\n\t return $http.get(pxUriPathService.resolvePath('/libraries/' + libraryId)).then(function (response) {\r\n\t return response.data;\r\n\t });\r\n\t }\r\n\t function addLibrary(library) {\r\n\t return $http.post(pxUriPathService.resolvePath('/libraries'), library).then(function (response) {\r\n\t return response.data;\r\n\t });\r\n\t }\r\n\t function updateLibrary(library) {\r\n\t return $http.patch(library.Links.SelfUri, library).then(function (response) {\r\n\t return response.data;\r\n\t });\r\n\t }\r\n\t function savePermissions(libraryId, acls) {\r\n\t var uri = pxUriPathService.resolvePath('/libraries/{id}/permissions/replace', {\r\n\t id: libraryId\r\n\t });\r\n\t return $http.post(uri, acls);\r\n\t }\r\n\t function getPermissionsForCurrentUser(libraryId) {\r\n\t var uri = pxUriPathService.resolvePath('/libraries/{id}/permissionsforuser', {\r\n\t id: libraryId\r\n\t });\r\n\t return $http\r\n\t .get(uri)\r\n\t .then(function (response) {\r\n\t return response.data;\r\n\t });\r\n\t }\r\n\t function getPermissions(libraryId, compact) {\r\n\t compact = typeof (compact) === 'boolean' ? compact : true;\r\n\t var uri = pxUriPathService.resolvePath('/libraries/{id}/permissions', {\r\n\t id: libraryId\r\n\t });\r\n\t if (compact) {\r\n\t uri += '?compact=true';\r\n\t }\r\n\t return $http\r\n\t .get(uri)\r\n\t .then(function (response) {\r\n\t return response.data;\r\n\t });\r\n\t }\r\n\t }\r\n\t})();\r\n\n\n/***/ },\n/* 251 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPasswordPoliciesService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t* password policies\r\n\t\t**/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPasswordPoliciesService',\r\n\t\t\t[\r\n\t\t\t\t'$http',\r\n\t\t\t\t'pxUriPathService',\r\n\t\t\t\tPasswordPoliciesService\r\n\t\t\t]);\r\n\r\n\t\tfunction PasswordPoliciesService($http, pxUriPathService) {\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPoliciesService#getPasswordPolicies\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPoliciesService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a collection of password policies\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of password policies\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetPasswordPolicies: getPasswordPolicies,\r\n\t\t\t\t\r\n\t\t\t};\r\n\r\n\t\t\tfunction getPasswordPolicies() {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy')).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\t\t\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 252 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPasswordPolicyService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t* password policies\r\n\t\t**/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPasswordPolicyService',\r\n\t\t\t[\r\n\t\t\t\t'$http',\r\n\t\t\t\t'pxUriPathService',\r\n\t\t\t\tPasswordPolicyService\r\n\t\t\t]);\r\n\r\n\t\tfunction PasswordPolicyService($http, pxUriPathService) {\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyService#getPasswordPolicies\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a collection of password policies\r\n\t\t\t\t*\r\n\t\t\t\t* @param {string} passwordPolicyId A string to represent a password policy Id\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetPasswordPolicy: getPasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyService#createPasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a document\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tcreatePasswordPolicy: createPasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyService#updatePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a document\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tupdatePasswordPolicy: updatePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyService#deletePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a deleted password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tdeletePasswordPolicy: deletePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyService#activatePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an active password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tactivatePasswordPolicy: activatePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyService#deactivatePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a deactivated password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tdeactivatePasswordPolicy: deactivatePasswordPolicy\r\n\t\t\t};\r\n\r\n\t\t\tfunction getPasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId)).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction createPasswordPolicy(passwordPolicy) {\r\n\t\t\t\treturn $http.post(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/newpolicy'), passwordPolicy).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction updatePasswordPolicy(passwordPolicy) {\r\n\t\t\t\treturn $http.post(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicy.PasswordPolicyId + '/update'), passwordPolicy).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction deletePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId + '/delete')).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction activatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId + '/activate')).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction deactivatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn $http.get(pxUriPathService.resolvePath('/{system}/settings/passwordpolicy/' + passwordPolicyId + '/deactivate')).then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 253 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t* @requires $http\r\n\t\t* @requires settingService\r\n\t\t* @description\r\n\t\t* A service used to retrieve pending deployments\r\n\t\t**/\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPendingDeploymentsService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\tPendingDeploymentsService\r\n\t\t\t]);\r\n\r\n\t\tfunction PendingDeploymentsService($http, settingsService) {\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsService#getDeployments\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves pending deployments\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with pending deployments\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeployments: getDeployments,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsService#resendNotification\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Resends email notification to owner of pending deployment\r\n\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the server response\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tresendNotification: resendNotification,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsService#save\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Saves a deployment\r\n\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with pending deployments\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tsave: save\r\n\t\t\t};\r\n\r\n\t\t\tfunction getDeployments() {\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/registrations').then(function (response) {\r\n\t\t\t\t\treturn response.data;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction save(pendingDeployment) {\r\n\t\t\t\treturn $http.patch(pendingDeployment.Links.SelfUri, pendingDeployment);\r\n\t\t\t}\r\n\r\n\t\t\tfunction resendNotification(pendingDeployment) {\r\n\t\t\t\treturn $http.post(pendingDeployment.Links.NotificationUri);\r\n\t\t\t}\r\n\t\t}\r\n\t}());\n\n/***/ },\n/* 254 */\n/***/ function(module, exports) {\n\n\t(function() {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPermissionsService\r\n\t\t* @requires $state\r\n\t\t* @requires pxAuthService\r\n\t\t* @description\r\n\t\t* A service used to determine rights the current administator has related to ShareBase\r\n\t\t* concepts such as Deployments and Systems.\r\n\t\t**/\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPermissionsService', [\r\n\t\t\t\t'$state',\r\n\t\t\t\t'pxAuthService',\r\n\t\t\t\tPermissionsService\r\n\t\t\t]);\r\n\r\n\t\tfunction PermissionsService($state, authService) {\r\n\t\t\tvar _current = {\r\n\t\t\t\tget depId() {\r\n\t\t\t\t\treturn $state.params.deploymentId || $state.params.deploymentID;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @namespace system\t\r\n\t\t\t\t* @description\r\n\t\t\t\t* Namespace for system-level rights. \r\n\t\t\t\t*/\r\n\t\t\t\tsystem: {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\t\r\n\t\t\t\t\t* @memberof system\t\t\t\r\n\t\t\t\t\t* @name sbadminPermissionsService.system#hasRights\r\n\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Boolean indicating if the current user has system administration rights. \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget hasRights() {\r\n\t\t\t\t\t\treturn authService.isSysAdmin || authService.isTenantAdmin;\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\t/**\r\n\t\t\t\t* @namespace deployment\t\r\n\t\t\t\t* @description\r\n\t\t\t\t* Namespace for deployment-level rights. \t\t\r\n\t\t\t\t*/\r\n\t\t\t\tdeployment : {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\t\r\n\t\t\t\t\t* @memberof deployment\t\t\t\r\n\t\t\t\t\t* @name sbadminPermissionsService.deployment#belongsToCurrent\r\n\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Boolean indicating if the current user's home deployment is the currently viewed deployment. \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget belongsToCurrent() {\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\treturn authService.deploymentId == _current.depId;\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\t\r\n\t\t\t\t\t* @memberof deployment\t\t\t\r\n\t\t\t\t\t* @name sbadminPermissionsService.deployment#hasRights\r\n\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Boolean indicating if the current user has admin rights to the currently viewed deployment. \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget hasRights() {\t\t\t\t\t\r\n\t\t\t\t\t\treturn this.belongsToCurrent && (authService.isSiteAdmin || authService.isTenantAdmin);\t\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t* @ngdoc property\t\t\r\n\t\t\t\t\t* @memberof deployment\t\t\r\n\t\t\t\t\t* @name sbadminPermissionsService.deployment#isHomed\r\n\t\t\t\t\t* @type boolean\r\n\t\t\t\t\t*\r\n\t\t\t\t\t* @description\r\n\t\t\t\t\t* Boolean indicating if the current user has a home deployment (system admins do not). \r\n\t\t\t\t\t*/\r\n\t\t\t\t\tget isHomed() {\r\n\t\t\t\t\t\treturn authService.deploymentId >= 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 255 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminTenantAdminService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A service used to retrieve and interact with a ShareBase\r\n\t\t* tenant administrator\r\n\t\t**/\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.factory('sbadminTenantAdminService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'$q',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\tTenantAdminFactory]);\r\n\r\n\t\tfunction TenantAdminFactory($http, $q, settingsService) {\r\n\r\n\t\t\treturn {\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminTenantAdminService#createAdministrator\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a new tenant administrator\r\n\t\t\t\t*\r\n\t\t\t\t* @param {integer} groupID The id of the group to add administrator to\r\n\t\t\t\t* @param {string} newUsername The username of the new administrator\r\n\t\t\t\t* @param {string} newEmailAddress The email address of the new administrator\r\n\t\t\t\t* @param {string} newPassword The password of the new administrator \r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the result of the post\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tcreateAdministrator: createAdministrator,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminTenantAdminService#addAdministrator\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Assigns a current user as a tenant administrator\r\n\t\t\t\t*\r\n\t\t\t\t* @param {integer} groupID The id of the group to add administrator to\r\n\t\t\t\t* @param {integer} userID The id of the user to add as administrator\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\taddAdministrator: addAdministrator,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminTenantAdminService#deleteAdministrator\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a new tenant administrator\r\n\t\t\t\t*\r\n\t\t\t\t* @param {integer} groupID The id of the group to remove administrator from\r\n\t\t\t\t* @param {integer} userID The id of the user to remove as administrator\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tdeleteAdministrator: deleteAdministrator\r\n\t\t\t};\r\n\r\n\t\t\tfunction createAdministrator(groupID, newUsername, newEmailAddress, newPassword) {\r\n\t\t\t\treturn $http.post(settingsService.serverAPIPath + '/admin/deploymentgroups/' + groupID + '/admins',\r\n\t\t\t\t\t\t{ UserName: newUsername, EmailAddress: newEmailAddress, Password: newPassword }\r\n\t\t\t\t\t).then(function (response) {\r\n\t\t\t\t\t\tif (response.Error) {\r\n\t\t\t\t\t\t\treturn $q.reject(response);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction addAdministrator(groupID, userID) {\r\n\t\t\t\t/* TODO - new api end point to set a current user as group admin */\r\n\t\t\t\t//return $http.post(settingsService.serverAPIPath + '/admin/deploymentgroups/' + groupID + '/admins');\r\n\t\t\t\tthrow new Error('setAsAdministrator is not implemented!');\r\n\t\t\t}\r\n\r\n\t\t\tfunction deleteAdministrator(groupID, userID) {\r\n\t\t\t\t/* TODO - find out how to delete admin current UI just shows an alert*/\r\n\t\t\t\t//return $http.delete(settingsService.serverAPIPath + '/admin/deploymentgroups/' + groupID + '/admins');\r\n\t\t\t\tthrow new Error('deleteAdministrator is not implemented!');\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 256 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminTenantAdminsService\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A service used to retrieve and interact with ShareBase\r\n\t\t* tenant administrators\r\n\t\t**/\r\n\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.factory('sbadminTenantAdminsService', [\r\n\t\t\t\t'$http',\r\n\t\t\t\t'$q',\r\n\t\t\t\t'settingsService',\r\n\t\t\t\tTenantAdminsFactory]);\r\n\r\n\t\tfunction TenantAdminsFactory($http, $q, settingsService) {\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminTenantAdminsService#getAdministrators\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminsService\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets the list of available tenant administrators\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an\r\n\t\t\t\t* array of users\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetAdministrators: getAdministrators,\r\n\t\t\t};\r\n\r\n\t\t\tfunction getAdministrators() {\r\n\t\t\t\treturn $http.get(settingsService.serverAPIPath + '/admin/deploymentgroups/admins/')\r\n\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\treturn response.data;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 257 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular.module('sharebase-admin')\r\n\t\t\t.factory('sbadminToolbarService', [\r\n\t\t\t\t'pxLocalStorageService',\r\n\t\t\t\t'gettextCatalog',\r\n\t\t\t\tAdminToolbarService]);\r\n\t\t/**\r\n\t * @ngdoc service\r\n\t * @name sharebase-admin.sbadminToolbarService\r\n\t * \r\n\t * @description \r\n\t * A service used to retrieve and interact with ShareBase app \r\n\t * content toolbar\r\n\t * \r\n\t **/\r\n\t\tfunction AdminToolbarService(pxLocalStorageService, gettextCatalog) {\r\n\t\t\tvar _defaultFilterPlaceholder = gettextCatalog.getString('Find content');\r\n\t\t\tvar _title = null;\r\n\t\t\tvar _filterPhrase = '';\r\n\t\t\tvar _filterPlaceholder = _defaultFilterPlaceholder;\r\n\t\t\tvar _showFilter = false;\r\n\t\t\tvar _view = pxLocalStorageService.getStoredValue('sba_user_viewType') === 'list' ? 'list' : 'card';\r\n\t\t\tvar _breadCrumbs = [];\r\n\t\t\tvar _actions = [];\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#title\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Title assigned to content toolbar\r\n\t *\r\n\t * @returns {string} value of title \r\n\t * \r\n\t */\r\n\t\t\t\tget title() { return _title; },\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#title\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Set the title for content toolbar\r\n\t *\r\n\t * @returns {string} value of title \r\n\t * @param {string} val Title to assign to content toolbar \r\n\t */\r\n\t\t\t\tset title(val) { _title = val; },\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#viewType\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Content view style to be used\r\n\t *\r\n\t * @returns {string} value of the view type \r\n\t * \r\n\t */\r\n\t\t\t\tget viewType() { return _view; },\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#viewType\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Set the content view style\r\n\t *\r\n\t * @returns {string} value of the view type \r\n\t * @param {string} val View type to assign to content \r\n\t * \r\n\t */\r\n\t\t\t\tset viewType(val) {\r\n\t\t\t\t\t_view = val === 'list' ? 'list' : 'card';\r\n\t\t\t\t\tpxLocalStorageService.setStoredValue('sba_user_viewType', _view);\r\n\t\t\t\t},\r\n\t\t\t\tget breadCrumbs() { return _breadCrumbs; },\r\n\t\t\t\tset breadCrumbs(val) {\r\n\t\t\t\t\tif (!angular.isArray(val)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_breadCrumbs = val;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#actions\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Get the registered actions to display in the UI\r\n\t *\r\n\t * @returns {array} list of registered actions \r\n\t * \r\n\t */\r\n\t\t\t\tget actions() { return _actions; },\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#actions\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Set the registered actions to display in the UI\r\n\t *\r\n\t * @param {array} val List of actions\r\n\t * @usage\r\n\t * actions = [{ icon: 'search', label: 'Find content', trigger: self.navItemClicked }]\r\n\t * \r\n\t */\r\n\t\t\t\tset actions(val) {\r\n\t\t\t\t\tif (!angular.isArray(val)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t_actions = val;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#filterPhrase\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Get the content of the filter phrase\r\n\t *\r\n\t * @returns {string} value of the filter phrase \r\n\t * \r\n\t */\r\n\t\t\t\tget filterPhrase() { return _filterPhrase; },\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#filterPhrase\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Set the content of the filter phrase\r\n\t *\r\n\t * @param {string} val New value of the filter phrase \r\n\t */\r\n\t\t\t\tset filterPhrase(val) { _filterPhrase = val !== '' || val !== undefined ? val : ''; },\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#showFilter\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Get the value of the show filter UI\r\n\t *\r\n\t * @returns {bool} to show the filter UI\r\n\t * \r\n\t */\r\n\t\t\t\tget showFilter() { return _showFilter; },\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#showFilter\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Set the value of the show filter UI\r\n\t *\r\n\t * @param {bool} val Value of wheither to show the filter UI \r\n\t */\r\n\t\t\t\tset showFilter(val) { _showFilter = val === true ? true : false; },\r\n\t\t\t\t\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#filterPlaceholder\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Get the value of the filter placeholder\r\n\t *\r\n\t * @returns {string} to show as the filter placeholder\r\n\t * \r\n\t */\r\n\t\t\t\tget filterPlaceholder() { return _filterPlaceholder; },\r\n\r\n\t\t\t\t/**\r\n\t * @ngdoc property\r\n\t * @name sbadminToolbarService#filterPlaceholder\r\n\t * @propertyOf sharebase-admin.sbadminToolbarService\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * Set the value of the filter placeholder\r\n\t *\r\n\t * @param {string} val Value of the filter placeholder \r\n\t */\r\n\t\t\t\tset filterPlaceholder(val) { _filterPlaceholder = val === null || val === undefined ? _defaultFilterPlaceholder : val; }\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t}());\n\n/***/ },\n/* 258 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(259);\r\n\t__webpack_require__(260);\r\n\t__webpack_require__(261);\r\n\t__webpack_require__(262);\r\n\t__webpack_require__(263);\r\n\t__webpack_require__(264);\r\n\t__webpack_require__(265);\r\n\t__webpack_require__(266);\r\n\t__webpack_require__(267);\r\n\t__webpack_require__(268);\r\n\t__webpack_require__(269);\r\n\t__webpack_require__(270);\n\n/***/ },\n/* 259 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminApiTokenDataStore', [\r\n\t\t\t\t'$filter',\r\n\t\t\t\t'sbadminApiTokenService',\r\n\t\t\t\tApiTokenDataStore\r\n\t\t\t]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminApiTokenDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with API tokens generated for the current deployment.\r\n\t\t* \r\n\t\t**/\r\n\t\tfunction ApiTokenDataStore($filter, apiTokenService) {\r\n\t\t\tvar _tokens = [];\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminApiTokenDataStore#load\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Loads all of the generated tokens from users in the deployment.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the API tokens of the current deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tload: loadApiTokens,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminApiTokenDataStore#createToken\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates an API token that never expires given an email and password.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the newly created token.\r\n\t\t\t\t*/\r\n\t\t\t\tcreateToken: createToken,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminApiTokenDataStore#deleteToken\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Delete the specified API token.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the API tokens of the current deployment. \r\n\t\t\t\t*/\r\n\t\t\t\tdeleteToken: deleteToken,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminApiTokenDataStore#ltokens\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminApiTokenDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* A list of tokens generated by users of the current deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tget tokens() {\r\n\t\t\t\t\treturn _tokens;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tfunction loadApiTokens() {\r\n\t\t\t\treturn apiTokenService\r\n\t\t\t\t\t.getTokens()\r\n\t\t\t\t\t.then(function (tokens) {\r\n\t\t\t\t\t\t// change to domain object shape\r\n\t\t\t\t\t\t_tokens = tokens.map(function (token) {\r\n\t\t\t\t\t\t\treturn toDomainObject(token);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t_tokens = $filter('orderBy')(_tokens, 'userName');\r\n\r\n\t\t\t\t\t\treturn _tokens;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction createToken(email, password) {\r\n\t\t\t\treturn apiTokenService\r\n\t\t\t\t\t.createToken(email, password, 'never')\r\n\t\t\t\t\t.then(function(token) {\r\n\t\t\t\t\t\ttoken = toDomainObject(token);\t\r\n\t\t\t\t\t\t_tokens.push(token);\r\n\r\n\t\t\t\t\t\treturn token;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction deleteToken(tokenId) {\r\n\t\t\t\treturn apiTokenService\r\n\t\t\t\t\t.deleteToken(tokenId)\r\n\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\t_tokens = _tokens.filter(function(token) {\r\n\t\t\t\t\t\t\treturn token.id !== tokenId;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn _tokens;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction toDomainObject(data) {\r\n\t\t\treturn {\r\n\t\t\t\tid: data.ApiTokenId,\r\n\t\t\t\tdateCreated: data.IssuedDate,\r\n\t\t\t\texpires: data.Embedded.AuthToken.ExpirationDate,\r\n\t\t\t\tuserName: data.Embedded.AuthToken.UserName,\r\n\t\t\t\tvalue: data.Embedded.AuthToken.Token\r\n\t\t\t};\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 260 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminDeploymentDataStore', [\r\n\t\t\t\t'$q',\r\n\t\t\t\t'sbDeploymentService',\r\n\t\t\t\tDeplomentDataStore\r\n\t\t\t]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with all active ShareBase deployment details.\r\n\t\t* \r\n\t\t**/\r\n\t\tfunction DeplomentDataStore($q, deploymentService) {\r\n\t\t\tvar _details;\r\n\t\t\tvar _originalDetails;\r\n\t\t\tvar _settings;\r\n\t\t\treset();\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentDataStore#load\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Loads details of the specified deployment.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the details of the specified ShareBase deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tload: loadDeployment,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentDataStore#reset\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Sets the datastore back to its default state.\r\n\t\t\t\t*/\r\n\t\t\t\treset: reset,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentDataStore#create\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a new ShareBase deplomynet.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the details created deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tcreateDeployment: createDeployment,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentDataStore#save\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Updates details of the specified deployment.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the status of the attempted save operation.\r\n\t\t\t\t*/\r\n\t\t\t\tsaveDeployment: saveDeployment,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentDataStore#getSettings\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves and populates the settings for the currently loaded deployment.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of settings for the deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tgetSettings: getSettings,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentDataStore#updateSettings\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Updates the settings for the currently loaded deployment.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of updated settings for the deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tupdateSettings: updateSettings,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminDeploymentDataStore#details\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Details of the loaded deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tget details() { return _details; },\r\n\t\t\t\t/* @ngdoc property\r\n\t\t\t\t* @name sbadminDeploymentDataStore#settings\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Settings of the loaded deployment.\r\n\t\t\t\t*/\r\n\t\t\t\tget settings() { return _settings; }\r\n\t\t\t};\r\n\r\n\t\t\tfunction loadDeployment(deploymentId) {\r\n\t\t\t\tvar p;\r\n\t\t\t\tif (deploymentId) {\r\n\t\t\t\t\tp = deploymentService.getDetails(deploymentId)\r\n\t\t\t\t\t\t.then(storeDeploymentData);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treset();\r\n\t\t\t\t\tp = $q.resolve(_details);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tfunction reset() {\r\n\t\t\t\t_details = {\t\t\r\n\t\t\t\t\tDeploymentId: null,\t\r\n\t\t\t\t\tCustomerIdentifier: '',\r\n\t\t\t\t\tSystemName : '',\r\n\t\t\t\t\tName: '',\r\n\t\t\t\t\tDatabaseName: '',\r\n\t\t\t\t\tDatabaseServer: '',\r\n\t\t\t\t\tDatabaseRootPath: '',\r\n\t\t\t\t\tDiskgroupRootPath: ''\r\n\t\t\t\t};\r\n\r\n\t\t\t\t_originalDetails = angular.copy(_details);\r\n\t\t\t\t_settings = [];\r\n\t\t\t}\r\n\r\n\t\t\tfunction createDeployment() {\r\n\t\t\t\treturn deploymentService.createDeployment(_details)\r\n\t\t\t\t\t.then(storeDeploymentData);\r\n\t\t\t}\r\n\r\n\t\t\tfunction saveDeployment() {\r\n\t\t\t\tvar p = $q.reject(new Error('Cannot save deployment; none specified.'));\r\n\r\n\t\t\t\tif(_details.DeploymentId) {\r\n\t\t\t\t\tp = deploymentService.updateDeployment(_details.DeploymentId, diff(_originalDetails, _details));\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateSettings() {\r\n\t\t\t\tvar p = $q.reject(new Error('Cannot save deployment; none specified.'));\r\n\r\n\t\t\t\tif(_details.DeploymentId) {\r\n\t\t\t\t\tp = deploymentService.updateSettings(_details.DeploymentId, {\r\n\t\t\t\t\t\t'CoreRuntimeDeploymentSettings' : _settings\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getSettings() {\r\n\t\t\t\tvar p = $q.reject(new Error('Cannot retrieve settings. No deployment loaded.'));\r\n\t\t\t\t\r\n\t\t\t\tif(_details.DeploymentId) {\r\n\t\t\t\t\tp = deploymentService\r\n\t\t\t\t\t\t.getSettings(_details.DeploymentId)\r\n\t\t\t\t\t\t.then(function(settings) {\r\n\t\t\t\t\t\t\t// for now, only show the CoreRuntimedeploymentSettings\r\n\t\t\t\t\t\t\t_settings = settings.CoreRuntimeDeploymentSettings;\r\n\t\t\t\t\t\t\t_settings = _settings.map(function (setting) {\r\n\t\t\t\t\t\t\t\tif (setting.DataType.indexOf('DataSet:') !== 0) { return setting; }\r\n\r\n\t\t\t\t\t\t\t\tsetting.isDataset = true;\r\n\t\t\t\t\t\t\t\t//pull dataset values into a more easily bindable array\r\n\t\t\t\t\t\t\t\tvar dataType = setting.DataType;\r\n\t\t\t\t\t\t\t\tsetting.dataSet = dataType.replace('DataSet:', '').split('|');\r\n\t\t\t\t\t\t\t\treturn setting;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn _settings;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tfunction storeDeploymentData(resp) {\r\n\t\t\t\t_details = resp;\r\n\r\n\t\t\t\t// cache a copy of the deployment details to diff against on update to send only the changed values up\r\n\t\t\t\t_originalDetails = angular.copy(_details); \r\n\t\t\t\treturn _details;\r\n\t\t\t}\r\n\r\n\t\t\t// generates an object containing key/value pairs that don't exist or are different between two objects\r\n\t\t\tfunction diff(old, updated) {\r\n\t\t\t\tif(old === null || \r\n\t\t\t\t\t!angular.isDefined(old) || \r\n\t\t\t\t\tupdated === null ||\r\n\t\t\t\t\t!angular.isDefined(updated)) {\r\n\t\t\t\t\tthrow new Error('Two non-null objects required to diff.');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar diffSet = Object.keys(updated)\r\n\t\t\t\t\t// filter keys down to the properties that are new or updated\r\n\t\t\t\t\t.filter(function(k){\r\n\t\t\t\t\t\treturn angular.isDefined(updated[k]) &&\r\n\t\t\t\t\t\t\t(!(k in old) || !angular.equals(updated[k], old[k])); \r\n\t\t\t\t\t})\r\n\t\t\t\t\t.reduce(function(originalDiffSet, k){\r\n\t\t\t\t\t\toriginalDiffSet[k] = updated[k];\r\n\t\t\t\t\t\treturn originalDiffSet;\r\n\t\t\t\t\t}, {});\r\n\r\n\t\t\t\treturn diffSet;\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 261 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminDeploymentGroupsDataStore', [\r\n\t\t\t\t'sbadminDeploymentGroupsService',\r\n\t\t\t\t'$q',\r\n\t\t\t\tDeploymentGroupsDataStore\r\n\t\t\t]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with the deployment groups\r\n\t\t* \r\n\t\t**/\r\n\t\tfunction DeploymentGroupsDataStore(sbadminDeploymentGroupsService, $q) {\r\n\t\t\tvar _deploymentGroups = null;\r\n\t\t\t/* eslint-disable no-unused-vars*/\r\n\t\t\tvar _deploymentGroupAdmins = null;\r\n\t\t\t/* eslint-enable no-unused-vars */\r\n\t\t\tvar _newDeploymentGroup = {\r\n\t\t\t\tgroupName : null,\r\n\t\t\t\tpartnerIdentifier: null,\r\n\t\t\t\tdatabaseServer: null,\r\n\t\t\t\tdatabaseRootPath: null,\r\n\t\t\t\tlogFileRootPath: null,\r\n\t\t\t\tdiskgroupRootPath : null\r\n\t\t\t};\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsDataStore#loadDeploymentGroups\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Loads deployment groups\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t*/\r\n\t\t\t\tload: loadDeploymentGroups,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminDeploymentGroupsDataStore#groups\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Returns currently loaded deployment groups\r\n\t\t\t\t*/\r\n\t\t\t\tget groups() { return _deploymentGroups; },\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsDataStore#getDeploymentGroup\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves a deployment group\r\n\t\t\t\t* @param {integer} Deployment group Id\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with selected deployment group or return a new deployment group\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeploymentGroup: getDeploymentGroup,\r\n\t\t\t\t\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsDataStore#getDeploymentGroupAdmins\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves deployment group tenant admins\r\n\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an array of tenant admins\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetDeploymentGroupAdmins : getDeploymentGroupAdmins,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsDataStore#create\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a deployment group\r\n\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with deployment groups\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tcreate: sbadminDeploymentGroupsService.createDeploymentGroup,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentGroupsDataStore#update\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentGroupsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Updates a deployment group\r\n\t\t\t\t* @param {object} Deployment group\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the updated deployment group\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tupdate: updateDeploymentGroup,\r\n\t\t\t};\r\n\r\n\t\t\tfunction filterDeploymentGroupsById(deploymentGroupId) {\r\n\t\t\t\tvar deploymentGroup = null;\r\n\t\t\t\tif (_deploymentGroups) {\r\n\t\t\t\t\tfor (var i = 0, ii = _deploymentGroups.length; i < ii; i++) {\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\tif (_deploymentGroups[i].DeploymentGroupId == deploymentGroupId) {\r\n\t\t\t\t\t\t\tdeploymentGroup = _deploymentGroups[i];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn deploymentGroup;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getDeploymentGroup(deploymentGroupId) {\r\n\t\t\t\tvar promise = $q.resolve();\r\n\r\n\t\t\t\tif (!deploymentGroupId) {\r\n\t\t\t\t\tpromise = $q.resolve(angular.copy(_newDeploymentGroup));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (!_deploymentGroups) {\r\n\t\t\t\t\t\tpromise = loadDeploymentGroups();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpromise = promise.then(function () {\r\n\t\t\t\t\t\treturn filterDeploymentGroupsById(deploymentGroupId);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn promise;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getDeploymentGroupAdmins(deploymentGroup) {\r\n\t\t\t\treturn sbadminDeploymentGroupsService.getDeploymentGroupAdmins(deploymentGroup).then(function (admins) {\r\n\t\t\t\t\t_deploymentGroupAdmins = admins;\r\n\t\t\t\t\treturn admins;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction loadDeploymentGroups() {\r\n\t\t\t\treturn sbadminDeploymentGroupsService.getDeploymentGroups().then(function (deploymentGroups) {\r\n\t\t\t\t\t_deploymentGroups = deploymentGroups;\r\n\t\t\t\t\treturn _deploymentGroups;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateDeploymentGroup(deploymentGroup) {\r\n\t\t\t\treturn sbadminDeploymentGroupsService.updateDeploymentGroup(deploymentGroup).then(function () {\r\n\t\t\t\t\tvar deploymentGroupId = deploymentGroup.DeploymentGroupId;\r\n\t\t\t\t\t// Update data store\r\n\t\t\t\t\tif (_deploymentGroups) {\r\n\t\t\t\t\t\tfor (var i = 0, ii = _deploymentGroups.length; i < ii; i++) {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\tif (_deploymentGroups[i].DeploymentGroupId == deploymentGroupId) {\r\n\t\t\t\t\t\t\t\t_deploymentGroups[i] = deploymentGroup;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn deploymentGroup;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 262 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminDeploymentsDataStore', [\r\n\t\t\t\t'sbadminDeploymentsService',\r\n\t\t\t\tDeploymentsDataStore\r\n\t\t\t]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentsDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with all active ShareBase deployments.\r\n\t\t* \r\n\t\t**/\r\n\t\tfunction DeploymentsDataStore(deploymentsService) {\r\n\t\t\tvar _deployments = [];\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentsDataStore#load\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Loads active deployments.\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with all active ShareBase deployments.\r\n\t\t\t\t*/\r\n\t\t\t\tload: loadDeployments,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminDeploymentsDataStore#deployments\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminDeploymentsDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* User's active deployments.\r\n\t\t\t\t*/\r\n\t\t\t\tget deployments() { return _deployments; }\r\n\t\t\t};\r\n\r\n\t\t\tfunction loadDeployments() {\r\n\t\t\t\treturn deploymentsService\r\n\t\t\t\t\t.getDeployments()\r\n\t\t\t\t\t.then(function(deployments) {\r\n\t\t\t\t\t\t_deployments = deployments.map(function(dep) {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tid: dep.DeploymentId,\r\n\t\t\t\t\t\t\t\tgroupName: dep.DeploymentGroupName,\r\n\t\t\t\t\t\t\t\tname: dep.Name,\r\n\t\t\t\t\t\t\t\tdbServer: dep.DatabaseServer,\r\n\t\t\t\t\t\t\t\tdbName: dep.DatabaseName,\r\n\t\t\t\t\t\t\t\tapiPath: dep.Links.ApiPath\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn _deployments;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 263 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t .module('sharebase-admin')\r\n\t .factory('sbadminDeploymentStatisticsDataStore', [\r\n\t 'sbadminDeploymentStatisticsService',\r\n\t '$q',\r\n\t DeploymentStatisticsDataStore\r\n\t ]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminDeploymentStatisticsDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with a deployment's statistics\r\n\t\t* \r\n\t\t**/\r\n\t\tfunction DeploymentStatisticsDataStore(sbadminDeploymentStatisticsService, $q) {\r\n\t\t\tvar _deploymentsStatistics = {};\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentStatisticsDataStore#getStatistics\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentStatisticsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Retrieves deployment statistics\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a deployment's statistic\r\n\t\t\t\t*/\r\n\t\t\t\tgetStatistics: getStatistics,\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminDeploymentStatisticsDataStore#refreshStatistics\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminDeploymentStatisticsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Clears old and retrieves new deployment statistics\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a deployment's refreshed statistic\r\n\t\t\t\t*/\r\n\t\t\t\trefreshStatistics: refreshStatistics,\r\n\t\t\t};\r\n\r\n\t\t\tfunction fetchStatistics(deploymentName) {\r\n\t\t\t\treturn sbadminDeploymentStatisticsService.getDeploymentTotalsUsage(deploymentName)\r\n\t\t\t\t\t.then(function (result) {\r\n\t\t\t\t\t\tvar statistics = {};\r\n\t\t\t\t\t\tresult.forEach(function (statistic) {\r\n\t\t\t\t\t\t\tstatistics[statistic.Id] = statistic.Count || 0;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tstatistics.lastUpdated = Date.now();\r\n\t\t\t\t\t\tupdateDataStore(deploymentName, statistics);\r\n\t\t\t\t\t\treturn statistics;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction getStatistics(deploymentName) {\r\n\t\t\t\tvar deploymentStatistics = _deploymentsStatistics[deploymentName];\r\n\t\t\t\tvar promise = $q.resolve(deploymentStatistics);\r\n\r\n\t\t\t\tif (!deploymentStatistics) {\r\n\t\t\t\t\tpromise = fetchStatistics(deploymentName);\r\n\t\t\t\t}\r\n\t\t\t\treturn promise;\r\n\t\t\t}\r\n\r\n\t\t\tfunction refreshStatistics(deploymentName) {\r\n\t\t\t\tdelete _deploymentsStatistics[deploymentName];\r\n\t\t\t\treturn getStatistics(deploymentName);\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateDataStore(deploymentName, statistics) {\r\n\t\t\t\t// Update datastore with deploymentName as key\r\n\t\t\t\t_deploymentsStatistics[deploymentName] = statistics;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 264 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminLibrariesDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with ShareBase libraries\r\n\t\t**/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminLibrariesDataStore',\r\n\t\t\t[\r\n\t\t\t\t'$filter',\r\n\t\t\t\t'sbadminLibrariesService',\r\n\t\t\t\tLibraryDataStore\r\n\t\t\t]);\r\n\r\n\t\tfunction LibraryDataStore($filter, sbadminLibrariesService) {\r\n\t\t\tvar _libraries = [];\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminLibrariesDataStore#getLibraries\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminLibrariesDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a collection of libraries\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of libraries\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetLibraries: getLibraries,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminLibrariesDataStore#libraries\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminLibrariesDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* A collection of libraries\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {array} An array of libraries\r\n\t\t\t\t*/\r\n\t\t\t\tget libraries() { return _libraries; },\r\n\r\n\t\t\t};\r\n\r\n\t\t\tfunction getLibraries() {\r\n\t\t\t\treturn sbadminLibrariesService.getLibraries().then(function (response) {\r\n\t\t\t\t\t_libraries = $filter('orderBy')(response, 'LibraryName');\r\n\r\n\t\t\t\t\treturn _libraries;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 265 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\r\n\t(function () {\r\n\t 'use strict';\r\n\t /**\r\n\t * @ngdoc service\r\n\t * @name sharebase-admin.sbadminLibraryDataStore\r\n\t *\r\n\t * @description\r\n\t * A datastore used to interact with ShareBase libraries\r\n\t **/\r\n\t angular\r\n\t .module('sharebase-admin')\r\n\t .factory('sbadminLibraryDataStore', [\r\n\t '$q',\r\n\t 'PX_OBJECT_TYPE',\r\n\t 'sbShareService',\r\n\t 'sbadminLibraryService',\r\n\t LibraryDataStore\r\n\t ]);\r\n\t function LibraryDataStore($q, ObjectType, shareService, libraryService) {\r\n\t var _library = null;\r\n\t var _shares = [];\r\n\t var _newLibrary = {\r\n\t LibraryId: null,\r\n\t LibraryName: null\r\n\t };\r\n\t var datastore = {\r\n\t /**\r\n\t * @ngdoc property\r\n\t * @name sbadminLibraryDataStore#type\r\n\t * @propertyOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * PX_OBJECT_TYPES enum designation of the entities contained within.\r\n\t *\r\n\t * @returns {int} PX_OBJECT_TYPES enum value.\r\n\t */\r\n\t type: ObjectType.LIBRARY,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#getLibrary\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Gets a library\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with a library\r\n\t *\r\n\t */\r\n\t load: getLibrary,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#saveLibrary\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Saves a library\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with a library\r\n\t *\r\n\t */\r\n\t saveLibrary: saveLibrary,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#getShares\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Retrieves the associates shares for the currently loaded library.\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with a library's shares.\r\n\t *\r\n\t */\r\n\t getShares: getShares,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#createShare\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Creates a new share for the currently loaded library.\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with the new share.\r\n\t *\r\n\t */\r\n\t createShare: createShare,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#createShares\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Creates new shares for the currently loaded library.\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with the new shares.\r\n\t *\r\n\t */\r\n\t createShares: createShares,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#updateShare\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Updates the rights and advanced permissions of the provided share for the loaded library.\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with the updated share.\r\n\t *\r\n\t */\r\n\t updateShare: function (updatedShare, rightId, rights) {\r\n\t guardLibrary();\r\n\t return shareService\r\n\t .updateShare(_library.LibraryId, updatedShare, rightId, rights)\r\n\t .then(assignShares);\r\n\t },\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#deleteShare\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Deletes the provided share for the loaded library.\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with the deleted share.\r\n\t *\r\n\t */\r\n\t deleteShare: deleteShare,\r\n\t /**\r\n\t * @ngdoc method\r\n\t * @name sbadminLibraryDataStore#getPermissions\r\n\t * @methodOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind function\r\n\t *\r\n\t * @description\r\n\t * Gets the available rights and advanced options for the provided share.\r\n\t *\r\n\t * @returns {Deferred} A promise that will resolve with the available rights and advanced options for the share.\r\n\t *\r\n\t */\r\n\t getPermissions: getPermissions,\r\n\t /**\r\n\t * @ngdoc property\r\n\t * @name sbadminLibraryDataStore#library\r\n\t * @propertyOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * A library\r\n\t *\r\n\t * @returns {array} A library\r\n\t */\r\n\t get library() { return _library; },\r\n\t set library(lib) { _library = lib; },\r\n\t /**\r\n\t * @ngdoc property\r\n\t * @name sbadminLibraryDataStore#shares\r\n\t * @propertyOf sharebase-admin.sbadminLibraryDataStore\r\n\t * @kind property\r\n\t *\r\n\t * @description\r\n\t * A list of users or groups this library is shared with, if any.\r\n\t *\r\n\t * @returns {array} An an array of shared users or groups.\r\n\t */\r\n\t get shares() { return _shares; }\r\n\t };\r\n\t shareService.configure(datastore.type, libraryService, function () { return _shares; });\r\n\t return datastore;\r\n\t function getLibrary(libraryId) {\r\n\t if (!libraryId) {\r\n\t //create a new instance\r\n\t _library = _newLibrary;\r\n\t return $q.resolve(_newLibrary);\r\n\t }\r\n\t return libraryService\r\n\t .getLibrary(libraryId)\r\n\t .then(function (lib) {\r\n\t _library = lib;\r\n\t return _library;\r\n\t });\r\n\t }\r\n\t function getCurrentUserAcl() {\r\n\t guardLibrary();\r\n\t return shareService.getCurrentUserAcl(_library.LibraryId);\r\n\t }\r\n\t function getPermissions(share) {\r\n\t return getCurrentUserAcl()\r\n\t .then(function (myAcl) { return shareService.getRights(myAcl, datastore.type, share); });\r\n\t }\r\n\t function getShares() {\r\n\t guardLibrary();\r\n\t return shareService\r\n\t .getShares(_library.LibraryId)\r\n\t .then(assignShares);\r\n\t }\r\n\t function createShare(entity, rightId, rights) {\r\n\t guardLibrary();\r\n\t return shareService\r\n\t .createShare(_library.LibraryId, entity, rightId, rights)\r\n\t .then(assignShares);\r\n\t }\r\n\t function createShares(entities, rightId, rights) {\r\n\t guardLibrary();\r\n\t return shareService\r\n\t .createShares(_library.LibraryId, entities, rightId, rights)\r\n\t .then(assignShares);\r\n\t }\r\n\t function deleteShare(deletedShare) {\r\n\t guardLibrary();\r\n\t return shareService\r\n\t .deleteShare(_library.LibraryId, deletedShare)\r\n\t .then(assignShares);\r\n\t }\r\n\t function saveLibrary() {\r\n\t guardLibrary();\r\n\t if (_library.LibraryId) {\r\n\t return libraryService.updateLibrary(_library)\r\n\t .then(function (lib) {\r\n\t return lib;\r\n\t });\r\n\t }\r\n\t else {\r\n\t return libraryService.addLibrary(_library)\r\n\t .then(function (lib) {\r\n\t _library = lib;\r\n\t return lib;\r\n\t });\r\n\t }\r\n\t }\r\n\t function assignShares(shares) {\r\n\t return _shares = shares;\r\n\t }\r\n\t function guardLibrary() {\r\n\t if (!angular.isDefined(_library) || _library === null) {\r\n\t throw new Error('No library loaded.');\r\n\t }\r\n\t }\r\n\t }\r\n\t})();\r\n\n\n/***/ },\n/* 266 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPasswordPoliciesDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with ShareBase password policies\r\n\t\t**/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPasswordPoliciesDataStore',\r\n\t\t\t[\r\n\t\t\t\t'$filter',\r\n\t\t\t\t'sbadminPasswordPoliciesService',\r\n\t\t\t\tPasswordPoliciesDataStore\r\n\t\t\t]);\r\n\r\n\t\tfunction PasswordPoliciesDataStore($filter, sbadminPasswordPoliciesService) {\r\n\t\t\tvar _passwordPolicies = null;\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPoliciesDataStore#getPasswordPolicies\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPoliciesDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a collection of password policies\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a collection of password policies\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetPasswordPolicies: getPasswordPolicies,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPoliciesDataStore#passwordPolicies\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPoliciesDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* A collection of password policies\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {array} An array of password policies\r\n\t\t\t\t*/\r\n\t\t\t\tget passwordPolicies() { return _passwordPolicies; },\r\n\t\t\t};\r\n\r\n\t\t\tfunction getPasswordPolicies() {\r\n\t\t\t\treturn sbadminPasswordPoliciesService.getPasswordPolicies().then(function (response) {\r\n\t\t\t\t\t_passwordPolicies = $filter('orderBy')(response.Embedded.PasswordPolicies, 'Name');\r\n\r\n\t\t\t\t\treturn _passwordPolicies;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 267 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with a ShareBase password policy\r\n\t\t**/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPasswordPolicyDataStore',\r\n\t\t\t[\r\n\t\t\t\t'$q',\r\n\t\t\t\t'sbadminPasswordPolicyService',\r\n\t\t\t\tPasswordPolicyDataStore\r\n\t\t\t]);\r\n\r\n\t\tfunction PasswordPolicyDataStore($q, sbadminPasswordPolicyService) {\r\n\t\t\tvar _passwordPolicy = null;\r\n\r\n\t\t\tvar _enforceIdle = null;\r\n\t\t\tvar _enforceFailure = null;\r\n\t\t\tvar _expire = null;\r\n\t\t\tvar _requireWait = null;\r\n\r\n\t\t\tvar _newPasswordPolicy = {\r\n\t\t\t\tActive: false,\r\n\t\t\t\tPasswordPolicyId: null,\r\n\t\t\t\tIdleLimit: 360,\r\n\t\t\t\tFailedLoginLimit: 10,\r\n\t\t\t\tAutoRelease: true,\r\n\t\t\t\tLockoutLength: 5,\r\n\t\t\t\tReuseStyle: 0,\r\n\t\t\t\tReuseChangesLimit: 3,\r\n\t\t\t\tReuseDaysLimit: 0,\r\n\t\t\t\tHoursBetweenChanges: 24,\r\n\t\t\t\tExpiryDays: 180,\r\n\t\t\t\tAlphaQuota: 0,\r\n\t\t\t\tNumericQuota: 0,\r\n\t\t\t\tSpecialQuota: 0,\r\n\t\t\t\tUppercaseQuota: 0,\r\n\t\t\t\tLowercaseQuota: 0,\r\n\t\t\t\tRequiredQuotaMatch: 5,\r\n\t\t\t\tMaxRepeatedChars: 3,\r\n\t\t\t\tMinLength: 15\r\n\t\t\t};\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#getPasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tgetPasswordPolicy: getPasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#savePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Saves a specific password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tsavePasswordPolicy: savePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#deletePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a deleted password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tdeletePasswordPolicy: deletePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#activatePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with an active password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tactivatePasswordPolicy: activatePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#deactivatePasswordPolicy\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Gets a specific document to the user\r\n\t\t\t\t* \r\n\t\t\t\t* @param {object} passwordPolicy A password policy\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a deactivated password policy\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tdeactivatePasswordPolicy: deactivatePasswordPolicy,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#passwordPolicy\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* An existing password policy\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {object} An existing password policy\r\n\t\t\t\t*/\r\n\t\t\t\tget passwordPolicy() { return _passwordPolicy; },\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#requireWait\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Require Hours Between Changes'\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {boolean} A boolean representing 'Require Hours Between Changes'\r\n\t\t\t\t*/\r\n\t\t\t\tget requireWait() {\r\n\t\t\t\t\tif (_requireWait === null) {\r\n\t\t\t\t\t\t_requireWait = _passwordPolicy ? (_passwordPolicy.HoursBetweenChanges > 0) : null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn _requireWait;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#requireWait\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Require Hours Between Changes'\r\n\t\t\t\t*/\r\n\t\t\t\tset requireWait(val) {\r\n\t\t\t\t\t_requireWait = val;\r\n\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t_passwordPolicy.HoursBetweenChanges = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#expire\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Expire Every Days'\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {boolean} A boolean representing 'Expire Every Days'\r\n\t\t\t\t*/\r\n\t\t\t\tget expire() {\r\n\t\t\t\t\tif (_expire === null) {\r\n\t\t\t\t\t\t_expire = _passwordPolicy ? (_passwordPolicy.ExpiryDays > 0) : null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn _expire;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#expire\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Expire Every Days'\r\n\t\t\t\t*/\r\n\t\t\t\tset expire(val) {\r\n\t\t\t\t\t_expire = val;\r\n\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t_passwordPolicy.ExpiryDays = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceFailure\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Lockout After Failed Logins'\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {boolean} A boolean representing 'Lockout After Failed Logins'\r\n\t\t\t\t*/\r\n\t\t\t\tget enforceFailure() {\r\n\t\t\t\t\tif (_enforceFailure === null) {\r\n\t\t\t\t\t\t_enforceFailure = _passwordPolicy ? (_passwordPolicy.FailedLoginLimit > 0) : null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn _enforceFailure;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceFailure\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Lockout After Failed Logins'\r\n\t\t\t\t*/\r\n\t\t\t\tset enforceFailure(val) {\r\n\t\t\t\t\t_enforceFailure = val;\r\n\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t_passwordPolicy.FailedLoginLimit = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceIdle\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Lockout After Idle Days'\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {boolean} A boolean representing 'Lockout After Idle Days'\r\n\t\t\t\t*/\r\n\t\t\t\tget enforceIdle() {\r\n\t\t\t\t\tif (_enforceIdle === null) {\r\n\t\t\t\t\t\t_enforceIdle = _passwordPolicy ? (_passwordPolicy.IdleLimit > 0) : null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn _enforceIdle;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPasswordPolicyDataStore#enforceIdle\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPasswordPolicyDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* 'Lockout After Idle Days'\r\n\t\t\t\t*/\r\n\t\t\t\tset enforceIdle(val) {\r\n\t\t\t\t\t_enforceIdle = val;\r\n\t\t\t\t\tif (val === false) {\r\n\t\t\t\t\t\t_passwordPolicy.IdleLimit = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t};\r\n\r\n\t\t\tfunction getPasswordPolicy(passwordPolicyId) {\r\n\t\t\t\tresetProperties();\r\n\r\n\t\t\t\tif (!passwordPolicyId) {\r\n\t\t\t\t\t_passwordPolicy = angular.copy(_newPasswordPolicy);\r\n\r\n\t\t\t\t\treturn $q.resolve(_passwordPolicy);\r\n\t\t\t\t}\r\n\t\t\t\treturn sbadminPasswordPolicyService.getPasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\t_passwordPolicy = response;\r\n\r\n\t\t\t\t\treturn _passwordPolicy;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction savePasswordPolicy() {\r\n\t\t\t\tif (_passwordPolicy.PasswordPolicyId) {\r\n\t\t\t\t\treturn sbadminPasswordPolicyService.updatePasswordPolicy(_passwordPolicy).then(function (response) {\r\n\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn sbadminPasswordPolicyService.createPasswordPolicy(_passwordPolicy).then(function (response) {\r\n\t\t\t\t\t\treturn response;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction deletePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn sbadminPasswordPolicyService.deletePasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction activatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn sbadminPasswordPolicyService.activatePasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction deactivatePasswordPolicy(passwordPolicyId) {\r\n\t\t\t\treturn sbadminPasswordPolicyService.deactivatePasswordPolicy(passwordPolicyId).then(function (response) {\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction resetProperties() {\r\n\t\t\t\t_passwordPolicy = null;\r\n\r\n\t\t\t\t_enforceIdle = null;\r\n\t\t\t\t_enforceFailure = null;\r\n\t\t\t\t_expire = null;\r\n\t\t\t\t_requireWait = null;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t})();\n\n/***/ },\n/* 268 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminPendingDeploymentsDataStore', [\r\n\t\t\t\t'sbadminPendingDeploymentsService',\r\n\t\t\t\t'$q',\r\n\t\t\t\tPendingDeploymentsDataStore\r\n\t\t\t]);\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with the contents of a Document.\r\n\t\t* \r\n\t\t**/\r\n\t\tfunction PendingDeploymentsDataStore(sbadminPendingDeploymentsService, $q) {\r\n\t\t\tvar _deployments = null;\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminPendingDeploymentsDataStore#pageCount\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* User's pending deployments \r\n\t\t\t\t*/\r\n\t\t\t\tget deployments() { return _deployments; },\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsDataStore#getPendingDeployment\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Load a pending deployment\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a pending deployment model\r\n\t\t\t\t*/\r\n\t\t\t\tgetPendingDeployment: getPendingDeployment,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsDataStore#loadPendingDeployments\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Loads pending deployments\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a selected document\r\n\t\t\t\t*/\r\n\t\t\t\tload: loadPendingDeployments,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsDataStore#resend\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Resends email notification to owner of pending deployment\r\n\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the server response\r\n\t\t\t\t*/\r\n\t\t\t\tresendNotification: resendNotification,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminPendingDeploymentsDataStore#save\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminPendingDeploymentsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Saves a pending deployment\r\n\t\t\t\t* @param {object} A pending deployment model\r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with the server response\r\n\t\t\t\t*/\r\n\t\t\t\tsave: save\r\n\t\t\t};\r\n\r\n\t\t\tfunction filterDeploymentsById(pendingDeploymentId) {\r\n\t\t\t\tvar pendingDeployment = null;\r\n\t\t\t\tif (_deployments) {\r\n\t\t\t\t\tfor (var i = 0, ii = _deployments.length; i < ii; i++) {\r\n\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\tif (_deployments[i].PendingDeploymentRegistrationId == pendingDeploymentId) { \r\n\t\t\t\t\t\t\tpendingDeployment = _deployments[i];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn pendingDeployment;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getPendingDeployment(pendingDeploymentId) {\r\n\t\t\t\tvar promise = $q.resolve();\r\n\r\n\t\t\t\tif (!_deployments) {\r\n\t\t\t\t\tpromise = loadPendingDeployments();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpromise = promise.then(function () {\r\n\t\t\t\t\treturn filterDeploymentsById(pendingDeploymentId);\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn promise;\r\n\t\t\t}\r\n\t\t\r\n\t\t\tfunction loadPendingDeployments() {\r\n\t\t\t\treturn sbadminPendingDeploymentsService.getDeployments().then(function (deployments) {\r\n\t\t\t\t\t_deployments = deployments;\r\n\t\t\t\t\treturn _deployments;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction resendNotification(pendingDeployment) {\r\n\t\t\t\treturn sbadminPendingDeploymentsService.resendNotification(pendingDeployment);\r\n\t\t\t}\r\n\r\n\t\t\tfunction save(pendingDeployment) {\r\n\t\t\t\treturn sbadminPendingDeploymentsService.save(pendingDeployment).then(function () {\r\n\t\t\t\t\tvar pendingDeploymentId = pendingDeployment.pendingDeploymentId;\r\n\t\t\t\t\t// Update data store\r\n\t\t\t\t\tif (_deployments) {\r\n\t\t\t\t\t\tfor (var i = 0, ii = _deployments.length; i < ii; i++) {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\tif (_deployments[i].PendingDeploymentRegistrationId == pendingDeploymentId) {\r\n\t\t\t\t\t\t\t\t_deployments[i] = pendingDeployment;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn pendingDeployment;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 269 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminTenantAdminDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with a ShareBase tenant administrator\r\n\t\t* \r\n\t\t*/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminTenantAdminDataStore',\r\n\t\t\t[\r\n\t\t\t\t'sbadminTenantAdminService',\r\n\t\t\t\tTenantAdminDataStore\r\n\t\t\t]);\r\n\t\t\r\n\t\tfunction TenantAdminDataStore(sbadminTenantAdminService) {\r\n\t\t\tvar _administrator = null;\r\n\r\n\t\t\treturn {\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminTenantAdminDataStore#saveAdministrator\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminTenantAdminDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @param {integer} groupID The id of the group to add administrator to\r\n\t\t\t\t* @param {string} username The username of the new administrator\r\n\t\t\t\t* @param {string} emailAddress The email address of the new administrator\r\n\t\t\t\t* @param {string} password The password of the new administrator \r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Creates a new user that is a tenant administrator\r\n\t\t\t\t* \r\n\t\t\t\t*/\r\n\t\t\t\tcreateAdministrator: createAdministrator,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminTenantAdminDataStore#administrator\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminTenantAdminDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* A tenant administrator\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {object} A tenant administrator\r\n\t\t\t\t*/\r\n\t\t\t\tget administrator() { return _administrator || getAdministrator(); }\r\n\t\t\t};\r\n\r\n\t\t\tfunction getAdministrator() {\r\n\t\t\t\treturn sbadminTenantAdminService.getAdministrator().then(function (response) {\r\n\t\t\t\t\t_administrator = response;\r\n\r\n\t\t\t\t\treturn _administrator;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction createAdministrator(groupID, username, emailAddress, password) {\r\n\t\t\t\treturn sbadminTenantAdminService.createAdministrator(groupID, username, emailAddress, password);\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 270 */\n/***/ function(module, exports) {\n\n\t(function () {\r\n\t\t'use strict';\r\n\r\n\t\t/**\r\n\t\t* @ngdoc service\r\n\t\t* @name sharebase-admin.sbadminTenantAdminsDataStore\r\n\t\t* \r\n\t\t* @description \r\n\t\t* A datastore used to interact with ShareBase tenant administrators\r\n\t\t* \r\n\t\t*/\r\n\r\n\t\tangular\r\n\t\t\t.module('sharebase-admin')\r\n\t\t\t.factory('sbadminTenantAdminsDataStore',\r\n\t\t\t[\r\n\t\t\t\t'$q',\r\n\t\t\t\t'sbadminTenantAdminsService',\r\n\t\t\t\tTenantAdminsDataStore\r\n\t\t\t]);\r\n\t\t\r\n\t\tfunction TenantAdminsDataStore($q, sbadminTenantAdminsService) {\r\n\t\t\tvar _administrators = null;\r\n\r\n\t\t\treturn {\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc method\r\n\t\t\t\t* @name sbadminTenantAdminsDataStore#getAdministrators\r\n\t\t\t\t* @methodOf sharebase-admin.sbadminTenantAdminsDataStore\r\n\t\t\t\t* @kind function\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* Loads or refreshes list of tenant admins\r\n\t\t\t\t* \r\n\t\t\t\t* @returns {Deferred} A promise that will resolve with a list of group admins\r\n\t\t\t\t*/\r\n\t\t\t\tgetAdministrators: getAdministrators,\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t* @ngdoc property\r\n\t\t\t\t* @name sbadminTenantAdminsDataStore#administrators\r\n\t\t\t\t* @propertyOf sharebase-admin.sbadminTenantAdminsDataStore\r\n\t\t\t\t* @kind property\r\n\t\t\t\t*\r\n\t\t\t\t* @description\r\n\t\t\t\t* A list of tenant admins\r\n\t\t\t\t*\r\n\t\t\t\t* @returns {object} An array of tenant admins\r\n\t\t\t\t*/\r\n\t\t\t\tget administrators() { return _administrators; },\r\n\t\t\t};\r\n\r\n\t\t\tfunction getAdministrators() {\r\n\t\t\t\treturn sbadminTenantAdminsService.getAdministrators().then(function (response) {\r\n\t\t\t\t\t_administrators = response;\r\n\r\n\t\t\t\t\treturn _administrators;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t})();\n\n/***/ },\n/* 271 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/sharebase-bundle/sharebase.js\n// module id = 208\n// module chunks = 3"],"sourceRoot":""}