{"version":3,"file":"main-es2015.js","mappings":"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","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/app-breadcrumbs.component.ts","./src/app/app-commands.component.ts","./src/app/app-commands.component.html","./src/app/app-header.component.ts","./src/app/app-header.component.html","./src/app/app-home.component.ts","./src/app/app-nav-sidebar.component.ts","./src/app/app-notify-dialog.component.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/directives/directives.module.ts","./src/app/directives/drag-target.directive.ts","./src/app/directives/draggable-file.directive.ts","./src/app/directives/draggable.directive.ts","./src/app/directives/gesture.directive.ts","./src/app/directives/validate-onblur.directive.ts","./src/app/forms/abstract-value-accessor.ts","./src/app/forms/checkbox-field.component.ts","./src/app/forms/dynamic-form-field.component.ts","./src/app/forms/dynamic-form-field.component.html","./src/app/forms/dynamic-form-row.component.ts","./src/app/forms/dynamic-form.component.ts","./src/app/forms/edx-forms.module.ts","./src/app/forms/filter-sidebar.component.ts","./src/app/forms/filter-sidebar.component.html","./src/app/forms/form-field-list.component.ts","./src/app/forms/form-login.component.ts","./src/app/forms/form-scripts.ts","./src/app/forms/form-wrapper.component.ts","./src/app/forms/group-box-field.component.ts","./src/app/forms/link-field.component.ts","./src/app/forms/location-chooser-field.component.ts","./src/app/forms/numeric-field.component.ts","./src/app/forms/progress-field.component.ts","./src/app/forms/radio-field.component.ts","./src/app/forms/radio-group.component.ts","./src/app/forms/read-only-text-field.component.ts","./src/app/forms/segment-field.component.ts","./src/app/forms/select-field.component.ts","./src/app/index.ts","./src/app/lists/list-base.component.ts","./src/app/lists/list-folder-picker.component.ts","./src/app/lists/list-folder-picker.component.html","./src/app/lists/list-item-preview.component.ts","./src/app/lists/list-item-tile.component.ts","./src/app/lists/list-mobile.component.ts","./src/app/lists/list-mobile.component.html","./src/app/lists/list-security.component.ts","./src/app/lists/list-summary.component.ts","./src/app/lists/list-table.component.ts","./src/app/lists/list-table.component.html","./src/app/lists/list-tile.component.ts","./src/app/lists/list-user-groups-picker.component.ts","./src/app/lists/lists.module.ts","./src/app/models/column.ts","./src/app/models/command-handler.ts","./src/app/models/file-form-info.ts","./src/app/models/form-field.ts","./src/app/models/list-item.ts","./src/app/models/menu-item.ts","./src/app/models/nav-item.ts","./src/app/models/security-control.ts","./src/app/models/tab-item.ts","./src/app/models/tile.ts","./src/app/pipes/translate.pipe.ts","./src/app/services/data.service.ts","./src/app/services/form.service.ts","./src/app/services/list.service.ts","./src/app/services/localize.service.ts","./src/app/services/lookup.service.ts","./src/app/services/menu.service.ts","./src/app/services/nav.service.ts","./src/app/services/oauth2.service.ts","./src/app/services/ooxml.service.ts","./src/app/services/profile.service.ts","./src/app/services/schema.service.ts","./src/app/services/settings.service.ts","./src/app/services/tile.service.ts","./src/app/tiles/hero-tile-component.ts","./src/app/tiles/tile.component.ts","./src/app/tiles/tiles-container.component.ts","./src/app/tiles/tiles.module.ts","./src/app/utils/device.ts","./src/app/utils/field-mappings.ts","./src/app/utils/help.ts","./src/app/utils/notify.ts","./src/app/utils/restful.ts","./src/app/utils/transforms.ts","./src/app/utils/utils.module.ts","./src/app/widgets/action-bar.component.ts","./src/app/widgets/custom-security.component.ts","./src/app/widgets/filelist-sidebar.component.ts","./src/app/widgets/inline-action-bar.component.ts","./src/app/widgets/list-info-footer.component.ts","./src/app/widgets/location-chooser.component.ts","./src/app/widgets/menu.component.ts","./src/app/widgets/menu.component.html","./src/app/widgets/paginator.component.ts","./src/app/widgets/popup.component.ts","./src/app/widgets/progress.component.ts","./src/app/widgets/refresher.component.ts","./src/app/widgets/search-filter.component.ts","./src/app/widgets/search-menu.component.ts","./src/app/widgets/search-menu-component.html","./src/app/widgets/search-mobile.component.ts","./src/app/widgets/search-office.component.ts","./src/app/widgets/segment.component.ts","./src/app/widgets/select.component.ts","./src/app/widgets/spinner.component.ts","./src/app/widgets/tab-selector.component.ts","./src/app/widgets/widgets.module.ts","./src/app/windows/window-modal-folders.component.ts","./src/app/windows/window-modal-form-login.component.ts","./src/app/windows/window-modal-header.component.ts","./src/app/windows/window-modal-metadata.component.ts","./src/app/windows/window-modal-metadata.component.html","./src/app/windows/window-modal-preferences.component.ts","./src/app/windows/window-modal-preferences.component.html","./src/app/windows/window-modal-splitview.component.ts","./src/app/windows/window-modal.component.ts","./src/app/windows/window-view-folders.component.ts","./src/app/windows/windows.module.ts","./src/main_outlook_ai.ts"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Component, OnInit, Input, HostListener, ChangeDetectorRef, ViewChild, AfterViewChecked, ElementRef, NgZone } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { DataService } from './services/data.service';\r\nimport { FormService } from './services/form.service';\r\nimport { SchemaService } from './services/schema.service';\r\nimport { ProfileService } from './services/profile.service';\r\nimport { oAuth2Service } from './services/oauth2.service';\r\nimport { OOxmlService } from './services/ooxml.service';\r\nimport { Util, UserInterface } from './utils/utils.module';\r\nimport { AppComponent } from './app.component';\r\nimport { CommandHandler } from './models/command-handler';\r\nimport { MenuComponent } from './widgets/menu.component';\r\nimport { PopupComponent } from './widgets/popup.component';\r\nimport { MenuItem } from './models/menu-item';\r\n\r\nconst kOverflowMenuWidth = 70;\r\n\r\nclass _BCState {\r\n private _crumb: string;\r\n private _url: string;\r\n private _originalUrl: string;\r\n constructor(crumb: string, url: string) {\r\n this._crumb = crumb;\r\n this._url = url;\r\n this._originalUrl = url;\r\n }\r\n public changeCrumb(crumb: string): void {\r\n this._crumb = crumb;\r\n }\r\n public changeUrl(url: string): void {\r\n this._url = url;\r\n }\r\n public get crumb(): string {\r\n return this._crumb;\r\n }\r\n public get url(): string {\r\n return this._url;\r\n }\r\n public get originalUrl(): string {\r\n return this._originalUrl;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'edx-app-breadcrumbs',\r\n styleUrls: [ 'app-breadcrumbs.component.scss' ],\r\n template: `\r\n
1 || ui===0\" class=\"headercrumbcontainer\" [ngClass]=\"{shown:isShown, showing:isShowing, hiding:isHiding}\" (animationend)=\"breadcrumbsAnimationComplete()\">\r\n \r\n
\r\n
{{crumb}}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n `\r\n})\r\nexport class AppBreadcrumbsComponent implements OnInit, AfterViewChecked, CommandHandler {\r\n @ViewChild('container') container: ElementRef;\r\n @ViewChild('overflowMenu') overflowMenu: MenuComponent = null;\r\n @Input() app: AppComponent;\r\n public ui: UserInterface;\r\n public isShown = false;\r\n public displayCrumbs: string[] = []; // when all the crumbs will not fit this list is smaller than the full list\r\n private isEnabled = true;\r\n private isShowing = false;\r\n private isHiding = false;\r\n private isMeasuringCrumbs = false;\r\n private layoutComplete = false;\r\n private hasOverflow = false;\r\n private overflowEndIdx = -1;\r\n private overflowMentID = -1;\r\n private states: _BCState[] = [];\r\n private navLoc = '';\r\n public altLabel: any;\r\n\r\n constructor(private router: Router, private http: HttpClient, private cdr: ChangeDetectorRef, private zone: NgZone, private localizer: LocalizeService, private dataService: DataService, private formService: FormService, private schemaService: SchemaService, private profileService: ProfileService, private oauth2Service: oAuth2Service, private ooxmlService: OOxmlService) {\r\n Util.Device.init();\r\n this.ui = Util.Device.ui;\r\n this.altLabel = {breadCrumbLabel: this.localizer.getTranslation('ALT_TEXT.BREADCRUMB'),overflowLabel:this.localizer.getTranslation('ALT_TEXT.OVERFLOW_MENU')};\r\n }\r\n\r\n @HostListener('window:resize')\r\n public updateCrumbs(): void {\r\n this.layoutComplete = false;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n ngOnInit(): void {\r\n Util.Transforms.setLocalizer(this.localizer);\r\n Util.Help.setLocalizer(this.localizer);\r\n Util.RestAPI.init(this.router, this.http, this.zone, this.app, this.localizer, this.dataService, this.formService, this.schemaService, this.profileService, this.oauth2Service, this.ooxmlService);\r\n this.navLoc = Util.RestAPI.getLoginURL();\r\n this.isEnabled = true;\r\n this.overflowMentID = this.ui===UserInterface.desktop ? 17 : this.ui===UserInterface.web ? 18 : 0;\r\n this.states.push(new _BCState(this.localizer.getTranslation('HEADER.HOME'),Util.RestAPI.getHomeURL()));\r\n this.updateCrumbs();\r\n if (this.app) {\r\n this.app.registerBreadcrumbs(this);\r\n }\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n const decodedPrevUrl: string = Util.RestAPI.decodeChildRouteURL(this.navLoc);\r\n const descPrev: any = Util.RestAPI.getDescFromURL(decodedPrevUrl);\r\n const hashPrev: string = this.navLoc.lastIndexOf('#')!==-1? this.navLoc.substr(this.navLoc.lastIndexOf('#')) : null;\r\n\r\n this.navLoc = this.router.url;\r\n const hash: string = this.navLoc.lastIndexOf('#')!==-1? this.navLoc.substr(this.navLoc.lastIndexOf('#')) : null;\r\n if (this.navLoc===Util.RestAPI.getLoginURL()) {\r\n this.states = [];\r\n if (hashPrev) {\r\n this.app.popCommandHandler(!hash);\r\n }\r\n } else {\r\n const decodedUrl: string = Util.RestAPI.decodeChildRouteURL(this.navLoc);\r\n const name: string = this.navLoc===Util.RestAPI.getHomeURL() ? this.localizer.getTranslation('HEADER.HOME') : Util.RestAPI.getNameFromURL(decodedUrl);\r\n const index: number = this.stateIndex(this.navLoc);\r\n const desc: any = Util.RestAPI.getDescFromURL(decodedUrl);\r\n const isSearchPage: boolean = desc && desc.id.startsWith('evaluation');\r\n const isFolderPage: boolean = desc && desc.id.startsWith('evaluation') && descPrev && (Util.isFolderWithId(descPrev) || Util.isFlexfolderLevelNode(descPrev));\r\n const isReSearchedFolderPage: boolean = decodedPrevUrl.indexOf(Util.kSearchFolderQuery)>0;\r\n const isSearchSaved: boolean = desc && desc.type === 'searches' && !isNaN(parseInt(desc.id)) && descPrev && descPrev.type === 'searches' && (descPrev.id.startsWith('evaluation') || !isNaN(parseInt(descPrev.id)));\r\n\r\n if (index >= 0) {\r\n this.states.splice(index + 1).forEach((deadState: _BCState) => {\r\n const deadUrl: string = deadState.url;\r\n const deadHash: string = deadUrl.lastIndexOf('#')!==-1 ? deadUrl.substr(deadUrl.lastIndexOf('#')) : null;\r\n if (!deadHash) {\r\n const deadDecodedUrl = Util.RestAPI.decodeChildRouteURL(deadUrl);\r\n const deadDesc = Util.RestAPI.getDescFromURL(deadDecodedUrl);\r\n this.dataService.clear(deadDesc);\r\n }\r\n });\r\n if (hashPrev) {\r\n this.app.popCommandHandler(!hash);\r\n }\r\n } else {\r\n if ((((name && name.length) || (hash && hash.length)) && this.navLoc && this.navLoc.length && desc && !desc.id.startsWith('evaluation')) || isSearchPage) {\r\n if (isSearchPage && (!isFolderPage && !isReSearchedFolderPage)) {\r\n this.states.splice(1);\r\n } else if (isSearchSaved || (isSearchPage && isReSearchedFolderPage && (!hash || !hash.length))) {\r\n this.states.splice(this.states.length - 1);\r\n }\r\n this.states.push(new _BCState(hash ? hash : name, this.navLoc));\r\n }\r\n }\r\n }\r\n this.setVisibility();\r\n this.updateCrumbs();\r\n this.app.routeChanged();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.doLayout();\r\n }\r\n\r\n private stateIndex(navLoc: string): number {\r\n let state: _BCState = this.states.find(s => s.url === navLoc);\r\n if (!state) {\r\n state = this.states.find(s => s.originalUrl === navLoc);\r\n }\r\n if (!!state) {\r\n return this.states.indexOf(state);\r\n }\r\n return -1;\r\n }\r\n\r\n private fillOverflowMenu(): void {\r\n if (!this.isMeasuringCrumbs && !this.layoutComplete) {\r\n if (this.overflowEndIdx > 0) {\r\n const menuItems: MenuItem[] = [];\r\n this.displayCrumbs = [];\r\n for (let i=0; i=1 && i=1) {\r\n crumbWidths.push((crumbEl.offsetWidth+margin));\r\n } else {\r\n availableWidth -= crumbEl.offsetWidth + margin;\r\n }\r\n ++i;\r\n }\r\n for (i=crumbWidths.length-1; i>=0; i--) {\r\n availableWidth -= crumbWidths[i];\r\n if (availableWidth < kOverflowMenuWidth) {\r\n this.overflowEndIdx = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n // fill up overflow menu and truncate the crumbs that are shown\r\n if (this.overflowEndIdx===-1) {\r\n this.displayCrumbs = [];\r\n for (const state of this.states) {\r\n this.displayCrumbs.push(state.crumb);\r\n }\r\n this.hasOverflow = false;\r\n }\r\n this.fillOverflowMenu();\r\n }\r\n\r\n private doLayout(): void {\r\n if (!this.layoutComplete) {\r\n if (!this.isMeasuringCrumbs) {\r\n this.displayCrumbs = [];\r\n for (const state of this.states) {\r\n this.displayCrumbs.push(state.crumb);\r\n }\r\n this.hasOverflow = false;\r\n this.overflowEndIdx = -1;\r\n if (this.container) {\r\n this.isMeasuringCrumbs = true;\r\n setTimeout(() => {\r\n this.measureCrumbs();\r\n }, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public navBack(): void {\r\n if (this.states.length) {\r\n const lastCrumb: number = this.states.length-1;\r\n const crumb: string = this.states[lastCrumb].crumb;\r\n if (crumb.startsWith('#')) {\r\n history.go(-1);\r\n } else {\r\n this.navToUrlIndex(lastCrumb - 1);\r\n }\r\n }\r\n }\r\n\r\n public contains(url: string): boolean {\r\n let found = false;\r\n for (const state of this.states) {\r\n const crumbUrl = state.url;\r\n const crumbChild = Util.RestAPI.decodeChildRouteURL(crumbUrl);\r\n if (url === crumbUrl || url === crumbChild) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n return found;\r\n }\r\n\r\n public acceptFileDrag(): boolean {\r\n const hash: string = this.navLoc.lastIndexOf('#')!==-1? this.navLoc.substr(this.navLoc.lastIndexOf('#')) : null;\r\n if (!!hash) {\r\n return false;\r\n }\r\n return MenuComponent.nMenusShown===0 && PopupComponent.nPopupsShown===0;\r\n }\r\n\r\n public canBeShown(): boolean {\r\n const decodedUrl: string = Util.RestAPI.decodeChildRouteURL(this.navLoc);\r\n return this.ui<2 && this.navLoc !== '/' && this.navLoc !== Util.RestAPI.getHomeURL() && this.navLoc !== Util.RestAPI.getLoginURL() && decodedUrl.indexOf('/form') !== 0;\r\n }\r\n\r\n private setVisibility(): void {\r\n if (this.isEnabled && this.canBeShown()) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n private crumbClicked(index: number): void {\r\n if (this.isShown) {\r\n if (index > 0 && this.overflowEndIdx > 0) {\r\n index = index + this.overflowEndIdx - 1;\r\n }\r\n this.navToUrlIndex(index);\r\n }\r\n }\r\n\r\n private navToUrlIndex(index: number): void {\r\n if (index>=0 && index < this.states.length-1) {\r\n Util.RestAPI.setCurDescForFlexFolders(this.states[index].url);\r\n Util.RestAPI.navToURL(this.states[index].url);\r\n }\r\n }\r\n\r\n public setEnabled(enabled: boolean): void {\r\n this.isEnabled = enabled;\r\n this.setVisibility();\r\n }\r\n\r\n public show(): void {\r\n this.isHiding = false;\r\n if (!this.isShown) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n public hide(): void {\r\n this.isShowing = false;\r\n if (this.isShown) {\r\n this.isHiding = true;\r\n }\r\n }\r\n\r\n public breadcrumbsAnimationComplete(): void {\r\n if (this.isHiding) {\r\n this.isShown = false;\r\n } else if (this.isShowing) {\r\n this.isShown = true;\r\n }\r\n this.isShowing = false;\r\n this.isHiding = false;\r\n }\r\n\r\n public curWindowChangedTitle(title: string, oldTitle: string): void {\r\n const nStates: number = this.states.length;\r\n for (let i=nStates-1; i>=0; i--) {\r\n if (this.states[i].crumb === oldTitle) {\r\n this.states[i].changeCrumb(title);\r\n this.states[i].changeUrl(this.states[i].url.replace('%26name%3D'+oldTitle, '%26name%3D'+title));\r\n this.updateCrumbs();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public curUrlChanged(url: string): void {\r\n if (this.states.length>0 && this.states[this.states.length-1].url !== url) {\r\n this.states[this.states.length-1].changeUrl(url);\r\n }\r\n }\r\n\r\n // *** Implement commandHandler for overflow\r\n public commandEnabled(cmd: string): boolean {\r\n return true;\r\n }\r\n\r\n public doCommand(cmd: string): boolean {\r\n this.navToUrlIndex(parseInt(cmd));\r\n return true;\r\n }\r\n}\r\n","import { of as observableOf, from, Observable } from 'rxjs';\r\nimport { concatMap } from 'rxjs/operators';\r\nimport { HttpResponse } from '@angular/common/http';\r\nimport { Component, Input, ViewChild, OnInit, ElementRef, NgZone } from '@angular/core';\r\n\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { FormService } from './services/form.service';\r\nimport { ListService } from './services/list.service';\r\nimport { SettingsService } from './services/settings.service';\r\nimport { TileService } from './services/tile.service';\r\nimport { CommandHandler, FormResult } from './models/command-handler';\r\nimport { ListData } from './models/base';\r\nimport { ListItem, ListInterface } from './models/list-item';\r\nimport { ColFormat } from './models/column';\r\nimport { AccessLevel } from './models/security-control';\r\nimport { Tile } from './models/tile';\r\nimport { FileFormInfo, DataFile, tFilePickCB, tListPickCB } from './models/file-form-info';\r\nimport { SelectItem } from './models/form-field';\r\nimport { Util, UserInterface } from './utils/utils.module';\r\nimport { WindowModalComponent } from './windows/window-modal.component';\r\nimport { ListBaseComponent } from './lists/list-base.component';\r\nimport { FormWrapperComponent } from './forms/form-wrapper.component';\r\nimport { PopupCallback } from './widgets/popup.component';\r\nimport { SearchFilterComponent } from './widgets/search-filter.component';\r\nimport { AppComponent } from './app.component';\r\nimport { SelectComponent } from './widgets/select.component';\r\n\r\ndeclare let Office;\r\ndeclare let Word;\r\ndeclare let Excel;\r\n\r\nclass _FileUploadData {\r\n public files: File[];\r\n public filePaths: string[];\r\n public dataFiles: DataFile[];\r\n public form: string;\r\n public desc: any;\r\n public formData: any[];\r\n public trustees: any[];\r\n public fileFormInfo: FileFormInfo[];\r\n constructor(files: File[], filePaths: string[], dataFiles: DataFile[], form: string, desc: any, formData: any[], trustees: any[], info: FileFormInfo[]) {\r\n this.files = files;\r\n this.filePaths = filePaths;\r\n this.dataFiles = dataFiles;\r\n this.form = form;\r\n this.desc = desc;\r\n this.formData = formData || [];\r\n this.trustees = trustees || [];\r\n this.fileFormInfo = info || [];\r\n }\r\n}\r\n\r\n\r\n/*\r\n\r\n Be careful with ordering in this file and reset\r\n\r\n Case 1: A folder picker can be brought up in FRONT of a form dialog\r\n So the popup that conains the folder picker must be on top or in front of the form dialog\r\n When we dismiss the popup folder picker do not dismiss the form dialog if it is shown\r\n\r\n Case 2: A Profile dialog for creating containers is brought up in FRONT of a folder picker\r\n So the popup that conains the folder picker must be below or behind of the profile form dialog\r\n When we dismiss the popup profile form dialog do not dismiss the folder picker\r\n*/\r\n\r\n\r\n@Component({\r\n selector: 'edx-app-commands',\r\n styleUrls: [ 'app-commands.component.scss' ],\r\n templateUrl: 'app-commands.component.html'\r\n})\r\nexport class AppCommandsComponent implements OnInit, CommandHandler, PopupCallback {\r\n public pickerShown = false;\r\n public dialogShown = false;\r\n public notifyShown = false;\r\n public pickerCreateContainerShown = false;\r\n public pickerGroupsCreateContainerShown = false;\r\n private filePickerCB: tFilePickCB = null;\r\n private pickerTitle = '';\r\n private pickerGroupsTitle = '';\r\n private pickerOK = '';\r\n private pickerDesc: any = {};\r\n private pickerGroupsDesc: any = {};\r\n private pickerKind = '';\r\n private pickerCB: tListPickCB = null;\r\n private pickerGroupsCB: tListPickCB = null;\r\n private pickerHasFilter = false;\r\n private pickerForm: string = null;\r\n private pickerParams: string = null;\r\n private pickerLeadingColums: number[] = null;\r\n private pickerDisableList: ListItem[] = null;\r\n private pickerForceOK = false;\r\n private pickerDestListComponent: ListBaseComponent;\r\n private pickerRights = 0;\r\n private pickerFlexfoldersLevels: SelectItem[] = [];\r\n private pickerCurFlexfoldersLevel: SelectItem = null;\r\n private pickerKey: string = null;\r\n private isCustomPicker = false;\r\n // main dialog\r\n private dialogKind = '';\r\n private dialogTitle = '';\r\n private dialogOK = '';\r\n private dialogExtras: string = null;\r\n private dialogExtrasAlt: string = null;\r\n private dialogThirdBtn: string = null;\r\n private dialogCreateType: string = null;\r\n private dialogFormData: any = {};\r\n private dialogTrustees: any[] = [];\r\n private dialogApplyAllChecked: boolean = null;\r\n private dialogExtrasShown = false;\r\n private dialogFileFormInfo: FileFormInfo;\r\n private dialogSuccess = false;\r\n // picker create container dialog\r\n private pccDialogTitle = '';\r\n private pccDialogOK = '';\r\n private pccDialogExtras: string = null;\r\n private pccDialogExtrasAlt: string = null;\r\n private pccDialogThirdBtn: string = null;\r\n private pccDialogCreateType: string = null;\r\n private pccDialogFormData: any = {};\r\n private pccDialogTrustees: any[] = [];\r\n private pccDialogApplyAllChecked: boolean = null;\r\n private pccDialogExtrasShown = false;\r\n private pccDialogFileFormInfo: FileFormInfo;\r\n private pccDialogSuccess = false;\r\n private pccDesc: any = null;\r\n\r\n private list: ListItem[] = null;\r\n private pendingUploads: _FileUploadData[] = [];\r\n private curPendingUpload: _FileUploadData = null;\r\n private desc: any = null;\r\n private desc2: any = null;\r\n private kind2: string = null;\r\n private fileList: File[] = null;\r\n private filePaths: string[] = null;\r\n private dataFiles: DataFile[] = null;\r\n private currentCommand = '';\r\n private dialogWidth = 800;\r\n private pickerWidth = 800;\r\n private ui: UserInterface;\r\n private nFiles = 0;\r\n private contentFileList: File[] = [];\r\n private contentFilePath: string[] = [];\r\n public refList: ListItem[] = [];\r\n @Input() app: AppComponent;\r\n @ViewChild('filter') private filter: SearchFilterComponent;\r\n @ViewChild('picker') private picker: ListInterface;\r\n @ViewChild('pickerGroups') private pickerGroups: ListInterface;\r\n @ViewChild('formWrapper') private formWrapper: FormWrapperComponent;\r\n @ViewChild('pccFormWrapper') private pccFormWrapper: FormWrapperComponent;\r\n @ViewChild('rightWrapper') private rightWrapper: FormWrapperComponent;\r\n @ViewChild('headerWrapper') private headerWrapper: FormWrapperComponent;\r\n @ViewChild('uploadFilePicker') private uploadFilePicker: ElementRef;\r\n\r\n constructor(private localizer: LocalizeService, private formService: FormService, private tileService: TileService, private listService: ListService, private settingsService: SettingsService, private zone: NgZone) {\r\n this.ui = Util.Device.ui;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.app) {\r\n this.app.registerCommands(this);\r\n }\r\n }\r\n\r\n private resetPicker(): void {\r\n this.pickerShown = false;\r\n this.pickerTitle = '';\r\n this.pickerOK = '';\r\n this.pickerHasFilter = false;\r\n this.pickerLeadingColums = null;\r\n this.pickerDisableList = null;\r\n this.pickerDestListComponent = null;\r\n this.pickerRights = 0;\r\n this.pickerKey = null;\r\n }\r\n\r\n private resetDialog(): void {\r\n this.dialogShown = false;\r\n this.dialogKind = '';\r\n this.dialogTitle = '';\r\n this.dialogOK = '';\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n this.dialogThirdBtn = null;\r\n this.dialogCreateType = null;\r\n this.dialogFormData = {};\r\n this.dialogTrustees = [];\r\n this.dialogExtrasShown = false;\r\n this.dialogFileFormInfo = null;\r\n this.dialogSuccess = false;\r\n }\r\n\r\n private resetPickerCreateContainer(): void {\r\n this.pickerCreateContainerShown = false;\r\n this.pccDialogTitle = '';\r\n this.pccDialogOK = '';\r\n this.pccDialogExtras = null;\r\n this.pccDialogExtrasAlt = null;\r\n this.pccDialogThirdBtn = null;\r\n this.pccDialogCreateType = null;\r\n this.pccDialogFormData = {};\r\n this.pccDialogTrustees = [];\r\n this.pccDialogExtrasShown = false;\r\n this.pccDialogFileFormInfo = null;\r\n this.pccDialogSuccess = false;\r\n }\r\n\r\n private resetGroupPickerCreateContainer(): void {\r\n this.pickerGroupsCreateContainerShown = false;\r\n this.filePickerCB = null;\r\n this.pickerGroupsTitle = '';\r\n this.pickerGroupsDesc = {};\r\n this.pickerGroupsCB = null;\r\n }\r\n\r\n private reset(): void {\r\n this.resetPicker();\r\n this.resetDialog();\r\n this.resetPickerCreateContainer();\r\n this.desc = null;\r\n this.desc2 = null;\r\n this.kind2 = null;\r\n this.dialogWidth = 800;\r\n // do not reset pending uploads\r\n }\r\n\r\n private isPhoneLook(): boolean {\r\n return Util.Device.isPhoneLook();\r\n }\r\n\r\n private hasLevelDropdown(): boolean {\r\n return (this.currentCommand === 'addflexfolder');\r\n }\r\n\r\n private hasRightHeader(): boolean {\r\n return (!this.pickerShown && this.dialogShown && ((this.dialogKind==='__local_editsecurity') || (((['profile', 'profile_savetoedocs', 'profile_checkin'].indexOf(this.dialogKind) !== -1 || this.dialogKind.startsWith('profile_editdefs_')) && (this.dialogKind === 'profile_savetoedocs' || (this.desc && !Util.isExternalLib(this.desc.lib))))) || (this.kind2 && this.kind2.startsWith('profile') && this.desc2 && !Util.isExternalLib(this.desc2.lib)))) || (this.pickerShown && this.ui>=2 && this.pickerDesc.type==='folders' && this.pickerDesc.id==='downloads');\r\n }\r\n\r\n private pickerOKDisabled(): boolean {\r\n return (!this.pickerForceOK && this.picker) ? this.picker.okDisabled : false;\r\n }\r\n\r\n private pickerGroupsOKDisabled(): boolean {\r\n return !!this.pickerGroups? this.pickerGroups.okDisabled : false;\r\n }\r\n\r\n\r\n public fileInputChanged(): boolean {\r\n const fileList: File[] = this.uploadFilePicker.nativeElement.files;\r\n if (fileList.length > 0) {\r\n const contentFileList: File[] = [];\r\n let emptyFileNames = '';\r\n let countEmptyFiles = 0;\r\n const filePickCB = this.filePickerCB;\r\n for (const file of fileList) {\r\n if (file.size === 0) {\r\n countEmptyFiles = countEmptyFiles + 1;\r\n if (countEmptyFiles === 1) {\r\n emptyFileNames = file.name;\r\n } else {\r\n emptyFileNames = emptyFileNames + ',' + file.name;\r\n }\r\n } else {\r\n contentFileList.push(file);\r\n }\r\n }\r\n this.filePickerCB = null;\r\n if (this.pickerShown) {\r\n this.pickerForceOK = true;\r\n if (this.isPhoneLook()) {\r\n this.app.cordovaRight();\r\n } else {\r\n this.dismissPopup(true);\r\n }\r\n }\r\n // delay starting file uploads, we do not want a profile form to come up on top of the file picker so wait to make sure the file picker is gone bye-bye\r\n setTimeout(() => {\r\n if (filePickCB) {\r\n filePickCB(contentFileList, null, true);\r\n } else {\r\n if (countEmptyFiles !== 0) {\r\n Util.Notify.info(this.localizer.getTranslation('FORMS.LOCAL.UPLOAD.UPLOADING'), this.localizer.getTranslation('FORMS.LOCAL.UPLOAD.EMPTY_FILE', [emptyFileNames]));\r\n }\r\n if (countEmptyFiles < fileList.length) {\r\n this.initUpload(contentFileList, null, null);\r\n }\r\n }\r\n }, 1000);\r\n }\r\n return false;\r\n }\r\n\r\n private initUpload(fileList: File[], filePaths: string[], dataFiles: DataFile[]): void {\r\n const count = fileList ? fileList.length : filePaths ? filePaths.length : 0;\r\n if (count) {\r\n const listComponent: ListBaseComponent = this.pickerDestListComponent ? this.pickerDestListComponent : Util.RestAPI.getCurListComponent();\r\n // If a file is uploaded from hero tile, do not send any container info.\r\n const desc: any = listComponent ? listComponent.desc : null;\r\n if (this.pickerDestListComponent) {\r\n Util.RestAPI.setCurListComponent(this.pickerDestListComponent);\r\n }\r\n this.pickerDestListComponent = null;\r\n setTimeout(() => { // time for any picker dialogs to dismiss\r\n Util.RestAPI.uploadFilesWithUI(fileList, filePaths, dataFiles, desc);\r\n }, 500);\r\n }\r\n }\r\n\r\n public fileInputClick(): void {\r\n this.uploadFilePicker.nativeElement.value = null;\r\n }\r\n\r\n private getMainWrapper(): FormWrapperComponent {\r\n return this.rightWrapper ? this.rightWrapper : this.formWrapper;\r\n }\r\n\r\n public getCurrentCommand(): string {\r\n return this.currentCommand;\r\n }\r\n\r\n public isFormReadonly(): boolean {\r\n return this.currentCommand === 'viewprofile';\r\n }\r\n\r\n public copyDescChanged(desc: any): void {\r\n this.desc2 = desc;\r\n }\r\n\r\n public clickPickFiles(extensions?: string): void {\r\n this.uploadFilePicker.nativeElement.accept = extensions;\r\n this.uploadFilePicker.nativeElement.removeAttribute('disabled');\r\n this.uploadFilePicker.nativeElement.click();\r\n }\r\n\r\n public pickFiles(extensions: string, callback: tFilePickCB): void {\r\n if (Util.Device.bIsCordova) {\r\n const doList = (list: any, success: boolean) => {\r\n if (success && list && list.length) {\r\n const filePaths: string[] = [];\r\n for (const item of list) {\r\n const fileName: string = Util.Transforms.lastPathComponent(item.fullPath);\r\n if (fileName) {\r\n filePaths.push(fileName);\r\n }\r\n }\r\n if (!!callback) {\r\n callback(null, filePaths, true);\r\n } else if (filePaths.length) {\r\n this.initUpload(null, filePaths, null);\r\n }\r\n } else if (!!callback) {\r\n callback(null, null, false);\r\n }\r\n };\r\n const doFilesOrPaths = (files: File[], paths: string[], success: boolean) => {\r\n if (!!callback) {\r\n callback(files, paths, success);\r\n } else if (!!paths || !!files) {\r\n this.initUpload(files, paths, null);\r\n }\r\n };\r\n this.pickFromDownloads(doList, doFilesOrPaths);\r\n } else {\r\n this.filePickerCB = callback;\r\n this.clickPickFiles(extensions);\r\n }\r\n }\r\n\r\n public pickFilepart(callback: tListPickCB): void {\r\n this.resetPicker();\r\n this.pickerTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SELECT_FILEPART');\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n this.pickerCB = callback;\r\n this.pickerDesc = { id:'', type:'fileplans', lib:'', DOCNAME:this.localizer.getTranslation('FOLDER_ACTIONS.FILEPLANS_CONTAINER') };\r\n this.pickerHasFilter = false;\r\n this.pickerKind = 'list_2_single_filepart';\r\n this.pickerDisableList = this.list;\r\n this.pickerShown = true;\r\n }\r\n\r\n public pickFolders(desc: any, multiple: boolean, allowLibrary: boolean, locations: boolean, callback: tListPickCB): void {\r\n this.resetPicker();\r\n this.pickerDesc = desc ? desc : {id:'',type:'folders',lib:Util.RestAPI.getPrimaryLibrary(), DOCNAME:this.localizer.getTranslation('FOLDER_ACTIONS.CONTAINERS')};\r\n this.pickerCB = callback;\r\n this.pickerTitle = locations ? this.localizer.getTranslation('FORMS.PLACEHOLDERS.CONTAINER') : this.localizer.getTranslation('FORMS.LOCAL.COPY.SELECT_FOLDER');\r\n this.pickerKind = (multiple ? (allowLibrary ? 'list_2_library' : 'list_2') : (allowLibrary ? 'list_2_single_library' : 'list_2_single')) + (locations ? '_locations' : '');\r\n this.pickerHasFilter = true;\r\n this.pickerShown = true;\r\n }\r\n\r\n public pickGroupsUsers(callback: tListPickCB, disableList?: ListItem[], title?: string): void {\r\n let library: string = this.desc ? this.desc.lib : Util.RestAPI.getPrimaryLibrary();\r\n if (Util.isExternalLib(library)) {\r\n library = Util.RestAPI.getPrimaryLibrary();\r\n }\r\n if (this.pickerCreateContainerShown) {\r\n this.pickerGroupsDesc = {id:'_GROUPS_ENABLED',type:'lookups',lib:library};\r\n this.pickerGroupsCreateContainerShown = true;\r\n this.pickerGroupsCB = callback;\r\n this.pickerTitle = title ? title : this.localizer.getTranslation('METADATA.SECURITY_ACTIONS.ADD');\r\n } else {\r\n this.resetPicker();\r\n this.pickerDesc = {id:'_GROUPS_ENABLED',type:'lookups',lib:library};\r\n this.pickerCB = callback;\r\n this.pickerTitle = title ? title : this.localizer.getTranslation('METADATA.SECURITY_ACTIONS.ADD');\r\n this.pickerKind = 'list_2';\r\n this.pickerHasFilter = true;\r\n this.pickerDisableList = disableList;\r\n this.pickerWidth = Util.kMaxPopupDialogWidth;\r\n this.pickerShown = true;\r\n }\r\n }\r\n\r\n public pickFromLookups(id: string, key: string, title: string, callback: tListPickCB): void {\r\n this.resetPicker();\r\n this.pickerDesc = {id,type:'lookups',lib:Util.RestAPI.getPrimaryLibrary()};\r\n this.pickerKey = key;\r\n this.pickerCB = callback;\r\n this.pickerTitle = title || this.localizer.getTranslation('FOLDER_ACTIONS.ADD');\r\n this.pickerKind = 'list_1';\r\n this.pickerHasFilter = true;\r\n this.pickerLeadingColums = [ColFormat.SELECTOR];\r\n this.pickerShown = true;\r\n }\r\n\r\n public pickFromDownloads(callbackList: tListPickCB, callbackFiles: tFilePickCB, title?: string): void {\r\n this.resetPicker();\r\n this.pickerDesc = {id:'downloads',type:'folders',lib:''};\r\n this.pickerCB = callbackList;\r\n this.filePickerCB = callbackFiles;\r\n this.pickerTitle = title ? title : this.localizer.getTranslation('FORMS.PLACEHOLDERS.FILE');\r\n this.pickerKind = 'list_1';\r\n this.pickerLeadingColums = [ColFormat.SELECTOR];\r\n this.pickerDestListComponent = Util.RestAPI.getCurListComponent();\r\n this.pickerShown = true;\r\n }\r\n\r\n public createContainer(type: string, desc: any): Promise {\r\n const cmd: string = type === 'workspaces' ? 'newworkspace' : 'newfolder';\r\n return this.createFromCmd(cmd, desc, true);\r\n }\r\n\r\n public runLocalForm(formData: any, formName: string, title: string, okTitle: string, showExtras: boolean): Promise {\r\n return this.runForm(formData, Util.kLocalFormPrefix + formName, title || formName, okTitle, showExtras);\r\n }\r\n\r\n public runCustomForm(formData: any, vendor, formName: string, title: string, okTitle: string, showExtras: boolean): Promise {\r\n return this.runForm(formData, Util.kCustomFormPrefix + vendor + '_' + formName, title || formName, okTitle, showExtras);\r\n }\r\n\r\n private runForm(formData: any, kind: string, title: string, okTitle: string, showExtras: boolean): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.dialogKind = kind;\r\n this.dialogTitle = title;\r\n this.dialogFormData = formData;\r\n this.dialogOK = okTitle || this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n if (showExtras) {\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_LESS');\r\n }\r\n this.dialogShown = true;\r\n const checkDone = () => {\r\n if (!this.dialogShown) {\r\n resolve({success:this.dialogSuccess, data:this.dialogFormData});\r\n } else {\r\n setTimeout(checkDone, 1000);\r\n }\r\n };\r\n checkDone();\r\n });\r\n }\r\n\r\n public dialogFormDataChanged(formData: any): void {\r\n this.dialogFormData = formData;\r\n }\r\n\r\n public uploadFilesWithUI(files: File[], filePaths?: string[], dataFiles?: DataFile[], intoThisFolder?: any, formData?: any): void {\r\n const outlookMailbox = Util.Device.bIsOfficeAddin && Office && Office.context ? Office.context.mailbox : null;\r\n const externalApp = intoThisFolder ? Util.isExternalLib(intoThisFolder.lib) : false;\r\n if (!((files && files.length) || (filePaths && filePaths.length) || (dataFiles && dataFiles.length)) && !!outlookMailbox) {\r\n this.doCommand('uploadofficeitem');\r\n return;\r\n }\r\n let listComponent: ListBaseComponent = Util.RestAPI.getCurListComponent();\r\n if (!!listComponent && !Util.isUploadTarget(listComponent.desc)) {\r\n listComponent = null;\r\n }\r\n intoThisFolder = intoThisFolder || (!!listComponent ? listComponent.desc : {id:'recentedits',type:'folders',lib:Util.RestAPI.getPrimaryLibrary()});\r\n if (!!files && files.length && (files[0].name.toUpperCase().endsWith('.MSG') || files[0].name.toUpperCase().endsWith('.EML'))) {\r\n if (outlookMailbox && outlookMailbox.item) {\r\n if (!formData) {\r\n this.uploadOutlookMSGItem(outlookMailbox, null, files, null, intoThisFolder, false);\r\n return;\r\n }\r\n } else {\r\n if (!formData) {\r\n formData = {};\r\n }\r\n formData['APP_ID'] = 'MS OUTLOOK';\r\n formData['ITEM_TYPE'] = 'E';\r\n }\r\n }\r\n if (externalApp && files && files.length) {\r\n this.uploadToExternalApp(files, intoThisFolder);\r\n return;\r\n }\r\n let nMaxForms = 1;\r\n let iForm: number;\r\n const nFiles: number = files ? files.length : filePaths ? filePaths.length : dataFiles.length;\r\n const fileAdded: boolean[] = [];\r\n const fileTemplateTrustees: any[] = [];\r\n const fileTemplateNames: string[] = [];\r\n const fileTemplateNamesCount: number[] = [];\r\n const fileFormInfo: FileFormInfo[] = [];\r\n const ffisForExtions = {};\r\n let fileIndex: number;\r\n\r\n const getFInfo = () => {\r\n const handleFFIForExt = (ffi: FileFormInfo, ext?: string): void => {\r\n fileFormInfo.push(ffi);\r\n fileAdded.push(false);\r\n if (!!ext && !ffisForExtions[ext]) {\r\n ffisForExtions[ext] = ffi;\r\n }\r\n if (++fileIndex < nFiles) {\r\n getFInfo();\r\n } else {\r\n // If File-Plans RM item, put the FilePart id into the formData\r\n if (intoThisFolder.type === 'fileplans') {\r\n const filePartNo: string = intoThisFolder.id.split('FP-FilePart-')[1];\r\n if (!formData) {\r\n formData = {};\r\n }\r\n formData['PD_FILEPT_NO'] = filePartNo;\r\n }\r\n this.pendingUploads = [];\r\n // loop through all of the file form infos and find the files with the most forms\r\n for (const info of fileFormInfo) {\r\n if (info) {\r\n for (let i=0; i=0) {\r\n const count: number = fileTemplateNamesCount[index] + 1;\r\n fileTemplateNamesCount[index] = count;\r\n if (count > nMaxForms) {\r\n nMaxForms = count;\r\n }\r\n } else {\r\n fileTemplateTrustees.push(trustees);\r\n fileTemplateNames.push(form);\r\n fileTemplateNamesCount.push(1);\r\n }\r\n }\r\n }\r\n }\r\n iForm = nMaxForms;\r\n while (iForm > 0) {\r\n for (let i=0; i=0 && formIndex=0 && formIndex2) {\r\n ext = nameExt[nameExt.length-1];\r\n nameExt.length = nameExt.length - 1;\r\n } else if (nameExt.length<2) {\r\n ext = '';\r\n } else {\r\n ext = nameExt[1];\r\n }\r\n if (!!ffisForExtions[ext]) {\r\n handleFFIForExt(ffisForExtions[ext], ext);\r\n } else {\r\n Util.RestAPI.getFormInfoForFile(fileName, intoThisFolder).then((ffi: FileFormInfo) => {\r\n handleFFIForExt(ffi, ext);\r\n });\r\n }\r\n }\r\n };\r\n fileIndex = 0;\r\n getFInfo();\r\n }\r\n\r\n public uploadDone(error?: string): void {\r\n const nCurFiles: number = this.curPendingUpload ? this.curPendingUpload.files ? this.curPendingUpload.files.length : this.curPendingUpload.filePaths ? this.curPendingUpload.filePaths.length : this.curPendingUpload.dataFiles ? this.curPendingUpload.dataFiles.length : 0 : 0;\r\n if (!error && (this.pendingUploads.length || (this.dialogApplyAllChecked===false && nCurFiles>1))) {\r\n if (this.dialogApplyAllChecked===false && nCurFiles>1) {\r\n if (this.curPendingUpload.files) {\r\n this.curPendingUpload.files.shift();\r\n } else if (this.curPendingUpload.filePaths) {\r\n this.curPendingUpload.filePaths.shift();\r\n } else if (this.curPendingUpload.dataFiles) {\r\n this.curPendingUpload.dataFiles.shift();\r\n }\r\n this.curPendingUpload.formData.shift();\r\n this.curPendingUpload.fileFormInfo.shift();\r\n this.uploadNextFiles(this.curPendingUpload);\r\n } else {\r\n this.uploadNextFiles(this.pendingUploads.pop());\r\n }\r\n } else {\r\n this.pendingUploads = [];\r\n this.curPendingUpload = null;\r\n this.dialogApplyAllChecked = null;\r\n this.fileList = null;\r\n this.filePaths = null;\r\n this.dataFiles = null;\r\n }\r\n }\r\n\r\n public importListItems(items: ListItem[]): void {\r\n const paths: string[] = [];\r\n for (const item of items) {\r\n const fileName: string = Util.Transforms.lastPathComponent((item as any).fullPath);\r\n paths.push(fileName ? fileName : item.DOCNAME);\r\n }\r\n this.initUpload(null, paths, null);\r\n }\r\n\r\n public uploadToExternalApp(files: File[], intoThisFolder: any): void {\r\n const serverData: any = {};\r\n serverData['AUTHOR_ID'] = Util.RestAPI.getUserID();\r\n let delimiter = '';\r\n serverData['_restapi'] = {ref:intoThisFolder,filelist:[]};\r\n const partialUrl = 'documents?library='+ intoThisFolder.lib;\r\n let fileList = '';\r\n for (const file of files) {\r\n fileList += delimiter + encodeURIComponent(file.name);\r\n delimiter = '%3B';\r\n }\r\n const url: string = 'documents/' + intoThisFolder.id + '/uploadfilenamecheck';\r\n const queryArgs: string = '?library='+ intoThisFolder.lib + '&files=' + fileList;\r\n Util.RestAPI.get(url, null, queryArgs).subscribe((response: any) => {\r\n const nFiles: number = !!response['list'] ? response['list'].length : 0;\r\n let checkedFiles = 0;\r\n const source = new Observable(subscriber => {\r\n for (const item of response['list']) {\r\n item.file = decodeURIComponent(item.file);\r\n subscriber.next(item);\r\n }\r\n });\r\n const observer = source.pipe(concatMap(f => this.checkFileConflict(f))).subscribe(result => {\r\n if (result) {\r\n let fileInfo: any = {};\r\n if (result['confirm'] && result['data']['radio']!=='ignore') {\r\n fileInfo = {file:result['data']['file'],conflictbehavior:result['data']['radio']};\r\n serverData['_restapi']['filelist'].push(fileInfo);\r\n } else {\r\n // Remove ignored/un-comfirmed file\r\n for (let i=0; i {\r\n Util.Notify.info(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), error);\r\n });\r\n },error => {\r\n Util.Notify.info(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), error);\r\n });\r\n }\r\n\r\n private checkFileConflict(file: any): Observable {\r\n const title: string = this.localizer.getTranslation('FORMS.LOCAL.CONFLICT_BEHAVIOR.TITLE');\r\n let question: string;\r\n let formData: any;\r\n let fileStatus: any = {};\r\n let innerSource: Observable = null;\r\n if (file['exists'] === 'yes') {\r\n question = this.localizer.getTranslation('FORMS.LOCAL.CONFLICT_BEHAVIOR.ASK_SELECT',[file['file']]);\r\n formData = { question, docName: file['file']};\r\n innerSource = from(Util.Notify.warning(title,'__local_conflictbehavior',title,formData,true,true,true));\r\n } else {\r\n fileStatus = {confirm: true,data:{file: file['file'],radio:'replace'}};\r\n return observableOf(fileStatus);\r\n }\r\n return innerSource;\r\n }\r\n\r\n public doCommand(cmd: string, data?: any): boolean {\r\n const outlookMailbox = Util.Device.bIsOfficeAddin && Office && Office.context ? Office.context.mailbox : null;\r\n const appDesc = this.app.desc;\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n const listComponent: ListBaseComponent = Util.RestAPI.getCurListComponent();\r\n const curWindow: WindowModalComponent = Util.RestAPI.getCurWindow();\r\n let cmdParts: string[] = cmd.split('doc_');\r\n const isDocCmd: boolean = cmdParts.length > 1;\r\n const fullList: ListItem[] = listComponent ? listComponent.getList() : [];\r\n if (isDocCmd) {\r\n const item: ListItem = Util.RestAPI.getCurItem();\r\n if (item) {\r\n cmd = cmdParts[1];\r\n this.list = [item];\r\n } else {\r\n cmd = '';\r\n }\r\n } else if ((cmd === 'newversion' || cmd === 'versions_new' || cmd === 'attachments_new') && (!listComponent || !listComponent.desc || (!Util.isSharedDownloads(listComponent.desc) && !Util.isSharedImports(listComponent.desc)))) {\r\n this.list = Util.RestAPI.getCurList();\r\n } else if (cmd === 'insertlinkintodocument' && !listComponent) {\r\n const item: ListItem = Util.RestAPI.getCurItem();\r\n if (item) {\r\n this.list = [item];\r\n }\r\n } else {\r\n this.list = listComponent ? listComponent.getSelections() : Util.RestAPI.getCurList();\r\n }\r\n let nItems: number = this.list ? this.list.length : 0;\r\n this.reset();\r\n if (cmd==='email_mini') {\r\n cmd = 'email';\r\n } else if (cmd.startsWith('editprofdefs_')) {\r\n cmdParts = cmd.split('editprofdefs_');\r\n cmdParts = cmdParts[1].split('___');\r\n cmd = 'editprofdefs';\r\n this.list = null;\r\n }\r\n if (cmd==='share_mini') {\r\n cmd = 'shareonedrive';\r\n }\r\n this.currentCommand = cmd;\r\n\r\n const searchForms: any[] = Util.RestAPI.getSearchForms();\r\n let name: string;\r\n let notifyTitle: string = null;\r\n let title: string = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.REMOVE_CHECKOUT_TITLE');\r\n let body: string = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.REMOVE_CHECKOUT_BODY');\r\n const okBtn: string = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n switch (cmd) {\r\n case 'addto':\r\n case 'whereused_add':\r\n case 'subscribe':\r\n case 'adddocuments':\r\n case 'related_add':\r\n if (nItems || cmd==='adddocuments'|| cmd==='whereused_add'|| cmd==='related_add') {\r\n switch (cmd) {\r\n case 'whereused_add':\r\n nItems = 1;\r\n const item: ListItem = Util.RestAPI.getCurItem();\r\n if (item) {\r\n this.list = [item];\r\n }\r\n // fall thru\r\n case 'addto':\r\n const anyFilePartSelected: boolean = this.list.some((doc) => doc.type === 'fileplans');\r\n let nResponses = 0;\r\n this.pickerTitle = nItems===1 ? this.localizer.getTranslation('FOLDER_ACTIONS.ADD_TO_SINGLE') : this.localizer.getTranslation('FOLDER_ACTIONS.ADD_TO_MANY',[nItems.toString()]);\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n this.pickerDesc = { id:'', type: anyFilePartSelected ? 'workspaces' : 'folders', lib:'', DOCNAME:this.localizer.getTranslation(anyFilePartSelected ? 'FOLDER_ACTIONS.WORKSPACES': 'FOLDER_ACTIONS.CONTAINERS') };\r\n this.pickerHasFilter = true;\r\n this.pickerKind = 'list_2';\r\n this.pickerRights = AccessLevel.ACCESS_LEVEL_COLLABORATE;\r\n this.pickerDisableList = [...this.list];\r\n for (let i=0; i {\r\n this.pickerDisableList = Util.mergeArrays(this.pickerDisableList, listData.list);\r\n if (++nResponses === nItems) {\r\n this.pickerShown = true;\r\n }\r\n }, err2 => {\r\n const errMsg = Util.Transforms.formatError(err2);\r\n Util.Notify.error(title, errMsg);\r\n nResponses = nItems;\r\n });\r\n }\r\n break;\r\n case 'adddocuments':\r\n case 'related_add':\r\n this.pickerTitle = cmd==='related_add' ? this.localizer.getTranslation('FOLDER_ACTIONS.ADD_RELATED') : this.localizer.getTranslation('FOLDER_ACTIONS.ADD_DOCUMENTS');\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n this.pickerDesc = { id:'', type:'folders', lib:'', DOCNAME:this.localizer.getTranslation('FOLDER_ACTIONS.CONTAINERS') };\r\n this.pickerHasFilter = true;\r\n this.pickerKind = 'list_2_docs';\r\n this.pickerDisableList = listComponent ? [new ListItem(listComponent.desc)] : data && data.desc ? [new ListItem(data.desc)] : null;\r\n this.pickerShown = true;\r\n break;\r\n case 'subscribe':\r\n if (listComponent && listComponent.desc && listComponent.desc.type==='flexfolders' && !this.list.every(i => i.type === 'folders')) {\r\n notifyTitle = nItems===1 ? this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBED_TO_SINGLE',[this.list[0].DOCNAME]) : this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBED_TO_MANY',[nItems.toString()]);\r\n this.postDataToServer(cmd, null, notifyTitle);\r\n } else {\r\n this.pickerTitle = nItems===1 ? this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBE_TO_SINGLE') : this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBE_TO_MANY',[nItems.toString()]);\r\n this.pickerOK = this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBE');\r\n this.pickerDesc = { id:'', type:'flexfolders', lib:this.list[0].lib, DOCNAME:this.localizer.getTranslation('TILE_NAMES.FLEXFOLDERS') };\r\n this.pickerKind = 'list_1';\r\n this.pickerShown = true;\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n case 'addflexfolder':\r\n const flexInfo: any = listComponent && listComponent.getSet() ? listComponent.getSet().flexinfo : null;\r\n if (!!flexInfo && !!flexInfo.configuration && !!flexInfo.filters && !!flexInfo.filters.LEVEL_NAME) {\r\n this.pickerFlexfoldersLevels = flexInfo.configuration.filter(s => s.TYPE === 'L').map(s => new Object({ value: JSON.stringify(s), display: s.LEVEL_NAME }));\r\n this.pickerCurFlexfoldersLevel = this.pickerFlexfoldersLevels.find(s => {\r\n const level = JSON.parse(s.value);\r\n return level.LEVEL_NAME === flexInfo.filters.LEVEL_NAME;\r\n });\r\n this.pickerForm = !!flexInfo.form ? flexInfo.form : Util.RestAPI.getDefaultProfileForm().id;\r\n this.getLookupInfo(this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBE_TO'));\r\n }\r\n break;\r\n case 'import':\r\n this.importListItems(this.list);\r\n break;\r\n case 'uploadfile':\r\n case 'newdocument':\r\n this.pickFiles(null,null);\r\n break;\r\n case 'createobject':\r\n this.dialogCreateType = cmd;\r\n this.dialogKind = Util.kLocalFormPrefix + cmd;\r\n this.desc = listComponent.desc;\r\n this.dialogFormData = {};\r\n this.dialogTrustees = [];\r\n this.dialogFormData['FORMNAME'] = cmd;\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.NEW_OBJECT');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n this.dialogShown = true;\r\n break;\r\n case 'createfolder':\r\n this.dialogCreateType = cmd;\r\n this.dialogKind = Util.kLocalFormPrefix + cmd;\r\n this.desc = listComponent.desc;\r\n this.dialogFormData = {};\r\n this.dialogTrustees = [];\r\n this.dialogFormData['FORMNAME'] = cmd;\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.NEW_FOLDER');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n this.dialogShown = true;\r\n break;\r\n case 'newfolder':\r\n case 'newworkspace':\r\n case 'newpaperdocument':\r\n if (listComponent && listComponent.desc) {\r\n this.createFromCmd(cmd, listComponent.desc).then(() => {}, err => {});\r\n }\r\n break;\r\n case 'editprofile':\r\n case 'viewprofile':\r\n case 'edit_mini':\r\n case 'versions_editprofile':\r\n this.dialogKind = cmd === 'viewprofile' ? 'profile_readonly' : cmd === 'versions_editprofile' ? (Util.kLocalFormPrefix + cmd) : 'profile';\r\n this.desc = isDocCmd || cmd === 'versions_editprofile' ? Util.RestAPI.getCurItem() : this.list[0];\r\n this.dialogTitle = cmd === 'viewprofile' ? this.localizer.getTranslation('FOLDER_ACTIONS.EDIT_PROFILE') : cmd === 'versions_editprofile' ? this.list[0]['VERSION'] === '0' ? this.localizer.getTranslation('COLUMN_HEADINGS.ATTACHMENTS.ATTACHMENT_NO', [this.list[0]['VERSION_LABEL']]) : this.localizer.getTranslation('COLUMN_HEADINGS.VERSIONS.VERSION_NO', [this.list[0]['VERSION_LABEL']]) : this.localizer.getTranslation('FOLDER_ACTIONS.EDIT_PROFILE');\r\n this.dialogExtras = cmd === 'versions_editprofile' ? null : this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = cmd === 'versions_editprofile' ? null : this.localizer.getTranslation('FORMS.BUTTONS.SHOW_REQUIRED_ONLY');\r\n this.dialogShown = true;\r\n break;\r\n case 'editprofdefs':\r\n this.dialogKind = 'profile_editdefs_' + cmdParts.join('___');\r\n this.desc = {id:'preferences',type:'preferences',lib:cmdParts[2],FORM_NAME:cmdParts[0]};\r\n this.dialogTitle = cmdParts[0] + ' : ' + cmdParts[3];\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.SAVE');\r\n this.dialogShown = true;\r\n break;\r\n case 'security_save':\r\n this.putDataToServer(cmd, data, notifyTitle, null);\r\n break;\r\n case 'publish':\r\n data = data || {'%VERSION_DIRECTIVE': '%PUBLISH_VERSION'};\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.PUBLISHED');\r\n const curPublishedItem: ListItem = fullList.find(i => i['STATUS']==='20');\r\n const itemToPublish: ListItem = this.list[0];\r\n if (!!curPublishedItem && !Util.RestAPI.canPublishMultiple()) {\r\n const versionNew: string = itemToPublish['VERSION_LABEL'];\r\n const versionOld: string = curPublishedItem['VERSION_LABEL'];\r\n const docName: string = itemToPublish.DOCNAME;\r\n const question: string = this.localizer.getTranslation('FORMS.LOCAL.PUBLISH.ASK_CHANGE_PUBLISHED',[versionNew,docName,versionOld]);\r\n const formData: any = { question, selections:[itemToPublish] };\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.PUBLISH');\r\n Util.Notify.warning(title,'__local_publish',title,formData,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n this.putDataToServer(cmd, data, notifyTitle, null);\r\n }\r\n });\r\n } else {\r\n this.putDataToServer(cmd, data, notifyTitle, null);\r\n }\r\n break;\r\n case 'unpublish':\r\n data = data || {'%VERSION_DIRECTIVE': '%UNPUBLISH_VERSION'};\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.UNPUBLISHED');\r\n this.putDataToServer(cmd, data, notifyTitle, null);\r\n break;\r\n case 'readonly':\r\n data = data || {'%STATUS': '%MAKE_READ_ONLY'};\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.READ_ONLY');\r\n body = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.MAKE__READONLY_BODY');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.MADE_READONLY');\r\n this.putDataToServer(cmd, data, notifyTitle );\r\n }\r\n });\r\n break;\r\n case 'unlock':\r\n data = data || {'%STATUS': '%UNLOCK'};\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n this.putDataToServer(cmd, data);\r\n }\r\n });\r\n break;\r\n case 'removereadonly':\r\n data = data || {'%STATUS': '%REMOVE_READ_ONLY'};\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.REMOVE_READ_ONLY');\r\n body = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.REMOVE_READONLY_BODY');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.REMOVED_READONLY');\r\n this.putDataToServer(cmd, data);\r\n }\r\n });\r\n break;\r\n case 'unsubscribe':\r\n this.postDataToServer(cmd, null);\r\n break;\r\n case 'newversion':\r\n case 'versions_new':\r\n case 'checkout':\r\n if (this.list[0].type === 'folders' || (this.list.length > 0 && this.list.every((item) => item['ITEM_TYPE'] === 'M'))) {\r\n data = {'%STATUS': '%LOCK'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n } // fall thru\r\n case 'checkin':\r\n if (this.list[0].type === 'folders') {\r\n data = {'%STATUS': '%UNLOCK'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n } // fall thru\r\n case 'shareonedrive':\r\n case 'email':\r\n case 'link':\r\n // fall thru\r\n case 'export':\r\n this.dialogKind = Util.kLocalFormPrefix + (cmd);\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.LESS');\r\n if (cmd==='checkin') {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.CHECK_IN');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.CHECK_IN');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n } else if (cmd==='checkout') {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.CHECK_OUT');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.CHECK_OUT');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n } else if (cmd==='export') {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.EXPORT');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.EXPORT');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n } else if (cmd==='newversion') {\r\n this.dialogTitle = this.localizer.getTranslation('METADATA.VERSIONS_ACTIONS_ADD.NEW_VERSION');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n } else if (cmd==='link') {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.LINK');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.LOCAL.LINK.COPY');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n } else if (cmd==='email') {\r\n if (Util.Device.bIsOfficeAddin && Office && Office.context && Office.context.mailbox) {\r\n if (!!Office.context.mailbox.item.addFileAttachmentAsync) {\r\n this.dialogFormData = {$edx_share_attach: true, $edx_share_nomail: true};\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.SHARE.ATTACH');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n } else {\r\n this.dialogFormData = {$edx_share_nomail: true};\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.EMAIL');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n }\r\n } else {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.EMAIL');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.LOCAL.SHARE.SEND');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n }\r\n if (!!data) {\r\n this.dialogFormData['isVersionEmail'] = data.isVersionEmail;\r\n this.dialogFormData['attachments'] = data.attachments;\r\n }\r\n } else if (cmd==='shareonedrive') {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SHARE');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.SHARE');\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n }\r\n this.dialogShown = true;\r\n break;\r\n case 'confirm_delete':\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.DELETE.CONFIRM_DELETE');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.dialogKind = Util.kLocalFormPrefix + (cmd);\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n this.list = this.refList;\r\n this.dialogShown = true;\r\n this.dialogWidth = Util.kMaxPopupDialogWidth;\r\n this.kind2 = Util.kLocalFormPrefix + (cmd);\r\n break;\r\n case 'stopshareonedrive':\r\n data = data || {};\r\n title = this.localizer.getTranslation('FORMS.LOCAL.SHARE.STOP_ONEDRIVE');\r\n body = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.SHARE_ONEDRIVE_BODY');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.UNSHARED');\r\n this.putDataToServer(cmd, data, notifyTitle);\r\n }\r\n });\r\n break;\r\n case 'insertintodocument':\r\n case 'insertlinkintodocument':\r\n if (Util.Device.bIsOfficeAddinWord || Util.Device.bIsOfficeAddinExcel || Util.Device.bIsOfficeAddinPowerPoint) {\r\n let versionID = 'C';\r\n const imgFmts: string[] = ['PNG','JPG','JPEG','BMP','TIFF'];\r\n const insertDone = (err: any): void => {\r\n if (listComponent) {\r\n listComponent.spinnerOff();\r\n }\r\n if (err) {\r\n Util.Notify.error(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), err);\r\n }\r\n };\r\n if (listComponent) {\r\n listComponent.spinnerOn();\r\n }\r\n if (!!data && !!data['%VERSION_ID']) {\r\n versionID = data['%VERSION_ID'];\r\n }\r\n Util.RestAPI.getFileDownloadInfo(this.list[0], versionID).then(infoData => {\r\n const fileName: string = infoData.name || '';\r\n const nameParts: string[] = fileName.split('.');\r\n const ext: string = nameParts.length ? nameParts[nameParts.length-1].toUpperCase() : '';\r\n const messageUnsupported = this.localizer.getTranslation('GENERIC_ERRORS.UNSUPPORTED_FORMAT');\r\n const versionForUrl = versionID==='C' || !this.list[0]['VERSION_LABEL'] ? 'r' : this.list[0]['VERSION_LABEL'];\r\n const pcdocsUrl = 'pcdocs://' + this.list[0].lib + '/' + (this.list[0].DOCNUM || this.list[0].id) + '/'+versionForUrl;\r\n if (cmd !== 'insertintodocument' || (ext === 'DOCX' || imgFmts.indexOf(ext) !== -1)) {\r\n const afterDL = (base64File) => {\r\n if (Util.Device.bIsOfficeAddinWord) {\r\n Word.run(context => {\r\n const range = context.document.getSelection();\r\n range.load('html');\r\n return context.sync().then(() => {\r\n if (cmd === 'insertintodocument') {\r\n if (imgFmts.indexOf(ext) !== -1) {\r\n range.insertInlinePictureFromBase64(base64File, Word.InsertLocation.after);\r\n } else {\r\n range.insertFileFromBase64(base64File, Word.InsertLocation.after);\r\n }\r\n } else {\r\n range.insertHtml('' + fileName + '', Word.InsertLocation.after);\r\n }\r\n return context.sync().then(() => {\r\n insertDone(null);\r\n });\r\n });\r\n }).catch(insertDone);\r\n } else if (Util.Device.bIsOfficeAddinExcel || Util.Device.bIsOfficeAddinPowerPoint) {\r\n if (cmd === 'insertintodocument') {\r\n if (imgFmts.indexOf(ext) !== -1) {\r\n Office.context.document.setSelectedDataAsync(base64File, { coercionType: Office.CoercionType.Image }, result => {\r\n if (result.status === Office.AsyncResultStatus.Failed) {\r\n insertDone(messageUnsupported);\r\n }\r\n });\r\n } else {\r\n insertDone(messageUnsupported);\r\n }\r\n insertDone(null);\r\n } else if (Util.Device.bIsOfficeAddinExcel) {\r\n Excel.run(context => {\r\n const cell = context.workbook.getActiveCell();\r\n cell.select();\r\n cell.hyperlink = { address: pcdocsUrl, documentReference: null, screenTip: null, textToDisplay: fileName };\r\n return context.sync().then(() => {\r\n insertDone(null);\r\n });\r\n }).catch(insertDone);\r\n }\r\n }\r\n };\r\n if (cmd === 'insertintodocument') {\r\n Util.RestAPI.downloadAsBase64(this.list[0], 'versions/'+versionID).subscribe(base64File => {\r\n afterDL(base64File);\r\n }, restErr1 => {\r\n insertDone(restErr1);\r\n });\r\n } else {\r\n afterDL(null);\r\n }\r\n } else {\r\n insertDone(this.localizer.getTranslation('GENERIC_ERRORS.UNSUPPORTED_FORMAT'));\r\n }\r\n }, restErr2 => {\r\n insertDone(restErr2);\r\n });\r\n }\r\n break;\r\n case 'attachments_delete':\r\n case 'delete':\r\n if (nItems) {\r\n let docName: string = this.list[0].DOCNAME;\r\n const firstItem: ListItem = this.list[0];\r\n if (firstItem['VERSION_LABEL']) {\r\n docName = this.localizer.getTranslation(cmd === 'attachments_delete' ? 'COLUMN_HEADINGS.ATTACHMENTS.ATTACHMENT_NO' : 'COLUMN_HEADINGS.VERSIONS.VERSION_NO',[this.list[0]['VERSION_LABEL']]);\r\n }\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.DELETE');\r\n const question: string = nItems===1 ? this.localizer.getTranslation('FORMS.LOCAL.DELETE.ASK_DELETE_SINGLE',[docName]) : this.localizer.getTranslation('FORMS.LOCAL.DELETE.ASK_DELETE_MANY',[nItems.toString()]);\r\n const formData: any = { question, selections: this.list, docName};\r\n\r\n Util.Notify.warning(title, '__local_delete', title, formData, true, true, true).then(async confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n const radioVal: string = confirmed.data.radio;\r\n this.refList = [];\r\n if (radioVal === 'DP') {\r\n this.refList = await this.getMultiReferenceDocs(this.list);\r\n this.list = this.list.filter(item => !this.refList.includes(item));\r\n }\r\n if (this.list.length > 0) {\r\n this.doDelete(cmd, radioVal, this.list, listComponent, title);\r\n }\r\n if (this.refList.length > 0) {\r\n this.doCommand('confirm_delete');\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n case 'delete_multiref':\r\n const deleteList = this.formWrapper.dynamicForm.form.value['$edx_form_list'];\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.DELETE');\r\n this.doDelete(cmd,'DP',deleteList,listComponent,title);\r\n break;\r\n case 'footer_options':\r\n this.dialogKind = Util.kLocalFormPrefix + cmd;\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.FOOTER_OPTIONS.FOOTER_OPTIONS');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.SAVE');\r\n this.dialogShown = true;\r\n break;\r\n case 'copy':\r\n this.desc = this.list[0];\r\n this.dialogKind = Util.kLocalFormPrefix + cmd;\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.COPY.COPY');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.LOCAL.COPY.SAVE_COPY');\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_REQUIRED_ONLY');\r\n this.desc2 = this.list[0];\r\n this.kind2 = 'profile_copy';\r\n this.dialogWidth = Util.kMaxPopupDialogWidth;\r\n this.dialogShown = true;\r\n break;\r\n case 'savetoedocs':\r\n this.desc = this.list[0];\r\n this.dialogKind = 'profile_savetoedocs';\r\n this.dialogShown = true;\r\n break;\r\n case 'profilesearch':\r\n this.dialogKind = 'profile_query';\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_LESS');\r\n // fall thru\r\n case 'activitysearch':\r\n if (!searchForms || !searchForms.length) {\r\n break;\r\n }\r\n // When default search form is not set under preferences, pick first search form.\r\n this.desc = { id: searchForms[0]['%FORM_NAME'], type: 'forms', lib: searchForms[0].lib, FORM_NAME: searchForms[0]['%FORM_NAME'] };\r\n // fall thru\r\n case 'advancedsearch':\r\n this.dialogTitle = this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.' + (cmd === 'advancedsearch' ? 'ADVANCED_SEARCH' : cmd === 'activitysearch' ? 'ACTIVITY_SEARCH' : 'PROFILE_SEARCH'));\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.SEARCH');\r\n if (cmd === 'activitysearch' || cmd === 'advancedsearch') {\r\n this.dialogKind = Util.kLocalFormPrefix + cmd;\r\n }\r\n if (!!this.desc && !!this.desc.lib) {\r\n this.settingsService.get('preferences/formdefaults').then(defsData => {\r\n if (!!defsData && !!defsData[this.desc.lib.toUpperCase()] && !!defsData[this.desc.lib.toUpperCase()]['SEARCH']) {\r\n const index = searchForms.findIndex(f => f['%FORM_NAME'] === defsData[this.desc.lib.toUpperCase()]['SEARCH']);\r\n if (index >= 0) {\r\n this.desc['FORM_NAME'] = searchForms[index]['%FORM_NAME'];\r\n }\r\n }\r\n this.dialogShown = true;\r\n }, err => {\r\n this.dialogShown = true;\r\n });\r\n } else {\r\n this.dialogShown = true;\r\n }\r\n break;\r\n case 'preferences':\r\n const locSansHash = location.hash.substr(1);\r\n if (locSansHash !== Util.RestAPI.getPrefsURL()) {\r\n if (locSansHash !== Util.RestAPI.getHomeURL()) {\r\n Util.RestAPI.navHome().then(() => {\r\n Util.RestAPI.navPreferences();\r\n });\r\n } else {\r\n Util.RestAPI.navPreferences();\r\n }\r\n }\r\n break;\r\n case 'profile_outlook_item':\r\n if (data && data.list) {\r\n const listItem: ListItem = data.list as ListItem;\r\n this.listService.openMetadata([listItem], null, null, listItem, data.tab);\r\n }\r\n break;\r\n case 'uploadofficeitem':\r\n if (!!outlookMailbox) {\r\n const outlookItem = outlookMailbox.item;\r\n const desc: any = listComponent ? listComponent.desc : {id:'recentedits',type:'folders',lib:''};\r\n const messageRestURL: string = outlookMailbox.restUrl ? (outlookMailbox.restUrl + '/v2.0/me/messages/' + outlookMailbox.convertToRestId(outlookItem.itemId, Office.MailboxEnums.RestVersion.v2_0)) : null;\r\n const messageEwsURL: string = outlookMailbox.ewsUrl ? (outlookMailbox.ewsUrl + '/messages/' + encodeURIComponent(outlookItem.itemId)) : null;\r\n const messageURL: string = messageRestURL || messageEwsURL || '';\r\n const options = {isRest:!!messageRestURL,asyncContext:{app:'edx'}};\r\n outlookMailbox.getCallbackTokenAsync(options, response => {\r\n this.zone.run(() => {\r\n if (response && response.value) {\r\n const headers: any = { Authorization: 'Bearer ' + response.value};\r\n const attachments: any = outlookItem.attachments;\r\n const nAttachments: number = attachments ? attachments.length : 0;\r\n const uploadMsg = (option?: string) => {\r\n this.uploadOutlookMSGItem(outlookMailbox, headers, null, [{name:outlookItem.subject+'.msg',lastModified:outlookItem.dateTimeModified,url:messageURL,headers,excludeAttachments:option==='E'}], desc, true);\r\n };\r\n if (nAttachments > 0) {\r\n const formData: any = { $edx_attachments: attachments };\r\n Util.Notify.info(this.localizer.getTranslation('FORMS.LOCAL.OAI_ADD.ADD_MSG'),'__local_oai_addmsg',this.localizer.getTranslation('FORMS.LOCAL.OAI_ADD.ADD'),formData,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n const val = confirmed.data['radio'];\r\n let attIndex: number = null;\r\n switch (val) {\r\n case 'M':\r\n case 'E':\r\n uploadMsg(val);\r\n break;\r\n case 'ALL':\r\n attIndex = -1;\r\n break;\r\n default:\r\n attIndex = parseInt(val);\r\n break;\r\n }\r\n if (attIndex !== null) {\r\n let attID: string;\r\n let attData: any;\r\n const dataFiles: DataFile[] = [];\r\n if (attIndex>=0) {\r\n attData = attachments[attIndex];\r\n attID = !!messageRestURL ? outlookMailbox.convertToRestId(attData.id, Office.MailboxEnums.RestVersion.v2_0) : encodeURIComponent(attData.id);\r\n dataFiles.push({name:attData.name,size:attData.size,url:messageURL+'/attachments/'+attID,headers,attachNum:attIndex+1});\r\n } else {\r\n for (let i=0; i {\r\n if (confirmed && confirmed.confirm) {\r\n let query: string;\r\n let errMsg = '';\r\n let notifyBody: string;\r\n let descItem: any;\r\n const removeDone = () => {\r\n if (listComponent) {\r\n listComponent.reloadList();\r\n }\r\n if (isSharedDownloads || isSharedImports) {\r\n Util.RestAPI.refreshDownloads(isSharedImports);\r\n }\r\n if (curWindow) {\r\n curWindow.refresh(cmd);\r\n }\r\n if (nErrors === 0) {\r\n if (cmd==='removefromfolder') {\r\n notifyBody = nItems < 2 ? this.localizer.getTranslation('FORMS.LOCAL.REMOVE.SUCCESS_SINGLE', [docName, refDocName]) : this.localizer.getTranslation('FORMS.LOCAL.REMOVE.SUCCESS_MANY', [nItems.toString(), refDocName]);\r\n } else if (cmd==='related_remove') {\r\n notifyBody = nItems < 2 ? this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.SUCCESS_SINGLE', [docName, refDocName]) : this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.SUCCESS_MANY', [nItems.toString(), refDocName]);\r\n } else if (cmd==='removeitem') {\r\n notifyBody = nItems < 2 ? this.localizer.getTranslation('FORMS.LOCAL.WHERE_USED.SUCCESS_SINGLE', [docName, refDocName]) : this.localizer.getTranslation('FORMS.LOCAL.WHERE_USED.SUCCESS_MANY', [docName, nItems.toString()]);\r\n }\r\n Util.Notify.success(title, notifyBody);\r\n } else {\r\n if (cmd==='removefromfolder') {\r\n notifyBody = nItems < 2 ? this.localizer.getTranslation('FORMS.LOCAL.REMOVE.FAILURE_SINGLE', [docName, refDocName, errMsg]) : this.localizer.getTranslation('FORMS.LOCAL.REMOVE.FAILURE_MANY', [nItems.toString(), refDocName, errMsg]);\r\n } else if (cmd==='related_remove') {\r\n notifyBody = nItems < 2 ? this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.FAILURE_SINGLE', [docName, refDocName, errMsg]) : this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.FAILURE_MANY', [nItems.toString(), refDocName, errMsg]);\r\n } else if (cmd==='removeitem') {\r\n notifyBody = nItems < 2 ? this.localizer.getTranslation('FORMS.LOCAL.WHERE_USED.FAILURE_SINGLE', [docName, refDocName, errMsg]) : this.localizer.getTranslation('FORMS.LOCAL.WHERE_USED.FAILURE_MANY', [docName, nItems.toString(), errMsg]);\r\n }\r\n Util.Notify.warning(title, notifyBody);\r\n }\r\n };\r\n for (let i = 0; i < nItems; i++) {\r\n const item = this.list[i];\r\n if (isSharedDownloads || isSharedImports) {\r\n Util.RestAPI.deleteFromDownloads(item).then(success => {\r\n if (!success) {\r\n ++nErrors;\r\n errMsg = this.localizer.getTranslation('GENERIC_ERRORS.ERROR');\r\n }\r\n if (++nResponses === nItems) {\r\n removeDone();\r\n }\r\n });\r\n } else {\r\n const param: string = cmd==='related_remove' ? 'associations' : 'references';\r\n if (cmd==='removefromfolder') {\r\n query = 'reftype=' + this.app.desc.type + '&refid=' + this.app.desc.id + '&reflib=' + this.app.desc.lib + '&refsysid=' + (item['FI.SYSTEM_ID'] || '\"\"');\r\n descItem = item;\r\n } else if (cmd==='related_remove') {\r\n query = 'relid=' + item.id + '&rellib=' + item.lib;\r\n descItem = desc;\r\n } else {\r\n query = 'reftype=' + item['type'] + '&refid=' + item['id'] + '&reflib=' + item['lib'] + '&refsysid=' + (item['REMOTE_SYSTEM_ID'] || item['SYSTEM_ID'] || '\"\"');\r\n descItem = desc;\r\n }\r\n Util.RestAPI.delete(descItem, param, query).subscribe((response) => {\r\n if (++nResponses === nItems) {\r\n removeDone();\r\n }\r\n }, error => {\r\n ++nErrors;\r\n if (++nResponses === nItems) {\r\n errMsg = Util.Transforms.formatError(error);\r\n removeDone();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n case 'newurl':\r\n if (listComponent && listComponent.desc) {\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.NEW_URL');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n this.dialogKind = Util.kLocalFormPrefix + cmd.substr(3);\r\n this.dialogCreateType = cmd.substr(3)+'s';\r\n this.desc = listComponent.desc;\r\n this.dialogShown = true;\r\n }\r\n break;\r\n case 'addtoworkspace':\r\n this.pickerTitle = nItems === 1 ? this.localizer.getTranslation('FOLDER_ACTIONS.ADD_TO_SINGLE') : this.localizer.getTranslation('FOLDER_ACTIONS.ADD_TO_MANY', [nItems.toString()]);\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.pickerDesc = { id: '', type: 'workspaces', lib: '', DOCNAME: this.localizer.getTranslation('FOLDER_ACTIONS.WORKSPACES') };\r\n this.pickerHasFilter = true;\r\n this.pickerKind = 'list_2';\r\n this.pickerShown = true;\r\n break;\r\n case 'addquicksearch':\r\n this.pickerTitle = this.localizer.getTranslation('FOLDER_ACTIONS.ADD_SEARCHES');\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.pickerDesc = { id: '', type: 'searches', lib: '', DOCNAME: this.localizer.getTranslation('FOLDER_ACTIONS.SEARCH') };\r\n this.pickerHasFilter = true;\r\n this.pickerKind = 'list_2';\r\n this.pickerShown = true;\r\n break;\r\n case 'create_tile':\r\n name = curWindow ? curWindow.getName() : null;\r\n let tooltip = name;\r\n let isShared = appDesc['IS_SHARED'];\r\n const filePartNum = appDesc['filePartNo'];\r\n const isFilePart: boolean = appDesc.type === 'fileplans' && filePartNum;\r\n if (isFilePart) {\r\n tooltip = curWindow ? curWindow.getTooltip() : null;\r\n }\r\n if (!isShared && this.list) {\r\n const theListItem = this.list.find(i => i.type===appDesc.type && i.lib===appDesc.lib && i.id===appDesc.id);\r\n if (!!theListItem) {\r\n isShared = theListItem['IS_SHARED'];\r\n }\r\n }\r\n if (name) {\r\n const newTile = new Tile({\r\n type: appDesc.type,\r\n id: isFilePart ? 'FP-FilePart-'+ decodeURIComponent(filePartNum) : appDesc.id,\r\n lib: appDesc.lib,\r\n index: 0,\r\n size: 1,\r\n name,\r\n tooltip,\r\n imgPath: appDesc['imgPath'] || '',\r\n docNumber: appDesc['docNumber'] || '',\r\n IS_SHARED: isShared || ''\r\n });\r\n const tiles: Tile[] = this.tileService.appendTile(newTile);\r\n if (tiles.indexOf(newTile)===-1) {\r\n Util.Notify.warning(this.localizer.getTranslation('TILE_MENU.TILE_NOT_ADDED',[name,'']));\r\n } else {\r\n Util.Notify.success(this.localizer.getTranslation('TILE_MENU.TILE_ADDED',[name]));\r\n if (!!curWindow) {\r\n curWindow.refresh();\r\n }\r\n }\r\n }\r\n break;\r\n case 'rename':\r\n if (this.list && this.list.length) {\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.RENAME');\r\n const item: ListItem = this.list[0];\r\n let formData: any = { DOCNAME: item.DOCNAME };\r\n Util.Notify.info(title,'__local_rename',title,formData,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n name = confirmed.data.DOCNAME;\r\n if (name && name.length) {\r\n formData = item.type==='searches' ? {DESCRIPTION: name} : {DOCNAME: name};\r\n Util.RestAPI.put(this.list[0], formData, 'profile').subscribe(response => {\r\n if (listComponent) {\r\n listComponent.reloadList();\r\n }\r\n if (curWindow) {\r\n curWindow.refresh(cmd);\r\n }\r\n Util.Notify.success(this.localizer.getTranslation('FOLDER_ACTIONS.RENAMED_SINGLE',[item.DOCNAME, name]));\r\n }, error => {\r\n Util.Notify.warning(title, error);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n break;\r\n case 'editsearch':\r\n if (this.list && this.list.length === 1) {\r\n this.desc = this.list[0];\r\n const loadForm = (theCriteria: any) => {\r\n if (!!theCriteria && theCriteria['SEARCH_IN']==='3') {\r\n theCriteria['SEARCH_IN'] = '0';\r\n }\r\n this.dialogKind = 'profile_query_edit';\r\n this.dialogShown = true;\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.SAVE');\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_LESS');\r\n this.dialogFormData = theCriteria;\r\n };\r\n let criteria: any = {};\r\n if (typeof this.desc['CRITERIA'] === 'string') {\r\n const criteriaParts: string[] = this.desc['CRITERIA'].split(',');\r\n for (const criteriaPair of criteriaParts) {\r\n const criteriaPairParts: string[] = criteriaPair.split('=');\r\n if (criteriaPairParts.length===2) {\r\n let value: string = criteriaPairParts[1];\r\n if (value.charAt(0)==='\\'' && value.charAt(value.length-1)==='\\'') {\r\n value = value.substr(1,value.length-2);\r\n }\r\n criteria[criteriaPairParts[0]] = value;\r\n }\r\n }\r\n } else if (typeof this.desc['CRITERIA'] === 'object') {\r\n criteria = this.desc['CRITERIA'];\r\n }\r\n const keys: string[] = Object.keys(criteria);\r\n const nKeys: number = keys ? keys.length : 0;\r\n if (nKeys) {\r\n for (const key of keys) {\r\n if (key.toUpperCase().indexOf('DATE')>=0) {\r\n const value = criteria[key];\r\n if (typeof value === 'string' && value.toUpperCase().indexOf(' TO ')>=0) {\r\n criteria[key] = Util.Transforms.utcTimeRangeToLocalDate(value);\r\n }\r\n }\r\n }\r\n this.dialogTitle = this.desc.DOCNAME || this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.PROFILE_SEARCH');\r\n loadForm(criteria);\r\n } else {\r\n const url: string = 'searches/' + this.desc.id;\r\n Util.RestAPI.get(url, null, 'max=1').subscribe((listData: ListData) => {\r\n this.dialogTitle = listData.set.search['DESCRIPTION'];\r\n loadForm(listData.set.search.criteria);\r\n }, error => {\r\n Util.Notify.info(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), error);\r\n });\r\n }\r\n }\r\n break;\r\n case 'share':\r\n const shareItem: ListItem = Util.RestAPI.getCurItem();\r\n const containerRights = !!listComponent ? listComponent.containerRights() : null;\r\n this.listService.openMetadata([shareItem], null, containerRights, shareItem, 'security', '&share=true');\r\n break;\r\n case 'open':\r\n case 'view':\r\n if (this.list && this.list.length && (Util.Device.bIsElectron || Util.RestAPI.hasPFTA() || (Util.Device.canDownloadOfficeDoc(this.list[0]) && cmd==='open') || Util.Device.bIsCordova)) {\r\n Util.RestAPI.viewOrOpenFilesWithStatusCheck(this.list, undefined, cmd==='view', null);\r\n }\r\n break;\r\n case 'home':\r\n Util.RestAPI.navHome();\r\n break;\r\n case 'help':\r\n Util.Help.show();\r\n break;\r\n case 'logoff':\r\n Util.RestAPI.logOff(true, true);\r\n break;\r\n case 'savedsearches':\r\n case 'checkedout':\r\n case 'downloads':\r\n case 'imports':\r\n let tileDesc: any;\r\n if (cmd==='savedsearches') {\r\n tileDesc = {id:'', type:'searches'};\r\n } else if (cmd==='checkedout') {\r\n tileDesc = {id:'checkedout', type:'folders'};\r\n } else if (cmd==='downloads') {\r\n tileDesc = {id:'downloads', type:'folders'};\r\n } else if (cmd==='imports') {\r\n tileDesc = {id:'imports', type:'folders'};\r\n }\r\n const tile: Tile = this.tileService.getTile(tileDesc);\r\n if (tile) {\r\n Util.RestAPI.navHome().then(success => {\r\n this.tileService.openTile(tile);\r\n });\r\n }\r\n break;\r\n case 'declarerecord':\r\n data = {'%STATUS': '%DECLARE_RECORD'};\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.DECLARE_RECORD');\r\n body = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.DECLARE_RECORD_BODY');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.DECLARED_RECORD');\r\n this.putDataToServer(cmd, data, notifyTitle );\r\n }\r\n });\r\n break;\r\n case 'undeclarerecord':\r\n data = {'%STATUS': '%UNDECLARE_RECORD'};\r\n title = this.localizer.getTranslation('FOLDER_ACTIONS.UNDECLARE_RECORD');\r\n body = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.UNDECLARE_RECORD_BODY');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n this.putDataToServer(cmd, data);\r\n }\r\n });\r\n break;\r\n case 'fp_box_rm_request':\r\n case 'rm_request':\r\n this.dialogKind = Util.kLocalFormPrefix + ('rm_request');\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.LESS');\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.REQUEST');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.REQUEST_OK');\r\n this.dialogShown = true;\r\n break;\r\n case 'rm_changevitalstatus':\r\n data = {'%CHANGE_VITAL_STATUS': '1'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n case 'rm_vitalreviewdate':\r\n this.dialogKind = Util.kLocalFormPrefix + (cmd);\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.LESS');\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.CHANGE_REVIEW_DATE');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.SAVE');\r\n this.dialogShown = true;\r\n break;\r\n case 'rm_supersede':\r\n this.pickerTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SELECT_FILE');\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.pickerDesc = { id:'', type:'folders', lib:'', DOCNAME:this.localizer.getTranslation('FOLDER_ACTIONS.CONTAINERS') };\r\n this.pickerHasFilter = true;\r\n this.pickerKind = 'list_2_single_onlydocs';\r\n const disabledList: ListItem[] = new Array();\r\n disabledList[0] = this.list[0];\r\n // Pass in a new variable since picker will append RED and FF entries to the diabled list\r\n this.pickerDisableList = disabledList;\r\n this.pickerShown = true;\r\n break;\r\n case 'rm_putinbox':\r\n this.dialogKind = Util.kLocalFormPrefix + (cmd);\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.PUT_IN_BOX');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.PUT_IN_BOX_OK');\r\n this.dialogShown = true;\r\n break;\r\n case 'editsecurity':\r\n this.dialogKind = Util.kLocalFormPrefix + (cmd);\r\n if (isDocCmd) {\r\n this.desc = this.app.desc;\r\n } else {\r\n this.desc = this.list[0];\r\n }\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.EDIT_SECURITY');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.PUT_IN_BOX_OK');\r\n this.dialogShown = true;\r\n break;\r\n case 'setsecurity':\r\n // Reuse the Edit security form - just change the title\r\n this.dialogKind = Util.kLocalFormPrefix + ('editsecurity');\r\n if (isDocCmd) {\r\n this.desc = this.app.desc;\r\n } else {\r\n this.desc = this.list[0];\r\n }\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SET_SECURITY');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.PUT_IN_BOX_OK');\r\n this.dialogShown = true;\r\n break;\r\n case 'rm_removefrombox':\r\n this.dialogKind = Util.kLocalFormPrefix + (cmd);\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.REMOVE_FROM_BOX');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.dialogShown = true;\r\n break;\r\n case 'fp_rm_suspend':\r\n case 'rm_suspend':\r\n data = {'%SUSPEND': '1'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n case 'fp_rm_release':\r\n case 'rm_release':\r\n data = {'%RELEASE': '1'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n case 'rm_disposalinstructions':\r\n break;\r\n case 'rm_printlabel':\r\n break;\r\n case 'addfilepart':\r\n case 'rm_changefilepart':\r\n case 'rm_assignfilepart':\r\n this.pickerTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SELECT_FILEPART');\r\n this.pickerOK = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n this.pickerDesc = { id:'', type:'fileplans', lib:'', DOCNAME:this.localizer.getTranslation('FOLDER_ACTIONS.FILEPLANS_CONTAINER') };\r\n this.pickerHasFilter = false;\r\n this.pickerKind = 'list_2_single_filepart';\r\n this.pickerDisableList = this.list;\r\n this.pickerShown = true;\r\n break;\r\n case 'box_cancelrequest':\r\n case 'rm_cancelrequest':\r\n if (nItems) {\r\n let nResponses = 0;\r\n let nErrors = 0;\r\n let errMsg = '';\r\n const firstItem: ListItem = this.list[0];\r\n const docName: string = this.list[0].DOCNAME;\r\n let notifyBody = '';\r\n const cancelDone = () => {\r\n if (listComponent) {\r\n listComponent.reloadList();\r\n }\r\n Util.RestAPI.refreshLists(firstItem);\r\n title = this.localizer.getTranslation('FORMS.LOCAL.CANCEL.TITLE');\r\n if (nErrors===0) {\r\n notifyBody = nItems===1 ? this.localizer.getTranslation('FORMS.LOCAL.CANCEL.SUCCESS_SINGLE',[docName]) : this.localizer.getTranslation('FORMS.LOCAL.CANCEL.SUCCESS_MANY',[nItems.toString()]);\r\n Util.Notify.success(title, notifyBody);\r\n } else {\r\n notifyBody = nItems===1 ? this.localizer.getTranslation('FORMS.LOCAL.CANCEL.FAILURE_SINGLE',[docName,errMsg]) : this.localizer.getTranslation('FORMS.LOCAL.CANCEL.FAILURE_MANY',[nItems.toString(),errMsg]);\r\n Util.Notify.info(title, notifyBody);\r\n }\r\n if (curWindow) {\r\n curWindow.refresh('delete');\r\n }\r\n };\r\n for (let i=0; i {\r\n if (++nResponses===nItems) {\r\n cancelDone();\r\n }\r\n }, error => {\r\n ++nErrors;\r\n if (++nResponses===nItems) {\r\n errMsg = Util.Transforms.formatError(error);\r\n cancelDone();\r\n }\r\n });\r\n }\r\n }\r\n break;\r\n case 'rm_showfiles':\r\n data = {'%SHOW_CLOSED_FILES': 'Y'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n case 'rm_hidefiles':\r\n data = {'%SHOW_CLOSED_FILES': 'N'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n case 'fp_box_returnrequest':\r\n case 'rm_returnrequest':\r\n data = {'%RETURN_ITEM': '1'};\r\n this.putDataToServer(cmd, data);\r\n break;\r\n case 'fp_box_rm_loanrequest':\r\n case 'rm_loanrequest':\r\n const doLoan = () => {\r\n this.dialogKind = Util.kLocalFormPrefix + ('rm_loanrequest');\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.LESS');\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.LOAN_ITEM');\r\n this.dialogOK = this.localizer.getTranslation('FOLDER_ACTIONS.LOAN_OK');\r\n this.dialogShown = true;\r\n };\r\n if (loginReply && !!loginReply.RM_SETTINGS && loginReply.RM_SETTINGS['ReturnOnBorrow'] === 'A') {\r\n title = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.CONFIRM_LOAN');\r\n body = this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.CONFIRM_LOAN_TEXT');\r\n const yesBtn: string = this.localizer.getTranslation('FORMS.BUTTONS.YES');\r\n Util.Notify.confirm(title,body,yesBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n doLoan();\r\n }\r\n });\r\n } else {\r\n doLoan();\r\n }\r\n break;\r\n case 'rm_close':\r\n data = {'%FILEPART_CLOSE': '1'};\r\n title = this.localizer.getTranslation('FILEPART_ACTIONS_INLINE.CLOSE_FILEPART');\r\n body = this.localizer.getTranslation('FILEPART_ACTIONS_INLINE.CLOSED_FILEPART_WARNING');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n this.postDataToServer(cmd, data, notifyTitle);\r\n }\r\n });\r\n break;\r\n case 'rm_reopen':\r\n data = {'%FILEPART_REOPEN': '1'};\r\n title = this.localizer.getTranslation('FILEPART_ACTIONS_INLINE.REOPEN_FILEPART');\r\n body = this.localizer.getTranslation('FILEPART_ACTIONS_INLINE.REOPEN_FILEPART_WARNING');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n this.postDataToServer(cmd, data, notifyTitle);\r\n }\r\n });\r\n break;\r\n }\r\n return true;\r\n }\r\n\r\n private uploadOutlookMSGItem(outlookMailbox: any, headers: any, files: File[], dataFiles: DataFile[], intoThisFolder: any, addOutlookItemMetadata: boolean): void {\r\n Util.RestAPI.getOutlookItemProfileData(outlookMailbox, headers, addOutlookItemMetadata, intoThisFolder).then(serverFormData => {\r\n this.uploadFilesWithUI(files, null, dataFiles, intoThisFolder, serverFormData);\r\n }, error => {\r\n this.uploadFilesWithUI(files, null, dataFiles, intoThisFolder, {});\r\n });\r\n }\r\n\r\n private flexfolderLevelChanged(sel: SelectComponent): void {\r\n this.filter.updateCols();\r\n const display = JSON.parse(sel.value).LEVEL_NAME;\r\n this.pickerCurFlexfoldersLevel = { value: sel.value, display };\r\n this.getLookupInfo();\r\n }\r\n\r\n private getLookupInfo(title?: string): void {\r\n const listComponent: ListBaseComponent = Util.RestAPI.getCurListComponent();\r\n Util.RestAPI.getFormTemplate(this.pickerForm, Util.RestAPI.getPrimaryLibrary()).subscribe((template: any) => {\r\n const level = JSON.parse(this.pickerCurFlexfoldersLevel.value);\r\n let lookupKey = level.ID_FIELD_NAME;\r\n let lookupID: string = Util.FieldMappings.lookNameForField(template, lookupKey);\r\n if (!lookupID) {\r\n lookupKey = level.LEVEL_NAME;\r\n lookupID = Util.FieldMappings.lookNameForField(template, lookupKey);\r\n }\r\n if (!!lookupID) {\r\n this.pickFromLookups(lookupID, lookupKey, null, (list: any[], success: boolean) => {\r\n if (success && list && list.length) {\r\n let name = '';\r\n const ffIDs: any = {};\r\n ffIDs['nodes'] = [];\r\n const nItems = list.length;\r\n for (let i = 0; i < nItems; i++) {\r\n ffIDs['nodes'].push(list[i]['%PRIMARY_KEY']);\r\n if (i === 0) {\r\n const keys: string[] = Object.keys(list[i]);\r\n for (const key of keys) {\r\n if (key.indexOf('_NAME') !== -1) {\r\n if (name.length) {\r\n name += ' - ' + list[i][key];\r\n } else {\r\n name = list[i][key];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ffIDs['level'] = level.LEVEL_NO;\r\n const notifyTitle: string = nItems === 1 ? this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBED_TO_SINGLE', [name]) : this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBED_TO_MANY', [nItems.toString()]);\r\n this.postDataToServer('addflexfolder', ffIDs, notifyTitle, null, listComponent, [listComponent.desc]);\r\n }\r\n });\r\n }\r\n }, err => { });\r\n }\r\n\r\n private putDataToServer(cmd: string, body: any, notifyTitle?: string, notifyBody?: string, listComponent?: ListBaseComponent, list?: any[]): void {\r\n this.postOrPutDataToServer(true, cmd, body, notifyTitle, notifyBody, listComponent, list);\r\n }\r\n\r\n private postDataToServer(cmd: string, body: any, notifyTitle?: string, notifyBody?: string, listComponent?: ListBaseComponent, list?: any[]): void {\r\n this.postOrPutDataToServer(false, cmd, body, notifyTitle, notifyBody, listComponent, list);\r\n }\r\n\r\n private postOrPutDataToServer(doPut: boolean, cmd: string, body: any, notifyTitle?: string, notifyBody?: string, listComponent?: ListBaseComponent, list?: any[]): void {\r\n listComponent = listComponent || Util.RestAPI.getCurListComponent();\r\n list = list || (this.list ? this.list : (listComponent ? listComponent.getSelections() : Util.RestAPI.getCurList()));\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n let apiVerb = '';\r\n const newBody: any = {};\r\n let sendRaw = false;\r\n const nBodyItems: number = body ? body.length : 0;\r\n let nItems: number = list ? list.length : 0;\r\n let nSubscribedItems = 0;\r\n switch (cmd) {\r\n case 'security_save':\r\n list = [];\r\n list[0] = new ListItem(this.app.desc);\r\n nItems = 1;\r\n apiVerb = 'security';\r\n break;\r\n case 'addto':\r\n case 'whereused_add':\r\n case 'addtoworkspace':\r\n notifyTitle = nBodyItems===1 ? this.localizer.getTranslation('FOLDER_ACTIONS.ADDEDED_TO_SINGLE',[body[0]['docname']]) : this.localizer.getTranslation('FOLDER_ACTIONS.ADDEDED_TO_MANY',[nBodyItems.toString()]);\r\n // fall thru intentional\r\n case 'addquicksearch':\r\n case 'adddocuments':\r\n apiVerb = 'references';\r\n break;\r\n case 'related_add':\r\n apiVerb = 'associations';\r\n list = Util.RestAPI.getCurItem() ? [Util.RestAPI.getCurItem()] : [];\r\n nItems = list.length;\r\n notifyTitle = this.localizer.getTranslation('FOLDER_ACTIONS.RELATIONS');\r\n notifyBody = this.localizer.getTranslation('HISTORY_ACTIONS.37');\r\n break;\r\n case 'addfilepart':\r\n apiVerb = 'references';\r\n break;\r\n case 'newversionfromfile':\r\n apiVerb = '/';\r\n cmd = 'newversion';\r\n sendRaw = true;\r\n break;\r\n case 'unlock':\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.REMOVE.REMOVE_CHECKOUT_SUCCESS');\r\n apiVerb = 'profile';\r\n break;\r\n case 'checkin':\r\n notifyTitle = nItems===1 ? this.localizer.getTranslation('FORMS.LOCAL.CHECK_IN.SUCCESS_SINGLE',[this.list[0].DOCNAME]) : this.localizer.getTranslation('FORMS.LOCAL.CHECK_IN.SUCCESS_MANY',[nItems.toString()]);\r\n apiVerb = 'profile';\r\n break;\r\n case 'checkout':\r\n notifyTitle = nItems===1 ? this.localizer.getTranslation('FORMS.LOCAL.CHECK_OUT.SUCCESS_SINGLE',[this.list[0].DOCNAME]) : this.localizer.getTranslation('FORMS.LOCAL.CHECK_OUT.SUCCESS_MANY',[nItems.toString()]);\r\n apiVerb = 'profile';\r\n break;\r\n case 'publish':\r\n case 'unpublish':\r\n case 'readonly':\r\n case 'removereadonly':\r\n case 'declarerecord':\r\n case 'undeclarerecord':\r\n apiVerb = 'profile';\r\n break;\r\n case 'rm_supersede':\r\n apiVerb = 'records';\r\n doPut = true;\r\n newBody['%SUPERSEDE'] = '1';\r\n newBody['%SUPERSEDE_NEW_ITEM'] = body[0]['id'];\r\n body = Util.deepCopy(newBody);\r\n break;\r\n case 'rm_putinbox':\r\n apiVerb = 'records';\r\n doPut = true;\r\n body = Util.deepCopy(newBody);\r\n break;\r\n case 'rm_removefrombox':\r\n apiVerb = 'records';\r\n doPut = true;\r\n body = Util.deepCopy(newBody);\r\n break;\r\n case 'rm_changevitalstatus':\r\n case 'rm_suspend':\r\n case 'fp_rm_suspend':\r\n case 'rm_release':\r\n case 'fp_rm_release':\r\n case 'rm_disposalinstructions':\r\n case 'rm_printlabel':\r\n apiVerb = 'records';\r\n break;\r\n case 'rm_close':\r\n case 'rm_reopen':\r\n apiVerb = 'closeorreopen';\r\n break;\r\n case 'rm_changefilepart':\r\n case 'rm_assignfilepart':\r\n apiVerb = 'records';\r\n doPut = true;\r\n newBody['%CHANGE_FILE_PART'] = '1';\r\n newBody['PD_FILEPT_NO'] = body[0]['filepartno'];\r\n body = JSON.parse(JSON.stringify(newBody));\r\n break;\r\n case 'fp_box_returnrequest':\r\n case 'rm_returnrequest':\r\n apiVerb = 'requests';\r\n doPut = true;\r\n break;\r\n case 'subscribe':\r\n notifyTitle = nItems===1 ? this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBED_TO_SINGLE',[this.list[0].DOCNAME]) : this.localizer.getTranslation('FOLDER_ACTIONS.SUBSCRIBED_TO_MANY',[nItems.toString()]);\r\n apiVerb = 'subscriptions';\r\n break;\r\n case 'addflexfolder':\r\n apiVerb = 'subscriptions';\r\n break;\r\n case 'unsubscribe':\r\n notifyTitle = nItems===1 ? this.localizer.getTranslation('FOLDER_ACTIONS.UNSUBSCRIBED_FROM_SINGLE',[this.list[0].DOCNAME]) : this.localizer.getTranslation('FOLDER_ACTIONS.USUBSCRIBED_FROM_MANY',[nItems.toString()]);\r\n apiVerb = 'unsubscribe';\r\n if (listComponent) {\r\n const fullList: ListItem[] = listComponent.getList();\r\n const nFullList: number = fullList ? fullList.length : 0;\r\n for (let i=0; i>;\r\n if (list && nItems) {\r\n let nResponses = 0;\r\n for (let i = 0; i < nItems; i++) {\r\n const item = list[i];\r\n if (cmd.indexOf('addto') < 0 || !this.itemInList(item, body)) {\r\n if (cmd === 'addto' && item.id.startsWith('FP-FilePart')) {\r\n item.id = item['DOCNUM'];\r\n }\r\n if (cmd === 'unlock' && item.checkout && item.checkout['LOCATION'] && item.checkout['LOCATION'].toUpperCase().startsWith('HTTP')) {\r\n body['LOCATION'] = item.checkout['LOCATION'];\r\n }\r\n if (doPut) {\r\n observable = Util.RestAPI.put(item, body, apiVerb, null, { observe: 'response' });\r\n } else {\r\n observable = Util.RestAPI.post(item, body, apiVerb, null, { observe: 'response', sendRaw });\r\n }\r\n observable.subscribe((response) => {\r\n // try and pseudo update the items before the refresh to make the UI more responsive\r\n switch (cmd) {\r\n case 'unpublish':\r\n case 'checkin':\r\n case 'unlock': item['STATUS'] = '0'; break;\r\n case 'checkout': item['STATUS'] = '3'; break;\r\n case 'publish': item['STATUS'] = '20'; break;\r\n case 'readonly': item['READONLY'] = 'Y'; break;\r\n case 'removereadonly': item['READONLY'] = 'N'; break;\r\n case 'declarerecord': item['RECORD'] = 'Y'; break;\r\n case 'undeclarerecord': item['RECORD'] = 'N'; break;\r\n case 'rm_returnrequest':\r\n case 'fp_box_returnrequest':\r\n item['PD_STATUSES'] = '0';\r\n if (notifyTitle === undefined) {\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.RETURNED_TITLE');\r\n notifyBody = '';\r\n }\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.RETURNED',[item.DOCNUM]) + '\\n';\r\n break;\r\n case 'fp_rm_suspend':\r\n case 'rm_suspend':\r\n item['PD_SUSPEND'] = 'Y';\r\n if (notifyTitle === undefined) {\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.SUSPENDED_TITLE');\r\n notifyBody = '';\r\n }\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.SUSPENDED',[item.DOCNUM,item.PD_FILEPT_NO]) + '\\n';\r\n break;\r\n case 'rm_close':\r\n item['PD_ACTIVE_STATUS'] = 'C';\r\n if (notifyTitle === null) {\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.CLOSED_TITLE');\r\n notifyBody = '';\r\n }\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.CLOSED',[item.DOCNUM]) + '\\n';\r\n break;\r\n case 'rm_reopen':\r\n item['PD_ACTIVE_STATUS'] = 'R';\r\n if (notifyTitle === null) {\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.REOPENED_TITLE');\r\n notifyBody = '';\r\n }\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.REOPENED',[item.DOCNUM]) + '\\n';\r\n break;\r\n case 'fp_rm_release':\r\n case 'rm_release':\r\n item['PD_SUSPEND'] = 'N';\r\n if (notifyTitle === undefined) {\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.RELEASED_TITLE');\r\n notifyBody = '';\r\n }\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.RELEASED',[item.DOCNUM,item.PD_FILEPT_NO]) + '\\n';\r\n break;\r\n case 'rm_changevitalstatus':\r\n let vstatus = 0;\r\n let data: any = null;\r\n if (!!response.body.data) {\r\n data = response.body.data;\r\n }\r\n if (!!data) {\r\n vstatus = data['%CHANGE_VITAL_STATUS_NEWSTATUS'];\r\n }\r\n if (notifyTitle === undefined) {\r\n notifyTitle = '';\r\n notifyBody = '';\r\n }\r\n if (vstatus && vstatus === 1) {\r\n item['PD_VITAL'] = 'Y';\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.STATUS_VITAL',[item.DOCNUM]) + '\\n';\r\n } else {\r\n item['PD_VITAL'] = 'N';\r\n notifyBody += this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.STATUS_NOT_VITAL',[item.DOCNUM]) + '\\n';\r\n }\r\n break;\r\n case 'rm_showfiles':\r\n if (loginReply && !!loginReply.RM_SETTINGS) {\r\n loginReply.RM_SETTINGS['ShowClosedFiles'] = 'Y';\r\n }\r\n break;\r\n case 'rm_hidefiles':\r\n if (loginReply && !!loginReply.RM_SETTINGS) {\r\n loginReply.RM_SETTINGS['ShowClosedFiles'] = 'N';\r\n }\r\n break;\r\n }\r\n if (++nResponses === nItems) {\r\n Util.RestAPI.refreshLists(list[nItems-1]);\r\n if (listComponent) {\r\n if (apiVerb === 'unsubscribe' && listComponent.desc['SUBSCRIBED_INDICATOR'] === 'P' && nSubscribedItems === nItems) {\r\n Util.RestAPI.post(listComponent.desc, null, 'unsubscribe').subscribe(response2 => {}, error2 => {});\r\n }\r\n if (!Util.RestAPI.isItemInListsToRefresh(listComponent)) {\r\n listComponent.reloadList();\r\n }\r\n }\r\n if (notifyTitle || notifyBody) {\r\n Util.Notify.success(notifyTitle, notifyBody);\r\n }\r\n if (apiVerb === 'profile' || apiVerb === 'records' || apiVerb === 'requests' || apiVerb === 'associations') {\r\n const curWindow: WindowModalComponent = Util.RestAPI.getCurWindow();\r\n if (curWindow && !Util.RestAPI.isItemInListsToRefresh(curWindow)) {\r\n curWindow.refresh(this.currentCommand);\r\n }\r\n }\r\n }\r\n if (response.status===206) {\r\n Util.Notify.error(notifyTitle, response);\r\n }\r\n }, error => {\r\n if (++nResponses === nItems && listComponent) {\r\n if (cmd==='security_save' && listComponent.desc && listComponent.desc['edx_selected_security_choice']) {\r\n // This will force-reload of security trustees\r\n listComponent.desc['edx_selected_security_choice']='';\r\n }\r\n listComponent.reloadList();\r\n }\r\n Util.Notify.error(notifyTitle, error);\r\n });\r\n } else {\r\n ++nResponses;\r\n }\r\n }\r\n } else if (cmd === 'addquicksearch' && listComponent) {\r\n nItems = body ? body.length : 0;\r\n //For searches post, the data need to be an array, hence the workspace is added to array\r\n const desc: any = [listComponent.desc];\r\n let nResponses = 0;\r\n for (let i = 0; i < nItems; i++) {\r\n const item = body[i];\r\n if (doPut) {\r\n observable = Util.RestAPI.put(item, desc, apiVerb, null, { observe: 'response', sendRaw });\r\n } else {\r\n observable = Util.RestAPI.post(item, desc, apiVerb, null, { observe: 'response', sendRaw });\r\n }\r\n observable.subscribe(response => {\r\n if (++nResponses === nItems && listComponent) {\r\n listComponent.reloadList();\r\n if (notifyTitle) {\r\n Util.Notify.success(notifyTitle, notifyBody);\r\n }\r\n }\r\n }, error => {\r\n if (++nResponses === nItems && listComponent) {\r\n listComponent.reloadList();\r\n }\r\n });\r\n }\r\n } else if (cmd === 'whereused_add') {\r\n Util.RestAPI.post(this.app.desc, body, apiVerb, null, { sendRaw }).subscribe(response => {\r\n if (notifyTitle) {\r\n Util.Notify.success(notifyTitle, notifyBody);\r\n }\r\n listComponent.reloadList();\r\n }, error => {\r\n listComponent.reloadList();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private itemInList(item1: any, list: any[]): boolean {\r\n if (list && item1) {\r\n for (const item2 of list) {\r\n if (this.isSameListItem(item1, item2)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private isSameListItem(item1: any, item2: any): boolean {\r\n return (item1 && item2 && item1.type && item1.type === item2.type && item1.id && item1.id === item2.id && item1.lib === item2.lib);\r\n }\r\n\r\n private uploadNextFiles(pendingUpload: _FileUploadData): void {\r\n const title: string = this.localizer.getTranslation('FOLDER_ACTIONS.CREATE_PROFILE');\r\n const nFiles: number = pendingUpload.files ? pendingUpload.files.length : pendingUpload.filePaths ? pendingUpload.filePaths.length : pendingUpload.dataFiles ? pendingUpload.dataFiles.length : 0;\r\n const previousKind = this.dialogKind;\r\n this.reset();\r\n this.curPendingUpload = pendingUpload;\r\n this.fileList = pendingUpload.files;\r\n this.filePaths = pendingUpload.filePaths;\r\n this.dataFiles = pendingUpload.dataFiles;\r\n this.desc = pendingUpload.desc;\r\n this.dialogCreateType = 'documents';\r\n this.dialogFormData = pendingUpload.formData[0];\r\n this.dialogFormData['FORMNAME'] = pendingUpload.form;\r\n this.dialogTrustees = pendingUpload.trustees;\r\n this.dialogFileFormInfo = pendingUpload.fileFormInfo[0];\r\n this.dialogApplyAllChecked = nFiles > 1 ? this.dialogApplyAllChecked===null ? true : this.dialogApplyAllChecked : false;\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_REQUIRED_ONLY');\r\n this.dialogThirdBtn = Util.RestAPI.canAutoProfile() ? this.localizer.getTranslation('FORMS.BUTTONS.AUTO_FILL') : null;\r\n if (!!this.dataFiles && !!this.dataFiles[0].externalName) {\r\n this.dialogKind = 'profile_savetoedocs';\r\n if (this.dataFiles[0].name === this.dataFiles[0].externalName) {\r\n // File names are same so this is a simple save-to-edocs command\r\n this.dialogTitle = this.localizer.getTranslation('FORMS.LOCAL.SAVETOEDOCS.TITLE');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.LOCAL.SAVETOEDOCS.SAVE');\r\n } else {\r\n // File names are not same so this is a checkin command\r\n this.dialogTitle = title;\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n }\r\n } else {\r\n this.dialogKind = (previousKind === Util.kLocalFormPrefix + 'checkin' || previousKind === 'profile_checkin') ? 'profile_checkin' : 'profile';\r\n this.dialogTitle = title;\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n }\r\n this.dialogShown = true;\r\n }\r\n\r\n public onApplyAllChanged(checked: boolean): void {\r\n this.dialogApplyAllChecked = checked;\r\n }\r\n\r\n public extrasShownByChild(show: boolean): void {\r\n this.dialogExtrasShown = show;\r\n }\r\n\r\n public pccExtrasShownByChild(show: boolean): void {\r\n this.pccDialogExtrasShown = show;\r\n }\r\n\r\n private createFromCmd(cmd: string, desc: any, onPicker?: boolean): Promise {\r\n return new Promise((resolve, reject) => {\r\n const appID = cmd==='newpaperdocument' ? 'Paper' : cmd==='newworkspace' ? 'WORKSPACE' : 'FOLDER';\r\n const createIt = (formName: string) => {\r\n const showDialog = (data: any, trustees: any[], ffi: FileFormInfo) => {\r\n let createType: string;\r\n onPicker = onPicker && this.pickerShown;\r\n if (onPicker) {\r\n this.resetPickerCreateContainer();\r\n } else {\r\n this.reset();\r\n }\r\n if (!data) {\r\n data = {};\r\n } else if (data['DOCNAME']) {\r\n delete data['DOCNAME'];\r\n }\r\n if (cmd==='newpaperdocument') {\r\n data['STORAGE'] = 'P';\r\n createType = 'documents';\r\n } else {\r\n data['APP_ID'] = appID;\r\n createType = cmd.substr(3)+'s';\r\n }\r\n if (onPicker) {\r\n this.pccDialogCreateType = createType;\r\n this.pccDesc = desc;\r\n this.pccDialogFormData = data;\r\n this.pccDialogTrustees = trustees;\r\n this.pccDialogFormData['FORMNAME'] = formName;\r\n this.pccDialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.CREATE_PROFILE');\r\n this.pccDialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n this.pccDialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.pccDialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_REQUIRED_ONLY');\r\n this.pickerCreateContainerShown = true;\r\n } else {\r\n this.dialogCreateType = createType;\r\n this.dialogKind = 'profile';\r\n this.desc = desc;\r\n this.dialogFormData = data;\r\n this.dialogTrustees = trustees;\r\n this.dialogFileFormInfo = ffi;\r\n this.dialogFormData['FORMNAME'] = formName;\r\n this.dialogTitle = this.localizer.getTranslation('FOLDER_ACTIONS.CREATE_PROFILE');\r\n this.dialogOK = this.localizer.getTranslation('FORMS.BUTTONS.CREATE');\r\n this.dialogExtras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.dialogExtrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_REQUIRED_ONLY');\r\n this.dialogShown = true;\r\n }\r\n const checkDone = () => {\r\n let isDone: boolean;\r\n let success: boolean;\r\n if (this.pickerShown) {\r\n isDone = !this.pickerCreateContainerShown;\r\n success = this.pccDialogSuccess;\r\n data = this.pccDialogFormData;\r\n } else {\r\n isDone = !this.dialogShown;\r\n success = this.dialogSuccess;\r\n data = this.dialogFormData;\r\n }\r\n if (isDone) {\r\n resolve({success, data});\r\n } else {\r\n setTimeout(checkDone, 1000);\r\n }\r\n };\r\n checkDone();\r\n };\r\n if (cmd==='newworkspace') {\r\n showDialog({AUTHOR_ID: Util.RestAPI.getLoginReply().USER_ID, AUTHOR_NAME: Util.RestAPI.getLoginReply().FULL_NAME}, null, null);\r\n } else {\r\n const profiledDesc = (cmd==='newfolder' && desc && desc.id==='public') ? null : (cmd==='newfolder' || cmd==='newpaperdocument') ? desc : desc.lib;\r\n Util.RestAPI.getFormInfoForAppID(appID, desc, formName).then((ffi: FileFormInfo) => {\r\n Util.RestAPI.getProfileDefaultsAndTrustees(formName, appID, profiledDesc).then((data: any) => {\r\n showDialog(data.formData, data.trustees, ffi);\r\n });\r\n });\r\n }\r\n };\r\n if (cmd==='newworkspace') {\r\n createIt(Util.RestAPI.getDefaultWorkspaceForm().id);\r\n } else {\r\n const forms = Util.RestAPI.getProfileFormsForApp(appID);\r\n let firstFormName: string = forms[0].id;\r\n this.settingsService.get('preferences/formdefaults').then(data => {\r\n const appIDtoCheck = appID==='Paper' ? '%FORM_PAPER_APPLICATION' : appID;\r\n if (!!data && !!data[desc.lib.toUpperCase()] && !!data[desc.lib.toUpperCase()][appIDtoCheck]) {\r\n firstFormName = data[desc.lib.toUpperCase()][appIDtoCheck];\r\n }\r\n createIt(firstFormName);\r\n }, err => {\r\n createIt(firstFormName);\r\n });\r\n }\r\n });\r\n }\r\n\r\n // **** PopupCallback implementation\r\n\r\n private dismissPopup(cancelled: boolean): void {\r\n if (this.pickerGroupsCreateContainerShown) {\r\n this.resetGroupPickerCreateContainer();\r\n this.pickerGroupsCreateContainerShown = false;\r\n } else if (this.pickerCreateContainerShown) {\r\n this.pickerCreateContainerShown = false;\r\n this.pccDialogExtras = null;\r\n this.pccDialogExtrasAlt = null;\r\n this.pccDialogSuccess = !cancelled;\r\n } else if (this.pickerShown) {\r\n if (Util.isSharedDownloads(this.pickerDesc) && this.pickerDestListComponent) {\r\n Util.RestAPI.setCurListComponent(this.pickerDestListComponent);\r\n }\r\n this.pickerDestListComponent = null;\r\n this.pickerShown = false;\r\n this.pickerForceOK = false;\r\n if (!this.dialogShown) {\r\n this.list = null;\r\n this.currentCommand = '';\r\n }\r\n } else if (this.dialogShown) {\r\n this.dialogShown = false;\r\n this.dialogExtras = null;\r\n this.dialogExtrasAlt = null;\r\n this.dialogThirdBtn = null;\r\n this.list = null;\r\n this.currentCommand = '';\r\n this.fileList = null;\r\n this.dialogSuccess = !cancelled;\r\n }\r\n }\r\n\r\n popupThirdBtn(): void {\r\n if (this.dialogShown && !!this.formWrapper && !!this.formWrapper.popupThirdBtn) {\r\n this.formWrapper.popupThirdBtn();\r\n }\r\n }\r\n\r\n popupCancel(): void {\r\n if (this.pickerGroupsCreateContainerShown) {\r\n if (!!this.pickerGroupsCB) {\r\n this.pickerGroupsCB(null, false);\r\n this.pickerGroupsCB = null;\r\n }\r\n } else if (this.pickerCreateContainerShown) {\r\n if (!!this.pccFormWrapper) {\r\n this.pccFormWrapper.popupCancel();\r\n }\r\n } else if (this.pickerShown) {\r\n if (this.pickerCB) {\r\n this.pickerCB(null, false);\r\n this.pickerCB = null;\r\n }\r\n } else if (this.dialogShown) {\r\n if (this.formWrapper) {\r\n this.formWrapper.popupCancel();\r\n }\r\n }\r\n this.dismissPopup(true);\r\n }\r\n\r\n popupOK(): void {\r\n let pickerList: ListItem[];\r\n if (this.pickerGroupsCreateContainerShown) {\r\n pickerList = this.pickerGroups.getSelections();\r\n if (this.pickerGroupsCB) {\r\n this.pickerGroupsCB(pickerList, true);\r\n this.pickerGroupsCB = null;\r\n }\r\n } else if (this.pickerCreateContainerShown) {\r\n if (!!this.pccFormWrapper) {\r\n this.pccFormWrapper.popupOK();\r\n }\r\n } else if (this.pickerShown) {\r\n pickerList = this.picker.getSelections();\r\n if (this.pickerCB) {\r\n this.pickerCB(pickerList, true);\r\n this.pickerCB = null;\r\n } else {\r\n if (pickerList.length) {\r\n const pickedFolders: any = [];\r\n for (const pickedItem of pickerList) {\r\n if (this.currentCommand === 'addfilepart') {\r\n pickedFolders.push({\r\n id: pickedItem['DOCNUM'],\r\n type: pickedItem.type,\r\n lib: pickedItem.lib,\r\n docname: pickedItem['DOCNAME']\r\n });\r\n } else if (this.currentCommand === 'rm_assignfilepart' || this.currentCommand === 'rm_changefilepart') {\r\n pickedFolders.push({\r\n id: pickedItem.id,\r\n type: pickedItem.type,\r\n lib: pickedItem.lib,\r\n filepartno: pickedItem['PD_FILEPT_NO'],\r\n docname: pickedItem['DOCNAME']\r\n });\r\n } else {\r\n pickedFolders.push({\r\n id: pickedItem.id,\r\n type: pickedItem.type,\r\n lib: pickedItem.lib,\r\n docname: pickedItem['DOCNAME']\r\n });\r\n }\r\n }\r\n if (this.currentCommand === 'adddocuments' || this.currentCommand === 'addfilepart') {\r\n const listComponent: ListBaseComponent = Util.RestAPI.getCurListComponent();\r\n if (listComponent) {\r\n const serverData: any = { _restapi: {} };\r\n let title = 'FOLDER_ACTIONS.';\r\n if (this.currentCommand === 'adddocuments') {\r\n title += 'ADD_DOCUMENTS';\r\n serverData._restapi['ref'] = listComponent.desc;\r\n } else if (this.currentCommand === 'addfilepart') {\r\n title += 'ADD_FILEPART';\r\n serverData._restapi['ref'] = listComponent.desc;\r\n }\r\n this.postDataToServer(this.currentCommand, serverData, this.localizer.getTranslation(title), null, listComponent, pickedFolders);\r\n }\r\n } else {\r\n this.postDataToServer(this.currentCommand, pickedFolders);\r\n }\r\n }\r\n }\r\n } else if (this.dialogShown) {\r\n if (this.formWrapper && this.currentCommand !== 'confirm_delete') {\r\n this.formWrapper.popupOK();\r\n } else {\r\n this.doCommand('delete_multiref');\r\n }\r\n }\r\n this.dismissPopup(false);\r\n }\r\n\r\n async getMultiReferenceDocs(items: ListItem[]): Promise {\r\n const referenceList: ListItem[] = [];\r\n for (const item of items) {\r\n const extAppInfo: any = Util.RestAPI.findExternalApp(item.lib.split(',')[0]);\r\n const itemType = item.type;\r\n if ((['documents', 'folders'].indexOf(itemType) >= 0) && !extAppInfo) {\r\n await Util.RestAPI.get(item, 'references', undefined).toPromise().then((listData: ListData) => {\r\n if (listData?.list.length > 1) {\r\n referenceList.push(item);\r\n }\r\n });\r\n }\r\n }\r\n return referenceList;\r\n }\r\n\r\n public doDelete(cmd?: string,radioVal?: string,list?: ListItem[], listComponent?: ListBaseComponent, title?: string): void {\r\n const nItems = list.length;\r\n let nResponses = 0;\r\n let nErrors = 0;\r\n let docName: string = list[0].DOCNAME;\r\n const firstItem: ListItem = list[0];\r\n if (firstItem['VERSION_LABEL']) {\r\n docName = this.localizer.getTranslation(cmd === 'attachments_delete' ? 'COLUMN_HEADINGS.ATTACHMENTS.ATTACHMENT_NO' : 'COLUMN_HEADINGS.VERSIONS.VERSION_NO',[list[0]['VERSION_LABEL']]);\r\n }\r\n let errMsg = '';\r\n let notifyBody: string;\r\n let query = 'delrefs';\r\n let successDocName = '';\r\n let failDocName = '';\r\n const curWindow: WindowModalComponent = Util.RestAPI.getCurWindow();\r\n Util.RestAPI.setPreference('edx_delete_type', radioVal);\r\n if (radioVal === 'DQ') {\r\n query = 'queue';\r\n title = this.localizer.getTranslation('HISTORY_ACTIONS.35');\r\n } else if (radioVal === 'DO') {\r\n query += '&keepprof';\r\n }\r\n const deleteDone = () => {\r\n if (!!listComponent) {\r\n if (!!listComponent.desc && (listComponent.desc.type === 'searches' && firstItem.type === 'searches' && !isNaN(parseInt(listComponent.desc.id)) || (!firstItem['VERSION'] && !firstItem['VERSION_ID'] && listComponent.desc.type === firstItem.type && listComponent.desc.lib === firstItem.lib && listComponent.desc.id === firstItem.id))) {\r\n Util.RestAPI.navBack();\r\n setTimeout(() => {\r\n Util.RestAPI.refreshLists();\r\n });\r\n } else {\r\n Util.RestAPI.refreshLists(firstItem);\r\n }\r\n }\r\n if (nErrors === 0) {\r\n notifyBody = nItems === 1 ? this.localizer.getTranslation('FORMS.LOCAL.DELETE.SUCCESS_SINGLE', [docName]) : this.localizer.getTranslation('FORMS.LOCAL.DELETE.SUCCESS_MANY', [nItems.toString()]);\r\n Util.Notify.success(title, notifyBody);\r\n } else {\r\n if (nErrors === nItems) {\r\n notifyBody = nItems === 1 ? this.localizer.getTranslation('FORMS.LOCAL.DELETE.FAILURE_SINGLE', [docName, errMsg]) : this.localizer.getTranslation('FORMS.LOCAL.DELETE.FAILURE_MANY', [nItems.toString(), errMsg]);\r\n } else {\r\n const nSuccess = nItems - nErrors;\r\n notifyBody = nSuccess === 1 ? this.localizer.getTranslation('FORMS.LOCAL.DELETE.SUCCESS_SINGLE', [successDocName]) : this.localizer.getTranslation('FORMS.LOCAL.DELETE.SUCCESS_MANY', [nSuccess.toString()]);\r\n notifyBody += '.\\n' + (nErrors === 1 ? this.localizer.getTranslation('FORMS.LOCAL.DELETE.FAILURE_SINGLE', [failDocName, errMsg]) : this.localizer.getTranslation('FORMS.LOCAL.DELETE.FAILURE_MANY', [nErrors.toString(), errMsg]));\r\n }\r\n Util.Notify.info(title, notifyBody);\r\n }\r\n if (curWindow) {\r\n curWindow.refresh('delete');\r\n }\r\n };\r\n let params: string = null;\r\n for (let i = 0; i < nItems; i++) {\r\n const item: ListItem = list[i];\r\n if (item['VERSION_ID']) {\r\n params = (cmd === 'attachments_delete' ? 'attachments/' : 'versions/') + item['VERSION_ID'];\r\n }\r\n if (item.type === 'workspaces' && radioVal !== 'DQ') {\r\n query = null;\r\n }\r\n Util.RestAPI.delete(item, params, query).subscribe((response) => {\r\n //Delete the container's tile when a container is added as a tile and the container is deleted.\r\n if (item && Util.isContainerWithId(item)) {\r\n const tileToDelete = this.tileService.getTile(item);\r\n if (tileToDelete) {\r\n this.tileService.hideTile(tileToDelete);\r\n }\r\n }\r\n successDocName = nResponses === nErrors ? item.DOCNAME : '';\r\n if (++nResponses === nItems) {\r\n deleteDone();\r\n }\r\n }, error => {\r\n ++nErrors;\r\n failDocName = nErrors === 1 ? item.DOCNAME : '';\r\n if (++nResponses === nItems) {\r\n errMsg = Util.Transforms.formatError(error);\r\n deleteDone();\r\n }\r\n });\r\n }\r\n }\r\n\r\n extrasToggled(shown: boolean): void {\r\n if (!this.pickerShown && this.formWrapper) {\r\n this.formWrapper.extrasToggled(shown);\r\n } else if (this.pickerCreateContainerShown && this.pccFormWrapper) {\r\n this.pccFormWrapper.extrasToggled(shown);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n =2?1:0\">\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n\r\n =2?1:0\">\r\n =2 && ((pickerDesc.type=='folders' && pickerDesc.id=='downloads') || (pickerDesc.type=='lookups' && pickerDesc.id!='_GROUPS_ENABLED'))\" [desc]=\"pickerDesc\" [lookupForm]=\"pickerForm\" [lookupKey]=\"pickerKey\" [leadingColums]=\"pickerLeadingColums\" [viewKind]=\"(pickerDesc.type=='folders' && pickerDesc.id=='downloads')?2:0\" [hasFootprint]=\"true\" [parent]=\"this\">\r\n \r\n =2?2:0\">\r\n \r\n \r\n \r\n \r\n =2}\" [justButton]=\"ui>=2\" (change)=\"flexfolderLevelChanged($event)\">\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AWFileSystem, AWMenu, AWHeaderBar } from 'appworks-js';\r\nimport * as microsoftTeams from '@microsoft/teams-js';\r\n\r\nimport { Util, UserInterface } from './utils/utils.module';\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { DataService } from './services/data.service';\r\nimport { MenuService, MenuId, MenuDef } from './services/menu.service';\r\nimport { NavService } from './services/nav.service';\r\nimport { TileService } from './services/tile.service';\r\nimport { Tile } from './models/tile';\r\nimport { NavItem } from './models/nav-item';\r\nimport { MenuItem } from './models/menu-item';\r\nimport { ListData } from './models/base';\r\nimport { AppBreadcrumbsComponent } from './app-breadcrumbs.component';\r\nimport { AppNavSidebarComponent } from './app-nav-sidebar.component';\r\nimport { CommandHandler, MenuItemSetter, SearchWhere } from './models/command-handler';\r\nimport { AppComponent } from './app.component';\r\nimport { MenuComponent } from './widgets/menu.component';\r\nimport { SearchMenuComponent } from './widgets/search-menu.component';\r\nimport { ListBaseComponent } from './lists/list-base.component';\r\nimport { WindowModalComponent } from './windows/window-modal.component';\r\nimport { SecurityControl } from './models/security-control';\r\nimport { ListItem } from './models/list-item';\r\n\r\nclass HeaderCommand {\r\n public title: string;\r\n public leftText: string;\r\n public rightText: string;\r\n public cmd: string;\r\n public handler: CommandHandler;\r\n public actionMenuID: number;\r\n public actionMenuTitle: string;\r\n public actionMenuIcon: string;\r\n public forceActionIcon: boolean;\r\n constructor(handler: CommandHandler, cmd: string, leftText: string, title: string, rightText: string, actionMenuID: number, actionMenuTitle: string, actionMenuIcon: string) {\r\n this.handler = handler;\r\n this.cmd = cmd;\r\n this.leftText = leftText;\r\n this.title = title;\r\n this.rightText = rightText;\r\n this.actionMenuID = actionMenuID;\r\n this.actionMenuTitle = actionMenuTitle;\r\n this.actionMenuIcon = actionMenuIcon;\r\n this.forceActionIcon = false;\r\n }\r\n\r\n public reset(handler: CommandHandler, title: string): void {\r\n this.handler = handler;\r\n this.title = title;\r\n this.cmd = null;\r\n this.leftText = null;\r\n this.rightText = null;\r\n this.actionMenuID = -1;\r\n this.actionMenuTitle = null;\r\n this.actionMenuIcon = null;\r\n this.forceActionIcon = false;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'edx-app-header',\r\n styleUrls: [ 'app-header.component.scss' ],\r\n templateUrl: 'app-header.component.html'\r\n})\r\nexport class AppHeaderComponent implements CommandHandler, OnInit {\r\n public ui: UserInterface;\r\n public sections = false;\r\n public maskHeaderCount = 0;\r\n public navDisabledCount = 0;\r\n public hasOfficeInfoButton: boolean;\r\n public isOfficeAddin: boolean;\r\n protected searchWhere: SearchWhere = SearchWhere.Global;\r\n private showSearchWhere = false;\r\n private searchTypingTimer: number = null;\r\n private searchText = '';\r\n private showSearchBar = false;\r\n private searchbarShowing = false;\r\n private searchbarHiding = false;\r\n private showClearIcon = false;\r\n private searchPlaceHolder: string;\r\n private showBCStr: string;\r\n private hideBCStr: string;\r\n private reloadStr: string;\r\n private navLoc = '';\r\n private tiles: Tile[] = [];\r\n private bcEnabled = true;\r\n private searchOption='FULLTEXT_CONTENT_PROFILE';\r\n private appBreadcrumbs: AppBreadcrumbsComponent;\r\n private hdrCommands: HeaderCommand[] = [];\r\n private cordovaCmd: string = null;\r\n private cordovaCmdArg: any = null;\r\n private awFileSystem: AWFileSystem = null;\r\n private awMenu: AWMenu = null;\r\n private awHeaderBar: AWHeaderBar = null;\r\n private settingAWHeaderMask = 0;\r\n private curSearchSuggestion: string = null;\r\n private searchSuggestions: string[] = null;\r\n private loadingSuggestionsCount = 0;\r\n private searchSuggestionsShown = false;\r\n private hasSearchSuggestions = false;\r\n private searchIgnoreIndex = 0;\r\n private mobileSearchTextInput: ElementRef = null;\r\n private startLoc: string = location.href;\r\n private bTeamsInitialNav = false;\r\n private broacastChannel: BroadcastChannel;\r\n private waitingBroadcast = false;\r\n @ViewChild('actionMenu') actionMenu: MenuComponent;\r\n @ViewChild('userMenu') userMenu: MenuComponent;\r\n @ViewChild('helpMenu') helpMenu: MenuComponent;\r\n @ViewChild('searchWhereMenu') searchWhereMenu: MenuComponent;\r\n @ViewChild(SearchMenuComponent) searchMenu: SearchMenuComponent;\r\n @ViewChild('cordovaCmdButton') cordovaCmdButton;\r\n @ViewChild('searchTextInput') searchTextInput: ElementRef;\r\n @Input() navsidebar: AppNavSidebarComponent;\r\n @Input() app: AppComponent;\r\n @Input() target: HeaderTarget;\r\n\r\n constructor(private tileService: TileService, private localizer: LocalizeService, private menuService: MenuService, private dataService: DataService, private navService: NavService, private router: Router) {\r\n Util.Device.init();\r\n this.ui = Util.Device.ui;\r\n this.isOfficeAddin = Util.Device.bIsOfficeAddin;\r\n setTimeout(() => {\r\n this.hasOfficeInfoButton = Util.Device.bIsOfficeAddin && Util.Device.bIsOfficeAddinDesktop && !Util.Device.bIsOfficeAddinOutlook;\r\n }, 300);\r\n this.pushCommandHandler(this, null, null, this.appTitle(), null, -1, null, null);\r\n }\r\n\r\n @HostListener('window:orientationchange')\r\n public onOrientationChange(): void {\r\n setTimeout(() => {\r\n this.postCordovaCommand('cordovaoOrientationchange');\r\n }, 1);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (Util.Device.bIsCordova || Util.Device.bIsElectron) {\r\n this.awMenu = new AWMenu(cmd => {}, err => {});\r\n if (Util.Device.bIsCordova) {\r\n this.awHeaderBar = new AWHeaderBar(cmd => {}, err => {});\r\n }\r\n }\r\n this.app.ui = Util.Device.ui;\r\n this.app.iOS = Util.Device.bIsIOSDevice;\r\n this.app.isOfficeAddin = Util.Device.bIsOfficeAddin;\r\n this.app.headerHeight = this.ui<2 ? 'calc(100% - 4rem)' : this.ui<4 ? 'calc(100% - 6rem)' : 'calc(100% - 3rem)';\r\n this.navLoc = Util.RestAPI.getLoginURL();\r\n this.showBCStr = this.localizer.getTranslation('HEADER.SHOWCRUMBS');\r\n this.hideBCStr = this.localizer.getTranslation('HEADER.HIDECRUMBS');\r\n if (Util.Device.bIsElectron) {\r\n const menuSections: any[] = [\r\n {\r\n subhead: null,\r\n items: [\r\n {\r\n title: this.localizer.getTranslation('SETTINGS.PREFERENCES'),\r\n action: () => {\r\n if (this.app && !this.app.isAppModal()) {\r\n this.doElectronCommand('preferences');\r\n }\r\n },\r\n visible: true,\r\n hasBadge: false\r\n }\r\n ]\r\n }\r\n ];\r\n this.awMenu.setMenu(menuSections);\r\n }\r\n this.setSearchResources('FULLTEXT_CONTENT_PROFILE');\r\n this.app.registerHeader(this);\r\n }\r\n\r\n private refresh(): void {\r\n if (this.navLoc===Util.RestAPI.getHomeURL()) {\r\n Util.RestAPI.reloadTiles();\r\n } else {\r\n const curWindow: WindowModalComponent = Util.RestAPI.getCurWindow();\r\n if (!!curWindow) {\r\n curWindow.refresh();\r\n }\r\n }\r\n }\r\n\r\n public routeChanged(): void {\r\n const curCmd: HeaderCommand = this.getCurHdrCommand();\r\n const bIsOffline: boolean = Util.RestAPI.offline();\r\n this.navLoc = this.router.url;\r\n if (this.navLoc==='/') {\r\n if (!Util.Device.bIsElectron && !Util.Device.bIsCordova) {\r\n setTimeout(() => {\r\n if (this.navLoc==='/' && Util.Device.bUseWebLogin) {\r\n Util.RestAPI.navLogin();\r\n }\r\n }, 1000);\r\n }\r\n } else if (this.navLoc===Util.RestAPI.getHomeURL() || this.navLoc.indexOf('/home/iclink') >= 0) {\r\n let startUpDesc: any = null;\r\n if (curCmd) {\r\n curCmd.reset(this, this.localizer.getTranslation('HEADER.HOME'));\r\n this.setupCordovaHeader();\r\n }\r\n if (!this.tiles || !this.tiles.length) {\r\n const startUpLocStr: string = Util.RestAPI.getPreference('edx_start_location');\r\n if (startUpLocStr && startUpLocStr.length) {\r\n try {\r\n startUpDesc = JSON.parse(startUpLocStr);\r\n } catch (e) {\r\n startUpDesc = null;\r\n }\r\n }\r\n this.tileService.getTiles().then((tiles) => {\r\n this.tiles = tiles;\r\n this.registerOnFileOpen();\r\n if (this.isOfficeAddin && (!!startUpDesc || Util.Device.bIsOfficeAddinOutlookMessageEditable)) { // if we are an editable message add in then start in recent edits\r\n if (!startUpDesc) {\r\n startUpDesc = {id:'recentedits', type:'folders', lib:Util.RestAPI.getPrimaryLibrary(), name:this.localizer.getTranslation('TILE_NAMES.RECENTLY_EDITED'),DOCNAME: this.localizer.getTranslation('TILE_NAMES.RECENTLY_EDITED')};\r\n }\r\n this.navService.openItem(startUpDesc, true);\r\n }\r\n });\r\n // no tiles so init the menu as well\r\n this.setupCordovaMenu(bIsOffline);\r\n }\r\n Util.RestAPI.refreshDownloads(false);// requires no server access so do it always when we go home\r\n if (Util.RestAPI.isLoggedIn()) {\r\n this.finishNavHome();\r\n } else if (!!this.startLoc && this.startLoc.split('/#').length>1 && (this.startLoc.split('/#')[1] === Util.RestAPI.getHomeURL() || this.startLoc.split('/#')[1].startsWith('/home/iclink'))) {\r\n const waitForLogin = () => {\r\n if (Util.RestAPI.isLoggedIn()) {\r\n this.finishNavHome();\r\n } else if (Util.RestAPI.canAutoConnect()) {\r\n setTimeout(waitForLogin, 100);\r\n } else {\r\n Util.RestAPI.navLogin();\r\n }\r\n };\r\n setTimeout(waitForLogin, 100);\r\n }\r\n } else if (this.navLoc===Util.RestAPI.getLoginURL()) {\r\n this.tileService.reset();\r\n this.tiles = [];\r\n this.clearSearch(true);\r\n this.bTeamsInitialNav = false;\r\n if (curCmd) {\r\n curCmd.title = this.appTitle();\r\n curCmd.leftText = curCmd.rightText = null;\r\n curCmd.cmd = null;\r\n }\r\n this.hasSearchSuggestions = false;\r\n this.showHideSearchTextBar(false);\r\n } else if (Util.RestAPI.isLoggedIn()) {\r\n const childRoute = Util.RestAPI.decodeChildRouteURL(this.navLoc);\r\n if (curCmd) {\r\n if (this.hdrCommands.length===1) {\r\n const desc = Util.RestAPI.getDescFromURL(childRoute);\r\n if (desc && Util.isExternalLib(desc.lib)) {\r\n this.showSearchBar = false;\r\n }\r\n curCmd.title = Util.RestAPI.getNameFromURL(childRoute);\r\n }\r\n this.setupCordovaHeader();\r\n this.reloadStr = this.localizer.getTranslation('HEADER.REFRESH');\r\n }\r\n }\r\n }\r\n\r\n private doItemAction(listItem: ListItem, action: string, version: string, cb: (success) => void): void {\r\n const rights: SecurityControl = listItem ? Util.RestAPI.getRightsForItem(listItem) : null;\r\n // check if user has rights to open document\r\n if ((!rights || (rights && !rights.canViewDocument)) && (action === 'open')) {\r\n const title = this.localizer.getTranslation('FOLDER_ACTIONS.OPEN');\r\n const body = this.localizer.getTranslation('GENERIC_ERRORS.NO_OPEN_FILE_PERMISSION');\r\n const OkText = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n const url = Util.RestAPI.getHomeURL();\r\n Util.Notify.warning(title, body, OkText, null, false, true, true).then((confirm) => {\r\n if (confirm) {\r\n Util.RestAPI.navToURL(url);\r\n }\r\n });\r\n }\r\n if (!!listItem) {\r\n let queries: string = '?library='+listItem.lib;\r\n let bDoNav = false;\r\n let param: string = null;\r\n let pathName: string;\r\n if (action==='download' || (action==='open' && !Util.isContainer(listItem.type))) {\r\n const done = (errStr?: string): void => {\r\n if (!!errStr) {\r\n console.log(errStr);\r\n }\r\n if (!!cb) {\r\n cb(false);\r\n }\r\n };\r\n const startTime = new Date();\r\n const waitForPFTA = () => {\r\n const now: Date = new Date();\r\n const elapsedTime: number = (now.valueOf() - startTime.valueOf());\r\n if (Util.Device.bIsElectron || Util.Device.bIsCordova || Util.RestAPI.hasPFTA()) {\r\n if (action==='download') {\r\n Util.RestAPI.downloadFile(listItem, version, queries, null, true, false, cb);\r\n } else {\r\n Util.RestAPI.viewOrOpenFilesWithStatusCheck([listItem], [version], false, cb);\r\n }\r\n } else if (elapsedTime < 20000) {\r\n Util.RestAPI.probePFTA().then(vers => {\r\n if (vers !== 0) {\r\n setTimeout(waitForPFTA, 1000);\r\n } else {\r\n if (action==='download' || action==='open') {\r\n Util.RestAPI.downloadFileWithBrowserAnchor(listItem, version, null);\r\n } else {\r\n done('no pfta for open file link');\r\n }\r\n }\r\n });\r\n } else {\r\n done('no pfta to handle link');\r\n }\r\n };\r\n waitForPFTA();\r\n } else if (!!action && action.startsWith('profile')) {\r\n let tab: string = action.indexOf('_')>0 ? action.split('_')[1] : '';\r\n if (!Util.RestAPI.canShowPreview() && tab === 'preview') {\r\n tab='profile';\r\n }\r\n param = 'profile';\r\n pathName = 'metadata';\r\n queries += '&name='+Util.RestAPI.encodeChildRouteName(this.localizer.getTranslation('FOLDER_ACTIONS.PROFILE'))+'&id='+listItem.id+'&type='+listItem.type+'&lib='+listItem.lib+'&appid='+encodeURIComponent(listItem.APP_ID)+'&docname='+encodeURIComponent(listItem.DOCNAME)+(!!tab ? '&tab='+tab : '');\r\n bDoNav = true;\r\n } else if (Util.isContainer(listItem.type)) {\r\n pathName = listItem.type;\r\n queries += '&name='+Util.RestAPI.encodeChildRouteName(listItem.DOCNAME)+'&max='+Util.RestAPI.getDefualtMaxItems();\r\n bDoNav = true;\r\n }\r\n if (bDoNav) {\r\n const url = Util.RestAPI.makeChildRouteURL('home', 'tcc_outlet', pathName, listItem, param, queries);\r\n setTimeout(() => {\r\n Util.RestAPI.navToURL(url);\r\n }, Util.kPopupDismissMS);\r\n }\r\n }\r\n }\r\n\r\n private searchForDoc(docNum: string, libToSearch: string, action: string, version: string, setAsStart: boolean, cb: (success) => void): void {\r\n const errHandler = () => {\r\n this.doItemAction(null, action, version, null);\r\n };\r\n const found = (listData: ListData) => {\r\n if (docNum.startsWith('DV-%DV')) {\r\n if (!!listData && !!listData.set && !!listData.set.flexinfo && !!listData.set.flexinfo.levels && !!listData.set.flexinfo.levels.length) {\r\n const level = listData.set.flexinfo.levels[listData.set.flexinfo.levels.length-1];\r\n if (level.NODE_TEXT) {\r\n listData.list = [{id:docNum, type:'flexfolders', lib:libToSearch, DOCNAME: level.NODE_TEXT}];\r\n } else {\r\n listData = null;\r\n }\r\n } else {\r\n listData = null;\r\n }\r\n }\r\n if (!!listData && !!listData.list && listData.list.length) {\r\n this.doItemAction(listData.list[0], action, version, cb);\r\n if (setAsStart && !!this.navsidebar) {\r\n this.navsidebar.startLocChanged(listData.list[0]);\r\n }\r\n } else {\r\n errHandler();\r\n }\r\n };\r\n if (docNum.startsWith('DV-%DV')) {\r\n Util.RestAPI.get({id:docNum,type:'flexfolders',lib:libToSearch},null,'start=0&max=1&ascending=SYSTEM_ID').subscribe(found, errHandler);\r\n } else {\r\n const searchCriteria: any = {};\r\n const criteria: any = {};\r\n const searchForms: any[] = Util.RestAPI.getSearchForms();\r\n if (searchForms && searchForms.length) {\r\n searchCriteria['FORM_NAME'] = searchForms[0]['%FORM_NAME'];\r\n }\r\n searchCriteria['DESCRIPTION'] = docNum;\r\n criteria['DOCNUM'] = docNum;\r\n searchCriteria['criteria'] = criteria;\r\n Util.RestAPI.post({id:'evaluation',lib:libToSearch,type:'searches'},searchCriteria,'','libs='+libToSearch+'&start=0&max=1&ascending=SYSTEM_ID').subscribe(found, errHandler);\r\n }\r\n }\r\n\r\n private doSearchLink(url: string): void {\r\n const description = Util.RestAPI.getQueryFromURL(url, 'description');\r\n const criteriaStr = Util.RestAPI.getQueryFromURL(url, 'criteria');\r\n if (!!criteriaStr) {\r\n const criteriaParts = criteriaStr.split(',');\r\n const nCriteria = criteriaParts.length;\r\n const criteria = {};\r\n const searchCriteria = {};\r\n if (!!description) {\r\n searchCriteria['DESCRIPTION'] = description;\r\n }\r\n const searchForms: any[] = Util.RestAPI.getSearchForms();\r\n if (searchForms && searchForms.length) {\r\n searchCriteria['FORM_NAME'] = searchForms[0]['%FORM_NAME'];\r\n }\r\n try {\r\n for (let i=0; i {\r\n Util.RestAPI.navToSearchURL('folders', searchCriteria);\r\n }, Util.kPopupDismissMS);\r\n } catch (e) {\r\n console.log('Bad search link bad criteria, ');\r\n console.log(e);\r\n }\r\n } else {\r\n console.log('Bad search link no criteria');\r\n }\r\n }\r\n\r\n private doICLinkUrl(startUrl: string): void {\r\n const action = Util.RestAPI.getQueryFromURL(startUrl, 'action');\r\n const version = Util.RestAPI.getQueryFromURL(startUrl, 'vers') || 'C';\r\n const name = decodeURIComponent(Util.RestAPI.getQueryFromURL(startUrl, 'name'));\r\n const type = decodeURIComponent(Util.RestAPI.getQueryFromURL(startUrl, 'type'));\r\n const idPart = Util.RestAPI.getQueryFromURL(startUrl, 'id');\r\n const id = type === 'flexfolders' ? unescape(idPart) : decodeURIComponent(idPart);\r\n const appid = decodeURIComponent(Util.RestAPI.getQueryFromURL(startUrl, 'appid'));\r\n const lib = Util.RestAPI.getQueryFromURL(startUrl, 'lib');\r\n const listItem: ListItem = {\r\n AUTHOR_ID: '',\r\n DOCNUM: id,\r\n IS_SHARED: '',\r\n LAST_EDIT_DATE: '',\r\n TYPIST_ID: '',\r\n checkout: '',\r\n correlator: '',\r\n id, type, lib, DOCNAME:name, APP_ID:appid};\r\n if (type==='searches' && id==='evaluation') {\r\n this.doSearchLink(startUrl);\r\n } else if (!!type && !!id && !!lib && (action!=='open' || Util.isContainer(type))) {\r\n this.doItemAction(listItem, action, version, null);\r\n } else if (!!id) {\r\n this.searchForDoc(id, lib || Util.RestAPI.getPrimaryLibrary(), action, version, false, null);\r\n }\r\n }\r\n\r\n private finishNavHome(): void {\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n this.hasSearchSuggestions = loginReply && loginReply.SEARCH_CAPABILITIES && loginReply.SEARCH_CAPABILITIES.SUGGESTIONS === 'Y';\r\n if (this.app && this.app.desc && this.app.desc.type === 'requests') {\r\n // Must reload requests after exiting since DM server can remove items from requests\r\n // list leaving the tile unschanged\r\n setTimeout(() => {\r\n Util.RestAPI.refreshRequests();\r\n }, 1000);\r\n }\r\n if (!this.startLoc) {\r\n this.startLoc = window.location.href;\r\n }\r\n this.setSearchScope('home');\r\n this.showHideSearchTextBar(true);\r\n this.reloadStr = this.localizer.getTranslation('HERO.RELOAD_TILES');\r\n if (!!Util.Device.teamsContext && !!Util.Device.teamsContext.subEntityId) {\r\n const subEntityId = Util.Device.teamsContext.subEntityId;\r\n Util.Device.teamsContext.subEntityId = null;\r\n this.startLoc = null;\r\n try {\r\n const listItem: any = JSON.parse(subEntityId);\r\n this.searchForDoc(listItem.id, listItem.lib, listItem.action, listItem.version, false, (success => {\r\n setTimeout(() => {\r\n microsoftTeams.executeDeepLink(Util.RestAPI.makeTeamsBaseDeepLink());\r\n }, 5000);\r\n }));\r\n } catch (e) {\r\n microsoftTeams.executeDeepLink(Util.RestAPI.makeTeamsBaseDeepLink());\r\n }\r\n } else if (!!Util.Device.teamsContext && !this.bTeamsInitialNav && !!Util.Device.teamsContext.entityId && Util.Device.teamsContext.entityId.startsWith('edx_desc_')) {\r\n try {\r\n const parts = Util.Device.teamsContext.entityId.substr(9).split('__');\r\n this.searchForDoc(parts[0], decodeURIComponent(parts[2]), parts[3], 'C', true, null);\r\n } catch (e) { }\r\n this.bTeamsInitialNav = true;\r\n } else if (!!this.startLoc) {\r\n const iclinkStart: number = this.startLoc.indexOf('/iclink');\r\n const homeOutletStart: number = this.startLoc.indexOf('/home/(tcc_outlet:');\r\n if (iclinkStart >= 0) {\r\n const startUrl = Util.getRootSiteUrl() + this.startLoc.substr(iclinkStart); // get rid of the hash\r\n if (this.waitingBroadcast) {\r\n const waitForBroadcast = () => {\r\n setTimeout(() => {\r\n if (this.waitingBroadcast) {\r\n waitForBroadcast();\r\n } else {\r\n this.doICLinkUrl(startUrl);\r\n }\r\n }, 100);\r\n };\r\n waitForBroadcast();\r\n } else {\r\n this.doICLinkUrl(startUrl);\r\n }\r\n } else if (homeOutletStart >= 0) {\r\n const url = this.startLoc.substr(homeOutletStart);\r\n setTimeout(() => {\r\n Util.RestAPI.navToURL(url);\r\n }, Util.kPopupDismissMS);\r\n }\r\n this.startLoc = null;\r\n }\r\n }\r\n\r\n public setAppBreadcrumbs(bcc: AppBreadcrumbsComponent): void {\r\n this.appBreadcrumbs = bcc;\r\n }\r\n\r\n public getBreadcrumbs(): AppBreadcrumbsComponent {\r\n return this.appBreadcrumbs;\r\n }\r\n\r\n public displayBranding(): boolean {\r\n return (this.ui===UserInterface.web || this.ui===UserInterface.desktop || this.ui===UserInterface.phone || this.ui===UserInterface.tablet);\r\n }\r\n\r\n public breadcrumbsShown(): boolean {\r\n let rc = false;\r\n if (this.getBreadcrumbs()) {\r\n rc = this.getBreadcrumbs().canBeShown();\r\n }\r\n return rc;\r\n }\r\n\r\n public focusSearchBar(): boolean {\r\n const searchTextBar = this.getSearchBar();\r\n if (searchTextBar) {\r\n searchTextBar.focus();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private appTitle(): string {\r\n return this.localizer.getTranslation(this.isOfficeAddin ? 'APP_TITLE_SHORT' : 'APP_TITLE');\r\n }\r\n\r\n private registerOnFileOpen(): void {\r\n if (Util.Device.bIsElectron && !this.awFileSystem) {\r\n this.awFileSystem = new AWFileSystem();\r\n this.awFileSystem.onFileOpen(filePath => {\r\n if (filePath) {\r\n this.awFileSystem.exists(filePath, exists => {\r\n if (exists) {\r\n Util.RestAPI.uploadFilesWithUI(null, [filePath]);\r\n }\r\n }, err => {});\r\n }\r\n },\r\n (success) => {},\r\n (error) => {});\r\n }\r\n }\r\n\r\n private getSearchBar(): any {\r\n return this.searchTextInput ? this.searchTextInput.nativeElement : this.mobileSearchTextInput ? this. mobileSearchTextInput.nativeElement : null;\r\n }\r\n\r\n private showRightActionIcon(): boolean {\r\n return !this.getRightText() && this.getActionMenuID()!==-1;\r\n }\r\n\r\n private enableRightActionIcon(): boolean {\r\n if (this.app && this.app.desc && this.app.desc.type === 'fileplans') {\r\n if (!!this.app.desc['PD_FILEPT_NO']) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private getRightBGIcon(): string {\r\n const curHdrCmd: HeaderCommand = this.getCurHdrCommand();\r\n if (curHdrCmd && !curHdrCmd.rightText && curHdrCmd.actionMenuID === -1 && !!curHdrCmd.actionMenuIcon && curHdrCmd.actionMenuIcon.indexOf('assets/images') === -1) {\r\n return 'url(../assets/images/'+curHdrCmd.actionMenuIcon+')';\r\n }\r\n return undefined;\r\n }\r\n\r\n private getCurHdrCommand(): HeaderCommand {\r\n return this.hdrCommands[this.hdrCommands.length-1];\r\n }\r\n\r\n private getCurHdrCommandHandler(): CommandHandler {\r\n return this.getCurHdrCommand().handler;\r\n }\r\n\r\n private getLeftText(): string {\r\n return this.getCurHdrCommand().leftText;\r\n }\r\n\r\n private getTitle(): string {\r\n return this.ui<2 ? ('| ' + this.appTitle()) : this.getCurHdrCommand().title;\r\n }\r\n\r\n private getRightText(): string {\r\n return this.getCurHdrCommand().rightText;\r\n }\r\n\r\n private getActionMenuID(): number {\r\n return this.getCurHdrCommand().actionMenuID;\r\n }\r\n\r\n private getActionMenuTitle(): string {\r\n return this.getCurHdrCommand().actionMenuTitle;\r\n }\r\n\r\n private getActionMenuIcon(): string {\r\n return this.getCurHdrCommand().actionMenuIcon;\r\n }\r\n\r\n private showMobileHamburger(): boolean {\r\n return this.ui>=2 && !this.getLeftText() && !!this.navLoc && this.navLoc!==Util.RestAPI.getLoginURL();\r\n }\r\n\r\n private showBack(): boolean {\r\n return (this.ui===UserInterface.phone || this.ui===UserInterface.tablet) && !!this.navLoc && this.navLoc.length>1 && !(this.navLoc===Util.RestAPI.getHomeURL() || this.navLoc===Util.RestAPI.getLoginURL());\r\n }\r\n\r\n private homeButtonClicked(event: Event) {\r\n if (this.navLoc!==Util.RestAPI.getLoginURL()) {\r\n this.doCommand('home');\r\n }\r\n }\r\n\r\n private hamburgerClicked(event: Event) {\r\n if (this.navLoc!==Util.RestAPI.getLoginURL()) {\r\n this.navsidebar.toggle(event);\r\n }\r\n }\r\n\r\n private closeHamburger() {\r\n this.navsidebar.closeMenu();\r\n }\r\n\r\n private closeMenuOnFocusOut(menu: MenuComponent) {\r\n if (menu && menu.isOpen) {\r\n menu.closeMenuOnFocusOut(-2);\r\n }\r\n }\r\n\r\n private leftClicked(event: Event) {\r\n const doBack = () => {\r\n if (this.getBreadcrumbs()) {\r\n this.getBreadcrumbs().navBack();\r\n }\r\n };\r\n const curHdrCmd: HeaderCommand = this.getCurHdrCommand();\r\n if (curHdrCmd.cmd === 'save' || curHdrCmd.cmd === 'security_save' || curHdrCmd.cmd === 'popupok') {\r\n if (!!curHdrCmd.handler) {\r\n curHdrCmd.handler.doCommand(curHdrCmd.cmd === 'popupok' ? 'back' : 'cancel');\r\n } else {\r\n doBack();\r\n }\r\n } else {\r\n doBack();\r\n }\r\n }\r\n\r\n private userButtonClicked(event: Event): void {\r\n if (this.userMenu) {\r\n this.userMenu.toggleMenuOpen(event);\r\n }\r\n }\r\n\r\n private helpButtonClicked(event: Event): void {\r\n if (this.helpMenu) {\r\n this.helpMenu.toggleMenuOpen(event);\r\n }\r\n }\r\n\r\n private searchWhereButtonClicked(event: Event): void {\r\n if (this.searchWhereMenu) {\r\n this.searchWhereMenu.toggleMenuOpen(event);\r\n }\r\n }\r\n\r\n private rightClicked(event: Event): void {\r\n const curHdrCmd: HeaderCommand = this.getCurHdrCommand();\r\n if (curHdrCmd.handler) {\r\n if (this.getActionMenuID()!==-1) {\r\n if (!event) {\r\n event = new MouseEvent('click', { view: window, bubbles: true, cancelable: true, clientY: 20 });\r\n }\r\n this.actionMenu.toggleMenuOpen(event);\r\n } else if ((!curHdrCmd.handler.commandEnabled || curHdrCmd.handler.commandEnabled(curHdrCmd.cmd)) && curHdrCmd.handler.doCommand(curHdrCmd.cmd)) {\r\n if (curHdrCmd.cmd!=='security_save' && curHdrCmd.cmd!=='save') {\r\n if (curHdrCmd.cmd!=='savesearch' || !this.isOfficeAddin) {\r\n curHdrCmd.handler = null; // null handler out so it does not get a back event\r\n if (curHdrCmd.cmd !== 'popupok') {\r\n // popups go back by themselves so go back\r\n this.leftClicked(event);\r\n }\r\n }\r\n const listComponent: ListBaseComponent = Util.RestAPI.getCurListComponent();\r\n if (listComponent) {\r\n listComponent.clearSelection();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private rightEnabled(): boolean {\r\n const curHdrCmd: HeaderCommand = this.getCurHdrCommand();\r\n if (curHdrCmd.handler) {\r\n if (this.getActionMenuID()!==-1) {\r\n return true;\r\n } else if (!!curHdrCmd.cmd && !!curHdrCmd.handler.commandEnabled && curHdrCmd.handler.commandEnabled(curHdrCmd.cmd)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private showHideSearchTextBar(show: boolean): void {\r\n if (this.showSearchBar !== show) {\r\n if (show) {\r\n this.searchbarShowing = true;\r\n this.setSearchTextBarFocus();\r\n } else {\r\n this.searchbarHiding = true;\r\n this.hideSearchSuggestions();\r\n }\r\n }\r\n }\r\n\r\n private searchTextBlur(event: Event): void {\r\n setTimeout(() => {\r\n this.hideSearchSuggestions();\r\n }, 500);\r\n }\r\n\r\n private nav(inc: number): void {\r\n const item: string = this.curSearchSuggestion;\r\n let index: number = item!==null ? this.searchSuggestions.indexOf(item) : -1;\r\n index += inc;\r\n if (index<0) {\r\n index = 0;\r\n } else if (index>=this.searchSuggestions.length) {\r\n index = this.searchSuggestions.length-1;\r\n }\r\n this.curSearchSuggestion = this.searchSuggestions[index];\r\n }\r\n\r\n private showSearchSuggestions(): void {\r\n if (!this.searchSuggestionsShown) {\r\n ++MenuComponent.nMenusShown;\r\n this.searchSuggestionsShown = true;\r\n }\r\n this.loadingSuggestionsCount++;\r\n }\r\n\r\n private hideSearchSuggestions(): void {\r\n if (!!this.searchSuggestionsShown) {\r\n --MenuComponent.nMenusShown;\r\n this.searchSuggestions = null;\r\n this.searchSuggestionsShown = false;\r\n this.curSearchSuggestion = null;\r\n this.loadingSuggestionsCount = 0;\r\n }\r\n }\r\n\r\n public searchTextEntered(event: KeyboardEvent): void {\r\n if (!!event) {\r\n const searchTextBar = this.getSearchBar();\r\n if (event.key === 'ArrowDown'||event.key==='Down') {\r\n if (this.searchSuggestions) {\r\n this.nav(1);\r\n } else if (searchTextBar) {\r\n searchTextBar.blur();\r\n }\r\n } else if (event.key === 'ArrowUp' && this.searchSuggestions) {\r\n this.nav(-1);\r\n } else if (event.key === 'Enter' && this.searchSuggestions && this.curSearchSuggestion) {\r\n this.suggestionClicked(this.curSearchSuggestion);\r\n } else if (event.key === 'Escape') {\r\n this.hideSearchSuggestions();\r\n } else {\r\n const afterTypingDelay = () => {\r\n const prevSearchText = this.searchText;\r\n if (searchTextBar) {\r\n this.searchText = searchTextBar.value;\r\n this.showClearIcon = searchTextBar.value ? true : false;\r\n }\r\n window.clearTimeout(this.searchTypingTimer);\r\n this.searchTypingTimer = null;\r\n if (event.key === 'Enter') {\r\n this.doCommand('search');\r\n this.hideSearchSuggestions();\r\n if (searchTextBar && (!Util.Device.bIsOfficeAddin && Util.Device.isMobile())) {\r\n searchTextBar.blur();\r\n }\r\n } else {\r\n if (this.hasSearchSuggestions && prevSearchText !== this.searchText) {\r\n if (this.searchText.length>=3) {\r\n let serarchTerm: string = null;\r\n if (this.searchIgnoreIndex > this.searchText.length) {\r\n this.searchIgnoreIndex = this.searchText.length;\r\n }\r\n serarchTerm = this.searchText.substr(this.searchIgnoreIndex);\r\n if (!!serarchTerm) {\r\n this.showSearchSuggestions();\r\n Util.RestAPI.get('searches/suggestions','profile',('term='+encodeURIComponent(serarchTerm))).subscribe((suggestions: string[]) => {\r\n if (this.loadingSuggestionsCount>0) {\r\n this.loadingSuggestionsCount--;\r\n if (suggestions && suggestions.length && (searchTextBar.value.endsWith(suggestions[0]) || !this.searchSuggestions)) {\r\n this.searchSuggestions = suggestions.slice(1);\r\n if (!this.searchSuggestions || !this.searchSuggestions.length) {\r\n this.hideSearchSuggestions();\r\n }\r\n }\r\n }\r\n }, err => {\r\n this.hideSearchSuggestions();\r\n });\r\n }\r\n } else {\r\n this.searchIgnoreIndex = 0;\r\n }\r\n }\r\n }\r\n };\r\n if (!!this.searchTypingTimer) {\r\n window.clearTimeout(this.searchTypingTimer);\r\n }\r\n this.searchTypingTimer = window.setTimeout(afterTypingDelay, 300);\r\n }\r\n }\r\n }\r\n\r\n private suggestionClicked(suggestion: string): void {\r\n const searchTextBar = this.getSearchBar();\r\n if (searchTextBar) {\r\n let searchText: string = this.searchText;\r\n if (this.searchIgnoreIndex) {\r\n searchText = searchText.substr(0,this.searchIgnoreIndex);\r\n if (searchText[searchText.length-1]!==' ') {\r\n searchText += ' ';\r\n }\r\n } else {\r\n searchText = '';\r\n }\r\n this.searchText = searchText + suggestion + ' ';\r\n this.searchIgnoreIndex = this.searchText.length;\r\n searchTextBar.value = this.searchText;\r\n searchTextBar.focus();\r\n this.showClearIcon = true;\r\n }\r\n this.hideSearchSuggestions();\r\n }\r\n\r\n public textEntered(event: KeyboardEvent): void {\r\n this.searchTextEntered(event);\r\n }\r\n\r\n public textCleared(): void {\r\n this.clearSearch();\r\n }\r\n\r\n public setTextInputElement(textEl: ElementRef): void {\r\n this.mobileSearchTextInput = textEl;\r\n }\r\n\r\n private clearSearch(clearEverything?: boolean): void {\r\n const searchTextBar = this.getSearchBar();\r\n if (searchTextBar) {\r\n searchTextBar.value = '';\r\n this.showClearIcon = false;\r\n }\r\n this.searchText = '';\r\n this.searchIgnoreIndex = 0;\r\n this.hideSearchSuggestions();\r\n if (clearEverything) {\r\n this.showSearchWhere = false;\r\n this.searchWhere = SearchWhere.Global;\r\n }\r\n }\r\n\r\n private setSearchResources(cmd: string): void {\r\n switch (cmd) {\r\n case 'FULLTEXT_PROFILE':\r\n this.searchPlaceHolder = this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.PLACE_HOLDER.PROFILE');\r\n break;\r\n case 'FULLTEXT_CONTENT_PROFILE':\r\n this.searchPlaceHolder = this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.PLACE_HOLDER.PROFILE_AND_CONTENT');\r\n break;\r\n case 'FULLTEXT_EASY_SEARCH':\r\n this.searchPlaceHolder = this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.PLACE_HOLDER.CONTENT');\r\n break;\r\n default:\r\n this.searchPlaceHolder = this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.PLACE_HOLDER.PROFILE');\r\n break;\r\n }\r\n }\r\n\r\n public setSearchScope(cmd?: string): void {\r\n const url: string = this.router.url;\r\n if (cmd !== 'home' && url !== Util.RestAPI.getHomeURL()) {\r\n const decodedUrl: string = Util.RestAPI.decodeChildRouteURL(url);\r\n const desc: any = Util.RestAPI.getDescFromURL(decodedUrl);\r\n if ((Util.isFolderWithId(desc) && !Util.isExternalLib(desc.lib)) || Util.isFlexfolderLevelNode(desc) || decodedUrl.indexOf(Util.kSearchFolderQuery)>0) {\r\n this.showSearchWhere = true;\r\n const searchWhereStr: string = Util.RestAPI.getPreference('edx_search_where');\r\n if (Util.isInteger(searchWhereStr)) {\r\n this.searchWhere = parseInt(searchWhereStr);\r\n } else {\r\n this.searchWhere = SearchWhere.ContainerPlusSubs;\r\n }\r\n if (Util.isFolderWithId(desc)) {\r\n this.clearSearch(false);\r\n }\r\n } else {\r\n this.showSearchWhere = false;\r\n this.searchWhere = SearchWhere.Global;\r\n }\r\n } else {\r\n this.showSearchWhere = false;\r\n this.searchWhere = SearchWhere.Global;\r\n this.clearSearch(true);\r\n }\r\n }\r\n\r\n public canSearchWhere(): boolean {\r\n return this.showSearchWhere;\r\n }\r\n\r\n public showMobileSearchHeader(): boolean {\r\n return !Util.RestAPI.offline();\r\n }\r\n\r\n // **** CommandHandler implementation\r\n\r\n doCommand(cmd: string, data?: any): boolean {\r\n let handled = false;\r\n const tile: Tile = this.getTileByCmd(cmd);\r\n if (tile) {\r\n this.tileService.openTile(tile);\r\n handled = true;\r\n }\r\n if (!handled) {\r\n handled = true;\r\n if (cmd.startsWith('search_scope_')) {\r\n switch (cmd) {\r\n case 'search_scope_global':\r\n this.searchWhere = SearchWhere.Global;\r\n break;\r\n case 'search_scope_foldersubs':\r\n this.searchWhere = SearchWhere.ContainerPlusSubs;\r\n break;\r\n case 'search_scope_folder':\r\n this.searchWhere = SearchWhere.Container;\r\n break;\r\n }\r\n Util.RestAPI.setPreference('edx_search_where', this.searchWhere.toString());\r\n } else if (cmd.startsWith('cordovaLoadAppIndex_')) {\r\n const app: NavItem = Util.RestAPI.getLoginReply().APPLICATIONS[parseInt(cmd.substr(20))];\r\n this.navService.openItem(app);\r\n } else {\r\n switch (cmd) {\r\n case 'cordovaoOrientationchange':\r\n Util.Device.deviceDidRotate();\r\n break;\r\n case 'home':\r\n Util.RestAPI.navHome();\r\n break;\r\n case 'FULLTEXT_PROFILE':\r\n case 'FULLTEXT_CONTENT_PROFILE':\r\n case 'FULLTEXT_EASY_SEARCH':\r\n break;\r\n case 'hdr_setstarthere':\r\n let curDesc: any = null;\r\n let bIsHome: boolean = this.router.url.indexOf('tcc_') === -1;\r\n if (!bIsHome) {\r\n curDesc = Util.RestAPI.getCurDesc();\r\n if (!!curDesc && !Util.isContainer(curDesc.type)) {\r\n bIsHome = true;\r\n curDesc = null;\r\n } else {\r\n if (!!Util.RestAPI.getCurListComponent()) {\r\n curDesc = Util.RestAPI.getCurListComponent().desc;\r\n }\r\n }\r\n if (!!curDesc) {\r\n if (!Util.isContainer(curDesc.type) || !(curDesc.name || curDesc.DOCNAME)) {\r\n curDesc = null;\r\n } else {\r\n if (!curDesc.name || curDesc.name === 'undefined') {\r\n curDesc.name = curDesc.DOCNAME;\r\n }\r\n }\r\n }\r\n }\r\n const name: string = curDesc ? (curDesc.name || curDesc.DOCNAME) : this.localizer.getTranslation('HEADER.HOME');\r\n const locDesc: any = !!curDesc ? {name, id:curDesc.id, type:curDesc.type, lib:curDesc.lib } : null;\r\n const loc: string = !!locDesc ? JSON.stringify(locDesc) : null;\r\n Util.RestAPI.setPreference('edx_start_location', loc);\r\n if (!!this.navsidebar) {\r\n this.navsidebar.startLocChanged(curDesc);\r\n }\r\n Util.Notify.success(this.localizer.getTranslation('HEADER.START'), this.localizer.getTranslation('HEADER.START_SUCCESS', [name]));\r\n break;\r\n case 'search':\r\n let childRouteName = 'folders';\r\n const searchCriteria: any = this.createSearchCriteria();\r\n if (Object.keys(searchCriteria.criteria).length === 1 && !!this.app.desc &&this.app.desc.type === 'searches') {\r\n Util.RestAPI.setCurDesc(null);\r\n }\r\n if (this.app.desc) {\r\n childRouteName = this.app.desc.type === 'workspaces' ? 'workspaces' : 'folders';\r\n }\r\n setTimeout(() => {\r\n Util.RestAPI.navToSearchURL(childRouteName, searchCriteria);\r\n }, Util.kPopupDismissMS); // give time for the dialog go pop on mobile\r\n break;\r\n case 'cordovaRight':\r\n this.rightClicked(null);\r\n break;\r\n case 'cordovaLeft':\r\n this.leftClicked(null);\r\n break;\r\n case 'cordovaHamburger':\r\n this.hamburgerClicked(null);\r\n break;\r\n case 'cordovaNavToUrl':\r\n if (this.cordovaCmdArg) {\r\n Util.RestAPI.navToURL(this.cordovaCmdArg);\r\n }\r\n break;\r\n case 'showSystemNotification':\r\n Util.RestAPI.showSystemNotification();\r\n break;\r\n case 'reloadTiles':\r\n Util.RestAPI.reloadTiles();\r\n break;\r\n default:\r\n handled = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (!handled) {\r\n handled = this.app.doCommand(cmd);\r\n }\r\n return handled;\r\n }\r\n\r\n public checkCommand(cmd: string, setChecked: boolean): boolean {\r\n if (cmd && cmd.startsWith('search_scope_')) {\r\n } else {\r\n switch (cmd) {\r\n case 'FULLTEXT_PROFILE':\r\n case 'FULLTEXT_CONTENT_PROFILE':\r\n case 'FULLTEXT_EASY_SEARCH':\r\n this.searchOption = cmd;\r\n this.setSearchResources(cmd);\r\n Util.RestAPI.setSearchScope(cmd);\r\n break;\r\n default:\r\n const tile: Tile = this.getTileByCmd(cmd);\r\n if (tile && this.tileService) {\r\n if (setChecked) {\r\n this.tileService.showTile(tile);\r\n } else {\r\n this.tileService.hideTile(tile);\r\n }\r\n }\r\n return (tile !== null);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public commandChecked(cmd: string): boolean {\r\n let checked = false;\r\n if (cmd && cmd.startsWith('search_scope_')) {\r\n switch (cmd) {\r\n case 'search_scope_global':\r\n checked = this.searchWhere === SearchWhere.Global;\r\n break;\r\n case 'search_scope_foldersubs':\r\n checked = this.searchWhere === SearchWhere.ContainerPlusSubs;\r\n break;\r\n case 'search_scope_folder':\r\n checked = this.searchWhere === SearchWhere.Container;\r\n break;\r\n }\r\n } else {\r\n const tile: Tile = this.getTileByCmd(cmd);\r\n if (tile) {\r\n checked = (tile.index >= 0);\r\n }\r\n }\r\n return checked;\r\n }\r\n\r\n public commandEnabled(cmd: string): boolean {\r\n let enabled = false;\r\n if (cmd && cmd.startsWith('search_scope_')) {\r\n switch (cmd) {\r\n case 'search_scope_global':\r\n enabled = true;\r\n break;\r\n case 'search_scope_foldersubs':\r\n enabled = this.app.desc.type !== 'flexfolders';\r\n break;\r\n case 'search_scope_folder':\r\n enabled = true;\r\n break;\r\n }\r\n } else {\r\n switch (cmd) {\r\n case 'about':\r\n enabled = true;\r\n break;\r\n case 'help':\r\n enabled = true;\r\n break;\r\n case 'preferences':\r\n enabled = !Util.RestAPI.isGuestUser() && this.navLoc!==Util.RestAPI.getLoginURL();\r\n break;\r\n case 'logoff':\r\n case 'separator':\r\n case 'FULLTEXT_PROFILE':\r\n case 'FULLTEXT_CONTENT_PROFILE':\r\n case 'FULLTEXT_EASY_SEARCH':\r\n case 'starthere':\r\n enabled = this.navLoc!==Util.RestAPI.getLoginURL();\r\n break;\r\n }\r\n }\r\n return enabled;\r\n }\r\n\r\n public menuOpening(menuItemSetter: MenuItemSetter, id: number): void {\r\n if (id===MenuId.MENU_SEARCH_SCOPE) {\r\n const items: MenuItem[] = [];\r\n let item: MenuItem;\r\n item = new MenuItem({\r\n name: this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.THIS_FOLDER'),\r\n checked: true,\r\n cmd: 'search_scope_folder'\r\n });\r\n items.push(item);\r\n item = new MenuItem({\r\n name: this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.THIS_FOLDER_SUBS'),\r\n checked: true,\r\n cmd: 'search_scope_foldersubs'\r\n });\r\n items.push(item);\r\n item = new MenuItem({\r\n name: this.localizer.getTranslation('GLOBAL_SEARCHSCOPE.PROFILE_AND_CONTENT_SHORT'),\r\n checked: true,\r\n cmd: 'search_scope_global'\r\n });\r\n items.push(item);\r\n menuItemSetter.setMenuItems(items);\r\n }\r\n }\r\n\r\n private getTileByCmd(cmd: string): Tile {\r\n let theTile: Tile = null;\r\n const parts = cmd.split('/');\r\n const id: string = parts.length>1? parts[1]:'';\r\n const type: string = parts[0];\r\n if (!!this.tiles) {\r\n for (const tile of this.tiles) {\r\n if (tile.id === id && tile.type === type) {\r\n theTile = tile;\r\n break;\r\n }\r\n }\r\n }\r\n return theTile;\r\n }\r\n\r\n private doCordavaCommand(): void {\r\n if (this.cordovaCmd) {\r\n this.doCommand(this.cordovaCmd);\r\n }\r\n this.cordovaCmd = null;\r\n this.cordovaCmdArg = null;\r\n }\r\n\r\n private setupCordovaHeader(): void {\r\n if (Util.Device.bIsCordova) {\r\n const curHdrCmd: HeaderCommand = this.getCurHdrCommand();\r\n const addBack: boolean = this.hdrCommands.length>1 || this.navLoc!==Util.RestAPI.getHomeURL();\r\n const buttons: any[] = [];\r\n if (addBack) {\r\n if (curHdrCmd.leftText) {\r\n buttons.push({button: this.awHeaderBar.ButtonName.LeftOne, text: curHdrCmd.leftText, function: 'text'});\r\n } else {\r\n buttons.push({button: this.awHeaderBar.ButtonName.LeftTwo, image: this.awHeaderBar.ButtonImage.Hamburger, function: 'custom'});\r\n buttons.push({button: this.awHeaderBar.ButtonName.LeftOne, image: this.awHeaderBar.ButtonImage.Back, function: 'custom'});\r\n }\r\n if (curHdrCmd.rightText) {\r\n buttons.push({button: this.awHeaderBar.ButtonName.RightOne, text: curHdrCmd.rightText, function: 'text'});\r\n } else if (this.getActionMenuID()>=0) {\r\n buttons.push({button: this.awHeaderBar.ButtonName.RightOne, image: this.awHeaderBar.ButtonImage.Dots, function: 'custom'});\r\n } else {\r\n buttons.push({button: this.awHeaderBar.ButtonName.RightOne, text: '', function: 'text'});\r\n }\r\n } else {\r\n buttons.push({button: this.awHeaderBar.ButtonName.LeftTwo, image: this.awHeaderBar.ButtonImage.Hamburger, function: 'default'});\r\n buttons.push({button: this.awHeaderBar.ButtonName.LeftOne, image: this.awHeaderBar.ButtonImage.Hamburger, function: 'default'});\r\n }\r\n this.awHeaderBar.setHeader({title: this.getTitle()/*, backButtonVisible: addBack*/});\r\n this.awHeaderBar.setHeaderButtons(button => {\r\n if (button === this.awHeaderBar.ButtonName.RightOne) {\r\n this.postCordovaCommand('cordovaRight');\r\n } else if (button === this.awHeaderBar.ButtonName.LeftOne) {\r\n this.postCordovaCommand('cordovaLeft');\r\n } else if (button === this.awHeaderBar.ButtonName.LeftTwo) {\r\n this.awMenu.showMenu(true);\r\n }\r\n }, buttons);\r\n }\r\n }\r\n\r\n private setupCordovaMenu(offline: boolean): void {\r\n if (Util.Device.bIsCordova) {\r\n const apps: any[] = Util.RestAPI.getLoginReply() ? Util.RestAPI.getLoginReply().APPLICATIONS : null;\r\n const nApps: number = apps ? apps.length : 0;\r\n const awMenuItems: any[] = [];\r\n const menuDef: MenuDef = this.menuService.getMenu(MenuId.MENU_MOBILE_HAMBURGER);\r\n\r\n for (const item of menuDef.items) {\r\n if (!item.separator) {\r\n let okToAdd: boolean;\r\n switch (item.cmd) {\r\n case 'logoff': okToAdd = false; break;\r\n case 'home': // fall thru intentional\r\n case 'about': okToAdd = true; break;\r\n default: okToAdd = !offline; break;\r\n }\r\n if (okToAdd) {\r\n awMenuItems.push({title: this.localizer.getTranslation(item.name), action: item.cmd});\r\n }\r\n }\r\n }\r\n if (!offline && nApps) {\r\n for (let i=0; i {\r\n this.postCordovaCommand(cmd);\r\n });\r\n }\r\n }\r\n\r\n public postCordovaCommand(cmd: string, args?: any): void {\r\n this.cordovaCmdArg = args;\r\n if (this.cordovaCmdButton) {\r\n setTimeout(() => {\r\n const event: Event = new MouseEvent('click', { view: window, bubbles: true, cancelable: true });\r\n this.cordovaCmd = cmd;\r\n this.cordovaCmdButton.nativeElement.dispatchEvent(event);\r\n },1 );\r\n } else {\r\n this.doCommand(cmd);\r\n }\r\n }\r\n\r\n private doElectronCommand(cmd: string): void {\r\n this.doCommand(cmd);\r\n setTimeout(() => {\r\n this.postCordovaCommand(null);\r\n }, 250);\r\n }\r\n\r\n private createSearchCriteria(): any {\r\n const desc = this.app.desc;\r\n const listComponent: ListBaseComponent = Util.RestAPI.getCurListComponent();\r\n const set: any = !!listComponent ? listComponent.getSet() : null;\r\n const description: string = this.searchText;\r\n const searchCriteria: any = {};\r\n const criteria: any = {};\r\n this.searchOption = this.searchOption || 'FULLTEXT_CONTENT_PROFILE';\r\n if (this.searchOption!=='FULLTEXT_CONTENT_PROFILE' && this.searchOption!=='FULLTEXT_PROFILE' && this.searchOption!=='FULLTEXT_EASY_SEARCH') {\r\n this.searchText = Util.Transforms.parseMultiValueSearchText(this.searchText);\r\n }\r\n if (!!this.searchText) {\r\n if (this.searchOption==='FULLTEXT_EASY_SEARCH' || !Util.isDocIDs(this.searchText)) {\r\n criteria[this.searchOption] = this.searchText;\r\n } else {\r\n criteria['DOCNUM'] = this.searchText;\r\n }\r\n searchCriteria['DESCRIPTION'] = description;\r\n } else {\r\n // Adding criteria even when it's empty so that Searched criteria is maintained for doing empty saved search.\r\n criteria[this.searchOption] = '';\r\n }\r\n const searchForms: any[] = Util.RestAPI.getSearchForms();\r\n if (searchForms && searchForms.length) {\r\n searchCriteria['FORM_NAME'] = searchForms[0]['%FORM_NAME'];\r\n }\r\n if (this.searchWhere!==SearchWhere.Global && !!desc) {\r\n if (Util.isFolderWithId(desc)) {\r\n criteria['%FOLDER_ID'] = desc.lib + ',' + desc.id;\r\n searchCriteria['$edx_extra_query'] = Util.kSearchFolderQuery;\r\n } else if (Util.isFlexfolderLevelNode(desc)) {\r\n if (!!set && !!set.flexinfo && !!set.flexinfo.levels && set.flexinfo.levels.length) {\r\n for (const level of set.flexinfo.levels) {\r\n criteria[level['LEVEL_NAME']] = level.id;\r\n searchCriteria['$edx_extra_query'] = Util.kSearchFolderQuery;\r\n }\r\n }\r\n } else {\r\n const childUrl: string = Util.RestAPI.decodeChildRouteURL(this.navLoc);\r\n if (childUrl.indexOf(Util.kSearchFolderQuery)>0) {\r\n const childDesc: any = Util.RestAPI.getDescFromURL(childUrl);\r\n const curSearch: any = this.dataService.getSearchData(childDesc);\r\n if (!!curSearch && !!curSearch.criteria) {\r\n if (!!curSearch.criteria['%FOLDER_ID']) {\r\n criteria['%FOLDER_ID'] = curSearch.criteria['%FOLDER_ID'];\r\n } else {\r\n // flexfolder in this flexfolder\r\n const keys: string[] = Object.keys(curSearch.criteria).filter(k=> Util.RestAPI.kFullTextTypes.indexOf(k)===-1);\r\n for (const key of keys) {\r\n criteria[key] = curSearch.criteria[key];\r\n }\r\n }\r\n searchCriteria['$edx_extra_query'] = Util.kSearchFolderQuery;\r\n }\r\n }\r\n }\r\n if (!!criteria['%FOLDER_ID'] && this.searchWhere === SearchWhere.Container) {\r\n criteria['%SEARCH_LEVEL'] = 'CURRENT';\r\n }\r\n }\r\n searchCriteria['criteria'] = criteria;\r\n return searchCriteria;\r\n }\r\n\r\n public searchbarAnimationComplete(): void {\r\n if (this.searchbarHiding) {\r\n this.showSearchBar = false;\r\n } else if (this.searchbarShowing) {\r\n this.showSearchBar = true;\r\n if (!(Util.Device.bIsOfficeAddin && this.navLoc === Util.RestAPI.getHomeURL())) {\r\n this.setSearchTextBarFocus();\r\n }\r\n }\r\n this.searchbarShowing = false;\r\n this.searchbarHiding = false;\r\n }\r\n\r\n public getDefaultTiles(): Tile[] {\r\n return this.tileService.getDefaultTiles();\r\n }\r\n\r\n public getTiles(): Tile[] {\r\n return this.tiles;\r\n }\r\n\r\n public setTiles(tiles: Tile[]): void {\r\n this.tiles = TileService.ReorderTiles(tiles);\r\n this.tiles = this.tileService.tilesChanged();\r\n }\r\n\r\n public resetTiles(): void {\r\n this.tileService.reset();\r\n this.tiles = [];\r\n this.tileService.getTiles();\r\n }\r\n\r\n public tilesChanged(): void {\r\n if (this.navsidebar) {\r\n this.navsidebar.reset();\r\n }\r\n }\r\n\r\n public isPermaTile(tile: Tile): boolean {\r\n return this.tileService.isPermaTile(tile);\r\n }\r\n\r\n public changePrimaryLibrary(lib?: string): void {\r\n if (this.navsidebar) {\r\n this.navsidebar.changePrimaryLibrary(lib);\r\n }\r\n }\r\n\r\n private setSearchTextBarFocus(): void {\r\n if (Util.Device.bIsOfficeAddin || !Util.Device.isMobile()) {\r\n const searchTextBar = this.getSearchBar();\r\n if (searchTextBar) {\r\n searchTextBar.focus();\r\n }\r\n }\r\n }\r\n\r\n public curUrlChanged(url: string): void {\r\n if (this.getBreadcrumbs()) {\r\n this.getBreadcrumbs().curUrlChanged(url);\r\n }\r\n }\r\n\r\n public curWindowChangedTitle(title: string, oldTitle: string): void {\r\n if (this.getBreadcrumbs()) {\r\n this.getBreadcrumbs().curWindowChangedTitle(title, oldTitle);\r\n }\r\n }\r\n\r\n public setTitle(title: string): void {\r\n this.getCurHdrCommand().title = title;\r\n if (Util.Device.bIsCordova) {\r\n this.setupCordovaHeader();\r\n }\r\n }\r\n\r\n public setLeftText(leftText: string): void {\r\n const baseCmd: HeaderCommand = this.hdrCommands && this.hdrCommands.length ? this.hdrCommands[0] : null;\r\n if (baseCmd) {\r\n baseCmd.leftText = !!leftText ? this.localizer.getTranslation(leftText) : null;\r\n if (Util.Device.bIsCordova) {\r\n this.setupCordovaHeader();\r\n }\r\n }\r\n }\r\n\r\n public setRightText(rightText: string, cmd: string): void {\r\n const baseCmd: HeaderCommand = this.hdrCommands && this.hdrCommands.length ? this.hdrCommands[0] : null;\r\n if (baseCmd) {\r\n baseCmd.rightText = !!rightText ? this.localizer.getTranslation(rightText) : null;\r\n baseCmd.cmd = cmd;\r\n if (Util.Device.bIsCordova) {\r\n this.setupCordovaHeader();\r\n }\r\n }\r\n }\r\n\r\n public setRightIcon(rightIcon: string, cmd: string): void {\r\n const baseCmd: HeaderCommand = this.hdrCommands && this.hdrCommands.length ? this.hdrCommands[0] : null;\r\n if (baseCmd) {\r\n baseCmd.rightText = null;\r\n baseCmd.actionMenuIcon = rightIcon;\r\n baseCmd.forceActionIcon = true;\r\n baseCmd.cmd = cmd;\r\n }\r\n }\r\n\r\n public setActionMenu(commandHandler: CommandHandler, id: number, title: string, icon: string): void {\r\n const baseCmd: HeaderCommand = this.hdrCommands && this.hdrCommands.length ? this.hdrCommands[0] : null;\r\n if (baseCmd) {\r\n if (this.enableRightActionIcon()) {\r\n baseCmd.actionMenuID = id;\r\n } else {\r\n baseCmd.actionMenuID = MenuId.MENU_MOBILE_EMPTY;\r\n }\r\n baseCmd.actionMenuTitle = title;\r\n baseCmd.actionMenuIcon = icon;\r\n baseCmd.handler = commandHandler ? commandHandler : this;\r\n }\r\n this.setupCordovaHeader();\r\n }\r\n\r\n public pushCommandHandler(commandHandler: CommandHandler, command: string, leftText: string, title: string, rightText: string, actionMenuID: number, actionMenuTitle: string, actionMenuIcon: string): void {\r\n title = title || (this.hdrCommands.length>0 ? this.hdrCommands[this.hdrCommands.length-1].title : this.appTitle());\r\n this.hdrCommands.push(new HeaderCommand(commandHandler,command,leftText,title,rightText,actionMenuID,actionMenuTitle,actionMenuIcon));\r\n if (this.hdrCommands.length>1) {\r\n window.location.hash = window.location.hash+'#ch_'+this.hdrCommands.length;\r\n this.setupCordovaHeader();\r\n }\r\n }\r\n\r\n public popCommandHandler(): void {\r\n if (this.hdrCommands.length>1) {\r\n const curCommand: HeaderCommand = this.hdrCommands.pop();\r\n if (curCommand && curCommand.handler) {\r\n curCommand.handler.doCommand('back');\r\n }\r\n }\r\n }\r\n\r\n public nullTopCommandHandler(): void {\r\n if (this.hdrCommands.length>1) {\r\n this.hdrCommands[this.hdrCommands.length-1].handler = null;\r\n }\r\n }\r\n\r\n public maskHeader(mask: boolean): void {\r\n this.maskHeaderCount += mask ? 1 : -1;\r\n if (this.awHeaderBar) {\r\n // work around stupid race condition in Cordova/Appworks where we set the header to be off - on - off and it remains on\r\n ++this.settingAWHeaderMask;\r\n setTimeout(() => {\r\n if (--this.settingAWHeaderMask===0) {\r\n this.awHeaderBar.maskHeader(this.maskHeaderCount!==0);\r\n }\r\n }, 300);\r\n }\r\n }\r\n\r\n public isHeaderMasked(): boolean {\r\n return this.maskHeaderCount !== 0;\r\n }\r\n\r\n public disableNav(disable: boolean): void {\r\n this.navDisabledCount += disable ? 1 : -1;\r\n if (!!this.appBreadcrumbs && !Util.Device.isMobile()) {\r\n if (this.navDisabledCount) {\r\n this.appBreadcrumbs.hide();\r\n } else {\r\n this.appBreadcrumbs.show();\r\n }\r\n }\r\n }\r\n\r\n public isNavDisabled(): boolean {\r\n return this.navDisabledCount !== 0;\r\n }\r\n\r\n public reconnected(): void {\r\n this.setupCordovaMenu(false);\r\n this.tileService.getTiles().then((tiles) => {\r\n this.tiles = tiles;\r\n });\r\n if (this.navsidebar) {\r\n this.navsidebar.reconnected();\r\n }\r\n }\r\n\r\n public offlineStateChange(offline: boolean): void {\r\n this.setupCordovaMenu(offline);\r\n }\r\n}\r\n\r\nexport interface HeaderTarget {\r\n setListData?(data: any): void;\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
=2?4:-1\" (click)=\"searchWhereButtonClicked($event)\" (keyup.enter)=\"searchWhereButtonClicked($event)\" (keydown.space)=\"searchWhereButtonClicked($event)\" (keydown.shift.tab)=\"closeMenuOnFocusOut(searchWhereMenu)\">
\r\n
\r\n
\r\n
    \r\n \r\n
  • \r\n
    {{suggestion}}
    \r\n
  • \r\n
    \r\n
    \r\n \r\n
    \r\n
\r\n \r\n
\r\n
\r\n
\r\n
=2) && maskHeaderCount\" class=\"header-mask\" [ngClass]=\"{cordova:ui>3}\">
\r\n\r\n
1,phone:ui==2||ui==4,cordova:ui>3,oai:isOfficeAddin,oaidbutton:hasOfficeInfoButton}\">\r\n \r\n
\r\n
\r\n
{{getLeftText()}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{getTitle()}}
\r\n
\r\n
\r\n
=2\" class=\"toucharea right\" [ngClass]=\"{disabled:!rightEnabled()}\" [tabindex]=\"rightEnabled()?1:-1\" (keyup.enter)=\"rightClicked($event)\" (keyup.space)=\"rightClicked($event)\" (click)=\"rightClicked($event)\" (keydown.shift.tab)=\"closeMenuOnFocusOut(actionMenu)\" id=\"edx_hdr_btn_right\">\r\n
\r\n
{{getRightText()}}
\r\n
\r\n
\r\n =2 && getActionMenuID()>=0\" #actionMenu [menuID]=\"getActionMenuID()\" [tabIndex]=\"rightEnabled()?1:-1\" [callback]=\"getCurHdrCommandHandler()\" [menuTitle]=\"getActionMenuTitle()\" [menuIcon]=\"getActionMenuIcon()\">\r\n
\r\n =2 && showMobileSearchHeader()\">\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n =4\">\r\n =0\" #actionMenu [tabIndex]=\"rightEnabled()?1:-1\" [menuID]=\"getActionMenuID()\" [callback]=\"getCurHdrCommandHandler()\" [menuTitle]=\"getActionMenuTitle()\" [menuIcon]=\"getActionMenuIcon()\">\r\n \r\n
\r\n","import { Component, ViewChild, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { Util } from './utils/utils.module';\r\nimport { AppComponent } from './app.component';\r\nimport { FormWrapperComponent, FieldChangeListener } from './forms/form-wrapper.component';\r\nimport { SearchOfficeComponent } from './widgets/search-office.component';\r\nimport { FormField } from './models/form-field';\r\n\r\nconst kOfficeHeaderCollapsedKey = 'edx_office_header_collapsed';\r\n\r\n@Component({\r\n selector:'edx-home',\r\n styleUrls: [ 'app-home.component.scss' ],\r\n template: `\r\n
\r\n \r\n
\r\n
\r\n {{collapserTooltip}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{extras}}\r\n {{extrasAlt}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n `\r\n})\r\nexport class AppHomeComponent implements OnInit, OnDestroy, FieldChangeListener {\r\n public showOfficePanel: boolean = Util.Device.bIsOfficeAddin;\r\n public isOfficeAddin: boolean = Util.Device.bIsOfficeAddin;\r\n private routerSubscription: Subscription;\r\n private app: AppComponent = Util.RestAPI.getAppComponent();\r\n private hasOfficeDataFiles = false;\r\n private officeDataFilesChanging = false;\r\n private collapserTooltip: string;\r\n private extrasShown = false;\r\n private showBody = true;\r\n private extras: string;\r\n private extrasAlt: string;\r\n private autoProfile: string;\r\n private docName: string = null;\r\n private headerCollapsed = false;\r\n private autoFill = false;\r\n @Input() tabIndex?: number = 0;\r\n @ViewChild(SearchOfficeComponent) searchOffice: SearchOfficeComponent;\r\n @ViewChild('searchFooterWrapper') searchFooterWrapper: FormWrapperComponent;\r\n\r\n constructor(private router: Router, private localizer: LocalizeService) {\r\n this.extras = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_ALL');\r\n this.extrasAlt = this.localizer.getTranslation('FORMS.BUTTONS.SHOW_REQUIRED_ONLY');\r\n this.autoProfile = this.localizer.getTranslation('FORMS.BUTTONS.AUTO_FILL');\r\n this.headerCollapsed = localStorage.getItem(kOfficeHeaderCollapsedKey) === 'true';\r\n this.collapserTooltip = this.localizer.getTranslation('FORMS.BUTTONS.' + (this.headerCollapsed ? 'MORE' : 'LESS'));\r\n if (this.isOfficeAddin) {\r\n this.routerSubscription = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n const url = this.router.url;\r\n const homeUrl = Util.RestAPI.getHomeURL();\r\n this.showOfficePanel = url === homeUrl || url.startsWith(homeUrl + '#ch_');\r\n if (this.showOfficePanel) {\r\n const checkLoggedIn = () => {\r\n const connected = !!Util.RestAPI.getLoginReply() && Object.keys(Util.RestAPI.getLoginReply()).length > 0;\r\n if (connected) {\r\n this.autoFill = Util.RestAPI.canAutoProfile();\r\n } else {\r\n setTimeout(checkLoggedIn, 100);\r\n }\r\n };\r\n checkLoggedIn();\r\n } else {\r\n this.autoFill = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isOfficeAddin) {\r\n this.app.starting = false;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!!this.routerSubscription) {\r\n this.routerSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private gotOfficeDataFiles(set: boolean): void {\r\n this.hasOfficeDataFiles = set;\r\n }\r\n\r\n private descDataFilesChanging(changing: boolean): void {\r\n if (changing) {\r\n this.officeDataFilesChanging = true;\r\n setTimeout(() => {\r\n this.officeDataFilesChanging = false;\r\n }, 500);\r\n }\r\n }\r\n\r\n private toggleExtras(): void {\r\n this.extrasShown = !this.extrasShown;\r\n this.showBody = false;\r\n setTimeout(() => {\r\n this.showBody = true;\r\n setTimeout(() => {\r\n this.searchFooterWrapper.extrasToggled(this.extrasShown);\r\n }, 1);\r\n }, 100);\r\n }\r\n\r\n private thirdButtonClick(): void {\r\n this.searchFooterWrapper.popupThirdBtn();\r\n }\r\n\r\n private toggleHeader(): void {\r\n this.headerCollapsed = !this.headerCollapsed;\r\n localStorage.setItem(kOfficeHeaderCollapsedKey, '' + this.headerCollapsed);\r\n this.collapserTooltip = this.localizer.getTranslation('FORMS.BUTTONS.' + (this.headerCollapsed ? 'MORE' : 'LESS'));\r\n }\r\n\r\n public extrasShownByChild(show: boolean): void {\r\n this.extrasShown = show;\r\n }\r\n\r\n public fieldChanged(field: FormField, control: AbstractControl, formWrapper: FormWrapperComponent): void {\r\n if (field.name==='DOCNAME') {\r\n this.docName = control.value;\r\n }\r\n }\r\n\r\n public formChanged(formName: string): void {\r\n if (!this.headerCollapsed) {\r\n this.headerCollapsed = true;\r\n setTimeout(() => {\r\n this.headerCollapsed = false;\r\n }, 300);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { NavItem } from './models/nav-item';\r\nimport { MenuItem, MenuItemDesc } from './models/menu-item';\r\nimport { MenuService, MenuId, MenuDef } from './services/menu.service';\r\nimport { NavService } from './services/nav.service';\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { Util, UserInterface } from './utils/utils.module';\r\n\r\n@Component({\r\n selector: 'edx-app-nav-sidebar',\r\n styleUrls: ['app-nav-sidebar.component.scss'],\r\n template: `\r\n
\r\n
\r\n
=2, oai:isOfficeAddin, edgeie:isEdgeIE, expanded:expanded, showing:isShowing, hiding:isHiding}\" (animationend)=\"sidebarAnimationComplete()\">\r\n
=2\" class=\"welcome\">\r\n
{{welcome}}
\r\n
\r\n
    \r\n \r\n
  • \r\n
    \r\n \"{{getNavIconText(startItem)}}\"\r\n
    {{startItem.name}}
    \r\n
    \r\n
    \r\n
  • \r\n
    \r\n \r\n
  • \r\n
    \r\n \"\"\r\n
    {{item.name | localize}}
    \r\n
    \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n \r\n
  • \r\n
    \r\n \"\"\r\n
    {{item.name}}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    {{item.name}}
    \r\n
    {{getLibKind(item)}}
    \r\n
    \r\n
  • \r\n
    \r\n \r\n
  • \r\n
  • \r\n
    \r\n \"\"\r\n
    {{item.name | localize}}
    \r\n
    \r\n
    \r\n
  • \r\n
    \r\n
\r\n
\r\n `\r\n})\r\nexport class AppNavSidebarComponent implements OnInit, OnDestroy {\r\n static isActive = false;\r\n public ui: UserInterface;\r\n public isOfficeAddin: boolean;\r\n public isEdgeIE: boolean;\r\n public expanded = false;\r\n public isShowing = false;\r\n public isHiding = false;\r\n public menuItems: MenuItemDesc[] = [];\r\n public navItems: NavItem[] = [];\r\n public menuItemsPostNav: MenuItemDesc[] = [];\r\n private navLoc = '';\r\n private routerSubscription: Subscription;\r\n private remote: string;\r\n private primary: string;\r\n private welcome: string;\r\n private startDesc: any = null;\r\n private lastNavItemIndex = 0;\r\n private stopClosing: boolean;\r\n public startItem: NavItem = null;\r\n\r\n constructor(private menuService: MenuService, private navService: NavService, private localizer: LocalizeService, private router: Router) {\r\n this.ui = Util.Device.ui;\r\n this.isOfficeAddin = Util.Device.bIsOfficeAddin;\r\n this.isEdgeIE = Util.Device.bIsEdge || Util.Device.bIsIE;\r\n this.remote = localizer.getTranslation('NAVBAR.REMOTE');\r\n this.primary = localizer.getTranslation('FORMS.LOCAL.PREFERENCES.PRIMARY');\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.routerSubscription) {\r\n this.routerSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n const menuID: number = this.ui>=2 ? (Util.Device.bIsOfficeAddin ? MenuId.MENU_OAI_HAMBURGER : MenuId.MENU_MOBILE_HAMBURGER) : -1;\r\n const menuDef: MenuDef = menuID<0 ? null : this.menuService.getMenu(menuID);\r\n this.menuItems = !!menuDef ? menuDef.items : [];\r\n if (menuID===MenuId.MENU_MOBILE_HAMBURGER) {\r\n if (!Util.Device.bIsCordova/* && (Util.Device.bIsOfficeAddin || !Util.Device.isMobile())*/) { // comment back in for sim testing\r\n this.menuItems = this.menuItems.filter(item => item.cmd!=='downloads' && item.cmd!=='imports');\r\n }\r\n }\r\n this.routerSubscription = this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.navLoc = this.router.url;\r\n if (this.navLoc===Util.RestAPI.getHomeURL()) {\r\n const waitLogin = () => {\r\n if (Util.RestAPI.isLoggedIn()) {\r\n if (!this.navItems.length) {\r\n this.navService.getItems().then(this.setItems.bind(this));\r\n }\r\n } else {\r\n setTimeout(waitLogin, 100);\r\n }\r\n };\r\n waitLogin();\r\n } else if (this.navLoc===Util.RestAPI.getLoginURL()) {\r\n this.welcome = null;\r\n this.navItems = [];\r\n this.navService.reset();\r\n if (this.expanded) {\r\n this.toggle();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private setItems(items: NavItem[]): void {\r\n const firstExtApp = !!items ? items.find(navItem => Util.isExternalLib(navItem.lib)) : null;\r\n const prefsMenuItemDesc = !!this.menuItems ? this.menuItems.find(item => item.cmd==='preferences') : null;\r\n if (!!firstExtApp && !!prefsMenuItemDesc && Util.Device.isMobile() && !Util.Device.bIsOfficeAddin) {\r\n const prefsIndex: number = this.menuItems.indexOf(prefsMenuItemDesc);\r\n const postItems = this.menuItems.slice(prefsIndex);\r\n this.menuItemsPostNav = [].concat(postItems);\r\n this.menuItems.splice(prefsIndex,this.menuItems.length - prefsIndex);\r\n this.navItems = items.filter(navItem => Util.isExternalLib(navItem.lib));\r\n } else if (this.ui<2 || Util.Device.bIsOfficeAddin) {\r\n this.navItems = items;\r\n }\r\n for (let i = items.length - 1; i >= 0; i--) {\r\n if (['separator', 'header'].indexOf(items[i].type) === -1) {\r\n this.lastNavItemIndex = i;\r\n break;\r\n }\r\n }\r\n if (Util.Device.bIsOfficeAddin) {\r\n const startUpLocStr: string = Util.RestAPI.getPreference('edx_start_location');\r\n if (startUpLocStr && startUpLocStr.length) {\r\n let startUpDesc: any;\r\n try {\r\n startUpDesc = JSON.parse(startUpLocStr);\r\n } catch (e) {\r\n startUpDesc = null;\r\n }\r\n this.startLocChanged(startUpDesc);\r\n }\r\n }\r\n }\r\n\r\n private getNavIconSrc(item: NavItem): string {\r\n return Util.Transforms.titleIconUrlFromDesc(item);\r\n }\r\n\r\n private getNavIconText(item: NavItem): string {\r\n return Util.Transforms.titleIconTextFromDesc(item);\r\n }\r\n\r\n private getMenuIconSrc(item: MenuItem): string {\r\n return 'assets/images/' + item.icon;\r\n }\r\n\r\n private getMenuIconText(item: MenuItem): string {\r\n return Util.Transforms.iconAltTextFromDesc(item);\r\n }\r\n\r\n private getLibKind(item: NavItem): string {\r\n return item.name===Util.RestAPI.getPrimaryLibrary() ? this.primary : Util.isExternalLib(item.lib) ? '' : this.remote;\r\n }\r\n\r\n private getLibKindTitle(item: NavItem): string {\r\n return item.name===Util.RestAPI.getPrimaryLibrary() ? this.localizer.getTranslation('NAVBAR.PRIMARY') : Util.isExternalLib(item.lib) ? '' : this.localizer.getTranslation('NAVBAR.REMOTE_LIB');\r\n }\r\n\r\n private checkIt(item: NavItem): boolean {\r\n return (item.id==='0' && item.type==='libraries');\r\n }\r\n\r\n private navItemClicked(item: NavItem): void {\r\n if (this.expanded) {\r\n this.toggle();\r\n }\r\n if (item.type==='libraries') {\r\n if (item.id!=='0') {\r\n this.navItems = [];\r\n this.navService.changingPrimaryLibraries();\r\n Util.RestAPI.setPrimaryLibrary(item.lib);\r\n }\r\n } else {\r\n this.navService.openItem(item);\r\n }\r\n }\r\n\r\n private menuItemClicked(item: MenuItemDesc): void {\r\n if (this.expanded) {\r\n this.toggle();\r\n }\r\n Util.RestAPI.getAppComponent().doCommand(item.cmd);\r\n }\r\n\r\n private closeMenuOnFocusOut(itemIndex: number): void {\r\n if (itemIndex === this.lastNavItemIndex && !this.stopClosing) {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n private onKeyDown(event: KeyboardEvent, item: NavItem, currentIndex: number = -1, isMenuItem: boolean = false) {\r\n if (!!event.key) {\r\n let forward: boolean;\r\n this.stopClosing = false;\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n forward = true;\r\n break;\r\n case 'ArrowUp':\r\n forward = false;\r\n this.stopClosing = true;\r\n break;\r\n case 'Tab':\r\n if (event.shiftKey) {\r\n this.stopClosing = true;\r\n }\r\n break;\r\n case ' ':\r\n case 'Enter':\r\n if (event.key === ' ') {\r\n event.preventDefault();\r\n }\r\n if (isMenuItem) {\r\n this.menuItemClicked(this.menuItems[currentIndex]);\r\n } else {\r\n this.navItemClicked(item);\r\n }\r\n break;\r\n case 'Escape':\r\n this.toggle();\r\n break;\r\n }\r\n if (['ArrowUp', 'ArrowDown'].indexOf(event.key) !== -1 && !!event.target) {\r\n const currentEl = event.target as HTMLElement;\r\n if (!!currentEl) {\r\n const nextEl = this.getNextSibling(currentEl.parentNode, forward);\r\n if (!!nextEl) {\r\n nextEl.focus();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getNextSibling(currentLi: Node, forward: boolean): HTMLElement {\r\n if (!!currentLi) {\r\n const nextLi: ChildNode = forward ? currentLi.nextSibling : currentLi.previousSibling;\r\n if (!!nextLi) {\r\n const nextEl = nextLi.firstChild as HTMLElement;\r\n return (!!nextEl && !!nextEl.className && nextEl.className.indexOf('item') !== -1) ? nextEl : this.getNextSibling(nextLi, forward);\r\n }\r\n }\r\n }\r\n\r\n private focusOnNavItem(index: number, isMenuItem: boolean): void {\r\n if (index >= 0 && (index <= this.lastNavItemIndex || isMenuItem)) {\r\n const id = isMenuItem ? this.getMenuItemDisplayId(this.menuItems[index], index) : this.getNavItemDisplayId(this.navItems[index], index);\r\n const navElement: HTMLElement = document.getElementById(id);\r\n if (!!navElement) {\r\n navElement.focus();\r\n }\r\n }\r\n }\r\n\r\n private getNavItemDisplayId(item: NavItem, index?: number): string {\r\n const itemId: string = !!item ? (item['type'] + (item['lib'] ? '_' + item['lib'] : '') + (item['id'] ? '_' + item['id'] : '')) : '' + index;\r\n return 'edx_navitem_' + itemId;\r\n }\r\n\r\n private getMenuItemDisplayId(item: MenuItemDesc, index?: number): string {\r\n return 'edx_navmenu_' + (!!item ? item.cmd : index);\r\n }\r\n\r\n private dismiss(event: Event): void {\r\n if (this.expanded) {\r\n this.isShowing = false;\r\n AppNavSidebarComponent.isActive = this.isShowing;\r\n this.isHiding = true;\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n public closeMenu(): void {\r\n if (this.expanded) {\r\n this.toggle();\r\n } else if (this.isShowing) {\r\n setTimeout(() => {\r\n this.toggle();\r\n }, 300);\r\n }\r\n }\r\n\r\n public toggle(event?: Event): void {\r\n this.stopClosing = false;\r\n if (this.expanded) {\r\n this.isShowing = false;\r\n this.isHiding = true;\r\n } else {\r\n if (!this.welcome) {\r\n this.welcome = this.localizer.getTranslation('NAVBAR.WELCOME',[Util.RestAPI.getUserFullName()]);\r\n }\r\n this.isShowing = true;\r\n this.isHiding = false;\r\n this.focusOnNavItem(0, false);\r\n }\r\n AppNavSidebarComponent.isActive = this.isShowing;\r\n }\r\n\r\n public sidebarAnimationComplete(): void {\r\n if (this.isHiding) {\r\n this.expanded = false;\r\n } else if (this.isShowing) {\r\n this.expanded = true;\r\n }\r\n this.isShowing = false;\r\n this.isHiding = false;\r\n }\r\n\r\n public changePrimaryLibrary(lib?: string): void {\r\n this.navItems = [];\r\n if (lib) {\r\n this.navService.changingPrimaryLibraries();\r\n Util.RestAPI.setPrimaryLibrary(lib);\r\n } else {\r\n Util.RestAPI.delete('/settings/tiles').toPromise().then(response => {\r\n this.navService.changingPrimaryLibraries();\r\n Util.RestAPI.reloadTiles();\r\n this.reset();\r\n }).catch(error => {\r\n Util.Notify.warning(this.localizer.getTranslation('RAPI_ERRORS.0'),error);\r\n });\r\n }\r\n }\r\n\r\n public reconnected(): void {\r\n this.navItems = [];\r\n this.navService.getItems().then(this.setItems.bind(this));\r\n }\r\n\r\n public reset(): void {\r\n this.navService.reset();\r\n this.reconnected();\r\n }\r\n\r\n public startLocChanged(desc: any): void {\r\n if (this.startDesc) {\r\n this.startItem = null;\r\n this.startDesc = null;\r\n }\r\n if (!!desc) {\r\n this.startDesc = desc;\r\n this.startItem = new NavItem({\r\n id: desc.id,\r\n type: desc.type,\r\n lib: desc.lib,\r\n name: desc.DOCNAME || desc.name,\r\n imgPath: desc.imgPath\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { Util, UserInterface } from './utils/utils.module';\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { FormWrapperComponent } from './forms/form-wrapper.component';\r\nimport { DialogKind } from './models/form-field';\r\n\r\nenum ToggleState { none=0,startclose=1,finishclose=2,startopen=3,justclose=4 }\r\n\r\n@Component({\r\n selector: 'edx-app-notify-dialog',\r\n styleUrls: ['app-notify-dialog-component.scss'],\r\n template: `\r\n
\r\n
\r\n
1,shown:shown,showing:isShowing,hiding:isHiding,success:kind===1,info:kind===2,warning:kind===3,progress:kind===4,error:kind===5,confirm:kind===6}\" (animationend)=\"notifyAnimationComplete()\"\r\n role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"kindText\" aria-describedby=\"edx_notify_body\">\r\n
\r\n
\r\n \r\n
\r\n
{{title}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{getLinkTitleFromLine(line)}}\r\n
\r\n {{line}}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class AppNotifyDialogComponent implements OnInit, OnDestroy {\r\n @ViewChild('subFormWrapper') private subFormWrapper: FormWrapperComponent;\r\n @ViewChild('toggleStateBtn') private toggleStateBtn: ElementRef;\r\n @ViewChild('dialogHeader') private dialogHeader: ElementRef;\r\n public shown = false;\r\n public isShowing = false;\r\n public isHiding = false;\r\n public blocking = false;\r\n public hidden: boolean; // this is temporary\r\n public title = '';\r\n public lines: string[] = null;\r\n public subFormData: any = {};\r\n public kind: DialogKind = DialogKind.none;\r\n public kindText: string;\r\n public ui: UserInterface;\r\n public officeAddin: boolean;\r\n public subFormName: string = null;\r\n private togglingCloseOpen: ToggleState = ToggleState.none;\r\n private ok = '';\r\n private cancel = '';\r\n private close = '';\r\n private oKBtn = false;\r\n private cancelBtn = false;\r\n private userConfirmed: boolean = undefined;\r\n private isDynamicComponent = false;\r\n public dialogLabel: string;\r\n\r\n constructor(private localizer: LocalizeService) {\r\n this.ui = Util.Device.ui;\r\n this.officeAddin = Util.Device.bIsOfficeAddin;\r\n this.dialogLabel = this.localizer.getTranslation('ALT_TEXT.DIALOG');\r\n }\r\n\r\n @HostListener('document:keyup', ['$event'])\r\n keyUp(event: KeyboardEvent) {\r\n if (this.shown) {\r\n if (event.key === 'Enter') {\r\n const currentEl = event.target as HTMLElement;\r\n if (!!currentEl && ['edx_notify_btn_cancel', 'edx_notify_btn_close'].indexOf(currentEl.id) === -1) {\r\n this.confirmOK();\r\n }\r\n } else if (event.key === 'Escape') {\r\n this.confirmCancel();\r\n } else if (event.key === 'ArrowUp') {\r\n if (this.ui >= 2 && !this.officeAddin) {\r\n if (++this.kind > 6) {\r\n this.kind = 1;\r\n this.updateKindText();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n Util.Notify.setAppNotifyDialog(this);\r\n this.ok = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.cancel = this.localizer.getTranslation('FORMS.BUTTONS.CANCEL');\r\n this.close = this.localizer.getTranslation('FORMS.BUTTONS.CLOSE');\r\n }\r\n\r\n ngOnDestroy() {\r\n Util.Notify.setAppNotifyDialog(null);\r\n }\r\n\r\n public loopFocus(event: KeyboardEvent): void {\r\n if (!!event) {\r\n event.preventDefault();\r\n setTimeout(() => {\r\n const element = (event.shiftKey && this.showConfirm() ? document.getElementById('edx_notify_btn_cancel') : (this.dialogHeader.nativeElement === document.activeElement) ? document.getElementById('edx_notify_body') : this.dialogHeader.nativeElement) as HTMLElement;\r\n if (!!element) {\r\n element.focus();\r\n }\r\n }, 1);\r\n }\r\n }\r\n\r\n public showConfirm(): boolean {\r\n return this.oKBtn || this.cancelBtn;\r\n }\r\n\r\n public doToggleState(event: Event): void {\r\n if (this.togglingCloseOpen===ToggleState.startclose || this.togglingCloseOpen===ToggleState.justclose) {\r\n if (this.togglingCloseOpen===ToggleState.justclose) {\r\n this.togglingCloseOpen = ToggleState.none;\r\n }\r\n this.doClose();\r\n } else if (this.togglingCloseOpen===ToggleState.finishclose) {\r\n this.togglingCloseOpen = ToggleState.startopen;\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n private lineIsLink(line: string): boolean {\r\n return !!line && line.startsWith('$edx_link:');\r\n }\r\n\r\n private getLinkFromLine(line: string): string {\r\n if (this.lineIsLink(line)) {\r\n let link: string = line.substr(10);\r\n const linkAndTitle: string = link;\r\n const endOfLink: number = linkAndTitle.indexOf('$edx_link_title:');\r\n if (endOfLink >=0 ) {\r\n link = link.substr(0, endOfLink);\r\n }\r\n return link;\r\n }\r\n return null;\r\n }\r\n\r\n private getLinkTitleFromLine(line: string): string {\r\n if (this.lineIsLink(line)) {\r\n const link: string = line.substr(10);\r\n const endOfLink: number = link.indexOf('$edx_link_title:');\r\n if (endOfLink >=0 ) {\r\n return link.substr(endOfLink+16);\r\n }\r\n return link;\r\n }\r\n return null;\r\n }\r\n\r\n private openLink(url: string, name: string, event: Event): void {\r\n Util.Help.openURL(url, name, event);\r\n setTimeout(() => {\r\n this.doClose();\r\n }, 1);\r\n }\r\n\r\n public doShow(kind: DialogKind, blocking: boolean, cancelBtn: boolean, oKBtn: boolean, title: string, body: any, okText: string, subFormData: any): Promise {\r\n this.kind = kind;\r\n this.title = title;\r\n this.blocking = blocking;\r\n this.cancel = kind===DialogKind.progress ? this.localizer.getTranslation('FORMS.BUTTONS.CLOSE') : this.localizer.getTranslation('FORMS.BUTTONS.CANCEL');\r\n this.cancelBtn = cancelBtn;\r\n this.oKBtn = oKBtn;\r\n this.subFormData = subFormData;\r\n this.subFormName = null;\r\n this.lines = null;\r\n this.updateKindText();\r\n if (body && typeof body==='string') {\r\n if (body.startsWith(Util.kLocalFormPrefix)) {\r\n this.subFormName = body;\r\n } else {\r\n this.lines = [];\r\n const lines: string[] = body.split('\\n');\r\n for (const line of lines) {\r\n this.lines.push(line);\r\n }\r\n }\r\n }\r\n if (this.showConfirm()) {\r\n this.userConfirmed = undefined;\r\n this.ok = okText ? okText : this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n } else {\r\n this.userConfirmed = true;\r\n }\r\n return new Promise((resolve, reject) => {\r\n const waitFunc = () => {\r\n this.togglingCloseOpen = ToggleState.none;\r\n if (this.userConfirmed!==undefined) {\r\n if (this.kind===DialogKind.success) {\r\n setTimeout(() => {\r\n this.togglingCloseOpen = ToggleState.justclose;\r\n this.toggleStateBtn.nativeElement.click();\r\n }, 2500);\r\n }\r\n resolve({confirm:this.userConfirmed, data:this.subFormWrapper ? this.subFormWrapper.getValue() : {}});\r\n } else {\r\n setTimeout(waitFunc,500);\r\n }\r\n };\r\n const waitToggleFunc = () => {\r\n if (this.togglingCloseOpen===ToggleState.startopen && this.shown) {\r\n setTimeout(waitFunc,1);\r\n } else {\r\n setTimeout(waitToggleFunc,100);\r\n }\r\n };\r\n if (this.shown) {\r\n this.togglingCloseOpen = ToggleState.startclose;\r\n this.toggleStateBtn.nativeElement.click();\r\n setTimeout(waitToggleFunc, 100);\r\n } else {\r\n this.isShowing = true;\r\n setTimeout(waitFunc,1);\r\n }\r\n });\r\n }\r\n\r\n public notifyAnimationComplete(): void {\r\n if (this.isHiding) {\r\n this.shown = false;\r\n Util.RestAPI.getAppComponent().dialogClosed();\r\n } else if (this.isShowing) {\r\n this.shown = true;\r\n }\r\n this.isShowing = false;\r\n this.isHiding = false;\r\n if (this.togglingCloseOpen===ToggleState.startclose) {\r\n this.togglingCloseOpen = ToggleState.finishclose;\r\n this.toggleStateBtn.nativeElement.click();\r\n }\r\n setTimeout(() => {\r\n if (!!this.dialogHeader) {\r\n (this.dialogHeader.nativeElement as HTMLElement).focus();\r\n }\r\n }, 100);\r\n }\r\n\r\n public confirmCancel(): void {\r\n this.userConfirmed = false;\r\n this.doClose();\r\n }\r\n\r\n public confirmOK(): void {\r\n this.userConfirmed = true;\r\n this.doClose();\r\n }\r\n\r\n public doClose(event?: Event): void {\r\n if (this.shown) {\r\n this.isHiding = true;\r\n }\r\n if (this.isShowing) {\r\n setTimeout(() => {\r\n if (this.isShowing) {\r\n // can happen if we abort and opening and the animation callback does not run\r\n this.isShowing = false;\r\n if (this.shown) {\r\n this.isHiding = true;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n }\r\n\r\n public showHide(show: boolean): void {\r\n this.hidden = !show;\r\n }\r\n\r\n public updateFormData(formData: any): void {\r\n if (this.shown) {\r\n this.subFormData = formData;\r\n }\r\n }\r\n\r\n public updateTitle(title: string): void {\r\n this.title = title;\r\n }\r\n\r\n public updateKindText(): void {\r\n this.kindText = DialogKind[this.kind].toString();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { WindowModalComponent } from './windows/window-modal.component';\r\nimport { AppHeaderComponent } from './app-header.component';\r\nimport { AppCommandsComponent } from './app-commands.component';\r\nimport { AppBreadcrumbsComponent } from './app-breadcrumbs.component';\r\nimport { CommandHandler, FormResult } from './models/command-handler';\r\nimport { BaseDesc } from './models/base';\r\nimport { ListItem } from './models/list-item';\r\nimport { DataFile, tFilePickCB, tListPickCB } from './models/file-form-info';\r\nimport { Tile } from './models/tile';\r\n\r\n/*\r\n this component is a bit of a pain, because we CAN NOT include Util as it\r\n would be a circular reference and ng would freak out.\r\n*/\r\n\r\n@Component({\r\n selector: 'edx-app',\r\n styleUrls: [ 'app.component.scss' ],\r\n template: `\r\n
=2}\">\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
{{uploadMessage}}
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class AppComponent {\r\n public currentWindow: WindowModalComponent = null;\r\n public appModalShown = false;\r\n public headerHeight: string = null;\r\n public uploadMessage: string = null;\r\n public ui = 0;\r\n public iOS = false;\r\n public isOfficeAddin: boolean;\r\n public desc: BaseDesc = null;\r\n public starting = true;\r\n private commandsComponent: AppCommandsComponent = null;\r\n private appHeader: AppHeaderComponent = null;\r\n private breadcrumbs: AppBreadcrumbsComponent = null;\r\n private headerMasked = false;\r\n private navDisabled = false;\r\n\r\n public registerHeader(theHeader: AppHeaderComponent) {\r\n this.appHeader = theHeader;\r\n if (this.breadcrumbs) {\r\n this.appHeader.setAppBreadcrumbs(this.breadcrumbs);\r\n }\r\n }\r\n\r\n public registerBreadcrumbs(breadcrumbs: AppBreadcrumbsComponent) {\r\n this.breadcrumbs = breadcrumbs;\r\n if (this.appHeader) {\r\n this.appHeader.setAppBreadcrumbs(this.breadcrumbs);\r\n }\r\n }\r\n\r\n public registerCommands(theCommands: AppCommandsComponent) {\r\n this.commandsComponent = theCommands;\r\n }\r\n\r\n public registerWindow(newWindow: WindowModalComponent, url: string) {\r\n // if no previous window, do nothing - first window will zoom itself\r\n if (this.currentWindow && this.appHeader) {\r\n if (this.appHeader.getBreadcrumbs().contains(url)) {\r\n this.animateNavBack(newWindow);\r\n } else {\r\n this.animateNavForward(newWindow);\r\n }\r\n }\r\n this.appHeader.setSearchScope();\r\n this.currentWindow = newWindow;\r\n }\r\n\r\n public deregisterWindow(deadWindow: WindowModalComponent) {\r\n if (this.currentWindow === deadWindow) {\r\n this.currentWindow = null;\r\n }\r\n }\r\n\r\n public cordovaNavHome(): void {\r\n this.appHeader.postCordovaCommand('home');\r\n }\r\n\r\n public cordovaReloadTiles(): void {\r\n this.appHeader.postCordovaCommand('reloadTiles');\r\n }\r\n\r\n public cordovaLeft(): void {\r\n this.appHeader.postCordovaCommand('cordovaLeft');\r\n }\r\n\r\n public cordovaRight(): void {\r\n this.appHeader.postCordovaCommand('cordovaRight');\r\n }\r\n\r\n public cordovaNavToUrl(url: string): void {\r\n this.appHeader.postCordovaCommand('cordovaNavToUrl', url);\r\n }\r\n\r\n public cordovaShowSystemNotification(): void {\r\n this.appHeader.postCordovaCommand('showSystemNotification');\r\n }\r\n\r\n public navBack(): void {\r\n if (this.appHeader && this.appHeader.getBreadcrumbs()) {\r\n this.appHeader.getBreadcrumbs().navBack();\r\n }\r\n }\r\n\r\n public removeClone(): void {\r\n const container: Element = document.getElementById('edx_anim_screen');\r\n container.innerHTML = '';\r\n container.className = '';\r\n }\r\n\r\n // create a clone of current window and make it 'close'\r\n public animateNavBack(newWindow: WindowModalComponent): void {\r\n const container: Element = document.getElementById('edx_anim_screen');\r\n const windowEl: Node = document.getElementsByClassName('window_modal')[0];\r\n if (windowEl) {\r\n const clone: Node = windowEl.cloneNode(true);\r\n container.appendChild(clone);\r\n container.firstElementChild.addEventListener('animationend', () => {\r\n this.removeClone();\r\n });\r\n container.firstElementChild.classList.add('close_tile');\r\n }\r\n if (newWindow === this.currentWindow) {\r\n newWindow.clearIsOpening();\r\n }\r\n }\r\n\r\n public animateNavForward(newWindow: WindowModalComponent): void {\r\n const that: AppComponent = this;\r\n const container: Element = document.getElementById('edx_anim_screen');\r\n const windowEl: Node = document.getElementsByClassName('window_modal')[0];\r\n if (windowEl) {\r\n const clone: Node = windowEl.cloneNode(true);\r\n container.appendChild(clone);\r\n container.firstElementChild.addEventListener('animationend', () => {\r\n this.removeClone();\r\n });\r\n container.firstElementChild.classList.add('fade_tile');\r\n }\r\n newWindow.setIsOpening();\r\n }\r\n\r\n public doCommand(cmd: string, data?: any): boolean {\r\n if (cmd && cmd.startsWith('hdr_')) {\r\n return this.appHeader.doCommand(cmd, data);\r\n }\r\n return this.commandsComponent.doCommand(cmd, data);\r\n }\r\n\r\n public copyDescChanged(desc: any): void {\r\n this.commandsComponent.copyDescChanged(desc);\r\n }\r\n\r\n public pickGroupsUsers(callback: any, disableList?: ListItem[], title?: string): void {\r\n this.commandsComponent.pickGroupsUsers(callback, disableList, title);\r\n }\r\n\r\n public pickFiles(extensions: string, callback: tFilePickCB): void {\r\n this.commandsComponent.pickFiles(extensions, callback);\r\n }\r\n\r\n public clickPickFiles(extensions?: string): void {\r\n this.commandsComponent.clickPickFiles(extensions);\r\n }\r\n\r\n public pickFolders(desc: any, multiple: boolean, allowLibrary: boolean, locations: boolean, callback: any): void {\r\n this.commandsComponent.pickFolders(desc, multiple, allowLibrary, locations, callback);\r\n }\r\n\r\n public pickFilepart(callback: any): void {\r\n this.commandsComponent.pickFilepart(callback);\r\n }\r\n\r\n public pickFromLookups(id: string, key: string, title: string, callback: any): void {\r\n this.commandsComponent.pickFromLookups(id, key, title, callback);\r\n }\r\n\r\n public pickFromDownloads(callbackList: tListPickCB, callbackFiles: tFilePickCB, title?: string): void {\r\n this.commandsComponent.pickFromDownloads(callbackList, callbackFiles, title);\r\n }\r\n\r\n public createContainer(type: string, desc: any): Promise {\r\n return this.commandsComponent.createContainer(type, desc);\r\n }\r\n\r\n public runCustomForm(formData: any, vendor, formName: string, title: string, okTitle: string, showExtras: boolean): Promise {\r\n return this.commandsComponent.runCustomForm(formData, vendor, formName, title, okTitle, showExtras);\r\n }\r\n\r\n public runLocalForm(formData: any, formName: string, title: string, okTitle: string, showExtras: boolean): Promise {\r\n return this.commandsComponent.runLocalForm(formData, formName, title, okTitle, showExtras);\r\n }\r\n\r\n public importListItems(items: ListItem[]): void {\r\n this.commandsComponent.importListItems(items);\r\n }\r\n\r\n public uploadFilesWithUI(files: File[], filePaths?: string[], dataFiles?: DataFile[], intoThisFolder?: any, formData?: any): void {\r\n this.commandsComponent.uploadFilesWithUI(files, filePaths, dataFiles, intoThisFolder, formData);\r\n }\r\n\r\n public uploadDone(error?: string): void {\r\n this.commandsComponent.uploadDone(error);\r\n }\r\n\r\n public changePrimaryLibrary(lib?: string): void {\r\n this.appHeader.changePrimaryLibrary(lib);\r\n }\r\n\r\n public getDefaultTiles(): Tile[] {\r\n return this.appHeader.getDefaultTiles();\r\n }\r\n\r\n public getTiles(): Tile[] {\r\n return this.appHeader.getTiles();\r\n }\r\n\r\n public setTiles(tiles: Tile[]): void {\r\n this.appHeader.setTiles(tiles);\r\n }\r\n\r\n public resetTiles(): void {\r\n this.appHeader.resetTiles();\r\n }\r\n\r\n public tilesChanged(): void {\r\n this.appHeader.tilesChanged();\r\n }\r\n\r\n public isPermaTile(tile: Tile): boolean {\r\n return this.appHeader.isPermaTile(tile);\r\n }\r\n\r\n public canSearchWhere(): boolean {\r\n return this.appHeader.canSearchWhere();\r\n }\r\n\r\n public refreshSearchesOnSearchMenu() {\r\n if (this.appHeader.searchMenu) {\r\n this.appHeader.searchMenu.loadSavedSearches();\r\n }\r\n }\r\n\r\n public focusSearchBar(): boolean {\r\n return this.appHeader.focusSearchBar();\r\n }\r\n\r\n public curUrlChanged(url: string): void {\r\n this.appHeader.curUrlChanged(url);\r\n }\r\n\r\n public curWindowChangedTitle(title: string, oldTitle: string): void {\r\n this.appHeader.curWindowChangedTitle(title, oldTitle);\r\n }\r\n\r\n public setHeaderTitle(title: string): void {\r\n this.appHeader.setTitle(title);\r\n }\r\n\r\n public setHeaderLeftText(leftText: string): void {\r\n this.appHeader.setLeftText(leftText);\r\n }\r\n\r\n public setHeaderRightText(rightText: string, cmd: string): void {\r\n this.appHeader.setRightText(rightText, cmd);\r\n }\r\n\r\n public setHeaderRightIcon(rightIcon: string, cmd: string): void {\r\n this.appHeader.setRightIcon(rightIcon, cmd);\r\n }\r\n\r\n public setActionMenu(commandHandler: CommandHandler, id: number, title: string, icon: string): void {\r\n this.appHeader.setActionMenu(commandHandler, id, title, icon);\r\n }\r\n\r\n public pushCommandHandler(commandHandler: CommandHandler, command: string, leftText: string, title: string, rightText: string, actionMenuID: number=-1, actionMenuTitle?: string, actionMenuIcon?: string): void {\r\n this.appHeader.pushCommandHandler(commandHandler, command, leftText, title, rightText, actionMenuID, actionMenuTitle, actionMenuIcon);\r\n }\r\n\r\n public popCommandHandler(last: boolean): void {\r\n this.appHeader.popCommandHandler();\r\n if (last) {\r\n this.dialogClosed();\r\n }\r\n }\r\n\r\n public nullTopCommandHandler(): void {\r\n this.appHeader.nullTopCommandHandler();\r\n }\r\n\r\n public routeChanged(): void {\r\n this.appHeader.routeChanged();\r\n }\r\n\r\n public setAppModal(modal: boolean): void {\r\n this.appModalShown = modal;\r\n }\r\n\r\n public isAppModal(): boolean {\r\n return this.appModalShown;\r\n }\r\n\r\n public maskHeader(mask: boolean): void {\r\n this.appHeader.maskHeader(mask);\r\n }\r\n\r\n public isHeaderMasked(): boolean {\r\n return this.appHeader.isHeaderMasked();\r\n }\r\n\r\n public isNavDisabled(): boolean {\r\n return this.appHeader.isNavDisabled();\r\n }\r\n\r\n public reconnected(): void {\r\n this.appHeader.reconnected();\r\n }\r\n\r\n public offlineStateChange(offline: boolean): void {\r\n this.appHeader.offlineStateChange(offline);\r\n }\r\n\r\n public dialogClosed(): void {\r\n if (this.currentWindow) {\r\n this.currentWindow.gotFocus();\r\n }\r\n }\r\n\r\n public acceptFileDrag(): boolean {\r\n if (!this.currentWindow && this.appHeader && this.appHeader.getBreadcrumbs()) {\r\n return this.appHeader.getBreadcrumbs().acceptFileDrag();\r\n }\r\n return false;\r\n }\r\n\r\n public blockForDirty(handler: CommandHandler, enable: boolean, cmd?: string): void {\r\n cmd = cmd || 'save';\r\n if (this.ui===2 || this.ui===4) {\r\n if (enable) {\r\n this.setActionMenu(handler, -1, this.currentWindow.getName(), null);\r\n this.setHeaderRightText('FOLDER_ACTIONS.SAVE', cmd);\r\n this.setHeaderLeftText('FORMS.BUTTONS.CANCEL');\r\n } else {\r\n this.setActionMenu(null, -1, null, null);\r\n this.setHeaderRightText(null, null);\r\n this.setHeaderLeftText(null);\r\n }\r\n } else if (this.ui===3 || this.ui===5) {\r\n if (this.headerMasked !== enable) {\r\n this.maskHeader(enable);\r\n this.headerMasked = enable;\r\n }\r\n } else {\r\n if (this.navDisabled !== enable) {\r\n this.appHeader.disableNav(enable);\r\n this.navDisabled = enable;\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppHeaderComponent } from './app-header.component';\r\nimport { AppBreadcrumbsComponent } from './app-breadcrumbs.component';\r\nimport { AppNavSidebarComponent } from './app-nav-sidebar.component';\r\nimport { AppNotifyDialogComponent } from './app-notify-dialog.component';\r\nimport { AppCommandsComponent } from './app-commands.component';\r\nimport { AppHomeComponent } from './app-home.component';\r\nimport { routing } from './app.routing';\r\nimport { WindowsModule } from './windows/windows.module';\r\nimport { EDXFormsModule } from './forms/edx-forms.module';\r\nimport { TilesModule } from './tiles/tiles.module';\r\nimport { ListsModule } from './lists/lists.module';\r\nimport { TranslatePipe } from './pipes/translate.pipe';\r\nimport { LocalizeService } from './services/localize.service';\r\nimport { WidgetsModule } from './widgets/widgets.module';\r\nimport { MenuService } from './services/menu.service';\r\nimport { SchemaService } from './services/schema.service';\r\nimport { FormService } from './services/form.service';\r\nimport { NavService } from './services/nav.service';\r\nimport { DataService } from './services/data.service';\r\nimport { LookupService } from './services/lookup.service';\r\nimport { SettingsService } from './services/settings.service';\r\nimport { ProfileService } from './services/profile.service';\r\nimport { DirectivesModule } from './directives/directives.module';\r\nimport { oAuth2Service } from './services/oauth2.service';\r\nimport { OOxmlService } from './services/ooxml.service';\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n routing,\r\n TilesModule,\r\n WidgetsModule,\r\n WindowsModule,\r\n EDXFormsModule,\r\n ListsModule,\r\n DirectivesModule\r\n ],\r\n declarations: [\r\n AppComponent,\r\n AppHeaderComponent,\r\n AppBreadcrumbsComponent,\r\n AppNavSidebarComponent,\r\n AppNotifyDialogComponent,\r\n AppCommandsComponent,\r\n AppHomeComponent,\r\n TranslatePipe\r\n ],\r\n providers: [\r\n LocalizeService,\r\n MenuService,\r\n SchemaService,\r\n FormService,\r\n NavService,\r\n DataService,\r\n LookupService,\r\n SettingsService,\r\n ProfileService,\r\n oAuth2Service,\r\n OOxmlService,\r\n ],\r\n bootstrap: [ AppComponent ]\r\n})\r\n\r\nexport class AppModule { }\r\n","import { ModuleWithProviders } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AppHomeComponent } from './app-home.component';\r\nimport { WindowModalMetadataComponent } from './windows/window-modal-metadata.component';\r\nimport { WindowModalSplitViewComponent } from './windows/window-modal-splitview.component';\r\nimport { WindowModalFoldersComponent } from './windows/window-modal-folders.component';\r\nimport { WindowModalFormLoginComponent } from './windows/window-modal-form-login.component';\r\nimport { WindowModalPreferencesComponent } from './windows/window-modal-preferences.component';\r\n\r\nconst appRoutes: Routes = [\r\n { path: 'login', component: WindowModalFormLoginComponent },\r\n { path: 'home',\r\n children: [\r\n { path: '', component: AppHomeComponent },\r\n { path: 'iclink', component: AppHomeComponent },\r\n { path: 'folders', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'searches', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'workspaces', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'flexfolders', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'fileplans', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'boxes', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'activities', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'metadata', component: WindowModalMetadataComponent, outlet: 'tcc_outlet' },\r\n { path: 'requests', component: WindowModalFoldersComponent, outlet: 'tcc_outlet' },\r\n { path: 'preferences', component: WindowModalPreferencesComponent, outlet: 'tcc_outlet' },\r\n { path: 'splitview', component: WindowModalSplitViewComponent, outlet: 'tcc_outlet' }\r\n ]\r\n }\r\n];\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, { useHash: true, relativeLinkResolution: 'legacy' });\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DraggableDirective } from './draggable.directive';\r\nimport { DragTargetDirective, FileDropTargetDirective } from './drag-target.directive';\r\nimport { DraggableFileDirective } from './draggable-file.directive';\r\nimport { ValidateOnBlurDirective } from './validate-onblur.directive';\r\nimport { LongPressGestureDirective, SwipeGestureDirective, PinchGestureDirective, DoubleTapGestureDirective } from './gesture.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n DraggableDirective,\r\n DragTargetDirective,\r\n FileDropTargetDirective,\r\n DraggableFileDirective,\r\n ValidateOnBlurDirective,\r\n LongPressGestureDirective,\r\n SwipeGestureDirective,\r\n PinchGestureDirective,\r\n DoubleTapGestureDirective\r\n ],\r\n exports: [\r\n DraggableDirective,\r\n DragTargetDirective,\r\n FileDropTargetDirective,\r\n DraggableFileDirective,\r\n ValidateOnBlurDirective,\r\n LongPressGestureDirective,\r\n SwipeGestureDirective,\r\n PinchGestureDirective,\r\n DoubleTapGestureDirective\r\n ]\r\n})\r\n\r\nexport class DirectivesModule { }\r\n","import { Directive, HostListener, ElementRef, Input, Renderer2 } from '@angular/core';\r\n\r\nimport { Util } from '../utils/utils.module';\r\n\r\n@Directive({\r\n selector: '[edx-drag-target]'\r\n})\r\nexport class DragTargetDirective {\r\n private _dragEnterCount = 0;\r\n private _dragEffect = 'none';\r\n protected listener: any;\r\n @Input('edx-drag-target')\r\n set edxDragTarget(listener: any) {\r\n this.setListener(listener);\r\n }\r\n\r\n constructor(protected _elem: ElementRef, protected _renderer: Renderer2) { }\r\n\r\n @HostListener('dragenter', ['$event'])\r\n onDragEnter(event) {\r\n let rc = false;\r\n if (this._dragEnterCount++===0) {\r\n if (this.listener) {\r\n this._dragEffect = 'copy';\r\n if (this.listener.acceptDrag && !this.listener.acceptDrag(event, this._elem)) {\r\n this._dragEffect = 'none';\r\n rc = true;\r\n }\r\n }\r\n if (event.dataTransfer) {\r\n event.dataTransfer.dropEffect = this._dragEffect;\r\n }\r\n }\r\n return false; // Call preventDefault() on the event\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDragOver(event) {\r\n if (this.listener && this.listener.dragOver) {\r\n this._dragEffect = this.listener.dragOver(event, this._elem) ? 'copy' : 'none';\r\n }\r\n if (event.dataTransfer) {\r\n event.dataTransfer.dropEffect = this._dragEffect;\r\n }\r\n return false; // Call preventDefault() on the event\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event) {\r\n this._dragEnterCount = 0;\r\n if (this.listener && this.listener.drop) {\r\n this.listener.drop(event, this._elem);\r\n }\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n onDragLeave(event) {\r\n if (--this._dragEnterCount===0) {\r\n if (this.listener && this.listener.dragLeave) {\r\n this.listener.dragLeave(event, this._elem);\r\n }\r\n }\r\n }\r\n\r\n protected setListener(listener: any): void {\r\n this.listener = listener;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[edx-file-drop-target]'\r\n})\r\nexport class FileDropTargetDirective extends DragTargetDirective {\r\n private realListener: any;\r\n @Input('edx-file-drop-target')\r\n set edxFileDropTarget(listener: any) {\r\n this.setListener(listener);\r\n }\r\n\r\n protected setListener(listener: any): void {\r\n this.realListener = listener;\r\n this.listener = this;\r\n }\r\n\r\n // **** Drag Target\r\n acceptDrag(event: any, element: ElementRef): boolean {\r\n let rc = false;\r\n const items = event.dataTransfer && event.dataTransfer.items ? event.dataTransfer && event.dataTransfer.items : null;\r\n if (Util.dragHasFiles(event.dataTransfer)) {\r\n if (this.realListener && this.realListener.setDragOver) {\r\n this.realListener.setDragOver(true);\r\n rc = true;\r\n } else if (Util.RestAPI.acceptFileDrag()) {\r\n Util.RestAPI.showDropBanner('TILE_NAMES.RECENTLY_EDITED');\r\n rc = true;\r\n }\r\n } else if (Util.dragHasJSON(event.dataTransfer)) {\r\n rc = true;\r\n }\r\n return rc;\r\n }\r\n dragLeave(event: any, element: ElementRef): void {\r\n if (this.realListener && this.realListener.setDragOver) {\r\n this.realListener.setDragOver(false);\r\n }\r\n Util.RestAPI.showDropBanner(null);\r\n }\r\n drop(event: any, element: ElementRef): void {\r\n if (this.realListener && (!this.realListener.dropOK || this.realListener.dropOK())) {\r\n Util.getDropFiles(event.dataTransfer).then((items: any[]) => {\r\n const count = items ? items.length : 0;\r\n if (count || Util.Device.bIsOfficeAddin) {\r\n const files: File[] = (items && items.length && typeof items[0] !== 'string') ? items : null;\r\n const filePaths: string[] = (items && items.length && typeof items[0] === 'string') ? items : null;\r\n Util.RestAPI.uploadFilesWithUI(files, filePaths);\r\n }\r\n });\r\n if (this.realListener && this.realListener.setDragOver) {\r\n this.realListener.setDragOver(false);\r\n }\r\n Util.RestAPI.showDropBanner(null);\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, ElementRef, Input, Renderer2 } from '@angular/core';\r\n\r\nimport { Util } from '../utils/utils.module';\r\n\r\n@Directive({\r\n selector: '[edx-draggable-file]'\r\n})\r\nexport class DraggableFileDirective {\r\n @Input('edx-draggable-file') dragSource: any;\r\n private bIsGoodDrag = false;\r\n private svgData: string = null;\r\n constructor(private _elem: ElementRef, private _renderer: Renderer2) {\r\n setTimeout(() => {\r\n if (!!this.dragSource) {\r\n const dragAppID: string = this.dragSource.getDragAppID ? this.dragSource.getDragAppID(this._elem) : null;\r\n if (!!dragAppID) {\r\n Util.Transforms.svgDataFromAppID(dragAppID).then(data=> {\r\n this.svgData = data;\r\n }, err => {});\r\n }\r\n }\r\n }, 1);\r\n }\r\n\r\n @HostListener('dragstart', ['$event'])\r\n onDragStart(event) {\r\n const dt: DataTransfer = event.dataTransfer;\r\n const dragURL: string = this.dragSource.getDragURL ? this.dragSource.getDragURL(this._elem) : null;\r\n const dragName: string = this.dragSource.getDragName ? this.dragSource.getDragName(this._elem) : '';\r\n const dragJson: string = this.dragSource.getDragJson ? this.dragSource.getDragJson(this._elem) : null;\r\n const dragDesc: any = this.dragSource.getDragDesc ? this.dragSource.getDragDesc(this._elem) : null;\r\n const dragPromisedFile: string = this.dragSource.getDragPromisedFile ? this.dragSource.getDragPromisedFile(this._elem) : null;\r\n if (dragURL) {\r\n const fullUrl = Util.RestAPI.getServerURLOrigin()+dragURL;\r\n const downloadURL = '*/*:'+dragName+':'+fullUrl;\r\n dt.effectAllowed = this.dragSource.getEffectAllowed ? this.dragSource.getEffectAllowed() : 'copyMove';\r\n dt.setData('text/uri-list', fullUrl);\r\n dt.setData('DownloadURL', downloadURL);\r\n if (dragJson) {\r\n dt.setData('text/json', dragJson);\r\n }\r\n if (dragPromisedFile) {\r\n dt.setData('text/promised-file', dragPromisedFile);\r\n }\r\n if (!!this.svgData && !!dragDesc) {\r\n const imgUrl = this.svgData;\r\n const link = Util.RestAPI.makeDeepLink(dragDesc, ((!event.metaKey || Util.isContainer(dragDesc.type)) ? 'open' : 'download'), Util.Device.bIsTeamsAddIn);\r\n const html = '';\r\n dt.setData('text/html', html);\r\n }\r\n this.bIsGoodDrag = true;\r\n }\r\n return this.bIsGoodDrag;\r\n }\r\n\r\n @HostListener('dragend', ['$event'])\r\n onDragEnd(event) {\r\n Util.RestAPI.showDropBanner(null);\r\n return this.bIsGoodDrag;\r\n }\r\n}\r\n","import { mergeMap, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Directive, OnInit, EventEmitter, HostListener, ElementRef, Input, Renderer2 } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Util } from '../utils/utils.module';\r\n\r\n@Directive({\r\n selector: '[edx-draggable]'\r\n})\r\nexport class DraggableDirective implements OnInit {\r\n private _elemBounds: ClientRect;\r\n private _mouseup: EventEmitter = new EventEmitter();\r\n private _mousedown: EventEmitter = new EventEmitter();\r\n private _mousemove: EventEmitter = new EventEmitter();\r\n private _mouseout: EventEmitter = new EventEmitter();\r\n private _keydown: EventEmitter = new EventEmitter();\r\n private _margin: number[] = new Array();\r\n private _startX: number;\r\n private _startY: number;\r\n private _minDragMove: number = Util.Device.bIsTouchDevice ? 6 : 3;\r\n private _allowVertical = true;\r\n private _dragInProgress = false;\r\n private _leftMouseDown = false;\r\n private _touchStartRC = false;\r\n private _originalTouchTarget: any = null;\r\n private boundOnMouseMove;\r\n private boundOnTouchMove;\r\n private boundOnMouseUp;\r\n @Input('edx-draggable') listener: any;\r\n\r\n constructor(private _elem: ElementRef, private _renderer: Renderer2) { }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(event) {\r\n this._allowVertical = true;\r\n if (event.target && event.target.tagName==='INPUT') {\r\n // do not block inputs from getting clicks\r\n return true;\r\n }\r\n if (this.listener && this.listener.canDrag) {\r\n const bounds = this._elem.nativeElement.getBoundingClientRect();\r\n if (!this.listener.canDrag(event.clientX-bounds.left, event.clientY-bounds.top, this._elem)) {\r\n return true;\r\n }\r\n }\r\n if (this.listener && this.listener.allowVertical) {\r\n this._allowVertical = this.listener.allowVertical(this._elem);\r\n }\r\n if (Util.Device.bIsTouchDevice) {\r\n this.boundOnTouchMove = this.onTouchmove.bind(this);\r\n addEventListener('touchmove', this.boundOnTouchMove);\r\n } else {\r\n this.boundOnMouseMove = this.onMousemove.bind(this);\r\n addEventListener('mousemove', this.boundOnMouseMove);\r\n this.boundOnMouseUp = this.onMouseup.bind(this);\r\n addEventListener('mouseup', this.boundOnMouseUp);\r\n }\r\n this._mousedown.emit(event);\r\n return false;\r\n }\r\n @HostListener('touchstart', ['$event'])\r\n onTouchStart(event) {\r\n event = event.touches && event.touches.length ? event.touches[0] : event;\r\n event.which = 1;\r\n this._touchStartRC = this.onMousedown(event);\r\n if (!this._touchStartRC) {\r\n this._originalTouchTarget = event.target;\r\n }\r\n return this._touchStartRC;\r\n }\r\n\r\n onMousemove(event) {\r\n if (!!this._leftMouseDown) {\r\n this._mousemove.emit(event);\r\n }\r\n }\r\n onTouchmove(event) {\r\n event = event.touches && event.touches.length ? event.touches[0] : event;\r\n return this.onMousemove(event);\r\n }\r\n\r\n onMouseup(event) {\r\n let rc: boolean;\r\n if (!!this._dragInProgress) {\r\n this.endDrag(event);\r\n this._mouseup.emit(event);\r\n rc = true;\r\n } else if (!this.boundOnMouseMove && !this.boundOnTouchMove) {\r\n this._mouseup.emit(event);\r\n rc = false;\r\n } else {\r\n rc = true;\r\n }\r\n this._leftMouseDown = false;\r\n if (Util.Device.bIsTouchDevice) {\r\n if (!!this.boundOnTouchMove) {\r\n removeEventListener('touchmove', this.boundOnTouchMove);\r\n this.boundOnTouchMove = null;\r\n }\r\n } else {\r\n if (!!this.boundOnMouseMove) {\r\n removeEventListener('mousemove', this.boundOnMouseMove);\r\n this.boundOnMouseMove = null;\r\n }\r\n if (!!this.boundOnMouseUp) {\r\n removeEventListener('mouseup', this.boundOnMouseUp);\r\n this.boundOnMouseUp = null;\r\n }\r\n }\r\n return rc;\r\n }\r\n @HostListener('touchend', ['$event'])\r\n onTouchend(event) {\r\n const rc = this._dragInProgress && this._leftMouseDown ? false : true;\r\n event = event.touches && event.touches.length ? event.touches[0] : event;\r\n this.onMouseup(event);\r\n if (rc && !this._touchStartRC && this._originalTouchTarget) {\r\n event = new MouseEvent('click', { view: window, bubbles: true, cancelable: true });\r\n this._originalTouchTarget.dispatchEvent(event);\r\n this._originalTouchTarget = null;\r\n }\r\n return rc;\r\n }\r\n @HostListener('document:touchcancel', ['$event'])\r\n onTouchcancel(event) {\r\n event = event.touches && event.touches.length ? event.touches[0] : event;\r\n this.onMouseup(event);\r\n return false;\r\n }\r\n @HostListener('document:keydown', ['$event'])\r\n onKeyup(event) {\r\n if (event.which===27) {\r\n this.endDrag(event);\r\n }\r\n this._keydown.emit(event);\r\n }\r\n\r\n private startDrag(): void {\r\n if (!this._dragInProgress) {\r\n this._dragInProgress = true;\r\n if (this.listener && this.listener.preDragStart) {\r\n this.listener.preDragStart(this._elem);\r\n }\r\n this._renderer.setStyle(this._elem.nativeElement, 'z-index', '100000');\r\n this._renderer.setStyle(this._elem.nativeElement, 'position', 'fixed');\r\n if (this.listener && this.listener.dragStarted) {\r\n this.listener.dragStarted(this._elem);\r\n }\r\n }\r\n }\r\n private setPosition(pos): void {\r\n this._renderer.setStyle(this._elem.nativeElement, 'left', (pos['left'] - this._margin[1] - document.body.scrollLeft).toString() + 'px');\r\n if (this._allowVertical) {\r\n this._renderer.setStyle(this._elem.nativeElement, 'top', (pos['top'] - this._margin[0] - document.body.scrollTop).toString() + 'px');\r\n }\r\n if (this.listener && this.listener.dragMoved) {\r\n if (this._allowVertical) {\r\n this.listener.dragMoved(pos['x'],pos['y'],this._elem);\r\n } else {\r\n this.listener.dragMoved(pos['x'],this._startY,this._elem);\r\n }\r\n }\r\n }\r\n private endDrag(event): void {\r\n if (!!this._dragInProgress) {\r\n if (this.listener && this.listener.dragEnded) {\r\n this.listener.dragEnded(event,this._elem);\r\n }\r\n this._renderer.setStyle(this._elem.nativeElement, 'z-index', '');\r\n this._renderer.setStyle(this._elem.nativeElement, 'left', '');\r\n this._renderer.setStyle(this._elem.nativeElement, 'top', '');\r\n this._renderer.setStyle(this._elem.nativeElement, 'position', '');\r\n this._dragInProgress = false;\r\n }\r\n this._leftMouseDown = false;\r\n }\r\n\r\n ngOnInit() {\r\n const margin = getComputedStyle(this._elem.nativeElement).getPropertyValue('margin').split(' ');\r\n if (margin.length === 1) {\r\n this._margin.push(+margin[0].slice(0, margin[0].indexOf('px')));\r\n this._margin.push(+margin[0].slice(0, margin[0].indexOf('px')));\r\n } else {\r\n this._margin.push(+margin[0].slice(0, margin[0].indexOf('px')));\r\n this._margin.push(+margin[1].slice(0, margin[1].indexOf('px')));\r\n }\r\n this._mousedown.pipe(switchMap((mdwnEvn, i) => {\r\n this._leftMouseDown = mdwnEvn.which === 1;\r\n this._startX = mdwnEvn.clientX;\r\n this._startY = mdwnEvn.clientY;\r\n this._elemBounds = this._elem.nativeElement.getBoundingClientRect();\r\n return Observable.create((observer) => {\r\n observer._next({\r\n prevx: mdwnEvn.clientX - this._elemBounds.left,\r\n prevy: mdwnEvn.clientY - this._elemBounds.top\r\n });\r\n });\r\n }),mergeMap((offSet, i) => this._mousemove.pipe(mergeMap((mmoveEvn, iMove) => {\r\n if (!this._dragInProgress && this._leftMouseDown && (Math.abs(this._startX-mmoveEvn.clientX) > this._minDragMove || (this._allowVertical && Math.abs(this._startY-mmoveEvn.clientY) > this._minDragMove))) {\r\n this.startDrag();\r\n }\r\n if (!!this._dragInProgress && mmoveEvn.preventDefault) {\r\n mmoveEvn.preventDefault();\r\n }\r\n return Observable.create(observer => {\r\n observer._next({\r\n left: mmoveEvn.clientX - offSet['prevx'],\r\n top: mmoveEvn.clientY - offSet['prevy'],\r\n x: mmoveEvn.clientX,\r\n y: mmoveEvn.clientY\r\n });\r\n });\r\n }),takeUntil(this._mouseout),takeUntil(this._mouseup),)),).subscribe({\r\n next: pos => {\r\n if (!!this._dragInProgress) {\r\n this.setPosition(pos);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, HostListener, ElementRef, Input, Renderer2 } from '@angular/core';\r\n\r\nimport { Util } from '../utils/utils.module';\r\n\r\nconst kDoubleTapTime = 500;\r\nconst kLongPressTime = 500;\r\nconst kSwipeTime = 300;\r\n\r\nexport enum GestureKind { None=0, DoubleTap=1, LongPress=2, SwipeLeft=3, SwipeRight=4, PinchOut=5, PinchIn=6 }\r\n\r\nexport interface GestureListener {\r\n handleGesture(gesture: GestureKind, elem: ElementRef, target: any): boolean; // return true to prevent any defaults\r\n}\r\n\r\nclass GestureDirective {\r\n protected _elemBounds: ClientRect;\r\n protected _gestureInProgress = false;\r\n protected _gestureHandled = false;\r\n protected _originalTarget: any = null;\r\n protected _startTime = 0;\r\n protected _startX: number;\r\n protected _startY: number;\r\n protected _nFingersDown = 0;\r\n protected _isDoubleTap = false;\r\n protected _minDragMove: number = Util.Device.bIsTouchDevice ? 6 : 3;\r\n\r\n constructor(protected _elem: ElementRef, protected _renderer: Renderer2) { }\r\n\r\n private touchToMouse(event) {\r\n const type = event.type;\r\n const timeStamp: number = event.timeStamp;\r\n event = event.touches && event.touches.length ? event.touches[0] : event;\r\n if (type!=='touchend') {\r\n try {\r\n event.timeStamp = timeStamp;\r\n } catch (e) { }\r\n }\r\n return event;\r\n }\r\n\r\n protected onMousedown(event): boolean {\r\n this._gestureInProgress = event.which === 1;\r\n this._gestureHandled = false;\r\n this._isDoubleTap = (event.timeStamp-this._startTime) {\r\n this._gestureInProgress = this._gestureInProgress && (this._startX<(Util.Device.width-16));\r\n if (this._gestureInProgress && !!this.listener && this.listener.handleGesture) {\r\n this._gestureHandled = this.listener.handleGesture(GestureKind.LongPress, this._elem, this._originalTarget);\r\n }\r\n }, kLongPressTime);\r\n return super.onMousedown(event);\r\n }\r\n @HostListener('touchstart', ['$event'])\r\n onTouchstart(event) {\r\n return super.onTouchstart(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n onMousemove(event) {\r\n if (this._gestureInProgress && (Math.abs(this._startX-event.clientX) > this._minDragMove || (Math.abs(this._startY-event.clientY) > this._minDragMove))) {\r\n this._gestureInProgress = false;\r\n }\r\n }\r\n @HostListener('touchmove', ['$event'])\r\n onTouchmove(event) {\r\n super.onTouchmove(event);\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup(event) {\r\n return super.onMouseup(event);\r\n }\r\n @HostListener('touchend', ['$event'])\r\n onTouchend(event) {\r\n return super.onTouchend(event);\r\n }\r\n @HostListener('document:touchcancel', ['$event'])\r\n onTouchcancel(event) {\r\n return super.onTouchcancel(event);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[edx-gesture-swipe]'\r\n})\r\nexport class SwipeGestureDirective extends GestureDirective {\r\n @Input('edx-gesture-swipe') listener: GestureListener;\r\n\r\n constructor(protected _elem: ElementRef, protected _renderer: Renderer2) {\r\n super(_elem, _renderer);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(event) {\r\n return super.onMousedown(event);\r\n }\r\n @HostListener('touchstart', ['$event'])\r\n onTouchstart(event) {\r\n return super.onTouchstart(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n onMousemove(event) {\r\n if (this._gestureInProgress && this._nFingersDown===1) {\r\n const deltaT: number = event.timeStamp-this._startTime;\r\n const deltaX: number = this._startX-event.clientX;\r\n if (deltaT10 && (Math.abs(this._startY-event.clientY)<4))) {\r\n this._gestureInProgress = false;\r\n if (!!this.listener && this.listener.handleGesture) {\r\n this._gestureHandled = this.listener.handleGesture(deltaX>0 ? GestureKind.SwipeLeft : GestureKind.SwipeRight, this._elem, this._originalTarget);\r\n }\r\n }\r\n }\r\n }\r\n @HostListener('touchmove', ['$event'])\r\n onTouchmove(event) {\r\n super.onTouchmove(event);\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup(event) {\r\n return super.onMouseup(event);\r\n }\r\n @HostListener('touchend', ['$event'])\r\n onTouchend(event) {\r\n return super.onTouchend(event);\r\n }\r\n @HostListener('document:touchcancel', ['$event'])\r\n onTouchcancel(event) {\r\n return super.onTouchcancel(event);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[edx-gesture-pinch]'\r\n})\r\nexport class PinchGestureDirective extends GestureDirective {\r\n @Input('edx-gesture-pinch') listener: GestureListener;\r\n private _gestureWasHandled = false;\r\n\r\n constructor(protected _elem: ElementRef, protected _renderer: Renderer2) {\r\n super(_elem, _renderer);\r\n }\r\n\r\n @HostListener('touchstart', ['$event'])\r\n onTouchstart(event) {\r\n return super.onTouchstart(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n onMousemove(event) {\r\n this._gestureInProgress = this._nFingersDown===2;\r\n if (this._gestureInProgress) {\r\n const deltaX: number = this._startX-event.clientX;\r\n const deltaY: number = this._startY-event.clientY;\r\n if ((Math.abs(deltaX)>10 || (Math.abs(deltaY)>10))) {\r\n this._startX = event.clientX;\r\n this._startY = event.clientY;\r\n if (!!this.listener && !!this.listener.handleGesture) {\r\n this._gestureHandled = this.listener.handleGesture(deltaX<0 ? GestureKind.PinchOut : GestureKind.PinchIn, this._elem, this._originalTarget);\r\n } else {\r\n this._gestureHandled = false;\r\n }\r\n }\r\n }\r\n }\r\n @HostListener('touchmove', ['$event'])\r\n onTouchmove(event) {\r\n this._nFingersDown = event.touches.length;\r\n super.onTouchmove(event);\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n onMouseup(event) {\r\n return super.onMouseup(event);\r\n }\r\n @HostListener('touchend', ['$event'])\r\n onTouchend(event) {\r\n // double tap reset\r\n if (this._gestureWasHandled && !this._gestureHandled && this._nFingersDown===1 && this._isDoubleTap) {\r\n if (!!this.listener && !!this.listener.handleGesture) {\r\n this.listener.handleGesture(GestureKind.DoubleTap, this._elem, this._originalTarget);\r\n }\r\n this._gestureWasHandled = false;\r\n }\r\n if (!this._gestureWasHandled && this._gestureHandled) {\r\n this._gestureWasHandled = true;\r\n }\r\n return super.onTouchend(event);\r\n }\r\n @HostListener('document:touchcancel', ['$event'])\r\n onTouchcancel(event) {\r\n return super.onTouchcancel(event);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[edx-gesture-doubletap]'\r\n})\r\nexport class DoubleTapGestureDirective extends GestureDirective {\r\n @Input('edx-gesture-doubletap') listener: GestureListener;\r\n\r\n constructor(protected _elem: ElementRef, protected _renderer: Renderer2) {\r\n super(_elem, _renderer);\r\n }\r\n\r\n @HostListener('touchstart', ['$event'])\r\n onTouchstart(event) {\r\n return super.onTouchstart(event);\r\n }\r\n\r\n @HostListener('touchend', ['$event'])\r\n onTouchend(event) {\r\n if (this._isDoubleTap && !!this.listener && !!this.listener.handleGesture) {\r\n this.listener.handleGesture(GestureKind.DoubleTap, this._elem, this._originalTarget);\r\n }\r\n return super.onTouchend(event);\r\n }\r\n}\r\n","import { filter } from 'rxjs/operators';\r\n\r\nimport { Directive, Input, HostListener } from '@angular/core';\r\nimport { NgControl, ValidatorFn, AsyncValidatorFn } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[edx-validate-onblur]'\r\n})\r\nexport class ValidateOnBlurDirective {\r\n @Input('edx-validate-onblur') engage?: boolean = true;\r\n private validator: ValidatorFn;\r\n private asyncValidator: AsyncValidatorFn;\r\n private hasFocus = false;\r\n\r\n constructor(public formControl: NgControl) { }\r\n\r\n @HostListener('focus', ['$event'])\r\n onFocus($event) {\r\n if (this.engage) {\r\n this.hasFocus = true;\r\n this.validator = this.formControl.control.validator;\r\n this.asyncValidator = this.formControl.control.asyncValidator;\r\n this.formControl.control.clearAsyncValidators();\r\n this.formControl.control.clearValidators();\r\n this.formControl.control.valueChanges.pipe(filter(() => this.hasFocus)).subscribe(() => this.formControl.control.markAsPending());\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur($event) {\r\n this.enableValidation();\r\n }\r\n\r\n enableValidation(): void {\r\n if (this.engage) {\r\n this.hasFocus = false;\r\n this.formControl.control.setAsyncValidators(this.asyncValidator);\r\n this.formControl.control.setValidators(this.validator);\r\n this.formControl.control.updateValueAndValidity();\r\n }\r\n }\r\n}\r\n","/**\r\n * Created from example by kevin on 2016-11-10.\r\n */\r\n\r\nimport { forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\nconst noop = () => {\r\n};\r\n\r\nexport abstract class AbstractValueAccessor implements ControlValueAccessor {\r\n private innerValue: any = '';\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n\r\n setValue(v: any) {\r\n if (v !== this.innerValue) {\r\n this.innerValue = v;\r\n this.onChangeCallback(v);\r\n }\r\n }\r\n\r\n //get accessor\r\n get value(): any {\r\n return this.innerValue;\r\n }\r\n\r\n //set accessor including call the onchange callback\r\n set value(v: any) {\r\n this.setValue(v);\r\n }\r\n\r\n //Set touched on blur\r\n onBlur() {\r\n this.onTouchedCallback();\r\n }\r\n\r\n //From ControlValueAccessor interface\r\n writeValue(value: any) {\r\n if (value !== this.innerValue) {\r\n this.innerValue = value;\r\n }\r\n }\r\n\r\n //From ControlValueAccessor interface\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n //From ControlValueAccessor interface\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n}\r\n\r\nexport const MakeProvider = (type: any) => ({\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => type),\r\n multi: true\r\n });\r\n","/**\r\n * Created by kevin on 2016-12-07.\r\n *\r\n * Checkbox field implementation with custom formatting and multiple value setting\r\n *\r\n */\r\n\r\nimport { OnInit, OnChanges, Input, ViewChild, Component } from '@angular/core';\r\nimport { FormField } from '../models/form-field';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { DynamicFormFieldComponent } from './dynamic-form-field.component';\r\n\r\n@Component({\r\n selector: 'edx-checkbox-field',\r\n styleUrls: ['dynamic-form-field.component.scss'],\r\n template: `\r\n
\r\n
\r\n \r\n {{label()}}\r\n
\r\n
\r\n`\r\n})\r\nexport class CheckboxFieldComponent implements OnInit, OnChanges {\r\n @Input() field: FormField;\r\n @Input() form: FormGroup;\r\n @Input() parent?: DynamicFormFieldComponent;\r\n @Input() inDialog?: boolean = false;\r\n @Input() formReadonly?: boolean = false;\r\n @Input() columnView?: boolean = false;\r\n @Input() rerender = 0;\r\n @Input() checkBoxId?: string = null;\r\n @Input() itemIndex?: number = -1;\r\n @Input() tabIndex = 0;\r\n @Input() ariaLabel?: string;\r\n @ViewChild('checkbox') checkbox: any;\r\n public viewReadonly = false;\r\n public isChecked = false;\r\n public isIndeterminateState = false;\r\n\r\n ngOnInit() {\r\n this.form.controls[this.field.name].valueChanges.subscribe((newValue) => {\r\n this.doStateChangeUponValue(newValue);\r\n if (this.parent) {\r\n this.parent.fieldChanged();\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n let value: string = this.form.controls[this.field.name].value;\r\n value = value ? value.toString() : null;\r\n if (this.field.isTriStateCheckbox) {\r\n this.doStateChangeUponValue(value);\r\n } else if (value === this.field.checkedValue) {\r\n this.isChecked = true;\r\n } else if (value === this.field.uncheckedValue) {\r\n this.isChecked = false;\r\n }\r\n this.viewReadonly = this.field.isReadonly || this.formReadonly;\r\n }\r\n\r\n public label(): string {\r\n if (this.columnView && this.viewReadonly) {\r\n return this.field.label;\r\n }\r\n return this.field.checkLabel;\r\n }\r\n\r\n private doStateChangeUponValue(value: any): void {\r\n if (this.field.isTriStateCheckbox) {\r\n if (value === this.field.uncheckedValue) {\r\n this.isChecked = false;\r\n this.isIndeterminateState = false;\r\n } else if (value === this.field.checkedValue) {\r\n this.isChecked = true;\r\n this.isIndeterminateState = false;\r\n } else {\r\n this.isChecked = false;\r\n this.isIndeterminateState = true;\r\n }\r\n }\r\n }\r\n\r\n public onChange(element: Element, event: Event): boolean {\r\n if (!!event && event.type === 'keydown') {\r\n event.preventDefault();\r\n }\r\n if (!this.viewReadonly) {\r\n // update the form control\r\n let newValue: string = this.field.defaultValue;\r\n if (!this.field.isTriStateCheckbox) {\r\n this.isChecked = !this.isChecked;\r\n } else {\r\n if (this.isChecked) {\r\n // checked to indeterminate\r\n this.isChecked = false;\r\n this.isIndeterminateState = true;\r\n } else if (this.isIndeterminateState) {\r\n // indeterminate to unchecked\r\n this.isChecked = false;\r\n this.isIndeterminateState = false;\r\n } else {\r\n // unchecked to checked\r\n this.isChecked = true;\r\n this.isIndeterminateState = false;\r\n }\r\n }\r\n if (this.isChecked && this.field.checkedValue) {\r\n newValue = this.field.checkedValue;\r\n } else if (!this.isChecked) {\r\n if (!this.isIndeterminateState && this.field.uncheckedValue) {\r\n newValue = this.field.uncheckedValue;\r\n } else {\r\n newValue = null;\r\n }\r\n }\r\n\r\n // perform any required field control actions\r\n if (this.parent) {\r\n this.parent.updateControlValue(newValue, true);\r\n this.parent.fieldChanged();\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","/**\r\n * Created by kevin on 2016-11-10.\r\n */\r\nimport { Component, Input, OnChanges, ElementRef, ViewChild, HostListener } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FormField, SelectItem } from '../models/form-field';\r\nimport { DynamicFormComponent } from './dynamic-form.component';\r\nimport { Util, UserInterface } from '../utils/utils.module';\r\nimport { LocalizeService } from '../services/localize.service';\r\nimport { LookupService, CacheItem } from '../services/lookup.service';\r\n\r\n@Component({\r\n selector: 'edx-dynamic-form-field',\r\n styleUrls: ['dynamic-form-field.component.scss'],\r\n templateUrl: 'dynamic-form-field.component.html'\r\n})\r\nexport class DynamicFormFieldComponent implements OnChanges {\r\n @Input() field: FormField;\r\n @Input() form: FormGroup;\r\n @Input() parent: DynamicFormComponent;\r\n @Input() inDialog: boolean;\r\n @Input() inNotify: boolean;\r\n @Input() showExtras: boolean;\r\n @Input() formReadonly: boolean;\r\n @Input() first: boolean;\r\n @Input() formLayout: string;\r\n @Input() extensionShown: boolean;\r\n @Input() single?: boolean;\r\n @Input() rerender = 0;\r\n @Input() fieldLabel?: string = null;\r\n @Input() itemIndex?: number = -1;\r\n @Input() fieldsLength?: number = -1;\r\n @Input() tabIndex = 0;\r\n @ViewChild('editInput') editInput: ElementRef;\r\n @ViewChild('dropList') dropList: ElementRef;\r\n @ViewChild('datePicker') datePicker: ElementRef;\r\n public ui: UserInterface;\r\n public iOS: boolean;\r\n public android: boolean;\r\n public safari: boolean;\r\n public firefox: boolean;\r\n public edge: boolean;\r\n public ie: boolean;\r\n public officeAddin: boolean;\r\n public officeAddinDesktop: boolean;\r\n public viewReadonly: boolean;\r\n public showStr: string;\r\n public moreStr: string;\r\n private active = false;\r\n private inFocus = false;\r\n private ignoreLookupBlur = false;\r\n private masterList: CacheItem[] = [];\r\n private suggestions: CacheItem[] = [];\r\n private currentItem: CacheItem = null;\r\n private ulLeft: string = null;\r\n private ulTop: string = null;\r\n private usingLookupData = false;\r\n private showingHits = false;\r\n private lastSelectedValue = '';\r\n private height = '';\r\n private bgImage: string = null;\r\n private mdFuncSig: any = null;\r\n private datepickerStr = '';\r\n\r\n constructor(private localizer: LocalizeService, private lookupService: LookupService ) {\r\n this.ui = Util.Device.ui;\r\n this.iOS = Util.Device.bIsIOSDevice;\r\n this.android = Util.Device.bIsAndroid;\r\n this.firefox = Util.Device.bIsFirefox;\r\n this.safari = Util.Device.bIsSafari;\r\n this.edge = Util.Device.bIsEdge;\r\n this.ie = Util.Device.bIsIE;\r\n this.officeAddin = Util.Device.bIsOfficeAddin;\r\n this.officeAddinDesktop = Util.Device.bIsOfficeAddinDesktop;\r\n this.showStr = this.localizer.getTranslation('FORMS.BUTTONS.SHOW');\r\n this.moreStr = this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n this.datepickerStr = this.localizer.getTranslation('ALT_TEXT.DATEPICKER');\r\n }\r\n\r\n ngOnChanges(): void {\r\n const descReadOnly = !!this.parent && this.parent.desc && (['18', '19'].indexOf(this.parent.desc['STATUS']) > -1 || this.parent.desc['READONLY'] === 'Y' || (this.parent.desc['STORAGE'] === 'T' && !Util.RestAPI.canUserManageTemplates()));\r\n if (!this.field.isReadonly && descReadOnly && this.parent.formKind === '__local_permissions_selector' && this.parent.desc['SECURITY'] !== '1') {\r\n this.field.isReadonly = true;\r\n }\r\n this.viewReadonly = this.field.isReadonly || this.formReadonly || !this.field.isEnabled;\r\n this.tabIndex = !!this.parent ? this.parent.tabIndex : 0;\r\n this.active = this.hasLookup() && !this.viewReadonly;\r\n if (this.field.controltype === 'edittext') {\r\n this.height = 1.75 * this.field.rows + 'rem';\r\n }\r\n // Rerender is incremented in DynamicFormComponent to trigger rerendering so that\r\n // field.lookupData can be passed to the this component OnChange\r\n this.imgButtonDefault();\r\n setTimeout(() => {\r\n if (this.field.rerender !== this.field.lastRerenderIndex && this.field.lookupData !== null && this.editInput) {\r\n this.field.lastRerenderIndex = this.field.rerender;\r\n if (this.field.lookupData.length === 1) {\r\n // Single hit on lookup\r\n this.itemSelected(this.field.lookupData[0], null);\r\n this.field.lookupData = null;\r\n } else {\r\n this.masterList = Util.deepCopy(this.field.lookupData) as CacheItem[];\r\n this.field.lookupData = null;\r\n if (this.masterList.length === 0) {\r\n // No hit on lookup - use suggestion list\r\n this.showHideSuggestions(false);\r\n this.parent.clearFieldValueAndDesc(this.field.name);\r\n this.parent.clearFieldValueAndDescOfDependents(this.field);\r\n this.parent.clearFieldValueAndDescOfChildren(this.field);\r\n this.refreshDropDownList();\r\n } else {\r\n // Multiple hit on lookup\r\n if (!this.field.scheduledForRevalidation) {\r\n // Use hit list\r\n this.showHideSuggestions(true);\r\n this.suggestions = this.getSuggestions();\r\n this.positionList();\r\n } else {\r\n // Ignore multiple hits on auto-validation of lookup\r\n this.field.scheduledForRevalidation = false;\r\n this.field.autoValidated = true;\r\n }\r\n }\r\n }\r\n } else {\r\n // Active lookup fields that were auto-validated must retain their lastSelectedValue at rerender time\r\n if (this.active && this.field.autoValidated) {\r\n this.lastSelectedValue = this.field.lastLookupValue;\r\n }\r\n this.checkLayout();\r\n }\r\n }, 1);\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize(): void {\r\n if (Util.Device.bIsAndroid) {\r\n setTimeout(() => {\r\n this.checkLayout();\r\n }, 1);\r\n }\r\n }\r\n\r\n public getAltLabel(field: FormField): string {\r\n if (['$edx_file_picker','$edx_folder_picker'].indexOf(field.lookup) !== -1) {\r\n return this.localizer.getTranslation('ALT_TEXT.LOCATION_CHOOSER');\r\n }\r\n return this.localizer.getTranslation('TOOLTIP.SELECT_LOOKUP',[field.name]);\r\n }\r\n\r\n public hasLabel(): boolean {\r\n return !!this.field.label && this.field.fldtype !== 'box' && this.field.fldtype !== 'guidetext' && this.field.fldtype !== 'text'\r\n && !this.field.isExtension && this.field.fldtype!=='list' && (this.field.fldtype !== 'push' || (this.field.fldtype === 'push' && !!this.field.checkLabel))\r\n && (this.field.fldtype !== 'checkbox' || !this.formReadonly || this.formLayout !== 'column');\r\n }\r\n\r\n private stripLabel(oldLabel: string): string {\r\n const result: string = oldLabel ? oldLabel.replace(/[*:\\[\\]{}()]/g, '') : null;\r\n return result;\r\n }\r\n\r\n private inputType(): string {\r\n return this.field.name.startsWith('$edx_email') ? 'email' : this.field.name.startsWith('$edx_url') ? 'url' : this.field.isPassword ? 'password' : 'text';\r\n }\r\n\r\n private maxLen(): number {\r\n let max: number = null;\r\n if (!this.parent.formKind.startsWith('profile_query') && !this.field.mvinfo && this.field.maxChars > 0) {\r\n // let the validator handle max len as we could have many file names\r\n if (this.field.name !== 'DOCNAME') {\r\n max = this.field.maxChars;\r\n }\r\n }\r\n return max;\r\n }\r\n\r\n private hasDatePicker(): boolean {\r\n return !this.officeAddinDesktop && (this.ui !== 0 || !this.safari);\r\n }\r\n\r\n private placeholders(key: string, isExtension?: boolean): string {\r\n let result = '';\r\n if (this.field.lookup==='$edx_file_picker') {\r\n key = 'FILE';\r\n } else if (this.field.lookup==='$edx_folder_picker') {\r\n key = 'FOLDER';\r\n } else if (this.field.name.startsWith('$edx_email')) {\r\n key = 'EMAIL';\r\n } else if (this.field.name==='$edx_folder_picker') {\r\n key = 'MESSAGE';\r\n } else if (this.field.name.startsWith('$edx_advsearch_') && (this.field.name!=='$edx_advsearch_exact_phrase' && this.field.name!=='$edx_advsearch_word_prox')) {\r\n key = 'ADVSEARCH_INPUT';\r\n }\r\n if (this.parent) {\r\n result = this.parent.placeholders(this.viewReadonly, isExtension)[key];\r\n }\r\n return result;\r\n }\r\n\r\n public buttonClicked(event: Event): void {\r\n if (this.parent) {\r\n this.parent.buttonClicked(this.field);\r\n }\r\n }\r\n\r\n public shiftCheckBoxFocus(event: KeyboardEvent, cbIndex: number): void {\r\n if (cbIndex >= 0 && cbIndex < this.fieldsLength) {\r\n const checkboxId = this.getCheckboxId(cbIndex);\r\n if (!!checkboxId) {\r\n const cbElement = document.getElementById(checkboxId) as HTMLElement;\r\n if (!!cbElement) {\r\n cbElement.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n public getCheckboxId(index: number): string {\r\n return !!this.fieldLabel ? ('edx_cb_' + this.fieldLabel.toLowerCase().replace(' ', '_') + '_' + index) : (!!this.field.name && (this.field.name === 'dont_show' || this.field.name === 'auto') ? 'edx_cbfooter_' + index : null);\r\n }\r\n\r\n private doLookup(event: Event): void {\r\n if (this.parent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.parent.doLookup(this.field);\r\n }\r\n }\r\n\r\n private doPreLookup(event: Event): void {\r\n this.ignoreLookupBlur = true;\r\n this.parent.validationBlocking(true);\r\n }\r\n\r\n public hasLookup(): boolean {\r\n return !!this.field.lookup && !this.field.isReadonly && (this.field.lookup.startsWith('$edx_') || this.field.lookup.indexOf('@RM.DLL') > -1 || (this.parent && this.parent.hasLookupTable(this.field.lookup)));\r\n }\r\n\r\n public wantsValidateOnBlur(): boolean {\r\n return this.hasLookup() && this.parent && this.parent.needsAsyncValidator && this.parent.needsAsyncValidator(this.field);\r\n }\r\n\r\n public updateControlValue(value: string, makeDirty: boolean): void {\r\n if (this.parent) {\r\n this.parent.updateControlValue(this.field.name, value, makeDirty);\r\n }\r\n }\r\n\r\n public fieldChanged(): boolean {\r\n let changed = false;\r\n if (this.parent && this.field) {\r\n changed = this.parent.fieldChanged(this.field);\r\n }\r\n return changed;\r\n }\r\n\r\n public editTextFocus(event: Event): void {\r\n // time for the keyboard to move the view up on mobile\r\n const delayDropDown = Util.Device.isMobile() && !Util.Device.bIsOfficeAddin ? 300 : 1;\r\n if (this.field.lookup && this.field.lookup.startsWith('$edx_')) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n this.inFocus = true;\r\n setTimeout(() => {\r\n this.refreshDropDownList();\r\n this.suggestions = this.getSuggestions();\r\n this.positionList();\r\n }, delayDropDown);\r\n }\r\n\r\n public editTextBlur(event: Event): void {\r\n if (!this.ignoreLookupBlur && this.parent && this.field && !!this.editInput && !!this.editInput.nativeElement) {\r\n if ((this.field.lastLookupValue === this.editInput.nativeElement.value) && (this.lastSelectedValue !== this.editInput.nativeElement.value) && !this.field.autoValidated) {\r\n this.editInput.nativeElement.value = '';\r\n this.lastSelectedValue = '';\r\n this.field.lastLookupValue = '';\r\n this.parent.updateControlValue(this.field.name, this.editInput.nativeElement.value, true);\r\n this.parent.setFieldDesc(this.field.name, '');\r\n }\r\n this.parent.fieldChanged(this.field);\r\n }\r\n if (this.ignoreLookupBlur || (!!this.editInput && !!this.editInput.nativeElement && this.field.lastLookupValue !== this.editInput.nativeElement.value)) {\r\n this.ignoreLookupBlur = false;\r\n }\r\n this.inFocus = false;\r\n }\r\n\r\n private checkboxChanged(checkboxValue: string, event?: Event) {\r\n if (!!event && event.type === 'keydown') {\r\n event.preventDefault();\r\n }\r\n // update the form control\r\n let oldValue: string; let newValue: string;\r\n //get the checkbox group control\r\n const control: any = this.parent ? this.parent.getControl(this.field.name) : {};\r\n //check whether the checkbox is readonly(disabled) or not.\r\n if (!this.isCheckboxReadonly(checkboxValue)) {\r\n oldValue = control.value || '';\r\n if (checkboxValue) {\r\n //toggle the checkboxes\r\n oldValue = (oldValue.indexOf(checkboxValue) >= 0) ? oldValue.replace(checkboxValue, '') : oldValue + ',' + checkboxValue;\r\n }\r\n //to get the values in correct order, get the checkbox buttons\r\n const buttonsMap: SelectItem[] = this.field.buttonMap;\r\n if (buttonsMap) {\r\n //get the selected checkbox values and join them with ','\r\n newValue = buttonsMap.filter((button) => (oldValue.indexOf(button.value) >= 0))\r\n .map((button) => button.value).join(',');\r\n //update the field value with the selected checkbox values\r\n if (this.parent) {\r\n this.parent.updateControlValue(this.field.name, newValue, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isCheckboxChecked(checkboxValue: string): boolean {\r\n const control: any = this.parent ? this.parent.getControl(this.field.name) : {};\r\n const fieldValue: string = control.value || '';\r\n return fieldValue.indexOf(checkboxValue) >= 0;\r\n }\r\n\r\n private setDateFormat(event: Event, fieldName: string): void {\r\n const element: any = event.currentTarget as HTMLInputElement;\r\n const fieldValue = element ? element.value : '';\r\n let date = '';\r\n if (fieldValue) {\r\n const currentDt: any = new Date(fieldValue);\r\n let mm: any = currentDt.getUTCMonth() + 1;\r\n mm = mm < 10 ? '0' + mm : mm;\r\n let dd: any = currentDt.getUTCDate();\r\n dd = dd < 10 ? '0' + dd : dd;\r\n const yyyy: number = currentDt.getUTCFullYear();\r\n date = yyyy + '-' + mm + '-' + dd;\r\n }\r\n this.parent.updateControlValue(fieldName, date, true);\r\n this.fieldChanged();\r\n }\r\n\r\n private dateInputChanged(event: Event): void {\r\n if (this.datePicker) {\r\n const element: any = event.currentTarget as HTMLInputElement;\r\n const fieldValue = element ? element.value : '';\r\n this.datePicker.nativeElement.value = fieldValue;\r\n }\r\n this.fieldChanged();\r\n }\r\n\r\n private getDescriptionForTooltip(): string {\r\n let description: string = null;\r\n if (((this.field.isExtension && !this.field.defaultValue) || this.viewReadonly || this.field.name === '%CHECKIN_LOCATION') && (this.field.name !== 'DOCNUM' || !isNaN(+this.parent.getFieldValue(this.field.name)))) {\r\n description = this.parent.getFieldValue(this.field.name);\r\n }\r\n if (!description && !this.viewReadonly) {\r\n description = this.placeholders(this.field.controltype,this.field.isExtension);\r\n }\r\n return description || '';\r\n }\r\n\r\n public isCheckboxReadonly(checkboxvalue: string): boolean {\r\n if (this.field.disabledCheckbox && this.field.disabledCheckbox.length > 0) {\r\n const field = this.field.disabledCheckbox.filter(button => button.value === checkboxvalue);\r\n if (field.length > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n // Drop down \"look-ahead\" list methods\r\n private refreshDropDownList(): void {\r\n if (this.active) {\r\n if (!this.usingLookupData) {\r\n const cacheKey = this.parent.getCacheKey(this.field.name);\r\n this.masterList = this.lookupService.getSuggestionCache(cacheKey);\r\n } else {\r\n this.usingLookupData = false;\r\n }\r\n }\r\n this.checkLayout();\r\n }\r\n\r\n private checkDismissSuggestions(event: Event): void {\r\n const dropListEl = !!this.dropList ? this.dropList.nativeElement : null;\r\n const isChildOrTarget = (el): boolean => {\r\n while (!!el) {\r\n if (el === dropListEl) {\r\n return true;\r\n }\r\n el = el.parentElement;\r\n }\r\n return false;\r\n };\r\n if (event.target && !isChildOrTarget(event.target)) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n this.showHideSuggestions(false);\r\n this.parent.markForCheck();\r\n }, 1);\r\n }\r\n }\r\n\r\n private showHideSuggestions(show: boolean): void {\r\n this.usingLookupData = show;\r\n if (show) {\r\n this.mdFuncSig = this.checkDismissSuggestions.bind(this);\r\n addEventListener('mousedown', this.mdFuncSig);\r\n } else {\r\n removeEventListener('mousedown', this.mdFuncSig);\r\n this.mdFuncSig = null;\r\n this.showingHits = false;\r\n }\r\n }\r\n\r\n private checkLayout(): void {\r\n if (this.editInput) {\r\n let topParentHeight: number = window.innerHeight;\r\n const pageOffset = element => {\r\n let top = 0;\r\n do {\r\n top -= element.scrollTop || 0;\r\n if (element.tagName !== 'TBODY') {\r\n top += element.offsetTop || 0;\r\n }\r\n if (element.tagName === 'TD') {\r\n // go up past the tr to the tbody\r\n element = element.parentElement.parentElement;\r\n } else {\r\n element = element.offsetParent;\r\n }\r\n if (element && element.classList.contains('popup')) {\r\n const bodies = element.getElementsByClassName('body');\r\n if (!!bodies && bodies.length>0) {\r\n const body = bodies[0];\r\n topParentHeight = body.clientHeight;\r\n // remove the body offset top\r\n top -= body.offsetTop;\r\n } else {\r\n topParentHeight = element.clientHeight;\r\n }\r\n element = null;\r\n }\r\n } while (element);\r\n return top;\r\n };\r\n const input = this.editInput.nativeElement;\r\n let offsetTop = pageOffset(input);\r\n setTimeout(() => {\r\n const ulHeight: number = this.dropList && this.dropList.nativeElement ? this.dropList.nativeElement.clientHeight : 0;\r\n if ((offsetTop + input.offsetHeight + ulHeight) > topParentHeight) {\r\n offsetTop = input.offsetTop - ulHeight;\r\n } else {\r\n offsetTop = input.offsetTop + input.offsetHeight;\r\n }\r\n this.ulTop = offsetTop.toString() + 'px';\r\n this.ulLeft = input.offsetLeft + 'px';\r\n this.parent.markForCheck();\r\n }, 10);\r\n }\r\n }\r\n\r\n private positionList(): void {\r\n if (this.editInput) {\r\n const input = this.editInput.nativeElement;\r\n const top: number = input.offsetTop + input.offsetHeight;\r\n this.ulTop = top + 'px';\r\n this.ulLeft = input.offsetLeft + 'px';\r\n this.checkLayout();\r\n this.parent.markForCheck();\r\n }\r\n }\r\n\r\n private scrollIntoView(index: number): void {\r\n if (this.dropList && this.dropList.nativeElement) {\r\n const currentScrollTop: number = this.dropList.nativeElement.scrollTop;\r\n const ulHeight: number = this.dropList.nativeElement.offsetHeight;\r\n const curLI: HTMLLIElement = Array.from(this.dropList.nativeElement.children)[index] as HTMLLIElement;\r\n const liTop = curLI.offsetTop;\r\n const liHeight = curLI.offsetHeight;\r\n if ((liTop < currentScrollTop) || ((currentScrollTop+ulHeight)-liTop < liHeight)) {\r\n this.dropList.nativeElement.scrollTop = liTop;\r\n }\r\n }\r\n }\r\n\r\n private nav(inc: number): void {\r\n if (this.showingHits && !!this.suggestions && this.suggestions.length) {\r\n const item: CacheItem = this.currentItem;\r\n let index: number = this.suggestions.indexOf(item);\r\n const doInc = () => {\r\n index += inc;\r\n if (index<0) {\r\n index = 0;\r\n } else if (index >= this.suggestions.length) {\r\n index = this.suggestions.length-1;\r\n }\r\n };\r\n doInc();\r\n if (this.suggestions[index].id === '-') {\r\n doInc();\r\n }\r\n this.currentItem = this.suggestions[index];\r\n this.scrollIntoView(index);\r\n }\r\n }\r\n\r\n public editTextKeyUp(event: KeyboardEvent): void {\r\n if (this.active) {\r\n switch (event.key) {\r\n case ' ': {\r\n if (this.currentItem) {\r\n this.itemSelected(this.currentItem, event);\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.parent.fieldChanged(this.field);\r\n // Synthetic blur since onKeyUp would activate validation always\r\n this.editInput.nativeElement.blur();\r\n break;\r\n }\r\n case 'ArrowDown': {\r\n this.nav(1);\r\n break;\r\n }\r\n case 'ArrowUp': {\r\n this.nav(-1);\r\n break;\r\n }\r\n default: {\r\n this.currentItem = null;\r\n this.suggestions = this.getSuggestions();\r\n if (this.form && this.parent && this.parent.controller && this.parent.controller.enableOK) {\r\n setTimeout(() => {\r\n this.parent.controller.enableOK(this.form.valid, this.form.dirty);\r\n }, 1);\r\n }\r\n this.checkLayout();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public getSuggestions(): CacheItem[] {\r\n let sublist: CacheItem[] = [];\r\n let isFound = false;\r\n let addedDash = false;\r\n let shouldAddDash = false;\r\n let tokens: string[] = [];\r\n const inputElemet = this.editInput.nativeElement;\r\n const query = inputElemet.value.toLowerCase();\r\n\r\n if (!!this.field.hits && !!this.field.hits.length) {\r\n let hits = this.field.hits;\r\n if (!!hits[0].parent) {\r\n hits = hits[0].value;\r\n }\r\n sublist = hits.map(h => new CacheItem(h.value,h.desc,''+h.rank+'%'));\r\n shouldAddDash = true;\r\n }\r\n for (const item of this.masterList) {\r\n isFound = false;\r\n if (query.length) {\r\n tokens = item.desc.split(' ');\r\n tokens.push(item.id);\r\n for (const token of tokens) {\r\n if (token.toLowerCase().indexOf(query) === 0) {\r\n isFound = true;\r\n }\r\n }\r\n }\r\n if ((isFound || query.length === 0) && !sublist.find(i => i.id === item.id)) {\r\n if (!addedDash && shouldAddDash) {\r\n sublist.push(new CacheItem('-','-'));\r\n addedDash = true;\r\n }\r\n sublist.push(item);\r\n }\r\n }\r\n this.showingHits = true;\r\n return sublist;\r\n }\r\n\r\n private deleteSuggestion(item: CacheItem, event?: Event): void {\r\n const cacheKey = this.parent.getCacheKey(this.field.name);\r\n if (cacheKey) {\r\n this.lookupService.removeFromSuggestionCache(cacheKey, item);\r\n this.refreshDropDownList();\r\n this.suggestions = this.getSuggestions();\r\n this.checkLayout();\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n private itemSelected(item: CacheItem, event?: Event): void {\r\n const scheduledForRevalidate = () => {\r\n if (!this.field.scheduledForRevalidation) {\r\n // Adjust parent fields\r\n this.parent.setFieldValueAndDescOfParents(this.field, item.data);\r\n // Togle value to top of suggestions\r\n const cacheKey = this.parent.getCacheKey(this.field.name);\r\n if (cacheKey) {\r\n this.lookupService.toggleToTopOfSuggestionCache(cacheKey, item);\r\n }\r\n }\r\n if (event) {\r\n // Presence of event indicates a physically selected item froma a suggestion list\r\n // either with a mouse, tab or tap on mobile device\r\n if (item && item.data) {\r\n this.parent.scanFieldsForRevalidatonOrEvaluation(item.data, this.field.name);\r\n }\r\n }\r\n };\r\n if (item.id === '-') {\r\n this.usingLookupData = true;\r\n } else {\r\n // Selecting an item from the lookupData or suggestions does not need validation\r\n this.parent.validationBlocking(true);\r\n // Do not clear child fields if same item selected again\r\n if (this.lastSelectedValue !== item.id) {\r\n this.parent.clearFieldValueAndDescOfChildren(this.field);\r\n this.lastSelectedValue = item.id;\r\n }\r\n this.editInput.nativeElement.value = item.id;\r\n // Set field value and description\r\n this.parent.updateControlValue(this.field.name, this.editInput.nativeElement.value, true);\r\n this.parent.setFieldDesc(this.field.name, item.desc);\r\n if (this.showingHits) {\r\n let setChild = false;\r\n const childField = this.parent.getField(this.field.childField);\r\n if (!!childField && childField.hits) {\r\n const parentHits = childField.hits.find(h => h.parent===item.id);\r\n if (!!parentHits && !!parentHits.value && !!parentHits.value.length) {\r\n this.parent.updateControlValue(childField.name, parentHits.value[0].value, true);\r\n this.parent.setFieldDesc(childField.name, parentHits.value[0].desc);\r\n setChild = true;\r\n }\r\n }\r\n if (!setChild) {\r\n scheduledForRevalidate();\r\n }\r\n } else {\r\n scheduledForRevalidate();\r\n }\r\n if (this.field.scheduledForRevalidation) {\r\n this.field.scheduledForRevalidation = false;\r\n // This will prevent recursion on fields that are recursed in lookups (like revalidate CLIENT_ID\r\n // but then you attempt to revalidate it again because it appears in the MATTER_ID lookup also!!)\r\n this.field.autoValidated = true;\r\n }\r\n this.field.lastLookupValue = item.id;\r\n this.suggestions = [];\r\n this.inFocus = false;\r\n this.usingLookupData = false;\r\n setTimeout(() => {\r\n this.parent.validationBlocking(false);\r\n this.parent.focusOnFirstEmptyEditable();\r\n }, 1);\r\n }\r\n }\r\n\r\n private imgButtomModify(mod: string): void {\r\n if (!!this.field.buttonImg) {\r\n const icon: string = this.field.buttonImg.split('.svg')[0];\r\n this.bgImage = 'url(assets/images/'+icon+'_' + mod + '.svg)';\r\n }\r\n }\r\n\r\n private imgButtonHover(): void {\r\n this.imgButtomModify('mo');\r\n }\r\n\r\n private imgButtonDown(): void {\r\n this.imgButtomModify('md');\r\n }\r\n\r\n private imgButtonDefault(): void {\r\n if (!!this.field.buttonImg) {\r\n this.bgImage = 'url(assets/images/'+this.field.buttonImg+')';\r\n }\r\n }\r\n\r\n public editTextPaste(event: ClipboardEvent) {\r\n if (this.inputType()==='url') {\r\n const el = event.target as HTMLInputElement;\r\n let data = event.clipboardData.getData('text/html');\r\n const start: number = data.indexOf('\"http');\r\n if (start !== -1) {\r\n data = data.substr(start+1);\r\n const end: number = data.indexOf('\"');\r\n if (end !== -1) {\r\n data = data.substr(0, end);\r\n el.value = data;\r\n setTimeout(() => {\r\n el.blur();\r\n }, 100);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getRadioCheckboxId(fieldName: string, index: number) {\r\n return 'edx_' + fieldName + '_' + index;\r\n }\r\n\r\n private focusOnRadioCheckbox(fieldName: string,index: number) {\r\n const id = this.getRadioCheckboxId(fieldName,index);\r\n const element = document.getElementById(id);\r\n if (!!element) {\r\n element.focus();\r\n }\r\n }\r\n}\r\n","\r\n
=2, phone: ui==2||ui==4, ios: iOS, android: android, firefox: firefox, safari: safari, edge: edge, ie: ie, oai:officeAddin, oaid: officeAddinDesktop,\r\n mainfield: !field.isExtension, extensionfield: field.isExtension, readonly: formReadonly, heading: field.fldtype === 'text' || field.fldtype === 'box',\r\n listfield: field.fldtype === 'list', indialog: !!inDialog, innotify: !!inNotify, columnview: formLayout === 'column', header: formLayout === 'header', first:first }\"\r\n [ngSwitch]=\"field.controltype\" [formGroup]=\"form\">\r\n\r\n \r\n\r\n \r\n \r\n \r\n
    0\" #dropList class=\"dropdown-list\" [style.top]=\"ulTop\" [style.left]=\"ulLeft\">\r\n
  • \r\n \r\n
    \r\n
    {{item.desc}}
    \r\n
    {{item.id}}
    \r\n
    \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
{{field.errormessage}}
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n {{button.display}}\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n
{{field.defaultValue}}
\r\n\r\n
{{field.defaultValue}}
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
{{field.errormessage}}
\r\n \r\n
{{field.statusMessage}}
\r\n
\r\n","/**\r\n * Created by kevin on 2016-11-29.\r\n *\r\n * Visual component that contains either 1 or 2 form fields - a primary field and an extension field\r\n *\r\n */\r\nimport { Component, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FormField } from '../models/form-field';\r\nimport { DynamicFormComponent } from './dynamic-form.component';\r\nimport { Util, UserInterface } from '../utils/utils.module';\r\n\r\n@Component({\r\n selector: '[edx-dynamic-form-row]',\r\n styleUrls: ['dynamic-form-row.component.scss'],\r\n template: `\r\n
=2, phone:phone,\r\n header:formLayout === 'header', readonly:isReadonly(), invalid:field.errormessage, indialog:inDialog, innotify:inNotify, single:single,\r\n nolabel:((!field.label && field.controltype!='box') || (field.controltype=='push' && !field.checkLabel)), inlineform:inlineForm}\">\r\n
=2, phone:phone, hasextension:hasExtension(), multiext:tablet&&getExtensionsCount()>1}\">\r\n \r\n
\r\n \r\n \r\n
1}\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n `\r\n})\r\nexport class DynamicFormRowComponent {\r\n private ui: UserInterface = Util.Device.ui;\r\n private phone: boolean = Util.Device.ui===2 || Util.Device.ui===4;\r\n private tablet: boolean = Util.Device.ui===3 || Util.Device.ui===5;\r\n @Input() field: FormField;\r\n @Input() form: FormGroup;\r\n @Input() parent: DynamicFormComponent;\r\n @Input() inDialog: boolean;\r\n @Input() inNotify: boolean;\r\n @Input() showExtras: boolean;\r\n @Input() formReadonly: boolean;\r\n @Input() single: boolean;\r\n @Input() fullWidth: boolean;\r\n @Input() inlineForm: boolean;\r\n @Input() first: boolean;\r\n @Input() formLayout: string;\r\n @Input() rerender: number;\r\n @Input() fieldLabel?: string = null;\r\n @Input() fieldsLength?: number = -1;\r\n @Input() itemIndex?: number = -1;\r\n\r\n private isReadonly(): boolean {\r\n return (this.formReadonly || (this.field.isReadonly && !this.formReadonly));\r\n }\r\n\r\n private hasExtension(): boolean {\r\n return this.field.hasExtension && (!this.single || (!!this.field.fields && this.field.fields[0].isVisible));\r\n }\r\n\r\n private showExtension(index: number): boolean {\r\n if (this.phone && index>1) {\r\n return false;\r\n }\r\n return this.hasExtension() && this.field.fields[index].isVisible;\r\n }\r\n\r\n private getExtensionsCount(): number {\r\n let nExtensions = 0;\r\n if (this.hasExtension() && this.field.fields && this.field.fields.length) {\r\n for (const sub of this.field.fields) {\r\n if (sub.isVisible) {\r\n ++nExtensions;\r\n }\r\n }\r\n }\r\n return nExtensions;\r\n }\r\n}\r\n","/**\r\n * Created by kevin on 2016-11-10.\r\n */\r\n\r\nimport { Input, Component, OnChanges, OnDestroy, ElementRef, ViewChild, HostListener, AfterViewChecked, ChangeDetectorRef, SimpleChange } from '@angular/core';\r\nimport { FormGroup, FormControl, ValidatorFn, AsyncValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { AWFileSystem, AWContacts } from 'appworks-js';\r\nimport { FormFieldDesc, FormField, FormUtils } from '../models/form-field';\r\nimport { Util, UserInterface, OrientationListener } from '../utils/utils.module';\r\nimport { BaseDesc } from '../models/base';\r\nimport { ColFormat } from '../models/column';\r\nimport { PopupCallback } from '../widgets/popup.component';\r\nimport { ListTableComponent, ListTableParent } from '../lists/list-table.component';\r\nimport { LocalizeService } from '../services/localize.service';\r\nimport { ListSecurityComponent } from '../lists/list-security.component';\r\nimport { ListItem } from '../models/list-item';\r\nimport { SecurityControl, AccessLevel } from '../models/security-control';\r\nimport { ListService } from '../services/list.service';\r\nimport { LookupService, CacheItem } from '../services/lookup.service';\r\nimport { ListFolderPickerComponent } from '../lists/list-folder-picker.component';\r\nimport { FileDropTargetDirective } from '../directives/drag-target.directive';\r\n\r\nexport interface FormController {\r\n fieldChanged?(field: FormField, control: AbstractControl, formFields: FormField[]): boolean;\r\n buttonClicked?(field: FormField, control: AbstractControl, formFields: FormField[]): void;\r\n uploadFiles?(files: File[], filePaths?: string[]): void;\r\n hasUploadFiles?(): boolean;\r\n fileNameForUpload?(): string;\r\n appIDForUpload?(): string;\r\n enableOK?(enable: boolean, inital?: boolean): void;\r\n getRightForm?(): DynamicFormComponent;\r\n getHeaderForm?(): DynamicFormComponent;\r\n getFormName?(): string;\r\n prefillInitialValuesForForm?(): void;\r\n allowFirstFocus?(): boolean;\r\n layoutChanged?(layout: string): void;\r\n securityDirty?(dirty: boolean): void;\r\n}\r\n@Component({\r\n selector: 'edx-dynamic-form',\r\n styleUrls: ['dynamic-form.component.scss'],\r\n template: `\r\n
=2, phone: ui===2||ui===4, profile:isProfileForm(), inlineparent:inlineParent, fullheight:!!fileDropTarget, persmisionsselector:isPersmisionsSelector, oai:isOfficeAddin, choosershidden:choosersHidden}\" [edx-file-drop-target]=\"fileDropTarget\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n =2\" [callback]=\"this\" [selectedLookupValues]=\"lookupInitalSearch\" [desc]=\"lookupDesc\" [lookupForm]=\"lookupForm\" [lookupKey]=\"lookupInitalKey\" [searchLookup]=\"fieldPrimaryKey\" [parent]=\"this\" [leadingColums]=\"lookupLeadingColums\" [formType]=\"formKind\" [hasFootprint]=\"true\" [viewKind]=\"!!lookupLeadingColums?0:1\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n `\r\n})\r\nexport class DynamicFormComponent implements OnChanges, OnDestroy, AfterViewChecked, PopupCallback, ListTableParent, OrientationListener {\r\n @ViewChild('lookupTable') private lookupTable: ListTableComponent;\r\n @ViewChild('formEl') formEl: ElementRef;\r\n @ViewChild('security') private security: ListSecurityComponent;\r\n @ViewChild('fileplans') private fileplans: ListFolderPickerComponent;\r\n @Input() desc: BaseDesc;\r\n @Input() data: any = {};\r\n @Input() formTemplate: any;\r\n @Input() inDialog?: boolean = false;\r\n @Input() inNotify?: boolean = false;\r\n @Input() readOnly?: boolean = false;\r\n @Input() choosersHidden?: boolean = false;\r\n @Input() formKind?: string = null;\r\n @Input() createType?: string = null;\r\n @Input() controller?: FormController;\r\n @Input() layout?: string = null;\r\n @Input() inlineParent?: DynamicFormComponent = null;\r\n @Input() fileDropTarget?: FileDropTargetDirective = null;\r\n @Input() tabIndex = 0;\r\n public form: FormGroup;\r\n public fullWidth = false;\r\n public standInBodyHeight = 0;\r\n public loadingCount = 0;\r\n public formLayout: string;\r\n public lookupShown = false;\r\n public securityShown = false;\r\n public fileplansShown = false;\r\n public trusteesDirective = 'replace';\r\n public originalAuthor: string;\r\n protected userSecurity: SecurityControl = null;\r\n protected extrasShown = false;\r\n private fields: FormField[];\r\n private lookupField: FormField = null;\r\n private lookupDesc: BaseDesc = {lib:'',id:'',type:'lookups'};\r\n private lookupForm = '';\r\n private lookupTitle = '';\r\n private lookupOKTitle = '';\r\n private lookupInitalSearch = '';\r\n private fieldPrimaryKey = '';\r\n private isLookupParentEmpty = false;\r\n private lookupInitalKey: string;\r\n private lookupFilterValue: string;\r\n private lookupNoWildcard = false;\r\n private lookupIsNumeric = false;\r\n private lookupOKDisabled = true;\r\n private lookupLeadingColums: number[] = null;\r\n private formScrollTop = 0;\r\n private electronDialogShown = false;\r\n private _placeholders: any;\r\n private _errors: any;\r\n private initialValue: any;\r\n private layoutComplete = false;\r\n private securityDesc: any = {};\r\n private securityKind = '';\r\n private securityTitle = '';\r\n private securityOK = '';\r\n private securityList: ListItem[];\r\n private bMassProfileUpdate = false;\r\n private dialogWidth: number = Util.kMaxPopupDialogWidth;\r\n private savedFormData: any = null;\r\n private blockValidation = 0;\r\n private savedFilteredCriteria: any = {};\r\n private ui: UserInterface;\r\n private isOfficeAddin: boolean;\r\n private inlineFormField: FormField = null;\r\n private isPersmisionsSelector = false;\r\n private fileplansDesc: any = {};\r\n private fileplansTitle = '';\r\n private fileplansOK = '';\r\n private pickerForm: string = null;\r\n private pickerLeadingColums: number[] = null;\r\n private pickerDisableList: ListItem[] = null;\r\n private isOfficeItemOptionChanged = false;\r\n\r\n constructor(protected listService: ListService, private lookupService: LookupService, private localizer: LocalizeService, private cdr: ChangeDetectorRef) {\r\n this._placeholders = {\r\n readwrite: {\r\n TEXT: this.localizer.getTranslation('FORMS.PLACEHOLDERS.TEXT'),\r\n TEXTAREA: this.localizer.getTranslation('FORMS.PLACEHOLDERS.TEXTAREA'),\r\n NUMBER: this.localizer.getTranslation('FORMS.PLACEHOLDERS.NUMBER'),\r\n SELECT: this.localizer.getTranslation('FORMS.PLACEHOLDERS.SELECT'),\r\n DATE: this.localizer.getTranslation('FORMS.PLACEHOLDERS.DATE'),\r\n FILE: this.localizer.getTranslation('FORMS.PLACEHOLDERS.FILE'),\r\n FOLDER: this.localizer.getTranslation('FORMS.PLACEHOLDERS.FOLDER'),\r\n EMAIL: this.localizer.getTranslation('FORMS.PLACEHOLDERS.EMAIL'),\r\n MESSAGE: this.localizer.getTranslation('FORMS.PLACEHOLDERS.MESSAGE'),\r\n ADVSEARCH_INPUT: this.localizer.getTranslation('FORMS.PLACEHOLDERS.ADVANCESEARCH_INPUT') // for input fields in advancesearch.\r\n },\r\n readonly: {\r\n TEXT: '',\r\n TEXTAREA: '',\r\n NUMBER: '',\r\n SELECT: '',\r\n DATE: '',\r\n FILE: '',\r\n FOLDER: ''\r\n }\r\n };\r\n this._errors = {\r\n MISSING: this.localizer.getTranslation('FORMS.ERRORS.MISSING'),\r\n HIGH: this.localizer.getTranslation('FORMS.ERRORS.HIGH'),\r\n LOW: this.localizer.getTranslation('FORMS.ERRORS.LOW'),\r\n LONG: this.localizer.getTranslation('FORMS.ERRORS.LONG'),\r\n LOOKUP: this.localizer.getTranslation('FORMS.ERRORS.LOOKUP'),\r\n FILE_PICKER: this.localizer.getTranslation('FORMS.ERRORS.FILE_PICKER'),\r\n EMAIL: this.localizer.getTranslation('FORMS.ERRORS.EMAIL'),\r\n DOMAIN: this.localizer.getTranslation('FORMS.ERRORS.DOMAIN'),\r\n FOLDER_PICKER: this.localizer.getTranslation('FORMS.ERRORS.FOLDER_PICKER'),\r\n INVALID_NAME: this.localizer.getTranslation('FORMS.ERRORS.INVALID_NAME'),\r\n INVALID_DOCNUM: this.localizer.getTranslation('FORMS.ERRORS.INVALID_DOCNUM'),\r\n INVALID_DATE: this.localizer.getTranslation('FORMS.ERRORS.INVALID_DATE')\r\n };\r\n this.lookupOKTitle = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n this.ui = Util.Device.ui;\r\n this.isOfficeAddin = Util.Device.bIsOfficeAddin;\r\n this.formLayout = (this.ui<2 || this.readOnly) ? 'page' : 'column';\r\n Util.Device.registerOrientationListener(this);\r\n }\r\n\r\n ngOnDestroy() {\r\n Util.Device.deregisterOrientationListener(this);\r\n }\r\n\r\n ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {\r\n if ((!!changes['formTemplate'] || !!changes['data']) && !!this.formTemplate && this.formTemplate.defs) {\r\n ++this.blockValidation;\r\n this.initialValue = {};\r\n let rights = 255;\r\n if (!!this.data) {\r\n if (this.data['rights']) {\r\n rights = this.data['rights'];\r\n } else if (this.data['%EFFECTIVE_RIGHTS']) {\r\n rights = this.data['%EFFECTIVE_RIGHTS'];\r\n }\r\n if (this.formKind.startsWith('profile') && !this.createType && !!this.data['DOCUMENTS'] && this.data['DOCUMENTS'].length > 1) {\r\n this.bMassProfileUpdate = true;\r\n }\r\n }\r\n this.isPersmisionsSelector = this.formTemplate.name.startsWith('permissions_selector');\r\n if (!this.userSecurity) {\r\n this.userSecurity = new SecurityControl(rights);\r\n } else {\r\n this.userSecurity.access = rights;\r\n }\r\n if (this.formKind.startsWith('profile')) {\r\n if (!this.userSecurity.canEditProfile) {\r\n this.readOnly = true;\r\n } else if (!this.userSecurity.canControlAccess) {\r\n if (this.isPersmisionsSelector) {\r\n this.readOnly = true;\r\n }\r\n }\r\n }\r\n if (!!changes['formTemplate']) {\r\n if (this.formTemplate.extrasshown && !this.extrasShown) {\r\n this.extrasShown = true;\r\n }\r\n this.fullWidth = this.formTemplate.fullwidth;\r\n this.createFieldsFromTemplate(this.formTemplate.defs);\r\n this.form.setValue(this.initialValue);\r\n }\r\n if (this.data) {\r\n if (this.desc && this.desc.type === 'workspaces') {\r\n if (!this.data['X1237']) {\r\n this.data['X1237'] = this.data['DOCNAME'];\r\n }\r\n }\r\n if (this.formKind === 'profile' || this.formKind === 'profile_copy' || this.formKind === 'profile_savetoedocs') {\r\n if (this.createType === 'documents' || this.createType === 'folders' || this.createType === 'workspaces') {\r\n this.data['LASTEDITDATE'] = Util.Transforms.currentDateTime();\r\n this.data['LAST_EDIT_DATE'] = Util.Transforms.currentDateTime();\r\n this.data['CREATION_DATE'] = Util.Transforms.currentDateTime();\r\n this.data['LAST_PRF_EDIT_DATE'] = Util.Transforms.currentDateTime();\r\n this.data['LAST_EDITED_BY'] = '';\r\n this.data['LAST_EDIT_ID'] = '';\r\n this.data['LAST_PROF_EDIT_ID'] ='';\r\n this.data['LAST_PRF_EDITED_BY'] ='';\r\n this.data['TYPIST_ID'] ='';\r\n this.data['STATUS'] = '';\r\n\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n if (loginReply && loginReply['EFFECTIVE_RIGHTS']['VIEW_UNSECURED'] === 'N') {\r\n this.data['SECURITY'] = '1';\r\n }\r\n } else {\r\n Util.FieldMappings.forEachTemplateField(this.fields, false, (field): boolean => {\r\n if (field.controltype === 'editdate') {\r\n const name: string = field.name;\r\n const value: string = this.data[name];\r\n if (!!value) {\r\n this.data[name] = this.formatDate(value, field.datatype==='1');\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n this.updateFormData(this.data, false, this.formKind.startsWith('__local_'));\r\n this.originalAuthor = this.data['AUTHOR_ID'];\r\n }\r\n if (this.formKind.startsWith('profile')) {\r\n if (!!this.createType) {\r\n if ((this.createType === 'workspaces') && (this.desc.id === '')) {\r\n this.updateControlValue('SECURITY', '1', true);\r\n } else {\r\n const securityControl = this.getControl('SECURITY');\r\n if (!!securityControl) {\r\n securityControl.markAsDirty();\r\n }\r\n }\r\n const keys: string[] = this.initialValue ? Object.keys(this.initialValue) : [];\r\n for (const fieldName of keys) {\r\n const field: any = fieldName !== 'DOCNAME' && fieldName !== 'X1237' && !fieldName.startsWith('$edx') ? this.getField(fieldName) : null;\r\n if (field && field.isRequired) {\r\n const control: FormControl = this.form.controls[fieldName] as FormControl;\r\n if (control && control.value && control.value.length) {\r\n control.markAsDirty();\r\n }\r\n }\r\n }\r\n if (this.createType === 'documents' && this.data['PD_FILEPT_NO']) {\r\n const fp_control: FormControl = this.form.controls['PD_FILEPT_NO'] as FormControl;\r\n if (fp_control) {\r\n fp_control.markAsDirty();\r\n }\r\n }\r\n } else if (this.bMassProfileUpdate && this.desc.type === 'workspaces') {\r\n this.updateControlValue('SECURITY', '1', true);\r\n }\r\n // To set the current user id for created by only when creating documents,folders,workspaces and while copying\r\n if ((this.formKind === 'profile_copy' || this.createType === 'folders' || this.createType === 'documents' || this.createType === 'workspaces') && this.formKind.startsWith('profile') && !this.formKind.startsWith('profile_query')) {\r\n this.updateControlValue('TYPIST_ID', Util.RestAPI.getUserID(), true);\r\n }\r\n if (this.createType === 'folders') {\r\n this.updateControlValue('APP_ID', 'FOLDER', true);\r\n this.updateControlValue('FULLTEXT', 'Y', true);\r\n } else if (this.createType === 'documents') {\r\n this.fillNameAndAppID();\r\n this.updateControlValue('FULLTEXT', 'Y', true);\r\n }\r\n if (this.savedFormData && !!changes['formTemplate'] && !! changes['data']) {\r\n const keys: string[] = Object.keys(this.savedFormData);\r\n for (const key of keys) {\r\n if (this.formKind === 'profile_query' || (!!Util.FieldMappings.templateField(this.formTemplate.defs, key) && ((!this.getControlValue(key) && !!this.data[key]) || (this.isOfficeItemOptionChanged && this.isOfficeAddin) || key === 'RETENTION' || key === 'DOCNAME'))) {\r\n this.updateControlValue(key, this.savedFormData[key], true);\r\n }\r\n }\r\n this.savedFormData = null;\r\n }\r\n if (this.controller && this.controller.prefillInitialValuesForForm) {\r\n this.controller.prefillInitialValuesForForm();\r\n } else if (this.formKind === 'profile_query') {\r\n // To set the default value for search in dropdown.\r\n this.updateControlValue('SEARCH_IN', '2', true);\r\n }\r\n if (this.formKind==='profile_copy' || (this.ui>=2 && this.readOnly && this.formKind.startsWith('profile'))) {\r\n this.setFieldVisibility('DOCNAME', false);\r\n }\r\n }\r\n if (this.formKind === '__local_editsecurity') {\r\n // Marka a hidden security field as dirty so that we can enable the OK button\r\n const dummyField_control: FormControl = this.form.controls['SECURITY'] as FormControl;\r\n if (dummyField_control) {\r\n dummyField_control.markAsDirty();\r\n }\r\n }\r\n setTimeout(() => {\r\n --this.blockValidation;\r\n if (this.controller) {\r\n if (this.controller.enableOK) {\r\n setTimeout(() => {\r\n this.controller.enableOK(this.form.valid, this.form.dirty);\r\n }, 1);\r\n }\r\n if (this.controller.allowFirstFocus && this.controller.allowFirstFocus()) {\r\n setTimeout(() => {\r\n this.focusOnFirstEmptyEditable();\r\n }, 500);\r\n }\r\n }\r\n }, 1);\r\n }\r\n this.setLayoutMode();\r\n if (this.desc) {\r\n this.lookupDesc.lib = this.desc.lib;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n if (!this.layoutComplete) {\r\n setTimeout(() => {\r\n this.setLayoutMode();\r\n }, 1);\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize(): void {\r\n this.layoutComplete = false;\r\n this.setLayoutMode();\r\n }\r\n\r\n public deviceDidRotate(isPortrait: boolean): void { // work around iOS/Android cordova crap\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private prepareDialogOnDialog(): void {\r\n if (Util.Device.bIsIOSDevice && !Util.Device.isPhoneLook() && this.formEl && this.formEl.nativeElement) {\r\n const ele = this.formEl.nativeElement;\r\n let parentHeight = 0;\r\n let parent: any = ele.parentElement;\r\n while (parent) {\r\n const classList = parent.classList;\r\n if (classList && classList.contains('body')) {\r\n parentHeight = parent.clientHeight;\r\n break;\r\n }\r\n parent = parent.offsetParent ? parent.offsetParent : parent.parentElement;\r\n }\r\n this.standInBodyHeight = parentHeight;\r\n }\r\n }\r\n\r\n private pickerOKDisabled(): boolean {\r\n return (this.fileplans) ? this.fileplans.okDisabled : false;\r\n }\r\n\r\n public placeholders(readonly: boolean, extension?: boolean): any {\r\n if (extension) {\r\n return '';\r\n }\r\n if (readonly) {\r\n return this._placeholders.readonly;\r\n } else {\r\n return this._placeholders.readwrite;\r\n }\r\n }\r\n\r\n public setEditable(editable: boolean): void {\r\n if (this.readOnly===editable) {\r\n this.readOnly = !editable;\r\n // loop through all fields and disable/enable controls\r\n if (!!this.fields && this.fields.length) {\r\n Util.FieldMappings.forEachTemplateField(this.fields, false, (field): boolean => {\r\n const control: AbstractControl = this.getControl(field.name);\r\n if (control) {\r\n if (this.readOnly || field.isReadonly) {\r\n control.disable();\r\n } else {\r\n control.enable();\r\n }\r\n }\r\n return true;\r\n });\r\n this.onResize();\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n public setFieldEditable(fieldName: string, editable: boolean): void {\r\n const field: FormField = this.getField(fieldName);\r\n if (!!field && field.isReadonly === editable) {\r\n field.isReadonly = !editable;\r\n const control: AbstractControl = this.getControl(field.name);\r\n if (control) {\r\n if (this.readOnly || field.isReadonly) {\r\n control.disable();\r\n } else {\r\n control.enable();\r\n }\r\n }\r\n this.onResize();\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n public fillNameAndAppID(): void {\r\n const fileName: string = this.controller.fileNameForUpload ? this.controller.fileNameForUpload() : null;\r\n if (!(!!this.savedFormData && this.savedFormData['DOCNAME']) && fileName) {\r\n this.updateControlValue('DOCNAME', fileName, true);\r\n }\r\n let appID: string = null;\r\n if (!!this.data['STORAGE'] && this.data['STORAGE']==='P') {\r\n appID = 'Paper';\r\n } else {\r\n appID = this.controller.appIDForUpload ? this.controller.appIDForUpload() : 'DEFAULT';\r\n }\r\n if (appID && appID.length) {\r\n const appIDs: string[] = appID.split(Util.RestAPI.kMultiFileSeparator);\r\n const nAppIDs: number = appIDs.length;\r\n let knownAppID: string = null;\r\n for (let i=0; i {\r\n let previousVisField: FormField = null;\r\n const nFields: number = fields.length;\r\n // find out if this is the last shown field\r\n for (let i=0; i {\r\n const nFields: number = fields.length;\r\n // find out if this is the last shown field\r\n for (let i=0; i inputTop) {\r\n input.focus();\r\n } else {\r\n textarea.focus();\r\n }\r\n }\r\n }\r\n\r\n private findFirstFocusableInputInForm(inputs: any): HTMLInputElement {\r\n let input: HTMLInputElement = null;\r\n const nInputs: number = inputs ? inputs.length : 0;\r\n for (let i=0; i minWidth ? 'page' : 'column';\r\n if (this.inlineParent && this.inlineParent.formLayout) {\r\n layout = this.inlineParent.formLayout; // use parent\r\n }\r\n if (layout !== this.formLayout) {\r\n this.formLayout = layout;\r\n if (this.controller && this.controller.layoutChanged) {\r\n this.controller.layoutChanged(this.formLayout);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n this.layoutComplete = true;\r\n }\r\n }\r\n }\r\n\r\n private isProfileForm(): boolean {\r\n return FormUtils.isProfileForm(this.formKind);\r\n }\r\n\r\n private isSearchForm(): boolean {\r\n return FormUtils.isSearchForm(this.formKind);\r\n }\r\n\r\n private updateFormData(data: any, blockValidation?: boolean, makeDirty?: boolean): void {\r\n if (blockValidation) {\r\n ++this.blockValidation;\r\n }\r\n this.form.patchValue(data, blockValidation?{emitEvent: false}:{});\r\n if (makeDirty) {\r\n for (const field of this.fields) {\r\n if (!!data[field.name]) {\r\n const cntrl = this.form.controls[field.name];\r\n if (!!cntrl) {\r\n cntrl.markAsDirty();\r\n }\r\n }\r\n }\r\n }\r\n if (blockValidation) {\r\n setTimeout(() => {\r\n --this.blockValidation;\r\n },1);\r\n }\r\n }\r\n\r\n private createFieldHook(field: FormField): void {\r\n const appID = !!this.data ? this.data['APP_ID'] : null;\r\n const hiddenTypes = ['%FORM_PAPER_APPLICATION','%PRIMARY_FORM','PAPER','Paper','DEFAULT'];\r\n if (this.formKind.startsWith('profile_editdefs_') && !!appID && field.name==='APP_ID' && hiddenTypes.indexOf(appID)>=0) {\r\n field.isVisible = false;\r\n }\r\n }\r\n\r\n public createFieldsFromTemplate(fields: FormFieldDesc[]): void {\r\n const isProfileForm: boolean = this.isProfileForm();\r\n const isSearchForm: boolean = this.isSearchForm();\r\n const isExtForm: boolean = this.formKind.startsWith(Util.kCustomFormPrefix);\r\n const group: any = {};\r\n const extensionFields: FormField[] = [];\r\n this.fields = [];\r\n this.form = null;\r\n if (fields && fields.length) {\r\n fields.forEach(field => {\r\n // create single FormField and add it to the fields array\r\n let bAddField = false;\r\n const newField: FormField = new FormField(field, this.formKind);\r\n this.createFieldHook(newField);\r\n if ((!isSearchForm && !isExtForm && !newField.lookup && !!Util.FieldMappings.fieldForDescription(newField)) || newField.extensionParent) {\r\n extensionFields.push(newField);\r\n } else if ((!(field.flags & 0x00400000) || !!field.mvinfo || field.name === '%KEYWORD') && field.fldtype !== 'buffer' && field.fldtype !== 'line' && !(isProfileForm && ((field.name === 'TRUSTEES' && field.fldtype ==='push') || (!isSearchForm && field.name === 'SECURITY' && field.fldtype === 'checkbox'))) && !(field.fldtype ==='push' && this.readOnly) && field.name!=='EMAIL_BOX') {\r\n bAddField = true;\r\n }\r\n if ((field.name === 'DOCNAME' && this.formKind !== '__local_copy' && this.desc && this.desc['STATUS'] === '3') || (!isSearchForm && field.name === 'APP_ID')) {\r\n newField.isReadonly = true;\r\n }\r\n // create single FormControl and add to group\r\n if (!field.fields || field.fields.length === 0) {\r\n if (newField.controltype !== 'push') {\r\n const control: FormControl = new FormControl(field.name, this.getValidator(newField), this.getAsyncValidator(newField));\r\n if (this.readOnly || newField.isReadonly) {\r\n control.disable();\r\n }\r\n this.initialValue[field.name] = (!isSearchForm) && field.value ? field.value : '';\r\n group[field.name] = control;\r\n //Display the document number field in the default fields list for search forms\r\n if (newField.isRequired || (isSearchForm && field.name === 'DOCNUM')) {\r\n newField.isRequired = !isSearchForm && !this.bMassProfileUpdate;\r\n } else if (isProfileForm && (this.ui<2 || field.name !== 'DOCNUM' || !this.readOnly)) {\r\n newField.isOption = true;\r\n }\r\n } else if (isProfileForm) {\r\n newField.isOption = true;\r\n }\r\n if (newField.lookup && this.data && this.data[newField.name]) {\r\n newField.defaultValue = this.data[newField.name];\r\n if (newField.controltype === 'editdate') {\r\n if (newField.defaultValue.substring(0,4) === '1753') {\r\n newField.defaultValue = '';\r\n }\r\n }\r\n }\r\n } else {\r\n const createSubs = (aNewField: FormField, aField: FormFieldDesc): boolean => {\r\n // loop through subfields and similarly create fields and controls\r\n const subFields: FormField[] = [];\r\n let nRequiredSubFields = 0;\r\n let rc = true;\r\n aField.fields.forEach(subfield => {\r\n // create FormField for each item\r\n if ((field.flags & 0x00400000) || (isProfileForm && ((subfield.name === 'TRUSTEES' && subfield.fldtype ==='push') || (subfield.name === 'SECURITY' && subfield.fldtype === 'checkbox')))) {\r\n return false;\r\n }\r\n const newSubField: FormField = new FormField(subfield, this.formKind);\r\n this.createFieldHook(newSubField);\r\n if ((!isSearchForm && !!Util.FieldMappings.fieldForDescription(newSubField)) || newSubField.extensionParent) {\r\n extensionFields.push(newSubField);\r\n } else {\r\n subFields.push(newSubField);\r\n }\r\n if ((subfield.name === 'DOCNAME' && this.desc && this.desc['STATUS'] === '3') || (!isSearchForm && subfield.name === 'APP_ID')) {\r\n newSubField.isReadonly = true;\r\n } else if (subfield.name === 'PD_VREVIEW_DATE') {\r\n newSubField.isReadonly = false;\r\n }\r\n if (!subfield.fields || subfield.fields.length === 0) {\r\n // create FormControl and add to outer group\r\n if (newSubField.controltype !== 'push') {\r\n const control: FormControl = new FormControl(subfield.name, this.getValidator(newSubField), this.getAsyncValidator(newSubField));\r\n if (this.readOnly || newSubField.isReadonly) {\r\n control.disable();\r\n }\r\n this.initialValue[subfield.name] = !isSearchForm && subfield.value ? subfield.value : '';\r\n group[subfield.name] = control;\r\n if (newSubField.isRequired || (isSearchForm && newSubField.name === 'DOCNUM')) {\r\n newSubField.isRequired = !isSearchForm && !this.bMassProfileUpdate;\r\n ++nRequiredSubFields;\r\n } else if (isProfileForm) {\r\n newSubField.isOption = true;\r\n }\r\n } else if (isProfileForm) {\r\n newSubField.isOption = true;\r\n }\r\n if (newSubField.lookup && this.data && this.data[newSubField.name]) {\r\n newSubField.defaultValue = this.data[newSubField.name];\r\n if (newSubField.controltype === 'editdate') {\r\n if (newSubField.defaultValue.substring(0,4) === '1753') {\r\n newSubField.defaultValue = '';\r\n }\r\n }\r\n }\r\n } else {\r\n rc = createSubs(newSubField, subfield);\r\n }\r\n });\r\n if (nRequiredSubFields===0 && isProfileForm) {\r\n aNewField.isOption = true;\r\n }\r\n aNewField.fields = subFields;\r\n if (subFields.length===0) {\r\n rc = false;\r\n }\r\n return rc;\r\n };\r\n bAddField = createSubs(newField, field);\r\n }\r\n if (bAddField) {\r\n this.fields.push(newField);\r\n }\r\n });\r\n }\r\n if (extensionFields.length>0) {\r\n this.fullWidth = false;\r\n const descriptionForFieldList = extensionFields.filter(f => !!f.descriptionForField);\r\n const extParentFieldList = extensionFields.filter(f => !!f.extensionParent);\r\n const mappedFieldList = extensionFields.filter(f => !f.descriptionForField && !f.extensionParent);\r\n let extField: FormField;\r\n let parentField: FormField;\r\n for (extField of descriptionForFieldList) {\r\n parentField = this.getField(Util.FieldMappings.fieldForDescription(extField));\r\n if (parentField) {\r\n parentField.addExtensionField(extField, true);\r\n }\r\n }\r\n for (extField of extParentFieldList) {\r\n parentField = this.getField(extField.extensionParent);\r\n if (parentField) {\r\n parentField.addExtensionField(extField, extField.isReadonly);\r\n }\r\n }\r\n for (extField of mappedFieldList) {\r\n parentField = this.getField(Util.FieldMappings.fieldForDescription(extField));\r\n if (parentField && (!parentField.fields || !parentField.fields.length)) {\r\n parentField.addExtensionField(extField, true);\r\n }\r\n }\r\n }\r\n if (isProfileForm) {\r\n let control: FormControl;\r\n if (!isSearchForm) {\r\n // add in an invisible security field (for profile forms only) and form_name field for both profile and search forms.\r\n control = new FormControl('SECURITY');\r\n // security value should be null as the security field is a tristate checkbox in search forms and not an invisible field.\r\n this.initialValue['SECURITY'] = null;\r\n group['SECURITY'] = control;\r\n }\r\n control = new FormControl('form_name');\r\n this.initialValue['form_name'] = this.getFormName();\r\n group['form_name'] = control;\r\n }\r\n this.form = new FormGroup(group);\r\n }\r\n\r\n protected getFormName(): string {\r\n let formName: string = this.controller && this.controller.getFormName ? this.controller.getFormName() : this.desc['FORM_NAME'];\r\n\r\n if (!formName) {\r\n formName = 'DEFAULT_PROFILE';\r\n const defProfFrom: any = this.formKind.startsWith('profile_query') ? Util.RestAPI.getDefaultSearchForm() : Util.RestAPI.getDefaultProfileForm();\r\n if (defProfFrom && defProfFrom.id) {\r\n formName = defProfFrom.id;\r\n }\r\n }\r\n return formName;\r\n }\r\n\r\n public useForceRender(field: FormField): number {\r\n if (field.lookupData !== null || field.rerender !== field.lastRerenderIndex) {\r\n if (field.rerender === field.lastRerenderIndex) {\r\n ++field.rerender;\r\n }\r\n return field.rerender;\r\n }\r\n return 0;\r\n }\r\n\r\n public needsAsyncValidator(field: FormField): boolean {\r\n const isSearchForm: boolean = this.isSearchForm();\r\n // To validate CHECKIN_LOCATION\r\n if (!isSearchForm && field.lookup && !field.mvinfo && (!field.lookup.startsWith('$edx_') || field.name === '%CHECKIN_LOCATION')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n protected getValidator(field: FormField): ValidatorFn {\r\n if (!this.needsAsyncValidator(field)) {\r\n const that: DynamicFormComponent = this;\r\n return (c: FormControl): ValidationErrors => {\r\n if (this.blockValidation===0) {\r\n return that.validateField(c, field);\r\n }\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n protected getAsyncValidator(field: FormField): AsyncValidatorFn {\r\n if (this.needsAsyncValidator(field)) {\r\n return (control: FormControl): Promise => {\r\n if (this.blockValidation===0 && !control.pristine && control.dirty) {\r\n const value: any = control.value;\r\n if (value !== null && value !== undefined && field.defaultValue!==value) {\r\n if (field.name === '%CHECKIN_LOCATION') {\r\n return this.validatePath(control, field, value);\r\n } else {\r\n return this.validateLookup(control, field, value);\r\n }\r\n }\r\n }\r\n return new Promise(resolve => {\r\n resolve(this.finishValidateField(field, null, null));\r\n });\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n protected validatePath(control: FormControl, field: FormField, value: any): Promise {\r\n // To validate if valid location is provided.\r\n // first check sync if we have any value\r\n const error: ValidationErrors = this.validateField(control, field);\r\n const isDir: boolean = field.lookup === '$edx_folder_picker' ? true:false;\r\n if (error) {\r\n return new Promise(resolve => {\r\n resolve(error);\r\n });\r\n }\r\n // now ask RestAPI if the value is a good path\r\n return Util.RestAPI.isValidPath(value,isDir).then(valid => {\r\n let message: string = null;\r\n let result: any = null;\r\n if (valid && !isDir) {\r\n if (!(this.controller && this.controller.hasUploadFiles && this.controller.hasUploadFiles())) {\r\n valid = false;\r\n }\r\n }\r\n if (!valid) {\r\n if (field.lookup === '$edx_file_picker') {\r\n message = this._errors.FILE_PICKER;\r\n } else if (field.lookup === '$edx_folder_picker') {\r\n message = this._errors.FOLDER_PICKER;\r\n }\r\n result = { INVALID: message };\r\n setTimeout(() => {\r\n this.cdr.markForCheck();\r\n }, 1);\r\n }\r\n return this.finishValidateField(field, message, result);\r\n });\r\n }\r\n\r\n protected setParentFilter(field: FormField): string {\r\n let filter = '';\r\n let and = '';\r\n const lookupFormName: string = this.getFormName();\r\n while (field) {\r\n const parentField: FormField = this.getField(field.parentField);\r\n if (parentField) {\r\n let parent_filter = null;\r\n const control: FormControl = this.form.controls[parentField.name] as FormControl;\r\n if (control && control.value) {\r\n // Must url encode % sign because if the form starts with valid hex values url encoder will\r\n // ignore the % sign and assume that is already encoded !!!\r\n // Encode all string values to be able search successfully,when we have special characters in string values.\r\n parent_filter = '%25' + Util.Transforms.validateQueryValue(lookupFormName) + '.' + Util.Transforms.validateQueryValue(parentField.name) + '=' + Util.Transforms.validateQueryValue(control.value);\r\n }\r\n if (parent_filter) {\r\n filter = filter + and + parent_filter;\r\n and = '%20and%20';\r\n }\r\n }\r\n field = parentField;\r\n }\r\n return filter;\r\n }\r\n\r\n protected setFullLookupFilter(): string {\r\n const filters = new Array();\r\n const formName: string = '%' + this.getFormName();\r\n const allDataKeys: string[] = Object.keys(this.form.value);\r\n for (const key of allDataKeys) {\r\n const value = this.form.controls[key].value;\r\n if (value) {\r\n const filter = this.lookupFilterString(formName, key, value);\r\n filters.push(filter);\r\n }\r\n }\r\n const lookupFilter: string = filters.join(encodeURI(' and '));\r\n return lookupFilter;\r\n }\r\n\r\n private lookupFilterString(formName: string, key: string, value: string): string {\r\n formName = formName ? Util.Transforms.validateQueryValue(formName) : null;\r\n key = Util.Transforms.validateQueryValue(key);\r\n value = Util.Transforms.validateQueryValue(value);\r\n const filter: string = (formName ? formName + '.' : '') + key + '=' + value;\r\n return filter;\r\n }\r\n\r\n protected validateLookup(control: FormControl, field: FormField, value: any): Promise {\r\n const lookupFormName: string = this.getFormName();\r\n const fieldPrimaryKey: string = this.getKey(field);\r\n const fieldSecondaryKey: string = field.descriptionField;\r\n const lib: string = this.desc && this.desc.lib ? this.desc.lib : Util.RestAPI.getPrimaryLibrary();\r\n let query = '';\r\n let queryValue = '';\r\n let message: string = this._errors.LOOKUP;\r\n const result: any = { LOOKUP: message };\r\n const valueIsNumeric: boolean = Number.isInteger(Math.floor(value));\r\n if (valueIsNumeric) {\r\n value = value.toString();\r\n }\r\n if (!control.value || control.value === field.lastLookupValue) {\r\n return new Promise(resolve => {\r\n resolve(this.finishValidateField(field, null, null));\r\n });\r\n }\r\n if (valueIsNumeric) {\r\n queryValue = Util.Transforms.validateQueryValue(value);\r\n } else {\r\n queryValue = Util.Transforms.validateQueryValue(value,'*');\r\n }\r\n query = 'max=25&ascending=' + fieldPrimaryKey;\r\n const otherfilter = this.setParentFilter(field);\r\n ++this.blockValidation;\r\n this.setLoading(true);\r\n return this.lookupService.validate(lookupFormName, lib, field.lookup, fieldPrimaryKey, queryValue, this.formKind, otherfilter, query).then(data => {\r\n this.setLoading(false);\r\n // included data.set.total instead of nValues in the condition to check if atlease one value is returned from server.\r\n if (data && data.set && data.set.total > 0) {\r\n field.defaultValue = null;\r\n field.lookupData = [];\r\n for (const item of data.list) {\r\n if (item['DISABLED'] === '1' || item['DISABLED'] === 'Y') {\r\n continue;\r\n }\r\n let description: string = item[fieldSecondaryKey];\r\n if (!description) {\r\n description = Util.FieldMappings.descriptionValueForField(item, field);\r\n }\r\n const lookupItem = new CacheItem(item[fieldPrimaryKey], description, item);\r\n field.lookupData.push(lookupItem);\r\n if (data.list.length === 1) {\r\n this.scanFieldsForRevalidatonOrEvaluation(item,field.name);\r\n }\r\n }\r\n if (!field.scheduledForRevalidation) {\r\n this.clearFieldValueAndDescOfChildren(field);\r\n }\r\n setTimeout(() => {\r\n --this.blockValidation;\r\n this.cdr.markForCheck();\r\n }, 1);\r\n if (data.set.total === 0) {\r\n return this.finishValidateField(field, message, result);\r\n } else {/* TODO: Ron fix or remove in 16.6\r\n setTimeout(() => {\r\n this.focusOnFirstEmptyEditable();\r\n }, 1);*/\r\n field.lastLookupValue = control.value;\r\n return this.finishValidateField(field, null, null);\r\n }\r\n } else {\r\n field.defaultValue = null;\r\n field.lookupData = [];\r\n field.lastLookupValue = null;\r\n ++field.rerender;\r\n setTimeout(() => {\r\n --this.blockValidation;\r\n this.cdr.markForCheck();\r\n }, 1);\r\n message = this._errors.LOOKUP;\r\n return this.finishValidateField(field, message, result);\r\n }\r\n });\r\n }\r\n\r\n // the universal validator function\r\n protected validateField(control: FormControl, field: FormField): ValidationErrors {\r\n let value: any = control.value;\r\n let result: any = null;\r\n let message: string = null;\r\n const isSearchForm: boolean = this.isSearchForm();\r\n if (field.isRequired) {\r\n if (!value) {\r\n message = this._errors.MISSING;\r\n result = { MISSING: message };\r\n field.autoValidated = false;\r\n this.clearFieldDesc(field);\r\n // Clear any dependents of this master parent\r\n this.clearFieldValueAndDescOfDependents(field);\r\n this.clearFieldValueAndDescOfChildren(field);\r\n } else if (field.name==='DOCNAME') {\r\n // check for multiple files being uploaded. the field max is then the individual file name lenghts\r\n const names: string[] = value.split(Util.RestAPI.kMultiFileSeparator);\r\n for (const name of names) {\r\n if (!Util.Transforms.isValidDocName(name)) {\r\n message = this._errors.INVALID_NAME;\r\n result = { INVALID: message };\r\n }\r\n }\r\n }\r\n }\r\n if (field.controltype === 'editdate') {\r\n if (field.isRequired && !value) {\r\n message = this._errors.MISSING;\r\n result = { MISSING: message };\r\n } else if (value) {\r\n value = value.toUpperCase();\r\n if (!Util.Transforms.isSpecialDateFormat(value)) {\r\n let dmFormatedDate = false;\r\n const splitStr: string = Util.Transforms.splitableDateFormat(value);\r\n const secondIsNumeric: boolean = Util.Transforms.splitableDateFormatSecondValueIsNumeric(value);\r\n const parts: string[] = splitStr ? value.split(splitStr) : [value];\r\n const nParts: number = parts.length;\r\n let startDate = '';\r\n if ((isSearchForm && nParts>0 && nParts<3) || nParts===1) {\r\n for (let i=0; i0 && partUppper==='%TODAY' && splitStr.toUpperCase()===' TO ')) {\r\n dmFormatedDate = true;\r\n } else {\r\n dmFormatedDate = false;\r\n if (i===0 && partUppper.startsWith('%TODAY MINUS ')) {\r\n try {\r\n dmFormatedDate = Util.isInteger(partUppper.split('%TODAY MINUS ')[1]);\r\n } catch (e) { }\r\n } else if (i===0 || !secondIsNumeric) {\r\n const appleComptibleDateStr: string = part.replace(/[-]/g, '/');\r\n const newParts: string[] = appleComptibleDateStr.split('/');\r\n if (newParts.length===3 && newParts[0].length===4 && newParts[1].length>=1 && newParts[1].length<3 && newParts[2].length>=1 && newParts[2].length<3) {\r\n try {\r\n const day: number = parseInt(newParts[2]);\r\n const nDaysInMonth: number = new Date(parseInt(newParts[0]), parseInt(newParts[1]), 0).getDate();\r\n dmFormatedDate = !isNaN(Date.parse(appleComptibleDateStr)) && day>0 && day<=nDaysInMonth;\r\n } catch (e) { }\r\n }\r\n if (dmFormatedDate) {\r\n // Get the proper date value and validate against min and max dates\r\n partDate = newParts[0] + '-' + ('0' + newParts[1]).slice(-2) + '-' + ('0' + newParts[2]).slice(-2);\r\n if (partDate < field.minDate || partDate > field.maxDate) {\r\n dmFormatedDate = false;\r\n }\r\n }\r\n } else {\r\n try {\r\n dmFormatedDate = Util.isInteger(part);\r\n } catch (e) { }\r\n }\r\n }\r\n // For the date range, end date should be greater than start date\r\n if (nParts > 1 && splitStr.toUpperCase() === ' TO ' && partUppper.indexOf('%TODAY') === -1 && dmFormatedDate) {\r\n if (i === 0) {\r\n startDate = partDate || part;\r\n } else if (i === 1 && ((partDate || part) < startDate)) {\r\n dmFormatedDate = false;\r\n }\r\n }\r\n if (!dmFormatedDate) {\r\n break;\r\n }\r\n }\r\n }\r\n if (!dmFormatedDate) {\r\n message = this._errors.INVALID_DATE;\r\n result = { INVALID: message };\r\n }\r\n }\r\n }\r\n }\r\n if (!isSearchForm && field.maxChars > 0 && value && value.length > field.maxChars) { // to allow multiple lookup values in profile search forms.\r\n if (field.name==='DOCNAME') {\r\n // check for multiple files being uploaded. the field max is then the individual file name lengths\r\n const names: string[] = value.split(Util.RestAPI.kMultiFileSeparator);\r\n for (const name of names) {\r\n if (name.length > field.maxChars) {\r\n message = this._errors.LONG;\r\n result = { LONG: message };\r\n break;\r\n }\r\n }\r\n } else {\r\n message = this._errors.LONG;\r\n result = { LONG: message };\r\n }\r\n }\r\n if (isSearchForm && field.name === 'DOCNUM' && !!value) {\r\n const values: string[] = value.toUpperCase().split(' TO ');\r\n for (const val of values) {\r\n const filter = /^(\\d+(\\,|\\;|\\t|\\ )?)+$/;\r\n if (!filter.test(val)) {\r\n message = this._errors.INVALID_DOCNUM;\r\n result = { INVALID: message };\r\n break;\r\n }\r\n }\r\n }\r\n if (!!value && field.name.startsWith('$edx_email')) {\r\n const filter = /^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$/;\r\n const EmailIds: string[] = value.replace(/\\s/g, '').split(',');\r\n for (const email of EmailIds) {\r\n if (!filter.test(email)) {\r\n message = this._errors.EMAIL;\r\n result = { INVALID: message };\r\n } else {\r\n // Now check the domain white-list if applicable\r\n if (this.formTemplate.name === 'shareonedrive') {\r\n const lib: string = this.data['DOCUMENTS'][0].lib;\r\n const extAppInfo: any = Util.RestAPI.findExternalApp(lib);\r\n if (!!extAppInfo['domainswhitelist']) {\r\n const domain: string = email.split('@')[1];\r\n if (extAppInfo['domainswhitelist'].indexOf(domain) === -1) {\r\n message = this._errors.DOMAIN;\r\n result = { INVALID: message };\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (field.minVal >= 0 && !isNaN(Number(value)) && Number(value) < field.minVal) {\r\n message = this._errors.LOW;\r\n result = { LOW: message };\r\n }\r\n if (field.maxVal > 0 && !isNaN(Number(value)) && Number(value) > field.maxVal) {\r\n message = this._errors.HIGH;\r\n result = { HIGH: message };\r\n }\r\n return this.finishValidateField(field, message, result);\r\n }\r\n\r\n protected finishValidateField(field: FormField, message: string, result: any): ValidationErrors {\r\n field.errormessage = message;\r\n // for the date range fields, get the parent (inlineParent) form and enable ok button\r\n if (field.controltype.indexOf('date') >= 0 && !!this.inlineParent) {\r\n if (this.inlineParent.form && this.inlineParent.controller.enableOK) {\r\n setTimeout(() => {\r\n // pass on the child form valid status\r\n this.inlineParent.controller.enableOK(this.form.valid, this.inlineParent.form.dirty);\r\n }, 1);\r\n }\r\n } else if (this.form && this.controller.enableOK) {\r\n setTimeout(() => {\r\n this.controller.enableOK(this.form.valid, this.form.dirty);\r\n },250);\r\n }\r\n return result;\r\n }\r\n\r\n public dynamicExtrasToggled(shown: boolean): void {\r\n this.extrasShown = shown;\r\n this.cdr.markForCheck();\r\n if (shown) {\r\n ++this.blockValidation;\r\n setTimeout(() => {\r\n --this.blockValidation;\r\n }, 5);\r\n }\r\n }\r\n\r\n public doEditSecurity(): void {\r\n if (this.data && ((this.data.type === 'documents') || (this.data.type === 'workspaces') || (this.data.type === 'workspaces') || (this.data.type === 'folders') || (this.data.type === 'flexfolders'))) {\r\n this.securityDesc = Util.deepCopy(this.desc); // deep copy as we are going to set type next and it would wack the desc pointer's type\r\n this.securityDesc.params = 'security';\r\n if (this.bMassProfileUpdate) {\r\n this.securityDesc.id = '';\r\n this.trusteesDirective = 'replace';\r\n }\r\n } else {\r\n // to get profile default trustees, we need formname and appID.\r\n this.securityDesc = { id:'0', type:this.createType?this.createType:this.bMassProfileUpdate?'mass_profile':'', params:'security', lib:Util.RestAPI.getPrimaryLibrary(), isWorkspace:(this.createType === 'workspaces')?1:0, formName : this.data['FORMNAME'], appId: this.data['APP_ID'] };\r\n if (this.form.controls['AUTHOR_ID']) {\r\n this.securityDesc['AUTHOR_ID'] = this.form.controls['AUTHOR_ID'].value;\r\n }\r\n }\r\n this.securityKind = 'list_PRIVATE';\r\n this.securityTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SET_SECURITY');\r\n this.securityOK = this.localizer.getTranslation('FORMS.BUTTONS.OK');\r\n this.securityShown = true;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n public setLookupFilter(field: FormField): void {\r\n this.lookupFilterValue = this.setFullLookupFilter();\r\n if (field.parentField) {\r\n const parentControl: FormControl = this.form.controls[field.parentField] as FormControl;\r\n if (parentControl && !parentControl.value) {\r\n this.isLookupParentEmpty = (this.formKind === 'profile');\r\n }\r\n }\r\n }\r\n\r\n public doLookup(field: FormField,isLookupBtnClicked?: boolean): void {\r\n if (Util.Device.isPhoneLook()) {\r\n const formBody: HTMLElement = document.getElementById('edx_form_body');\r\n this.formScrollTop = !!formBody ? formBody.scrollTop : 0;\r\n }\r\n if (field.name === 'PD_FILEPT_NO') {\r\n this.fileplansTitle = this.localizer.getTranslation('FOLDER_ACTIONS.SELECT_FILEPART');\r\n this.fileplansOK = this.localizer.getTranslation('FORMS.BUTTONS.ADD');\r\n let library = '';\r\n if (!!this.lookupDesc && !!this.lookupDesc.lib) {\r\n library = this.lookupDesc.lib;\r\n }\r\n this.fileplansDesc = { id:'', type:'fileparts', lib:library, DOCNAME:this.localizer.getTranslation('FOLDER_ACTIONS.CONTAINERS') };\r\n this.fileplansShown = true;\r\n this.lookupField = field;\r\n this.prepareDialogOnDialog();\r\n } else {\r\n this.isLookupParentEmpty = false;\r\n this.lookupIsNumeric = false;\r\n this.lookupNoWildcard = false;\r\n this.lookupInitalSearch = '';\r\n this.lookupField = field;\r\n this.lookupInitalKey = this.getKey(field);\r\n this.lookupOKDisabled = true;\r\n const isSearchForm: boolean = this.formKind.startsWith('profile_query');\r\n if (field.lookup==='$edx_email_picker') {\r\n this.chooseEmail(field);\r\n } else if (field.lookup==='$edx_file_picker') {\r\n this.chooseFile(field);\r\n } else if (field.lookup==='$edx_folder_picker') {\r\n this.chooseDir(field);\r\n } else if (field.lookup==='$edx_date_range') {\r\n this.chooseDateRange(field);\r\n } else {\r\n const lookupFormName: string = this.getFormName();\r\n const control: AbstractControl = this.form.controls[field.name];\r\n if (field.controltype === 'editnumber') {\r\n this.lookupIsNumeric = true;\r\n if (control && control.valid && control.value) {\r\n this.lookupInitalSearch = control.value.toString();\r\n } else {\r\n this.lookupNoWildcard = true;\r\n }\r\n } else {\r\n // If lookup button is clicked,instead of tabing,show all the Matters.\r\n if (control && control.value && control.value !== 'DEFAULT') {\r\n // Request for fetching lookups for multi valued lookup fields.\r\n // Replace separator ; with |\r\n if (control.value.indexOf(';') > 0) {\r\n // Multivalue lookup field re-selection can be done only for elemental fiels\r\n // As the parentFilter is encoded value, '%7C' is used for '|'\r\n const parentFilter: string = this.setParentFilter(field);\r\n if (!parentFilter || (!!parentFilter && parentFilter.indexOf('%7C') === -1)) {\r\n this.lookupInitalSearch = control.value.replace(/[;]/g,'|');\r\n }\r\n } else {\r\n // Validated fields should return all values of the lookup and select the single value\r\n this.lookupInitalSearch = control.value;\r\n }\r\n }\r\n }\r\n this.lookupInitalSearch = !!this.lookupInitalSearch ? this.lookupInitalSearch.toUpperCase() : '';\r\n this.setLookupFilter(field);\r\n this.lookupDesc.id = field.lookup;\r\n this.lookupForm = lookupFormName;\r\n this.fieldPrimaryKey = this.getKey(this.lookupField);\r\n this.lookupTitle = this.localizer.getTranslation('FORMS.LOOKUPS.TITLE', [field.label]);\r\n this.lookupLeadingColums = (this.formKind.startsWith('profile_query') || field.mvinfo || this.lookupField.name === '%KEYWORD') ? [ColFormat.SELECTOR] : null;\r\n if (this.createType === 'documents' && this.formKind === 'profile' && field.name === 'APP_ID' && field.defaultValue.indexOf('|') !== -1) {\r\n const filter = this.lookupFilterString(null, 'APP_ID', field.defaultValue);\r\n this.lookupFilterValue += (this.lookupFilterValue ? encodeURI(' and ') : '') + filter;\r\n }\r\n this.lookupShown = true;\r\n ++this.blockValidation;\r\n }\r\n }\r\n }\r\n\r\n public hasLookupTable(lookup: string): boolean {\r\n let lib: string = !!this.desc ? this.desc.lib : null;\r\n if (!lib && this.data && this.data['DOCUMENTS'] && this.data['DOCUMENTS'].length) {\r\n lib = this.data['DOCUMENTS'].lib;\r\n }\r\n if (!lib) {\r\n lib = Util.RestAPI.getPrimaryLibrary();\r\n }\r\n if (lib) {\r\n lib = lib.toUpperCase();\r\n }\r\n return !!Util.RestAPI.getLookupTable(lookup, lib, this.getFormName());\r\n }\r\n\r\n private getFileExtensions(forElectron: boolean): any {\r\n let rc: any = null;\r\n if (this.data && this.data.FILE_EXTENSION) {\r\n const altExt: string = Util.Transforms.alternateExtension(this.data.FILE_EXTENSION);\r\n if (forElectron) {\r\n const exts: string[] = [this.data.FILE_EXTENSION];\r\n if (altExt) {\r\n exts.push(altExt);\r\n }\r\n rc = exts;\r\n } else {\r\n let exts: string = '.' + this.data.FILE_EXTENSION;\r\n if (altExt) {\r\n exts += ', .' + altExt;\r\n }\r\n rc = exts;\r\n }\r\n }\r\n return rc;\r\n }\r\n\r\n private gotFiles(files: File[]): void {\r\n const count = files ? files.length : 0;\r\n if (files && count) {\r\n if (this.lookupField) {\r\n const fieldJSON: any = {};\r\n let fileName: string;\r\n for (let i=0; i {\r\n this.controller.enableOK(this.form.valid, this.form.dirty);\r\n }, 1);\r\n }\r\n if (this.controller && this.controller.uploadFiles) {\r\n this.controller.uploadFiles(files);\r\n }\r\n }\r\n }\r\n\r\n private chooseDirOrFile(dir: boolean, field: FormField): void {\r\n const options: any = {};\r\n const fs: AWFileSystem = Util.Device.bIsElectron ? new AWFileSystem() : null;\r\n const control: AbstractControl = this.form.controls[field.name];\r\n if (control && control.value && control.value!=='DEFAULT') {\r\n options.defaultPath = control.value;\r\n }\r\n this.electronDialogShown = true;\r\n Util.RestAPI.setAppModal(true);\r\n const success = (result) => {\r\n this.electronDialogShown = false;\r\n Util.RestAPI.setAppModal(false);\r\n if (result && result.length) {\r\n this.updateControlValue(field.name, result[0], true);\r\n if (this.controller && this.controller.uploadFiles) {\r\n this.controller.uploadFiles(null, result);\r\n }\r\n }\r\n };\r\n const errorFunc = (err) => {\r\n this.electronDialogShown = false;\r\n Util.RestAPI.setAppModal(false);\r\n };\r\n if (dir) {\r\n if (Util.Device.bIsElectron) {\r\n fs.showDirSelector(options, success, errorFunc);\r\n } else {\r\n Util.RestAPI.showDirSelectorWithPFTA(options).then(success);\r\n }\r\n } else {\r\n options.multiSelections = true;\r\n const exts: string[] = this.getFileExtensions(true) as string[];\r\n if (exts) {\r\n options.filters = [{name:this.localizer.getTranslation('TOOLTIP.FILTER'), extensions:exts}];\r\n }\r\n fs.showFileSelector(options, success, errorFunc);\r\n }\r\n }\r\n\r\n private chooseFile(field: FormField): void {\r\n if (Util.Device.bIsElectron && !this.electronDialogShown) {\r\n this.chooseDirOrFile(false, field);\r\n } else if (Util.Device.bIsCordova) {\r\n const gotPaths = (filePaths: string[]) => {\r\n if (filePaths.length) {\r\n this.updateControlValue(field.name, filePaths[0], true);\r\n if (this.controller && this.controller.uploadFiles) {\r\n this.controller.uploadFiles(null, filePaths);\r\n }\r\n if (this.lookupField) {\r\n setTimeout(() => {\r\n this.controller.enableOK(this.form.valid, this.form.dirty);\r\n }, 1);\r\n }\r\n }\r\n };\r\n Util.RestAPI.pickFromDownloads((list: any, success: boolean) => {\r\n if (success && list && list.length) {\r\n const filePaths: string[] = [];\r\n for (const item of list) {\r\n const fileName: string = Util.Transforms.lastPathComponent(item.fullPath);\r\n if (fileName) {\r\n filePaths.push(fileName);\r\n }\r\n }\r\n gotPaths(filePaths);\r\n }\r\n }, (files: File[], paths: string[], success) => {\r\n if (success) {\r\n if (files) {\r\n this.gotFiles(files);\r\n } else if (paths) {\r\n gotPaths(paths);\r\n }\r\n }\r\n });\r\n } else {\r\n const exts: string = this.getFileExtensions(false) as string;\r\n Util.RestAPI.pickFiles(exts, (files: File[], paths: string[], success: boolean) => {\r\n if (success && !!files) {\r\n this.gotFiles(files);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private chooseDir(field: FormField): void {\r\n if ((Util.Device.bIsElectron || Util.RestAPI.pftaVersion() >= 0x00160600) && !this.electronDialogShown) {\r\n this.chooseDirOrFile(true, field);\r\n }\r\n }\r\n\r\n private chooseEmail(field: FormField): void {\r\n if (Util.Device.bIsCordova && !this.electronDialogShown) {\r\n const contacts: AWContacts = new AWContacts(contact => {\r\n let prefEmail: string = null;\r\n const emails: any[] = contact && contact.emails ? contact.emails : null;\r\n if (emails && emails.length) {\r\n for (const email of emails) {\r\n if (email.pref) {\r\n prefEmail = email.value;\r\n break;\r\n }\r\n }\r\n if (!prefEmail) {\r\n prefEmail = emails[0].value;\r\n }\r\n }\r\n if (prefEmail) {\r\n this.updateControlValue(field.name, prefEmail, true);\r\n this.fieldChanged(field);\r\n }\r\n }, error => {});\r\n contacts.pickContact();\r\n }\r\n }\r\n\r\n private chooseDateRange(field: FormField): void {\r\n if (this.inlineFormField) {\r\n this.inlineFormField = null;\r\n } else {\r\n this.inlineFormField = field;\r\n }\r\n this.markForCheck();\r\n }\r\n\r\n public showInlineForm(field: FormField): boolean {\r\n return this.inlineFormField === field;\r\n }\r\n\r\n public inlineForm(field: FormField): string {\r\n if (field.controltype.indexOf('date')>=0) {\r\n return '__local_date_range';\r\n }\r\n return null;\r\n }\r\n\r\n public updateInlineParent(value: any, closeInlineForm: boolean): void {\r\n this.updateControlValue(this.inlineFormField.name, value, true);\r\n this.fieldChanged(this.inlineFormField);\r\n this.markForCheck();\r\n if (closeInlineForm) {\r\n this.inlineFormField = null;\r\n }\r\n }\r\n\r\n public inlineDateRangeChanged(dateRange: string, closeInlineForm: boolean): void {\r\n const datePicker = document.getElementById('dateField_' + this.inlineFormField.name) as HTMLInputElement;\r\n if (dateRange && datePicker && !Util.Transforms.isSpecialDateFormat(dateRange)) {\r\n const splitStr: string = Util.Transforms.splitableDateFormat(dateRange);\r\n const parts: string[] = splitStr ? dateRange.split(splitStr) : [dateRange];\r\n if (!Util.Transforms.isSpecialDateFormat(parts[0])) {\r\n datePicker.value = parts[0];\r\n }\r\n }\r\n this.updateInlineParent(dateRange, closeInlineForm);\r\n }\r\n\r\n public inlineFormFieldChanged(form: DynamicFormComponent, field: FormField, control: AbstractControl): void {\r\n const value: any = control.value;\r\n if (this.inlineFormField.controltype.indexOf('date')>=0) {\r\n const dateRange = Util.Transforms.valueToDateRange(value, Util.RestAPI.restAPIVersion()>0x00160700);\r\n this.inlineDateRangeChanged(dateRange, ['D1', 'W1', 'W2', 'M1', 'M3', 'Y1', 'Y3'].indexOf(value)!==-1);\r\n } else {\r\n this.updateInlineParent(value, true);\r\n }\r\n }\r\n\r\n public updateControlValue(name: string, value: any, makeDirty?: boolean, translate?: boolean, transArgs?: string[], autoValidated?: boolean): void {\r\n if (this.form) {\r\n const control: FormControl = this.form.controls[name] as FormControl;\r\n // in case the element is the focus we must blur it so validation will run\r\n const field: FormField = this.getField(name);\r\n const nativeEl = document.getElementById(name);\r\n if (nativeEl && nativeEl === document.activeElement && !autoValidated) {\r\n nativeEl.blur();\r\n }\r\n const newValue: any = {};\r\n if (translate) {\r\n value = this.localizer.getTranslation(value, transArgs);\r\n }\r\n if (field && field.fldtype === 'edit' && (field.datatype === '1' || field.datatype === '8')) {\r\n value = Util.Transforms.utcTimeRangeToLocalDate(value);\r\n }\r\n newValue[name] = value;\r\n this.updateFormData(newValue, true);\r\n if (makeDirty) {\r\n if (control) {\r\n control.markAsDirty();\r\n }\r\n }\r\n if (!!field && ((field.fldtype==='edit' && field.isReadonly) || field.fldtype==='list' || field.fldtype==='checkbox')) {\r\n ++field.rerender;\r\n }\r\n this.cdr.markForCheck();\r\n if (this.blockValidation && this.controller.enableOK) {\r\n setTimeout(() => {\r\n this.controller.enableOK(this.form.valid, this.form.dirty);\r\n }, 1);\r\n }\r\n }\r\n }\r\n\r\n public getFieldValue(name: string): any {\r\n let value: any = null;\r\n if (this.form) {\r\n value = this.form.value[name];\r\n if (!value) {\r\n if (!!this.form.controls[name]) {\r\n value = this.form.controls[name].value;\r\n }\r\n if (!value && !!this.data) {\r\n value = this.data[name];\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n // interface FormController\r\n public fieldChanged(field: FormField): boolean {\r\n const control: AbstractControl = this.form.controls[field.name];\r\n if (this.inlineParent) {\r\n if (field.scriptTrigger || field.visibilityTriggers) {\r\n this.controller.fieldChanged(field, control, this.fields);\r\n }\r\n this.inlineParent.inlineFormFieldChanged(this, field, control);\r\n } else if (this.controller && this.controller.fieldChanged) {\r\n const isSearchForm: boolean = this.formKind.startsWith('profile_query');\r\n if ((!control.value && (field.isRequired || field.controltype === 'editdate'))) {\r\n const formControl: FormControl = this.form.controls[field.name] as FormControl;\r\n this.validateField(formControl, field);\r\n if (field.scriptTrigger || field.visibilityTriggers) {\r\n return this.controller.fieldChanged(field, control, this.fields);\r\n }\r\n return true;\r\n } else if (control && control.dirty && ((field.scriptTrigger || field.visibilityTriggers) || control.value!=='DEFAULT' && (control.value || field.isTriStateCheckbox) && (control.touched || field.isCombo || field.isTriStateCheckbox || field.controltype==='radiogroup' || field===this.inlineFormField))) {\r\n return this.controller.fieldChanged(field, control, this.fields);\r\n } else if (!control.value && !isSearchForm) {\r\n this.clearFieldDesc(field);\r\n this.clearFieldValueAndDescOfDependents(field);\r\n this.clearFieldValueAndDescOfChildren(field);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public buttonClicked(field: FormField): void {\r\n if (this.controller && this.controller.buttonClicked) {\r\n const fieldName: string = field.name;\r\n let control: AbstractControl = this.getControl(fieldName);\r\n if (!control) {\r\n Util.FieldMappings.forEachTemplateField(this.fields, true, (curField: any): boolean => {\r\n if (curField.name === fieldName) {\r\n if (!!curField.extensionParent) {\r\n control = this.getControl(curField.extensionParent);\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n this.controller.buttonClicked(field, control, this.fields);\r\n }\r\n }\r\n\r\n public getList(kind: string): any {\r\n return this.data ? this.data[kind] : null;\r\n }\r\n\r\n public setSecurityList(data: ListItem[]): void {\r\n this.securityList = data;\r\n }\r\n\r\n public getSecurityList(): ListItem[] {\r\n const securityControl: AbstractControl = this.form && this.form.controls ? this.form.controls['SECURITY'] : null;\r\n if (securityControl && securityControl.dirty) {\r\n if (securityControl.value === '1') {\r\n const authorControl: AbstractControl = this.form.controls['AUTHOR_ID'];\r\n const author = !!authorControl && !!authorControl.value ? authorControl.value : null;\r\n let bAddedAuthor = false;\r\n if (this.createType) {\r\n if (!this.securityList) {\r\n if (authorControl && authorControl.value) {\r\n this.securityList = this.listService.addAuthorTypistAsTrustee(authorControl.value, Util.RestAPI.getUserID());\r\n bAddedAuthor = true;\r\n }\r\n }\r\n }\r\n if (!this.securityList) { // User selected from public to restricted\r\n this.securityList = this.listService.addAuthorTypistAsTrustee(this.desc['AUTHOR_ID'], Util.RestAPI.getUserID());\r\n bAddedAuthor = true;\r\n }\r\n if (!bAddedAuthor && !!author && !!this.originalAuthor && author !== this.originalAuthor) {\r\n this.securityList.push({ flag: 2, USER_ID: author, rights: AccessLevel.ACCESS_LEVEL_FULL_RM }as any);\r\n }\r\n return this.securityList;\r\n } else {\r\n return null;\r\n }\r\n } else if (this.data['SECURITY']>='1') {\r\n return this.securityList;\r\n }\r\n return null;\r\n }\r\n\r\n private formatDocNumsInFormValue(formValue: any): any {\r\n if (this.formKind.startsWith('profile_query')) {\r\n const docuNum: string = formValue['DOCNUM'];\r\n if (docuNum && docuNum.toUpperCase().indexOf(' TO ') === -1) {\r\n formValue['DOCNUM'] = docuNum.replace(/[\\ \\t+]/g,';');\r\n }\r\n }\r\n return formValue;\r\n }\r\n\r\n public getValue(): any {\r\n return this.formatDocNumsInFormValue(this.form ? this.form.value : {});\r\n }\r\n\r\n public getAllData(): any {\r\n const allData: any = this.getValue();\r\n const originalKeys: string[] = this.data ? Object.keys(this.data) : [];\r\n const allDataKeys: string[] = Object.keys(allData);\r\n const allControlKeys: string[] = Object.keys(this.form.controls);\r\n let key;\r\n for (key of originalKeys) {\r\n if (allDataKeys.indexOf(key)===-1 && !!this.data[key]) {\r\n allData[key] = this.data[key];\r\n }\r\n }\r\n for (key of allControlKeys) {\r\n if (this.form.controls[key].dirty && allDataKeys.indexOf(key)===-1) {\r\n allData[key] = this.form.controls[key].value;\r\n }\r\n }\r\n return allData;\r\n }\r\n\r\n private finishGetDirty(formValue: any): any {\r\n const securityControl: AbstractControl = this.form.controls['SECURITY'];\r\n if (securityControl && securityControl.dirty) {\r\n formValue['SECURITY'] = securityControl.value;\r\n }\r\n if (!!this.data && !!this.data['FORM'] && this.isProfileForm() && !this.formKind.startsWith('profile_query')) {\r\n formValue['FORM'] = this.data['FORM'];\r\n }\r\n return this.formatDocNumsInFormValue(formValue);\r\n }\r\n\r\n public getDirtyValue(): any {\r\n let formValue: any = {};\r\n const isFilterForm: boolean = this.desc && this.desc.type==='searches';\r\n const isSearchForm: boolean = this.formKind.startsWith('profile_query');\r\n const isCopyForm: boolean = this.formKind.startsWith('profile_copy');\r\n const theForm: FormGroup = this.form;\r\n const addEachDirtyOrNonEmptyField = (theFields: any , allowEmpty: boolean) => {\r\n for (const curField of theFields) {\r\n if (curField.fields) {\r\n addEachDirtyOrNonEmptyField(curField.fields, allowEmpty);\r\n }\r\n if (curField.isVisible || !isSearchForm) {\r\n const control: AbstractControl = theForm.controls[curField.name];\r\n if (control && (isFilterForm || isCopyForm || control.dirty || !!this.createType) && (control.value || (allowEmpty && !curField.isRequired))) {\r\n if (isCopyForm && curField.controltype === 'editdate') {\r\n formValue[curField.name] = Util.Transforms.formatDateForDM(control.value);\r\n } else {\r\n formValue[curField.name] = curField.controltype.indexOf('number')!==-1 ? control.value.toString() : control.value;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n formValue = {};\r\n addEachDirtyOrNonEmptyField(this.fields, !this.createType && !isSearchForm);\r\n return this.finishGetDirty(formValue);\r\n }\r\n\r\n public getDirtyAndRequiredValue(): any {\r\n const formValue: any = {};\r\n const theForm: FormGroup = this.form;\r\n const isSearchForm: boolean = this.formKind.startsWith('profile_query');\r\n const isCopyForm: boolean = this.formKind.startsWith('profile_copy');\r\n const addEachDirtyAndRequiredField = (theFields: any , allowEmpty: boolean) => {\r\n for (const curField of theFields) {\r\n if (curField.fields) {\r\n addEachDirtyAndRequiredField(curField.fields,allowEmpty);\r\n }\r\n const control: AbstractControl = theForm.controls[curField.name];\r\n if (control && (((control.dirty || isCopyForm) && (control.value || (allowEmpty && !curField.isRequired)) && !curField.isExtension) || curField.isRequired)) {\r\n let value = control.value;\r\n if (!value) {\r\n value = 'DEFAULT';\r\n }\r\n if (isCopyForm && curField.controltype === 'editdate') {\r\n formValue[curField.name] = Util.Transforms.formatDateForDM(control.value);\r\n } else {\r\n formValue[curField.name] = curField.controltype.indexOf('number')!==-1 ? control.value.toString() : control.value;\r\n }\r\n }\r\n }\r\n };\r\n addEachDirtyAndRequiredField(this.fields, !this.createType && !isSearchForm);\r\n return this.finishGetDirty(formValue);\r\n }\r\n\r\n public getEditableValues(includeDescriptionOfFields: boolean): any {\r\n const editableData: any = {};\r\n const allData: any = this.form.value;\r\n const allDataKeys: string[] = Object.keys(allData);\r\n for (const key of allDataKeys) {\r\n const value = this.form.controls[key]?.value;\r\n if (!!value) {\r\n if (key === 'SECURITY') {\r\n editableData[key] = value;\r\n } else if (key !== 'DOCNAME') {\r\n const field: any = this.getField(key);\r\n if (!!field && (field.fldtype === 'edit' || field.fldtype === 'checkbox') && field.isEnabled && !field.isReadonly) {\r\n editableData[key] = value;\r\n if (includeDescriptionOfFields) {\r\n this.addControlValue(editableData, field.descriptionField);\r\n for (const auxiliaryKey of field.auxiliary || []) {\r\n this.addControlValue(editableData, auxiliaryKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return editableData;\r\n }\r\n\r\n private addControlValue(valueDictionary: any, key: string): void {\r\n const value = this.form.controls[key]?.value;\r\n if (!!value) {\r\n valueDictionary[key] = value;\r\n }\r\n }\r\n\r\n public getControl(name: string): AbstractControl {\r\n return this.form.controls[name];\r\n }\r\n\r\n public getControlValue(name: string): any {\r\n return !!this.form.controls[name] ? this.form.controls[name].value : null;\r\n }\r\n\r\n public getField(name: string): FormField {\r\n let field: FormField = null;\r\n const findFieldWithName = theFields => {\r\n if (theFields) {\r\n for (const curField of theFields) {\r\n if (curField.name===name) {\r\n field = curField;\r\n return true;\r\n }\r\n if (curField.fields) {\r\n if (findFieldWithName(curField.fields)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n if (name) {\r\n findFieldWithName(this.fields);\r\n }\r\n return field;\r\n }\r\n\r\n public markForCheck(): void {\r\n this.cdr.markForCheck();\r\n }\r\n\r\n public setLoading(loading: boolean): void {\r\n this.loadingCount += loading ? 1 : -1;\r\n if (this.loadingCount<0) {\r\n this.loadingCount = 0;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n public isLoading(): boolean {\r\n return this.loadingCount > 0;\r\n }\r\n\r\n public userChangingProfileForm(libChanged: boolean, formChanged: boolean): void {\r\n if (libChanged) {\r\n if (Util.Device.bIsOfficeAddinOutlook) {\r\n this.savedFormData = {};\r\n const dirtyVal = this.getDirtyValue();\r\n const dirtyValKeys = Object.keys(dirtyVal);\r\n for (const key of dirtyValKeys) {\r\n if (Util.isEmailField(key) || key==='DOCNAME') {\r\n this.savedFormData[key] = dirtyVal[key];\r\n }\r\n }\r\n }\r\n } else {\r\n this.savedFormData = this.getDirtyValue();\r\n this.isOfficeItemOptionChanged = !formChanged;\r\n if (!formChanged && Util.Device.bIsOfficeAddinOutlook) {\r\n const allData = this.getAllData();\r\n const allKeys = Object.keys(allData);\r\n for (const key of allKeys) {\r\n if (Util.isEmailField(key) || key==='DOCNAME') {\r\n this.savedFormData[key] = allData[key];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFieldVisibility(name: string, visible: boolean): void {\r\n const field: FormField = this.getField(name);\r\n if (field) {\r\n if (visible !== field.isVisible) {\r\n field.isVisible = visible;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n public setFieldLabel(name: string, label: string, translate?: boolean): void {\r\n const field: FormField = this.getField(name);\r\n if (field) {\r\n if (label !== field.label) {\r\n if (translate) {\r\n label = this.localizer.getTranslation(label);\r\n }\r\n field.label = label;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n private getKey(field: FormField): string {\r\n // such as: AUTHOR.USER_ID;DOCSADM.PEOPLE.SYSTEM_ID\"\r\n const sqlinfo: string = field.mvinfo || field.sqlinfo;\r\n if (sqlinfo && sqlinfo.length) {\r\n const arg: string = sqlinfo.split(';')[0];\r\n const parts: string[] = arg.split('.');\r\n if (parts.length >= 1) {\r\n let key: string = parts[parts.length-1];\r\n if (field.name === 'APP_ID' && key === 'APPLICATION') {\r\n key = 'APP_ID';\r\n }\r\n // Looks like all sqlinfo key components have to be valid fields also.\r\n // Otherwise we have to use the field name as the key. If this is true\r\n // in all cases above code for APP_ID may nor be needed. (Velimir)\r\n if (!this.verifyKey(key)) {\r\n key = field.name;\r\n }\r\n /*\r\n Similar to above - use field name as key (AUTHOR_ID and TYPIST_ID).\r\n Fields AUTHOR and TYPIST do not map to form fields that display user names.\r\n We simply used incorrect field names in custom forms!!\r\n Using the field name as key will return the field name column in the\r\n lookup schema. (Velimir)\r\n */\r\n /*\r\n if (field.name === 'AUTHOR' || field.name === 'TYPIST') {\r\n key = 'USER_ID';\r\n }\r\n */\r\n return key;\r\n }\r\n } else if (field.name === '%KEYWORD') {\r\n return 'KEYWORD_ID';\r\n }\r\n return null;\r\n }\r\n\r\n private verifyKey(key: string): boolean {\r\n const field = this.getField(key);\r\n return !!field;\r\n }\r\n\r\n public setFieldValueAndDescOfParents(field: FormField, data: any): void {\r\n // Ignore unused and invalid fields returned by DM server. Note that CLIENT_ID\r\n // does NOT contain the actual client value but it is in CLIENT_ID01 !!??\r\n const ignoreFields = ['%PRIMARY_KEY','lib',field.name];\r\n if (this.formKind.startsWith('profile_query') && field.name === 'TYPE_ID') {\r\n ignoreFields.push('DOCTYPE_STORAGE');\r\n }\r\n if (data) {\r\n const keys: string[] = Object.keys(data);\r\n for (const key of keys) {\r\n if (ignoreFields.indexOf(key)<0) {\r\n // If alias, get true field name (i.e. CLIENT_ID01 maps into CLIENT_ID)\r\n const fieldName: string = Util.FieldMappings.aliasToField(key);\r\n const currField: FormField = this.getField(fieldName);\r\n if (currField) {\r\n const value: string = data[key];\r\n currField.lastLookupValue = value;\r\n currField.autoValidated = true;\r\n this.updateControlValue(fieldName, value, true, false, null, currField.autoValidated);\r\n // Check if there is a description field and set it\r\n const nameKey: string = Util.FieldMappings.descriptionForField(this.formTemplate, currField);\r\n if (nameKey) {\r\n const desc: string = Util.FieldMappings.descriptionValueForField(data, currField);\r\n this.setFieldDesc(fieldName, desc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public clearFieldValueAndDescOfChildren(fieldIn: FormField): void {\r\n while (fieldIn && fieldIn.childField) {\r\n fieldIn = this.getField(fieldIn.childField);\r\n if (fieldIn) {\r\n if (fieldIn.retainDefaultValue === false) {\r\n this.clearFieldValueAndDesc(fieldIn.name);\r\n } else {\r\n fieldIn.retainDefaultValue = false;\r\n }\r\n // Clear any dependents of this child\r\n this.clearFieldValueAndDescOfDependents(fieldIn);\r\n }\r\n }\r\n }\r\n\r\n public clearFieldValueAndDescOfDependents(fieldIn: FormField): void {\r\n if (fieldIn && fieldIn.auxiliary) {\r\n for (const fieldName of fieldIn.auxiliary) {\r\n this.clearFieldValueAndDesc(fieldName);\r\n }\r\n }\r\n if (fieldIn && fieldIn.lookups) {\r\n for (const fieldName of fieldIn.lookups) {\r\n this.clearFieldValueAndDesc(fieldName);\r\n const field: FormField = this.getField(fieldName);\r\n this.clearFieldValueAndDescOfDependents(field);\r\n }\r\n }\r\n }\r\n\r\n public clearFieldValueAndDesc(fieldName: string): void {\r\n const map = {};\r\n const field: FormField = this.getField(fieldName);\r\n if (field) {\r\n map[field.name] = '';\r\n if (!!this.data) {\r\n this.data[field.name] = '';\r\n }\r\n field.autoValidated = false;\r\n this.clearFieldDesc(field, map);\r\n const control: FormControl = this.form.controls[fieldName] as FormControl;\r\n if (control) {\r\n control.markAsDirty();\r\n }\r\n }\r\n }\r\n\r\n public clearFieldDesc(field: FormField, mapFields: any={}): void {\r\n if (field) {\r\n let nameKey = '';\r\n if (!!field.descriptionField) {\r\n nameKey = field.descriptionField;\r\n } else {\r\n nameKey = Util.FieldMappings.descriptionForField(this.formTemplate, field);\r\n }\r\n mapFields[nameKey] = '';\r\n if (!!this.data) {\r\n this.data[nameKey] = '';\r\n }\r\n this.updateFormData(mapFields, true);\r\n if (!!field.auxiliary) {\r\n // If a lookup field has dependent fields then force field validation for every field value\r\n field.lastLookupValue = '*';\r\n }\r\n }\r\n }\r\n\r\n public setFieldDesc(fieldName: string, fieldDesc: string, mapFields: any={}): void {\r\n const field: FormField = this.getField(fieldName);\r\n if (field) {\r\n let nameKey = '';\r\n if (!!field.descriptionField && (field.descriptionField !== undefined || field.descriptionField !== '')) {\r\n nameKey = field.descriptionField;\r\n } else {\r\n nameKey = Util.FieldMappings.descriptionForField(this.formTemplate, field);\r\n }\r\n mapFields[nameKey] = fieldDesc;\r\n this.updateFormData(mapFields, true);\r\n }\r\n }\r\n\r\n\r\n // **** PopupCallback implementation\r\n\r\n popupCancel(): void {\r\n if (this.lookupShown) {\r\n this.lookupShown = false;\r\n --this.blockValidation;\r\n }\r\n if (this.securityShown) {\r\n this.securityShown = false;\r\n }\r\n if (this.fileplansShown) {\r\n this.fileplansShown = false;\r\n }\r\n this.standInBodyHeight = 0;\r\n this.cdr.markForCheck();\r\n setTimeout(() => {\r\n this.cdr.markForCheck();\r\n\r\n if (Util.Device.isPhoneLook() && !!this.formScrollTop) {\r\n const formBody: HTMLElement = document.getElementById('edx_form_body');\r\n if (!!formBody) {\r\n formBody.scrollTop = this.formScrollTop;\r\n }\r\n }\r\n }, 1);\r\n }\r\n\r\n popupOK(): void {\r\n if (this.security) {\r\n let securityType: number;\r\n this.securityList = this.security.getList();\r\n setTimeout(() => {\r\n if (this.securityList && this.securityList.length > 0) {\r\n this.desc['edx_selected_security_choice'] = '1';\r\n this.updateControlValue('SECURITY', '1', true);\r\n securityType = 1;\r\n } else {\r\n this.updateControlValue('SECURITY', '0', true);\r\n securityType = 0;\r\n }\r\n if (this.controller.getHeaderForm && this.controller.getHeaderForm()) {\r\n this.controller.getHeaderForm().updateControlValue('SECURITY', securityType);\r\n }\r\n if (this.controller.securityDirty) {\r\n this.controller.securityDirty(true);\r\n }\r\n }, 1);\r\n } else if (this.fileplans) {\r\n const filePartList: ListItem[] = this.fileplans.getSelections();\r\n const description: string = Util.FieldMappings.descriptionValueForField(filePartList[0], this.lookupField);\r\n this.lookupField.lookupData = [];\r\n const filepartNo: string = filePartList[0]['PD_FILEPT_NO'] || filePartList[0].DOCNAME;\r\n const lookupItem = new CacheItem(filepartNo, description);\r\n this.lookupField.lookupData.push(lookupItem);\r\n } else if (this.lookupTable && this.lookupField) {\r\n const fieldJSON: any = {};\r\n let fieldSecondaryKey: string;\r\n let secondaryValue: string;\r\n const items: any[] = this.lookupTable.getSelections();\r\n const isMultiSelectField: boolean = this.lookupTable.isMultiselectItem();\r\n const fieldPrimaryKey: string = this.lookupField.name === 'APP_ID' ? 'APP_ID' : this.getKey(this.lookupField);\r\n items.sort((a, b) => a[fieldPrimaryKey].localeCompare(b[fieldPrimaryKey]));\r\n const primaryValue: string = items.map(item => item[fieldPrimaryKey]).join(';');\r\n const defsItem = this.formTemplate.defs.find(i => i.name===fieldPrimaryKey);\r\n const hasLookupExclusions: boolean = defsItem && !!defsItem._lookupExclusions;\r\n if (!isMultiSelectField && !hasLookupExclusions) {\r\n for (const item of items) {\r\n this.scanFieldsForRevalidatonOrEvaluation(item, this.lookupField.name);\r\n }\r\n }\r\n if (this.lookupField.fields && this.lookupField.fields.length) {\r\n fieldSecondaryKey = this.getKey(this.lookupField.fields[0]);\r\n secondaryValue = items[0][fieldSecondaryKey];\r\n }\r\n if (fieldSecondaryKey) {\r\n fieldJSON[this.lookupField.name] = primaryValue;\r\n fieldJSON[this.lookupField.fields[0].name] = secondaryValue;\r\n } else {\r\n fieldJSON[this.lookupField.name] = primaryValue;\r\n }\r\n if (secondaryValue === undefined) {\r\n const nameKey: string = Util.FieldMappings.secondaryKeyForField(items[0], this.lookupField);\r\n secondaryValue = items[0][nameKey];\r\n }\r\n if (hasLookupExclusions) {\r\n for (const itm of items) {\r\n this.removeLookupExclusions(itm, defsItem._lookupExclusions);\r\n }\r\n }\r\n if (items.length === 1 && !isMultiSelectField) {\r\n this.lookupField.lookupData = [];\r\n const lookupItem = new CacheItem(primaryValue, secondaryValue, items[0]);\r\n this.lookupField.lookupData.push(lookupItem);\r\n } else if (items.length > 0 && isMultiSelectField) {\r\n this.lookupField.lookupData = [];\r\n const lookupItem = new CacheItem(primaryValue, '', items);\r\n this.lookupField.lookupData.push(lookupItem);\r\n }\r\n\r\n const control = this.form.controls[this.lookupField.name] as FormControl;\r\n this.updateFormData(fieldJSON, true);\r\n if (!!control) {\r\n control.markAsDirty();\r\n }\r\n if (this.controller.enableOK) {\r\n setTimeout(() => {\r\n this.controller.enableOK(this.form.valid, this.form.dirty);\r\n // TODO: Ron fix or remove in 16.6 this.focusOnFirstEmptyEditable();\r\n }, 1);\r\n }\r\n }\r\n this.popupCancel();\r\n }\r\n\r\n removeLookupExclusions(item: any, lookupExclusions: any[]): void {\r\n for (const field of lookupExclusions) {\r\n if (!!item[field]) {\r\n delete item[field];\r\n }\r\n }\r\n }\r\n\r\n getLookupBtnId(): string {\r\n return !!this.lookupField && !!this.lookupField.name ? 'edx_lkp_btn_' + this.lookupField.name : '';\r\n }\r\n\r\n private hasLookup(field: FormField): boolean {\r\n return !!field.lookup && !field.isReadonly && (field.lookup.startsWith('$edx_') || field.lookup.indexOf('@RM.DLL') > -1 || (this.hasLookupTable(field.lookup)));\r\n }\r\n\r\n private revalidate(field: FormField): boolean {\r\n if (this.hasLookup(field)) {\r\n return !field.scheduledForRevalidation && !field.lookupData && !field.autoValidated && field.isRequired;\r\n }\r\n return false;\r\n }\r\n\r\n public doReValidate(field: FormField,value: any): void {\r\n const control: FormControl = this.form.controls[field.name] as FormControl;\r\n if (value && ((field.lastLookupValue !== null && field.lastLookupValue !== value) || (field.defaultValue !== null && field.defaultValue !== value))) {\r\n this.updateControlValue(field.name,value,true);\r\n if (this.revalidate(field)) {\r\n field.scheduledForRevalidation = true;\r\n let parent = this.getField(field.parentField);\r\n if (parent && !parent.isRequired) {\r\n parent = null;\r\n }\r\n // Do NOT clear children form default values!!!\r\n const child = this.getField(field.childField);\r\n if (child) {\r\n child.retainDefaultValue = true;\r\n }\r\n const waitForParent = () => {\r\n if (parent && parent.scheduledForRevalidation) {\r\n setTimeout(waitForParent,10);\r\n } else {\r\n this.validateLookup(control, field, value);\r\n }\r\n };\r\n setTimeout(waitForParent,10);\r\n }\r\n }\r\n }\r\n\r\n public scanFieldsForRevalidatonOrEvaluation(item: any, selfName?: string): void {\r\n const enumerableKeys: any = item ? Object.keys(item) : null;\r\n const rootKeyName: string = selfName ? selfName : '';\r\n if (enumerableKeys && !!this.createType) {\r\n for (const key of enumerableKeys) {\r\n const field = this.getField(key);\r\n if (field && field.name !== rootKeyName) {\r\n this.doReValidate(field,item[key]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public handleListItemDblClick(table: ListTableComponent, item: ListItem, event: Event, property: string): boolean {\r\n const handled: boolean = this.canSelectListItem(table, item);\r\n if (handled) {\r\n this.popupOK();\r\n }\r\n return handled;\r\n }\r\n\r\n // export interface ListTableParent\r\n public selectionsUpdated(table: ListTableComponent): void {\r\n const items: any[] = this.lookupTable ? this.lookupTable.getSelections() : null;\r\n this.lookupOKDisabled = !(items && items.length);\r\n }\r\n\r\n public canSelectListItem(table: ListTableComponent, item: ListItem): boolean {\r\n if (this.lookupTable && !this.formKind.startsWith('profile_query')) {\r\n if (item['DISABLED'] === '1' || item['DISABLED'] === 'Y') {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public isDirty(): boolean {\r\n return this.form ? this.form.dirty : false;\r\n }\r\n\r\n public resetDirty(initialData?: any): void {\r\n const dirtyFields = this.getDirtyValue();\r\n for (const key in dirtyFields) {\r\n const field = this.getField(key);\r\n const control = this.getControl(key);\r\n if (control) {\r\n if (field && field.isCheckboxGroup && field.buttonMap && !!initialData && initialData[key]) {\r\n control.reset(initialData[key]);\r\n } else {\r\n if (!!field && field.fldtype==='radiogroup') {\r\n control.setValue(field.defaultValue);\r\n this.useForceRender(field);\r\n }\r\n control.reset();\r\n }\r\n }\r\n }\r\n this.inlineFormField = null;\r\n this.markForCheck();\r\n }\r\n\r\n public validationBlocking(blockValidation: boolean): void {\r\n if (blockValidation) {\r\n ++this.blockValidation;\r\n } else {\r\n --this.blockValidation;\r\n }\r\n }\r\n\r\n public getCacheKey(fieldName: string): string {\r\n let key = '';\r\n if (this.desc) {\r\n fieldName = Util.FieldMappings.aliasToField(fieldName);\r\n const field = this.getField(fieldName);\r\n const lib = this.desc.lib || Util.RestAPI.getPrimaryLibrary();\r\n key = lib + '.' + fieldName;\r\n if (field && field.parentField) {\r\n const parent_values = this.getParentValues(field);\r\n key += parent_values;\r\n }\r\n }\r\n return key.toUpperCase();\r\n }\r\n\r\n private getParentValues(field: FormField): string {\r\n let keyValues = '';\r\n field = this.getField(field.parentField);\r\n while (field) {\r\n keyValues += '.' + this.getFieldValue(field.name);\r\n field = this.getField(field.parentField);\r\n }\r\n return keyValues;\r\n }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { FormLoginComponent } from './form-login.component';\r\nimport { DynamicFormFieldComponent } from './dynamic-form-field.component';\r\nimport { DynamicFormComponent } from './dynamic-form.component';\r\nimport { GroupBoxFieldComponent } from './group-box-field.component';\r\nimport { FormWrapperComponent } from './form-wrapper.component';\r\nimport { FormFieldListComponent } from './form-field-list.component';\r\nimport { WidgetsModule } from '../widgets/widgets.module';\r\nimport { ListsModule } from '../lists/lists.module';\r\nimport { DynamicFormRowComponent } from './dynamic-form-row.component';\r\nimport { NumericFieldComponent } from './numeric-field.component';\r\nimport { CheckboxFieldComponent } from './checkbox-field.component';\r\nimport { RadioGroupComponent } from './radio-group.component';\r\nimport { RadioFieldComponent } from './radio-field.component';\r\nimport { ProgressFieldComponent } from './progress-field.component';\r\nimport { SelectFieldComponent } from './select-field.component';\r\nimport { SegmentFieldComponent } from './segment-field.component';\r\nimport { ReadOnlyTextFieldComponent } from './read-only-text-field.component';\r\nimport { LinkFieldComponent } from './link-field.component';\r\nimport { LocationChooserFieldComponent } from './location-chooser-field.component';\r\nimport { FilterSidebarComponent } from './filter-sidebar.component';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n WidgetsModule,\r\n ListsModule,\r\n ReactiveFormsModule,\r\n DirectivesModule\r\n ],\r\n declarations: [\r\n FormLoginComponent,\r\n DynamicFormComponent,\r\n DynamicFormFieldComponent,\r\n DynamicFormRowComponent,\r\n GroupBoxFieldComponent,\r\n FormWrapperComponent,\r\n FormFieldListComponent,\r\n NumericFieldComponent,\r\n CheckboxFieldComponent,\r\n RadioFieldComponent,\r\n RadioGroupComponent,\r\n ProgressFieldComponent,\r\n SelectFieldComponent,\r\n SegmentFieldComponent,\r\n ReadOnlyTextFieldComponent,\r\n LinkFieldComponent,\r\n LocationChooserFieldComponent,\r\n FilterSidebarComponent\r\n ],\r\n exports:[\r\n FormLoginComponent,\r\n DynamicFormComponent,\r\n DynamicFormFieldComponent,\r\n DynamicFormRowComponent,\r\n GroupBoxFieldComponent,\r\n FormWrapperComponent,\r\n FormFieldListComponent,\r\n NumericFieldComponent,\r\n CheckboxFieldComponent,\r\n RadioFieldComponent,\r\n RadioGroupComponent,\r\n ProgressFieldComponent,\r\n SelectFieldComponent,\r\n SegmentFieldComponent,\r\n ReadOnlyTextFieldComponent,\r\n LinkFieldComponent,\r\n LocationChooserFieldComponent,\r\n FilterSidebarComponent\r\n ]\r\n})\r\n\r\nexport class EDXFormsModule { }\r\n"," /**\r\n * Created by kevin on 2016-10-07.\r\n *\r\n * Implements a filter sidebar component as an accessory to a file/search list\r\n *\r\n */\r\n\r\nimport { Component, Input, OnInit, ViewChild, ElementRef, HostListener, ChangeDetectorRef } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { LocalizeService } from '../services/localize.service';\r\nimport { BaseDesc, ListData } from '../models/base';\r\nimport { DynamicFormComponent, FormController } from './dynamic-form.component';\r\nimport { FormField, SelectItem, FieldFlags } from '../models/form-field';\r\nimport { Util, UserInterface } from '../utils/utils.module';\r\nimport { FormService } from '../services/form.service';\r\nimport { DataService } from '../services/data.service';\r\nimport { PopupCallback } from '../widgets/popup.component';\r\n\r\ntype tItemCB = (key: string, value: string, display: string) => void;\r\nconst kServerKey = 'serverKey';\r\n\r\nconst _facetKey = (item: any, forServer: boolean): string => {\r\n const keys: string[] = Object.keys(item);\r\n const serverKeyValue = item[kServerKey];\r\n if (forServer && !!serverKeyValue && item[serverKeyValue] !== undefined) {\r\n return item[serverKeyValue];\r\n } else {\r\n for (const key of keys) {\r\n if (key!=='checked' && key!=='readOnly' && key !== kServerKey && key !== serverKeyValue) {\r\n return key;\r\n }\r\n }\r\n }\r\n return '';\r\n};\r\n\r\nconst kLessLen = 5;\r\n\r\nclass FilterSection {\r\n lessLen: number = kLessLen;\r\n localizer: LocalizeService;\r\n items: any[];\r\n id: string;\r\n title: string;\r\n field: any;\r\n isOpen = false;\r\n isOpening = false;\r\n isClosing = false;\r\n isExpanding = false;\r\n isContracting = false;\r\n isSearchOpen = false;\r\n showClearIcon = false;\r\n loading = false;\r\n moreShown = false;\r\n moreLess: string = null;\r\n canSearch = false;\r\n\r\n constructor(localizer: LocalizeService, id: string, title: string, field: any, canSearch: boolean) {\r\n this.localizer = localizer;\r\n this.items = [];\r\n this.id = id;\r\n this.title = title;\r\n this.field = field;\r\n this.canSearch = canSearch;\r\n }\r\n\r\n public empty(): void {\r\n this.items = [];\r\n }\r\n\r\n public reset(): void {\r\n for (const item of this.items) {\r\n if (item.checked) {\r\n item.checked = false;\r\n }\r\n }\r\n }\r\n\r\n public pruneToChecked(): void {\r\n const newItems: any[] = [];\r\n for (const item of this.items) {\r\n if (item.checked) {\r\n newItems.push(item);\r\n }\r\n }\r\n this.items = newItems;\r\n this.moreLess = null;\r\n }\r\n\r\n public add(items: any[], checkedList: string[], readOnlyList: string[]): void {\r\n const sep = this.id === 'ITEM_TYPE' ? ',' : ';';\r\n let item: any;\r\n for (item of items) {\r\n const key: string = _facetKey(item, false);\r\n if (!this.itemExists(key)) {\r\n this.items.push(item);\r\n }\r\n }\r\n if (checkedList && checkedList.length) {\r\n for (const checkedItem of checkedList) {\r\n const checkedItemParts: string[] = checkedItem.split(sep);\r\n for (const singleCheckedItem of checkedItemParts) {\r\n item = this.getItem(singleCheckedItem);\r\n if (!item) {\r\n item = {};\r\n item[singleCheckedItem] = 0;\r\n this.items.push(item);\r\n }\r\n item.checked = true;\r\n }\r\n }\r\n }\r\n if (readOnlyList && readOnlyList.length) {\r\n for (const readOnlyItem of readOnlyList) {\r\n const readOnlyItemParts: string[] = readOnlyItem.split(sep);\r\n for (const singleReadOnlyItem of readOnlyItemParts) {\r\n item = this.getItem(singleReadOnlyItem);\r\n if (!item) {\r\n item = {};\r\n item[singleReadOnlyItem] = 0;\r\n this.items.push(item);\r\n }\r\n item.readOnly = true;\r\n }\r\n }\r\n }\r\n if (this.items.length < this.lessLen) {\r\n this.moreShown = false;\r\n this.moreLess = null;\r\n } else {\r\n this.setMoreLessText();\r\n }\r\n }\r\n\r\n public toggleMoreLess(): boolean {\r\n this.moreShown = !this.moreShown;\r\n this.setMoreLessText();\r\n return this.moreShown;\r\n }\r\n\r\n public hideMore(): void {\r\n if (this.moreShown) {\r\n this.moreShown = false;\r\n this.setMoreLessText();\r\n }\r\n }\r\n\r\n private setMoreLessText(): void {\r\n const chevCodePoint: number = this.moreShown ? 0x2303 : 0x2304;\r\n const strKey: string = 'FORMS.BUTTONS.' + (this.moreShown ? 'LESS' : 'MORE');\r\n this.moreLess = this.localizer.getTranslation(strKey) + ' ' + String.fromCodePoint(chevCodePoint);\r\n }\r\n\r\n private itemExists(key: string): boolean {\r\n for (const item of this.items) {\r\n if (key === _facetKey(item, false)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private getItem(key: string): boolean {\r\n for (const item of this.items) {\r\n if (key === _facetKey(item, true)) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'edx-filter-sidebar',\r\n styleUrls: ['filter-sidebar.component.scss'],\r\n templateUrl: 'filter-sidebar.component.html'\r\n})\r\nexport class FilterSidebarComponent implements OnInit, FormController, PopupCallback {\r\n @ViewChild(DynamicFormComponent) dynamicForm: DynamicFormComponent;\r\n @ViewChild('docNameInput') docNameInput: ElementRef;\r\n @Input() target: FilterTarget;\r\n public isFiltered = false;\r\n public ui: UserInterface;\r\n public isOpen = false;\r\n private officeAddin: boolean;\r\n private canHaveFacets: boolean;\r\n private title: string;\r\n private applyStr: string;\r\n private clearStr: string;\r\n private noFiltersStr: string;\r\n private cancelStr: string;\r\n private docNameStr: string;\r\n private showClearIcon = false;\r\n private formLayout = 'column';\r\n private kind = 'profile_query_filter';\r\n private okDisabled = true;\r\n private facetsDirty = false;\r\n private formTemplate: any;\r\n private facetFormTemplate: any;\r\n private desc: BaseDesc;\r\n private params: string;\r\n private parentSearchCriteria: any;\r\n private formName: string;\r\n private setData: any;\r\n private showFilters = false;\r\n private resetShownOnce = false;\r\n private filters: any = {};\r\n private initialCriteria: any = {};\r\n private searchInValue: any = null;\r\n private extrasShown = false;\r\n private extrasButtonStr: string;\r\n private loading = false;\r\n private bFillFormAfterLoad = false;\r\n private sections: FilterSection[] = null;\r\n private expandedSection: FilterSection = null;\r\n private customFacetFields: any[];\r\n private altLabels: any;\r\n\r\n constructor(private localizer: LocalizeService, private formService: FormService, private dataService: DataService, private changeDetector: ChangeDetectorRef) {\r\n this.ui = Util.Device.ui;\r\n this.officeAddin = Util.Device.bIsOfficeAddin;\r\n this.resetShownOnce = Util.Device.isPhoneLook() ? false : true;\r\n this.title = this.localizer.getTranslation('REFINE_SEARCH.REFINE_BY');\r\n this.applyStr = this.localizer.getTranslation('REFINE_SEARCH.APPLY');\r\n this.clearStr = this.localizer.getTranslation('REFINE_SEARCH.CLEAR');\r\n this.noFiltersStr = this.localizer.getTranslation('REFINE_SEARCH.NO_FILTERS');\r\n this.extrasButtonStr = this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n this.docNameStr = this.localizer.getTranslation('COLUMN_HEADINGS.DEFAULT.NAME');\r\n this.altLabels = {\r\n facet: this.localizer.getTranslation('ALT_TEXT.FACET'),\r\n more: this.localizer.getTranslation('FORMS.BUTTONS.MORE'),\r\n less: this.localizer.getTranslation('FORMS.BUTTONS.LESS'),\r\n searchFacet: this.localizer.getTranslation('ALT_TEXT.SEARCH_FACET'),\r\n facetItem: this.localizer.getTranslation('ALT_TEXT.FACET_ITEM'),\r\n backToFacets: this.localizer.getTranslation('ALT_TEXT.BACK_TO_FACETS'),\r\n expandFacet: this.localizer.getTranslation('ALT_TEXT.EXPAND_FACET'),\r\n expand: this.localizer.getTranslation('ALT_TEXT.EXPAND'),\r\n noItems: this.localizer.getTranslation('PLACEHOLDER.NO_ITEMS'),\r\n showAllItems: this.localizer.getTranslation('ALT_TEXT.ShOW_ALL_ITEMS')\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isFiltered = false;\r\n this.loading = true;\r\n this.getAndSetFormData();\r\n }\r\n\r\n @HostListener('document:keyup', ['$event'])\r\n keyUp(event: KeyboardEvent) {\r\n if (this.ui < 2 && this.isOpen) {\r\n if (event.key === 'Escape' && this.showReset()) {\r\n this.reset();\r\n } else if (event.key === 'Enter') {\r\n if (!this.okDisabled) {\r\n this.search();\r\n }\r\n } else if (event.key === 'ArrowRight') {\r\n const element = document.getElementById('edx_action_showfilter');\r\n if (!!element) {\r\n element.focus();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n private clearSection(sectionOrNullForAll?: FilterSection): void {\r\n if (!!sectionOrNullForAll) {\r\n sectionOrNullForAll.items = [];\r\n sectionOrNullForAll.hideMore();\r\n } else if (this.sections) {\r\n for (const section of this.sections) {\r\n section.items = [];\r\n section.hideMore();\r\n }\r\n }\r\n }\r\n\r\n private checkForFacets(): Promise {\r\n this.clearSection();\r\n if (this.target && this.target.hasFacets) {\r\n return this.target.hasFacets();\r\n }\r\n return Promise.resolve(false);\r\n }\r\n\r\n private setupFacetFilters(titles: string[], fields: any[]): void {\r\n const nTitles = !!titles ? titles.length : 0;\r\n const sections: FilterSection[] = [];\r\n if (!!this.setData.datefacets) {\r\n sections.push(new FilterSection(this.localizer, 'datefacets', this.localizer.getTranslation('COLUMN_HEADINGS.HISTORY.DATE'), null, !this.customFacetFields || this.customFacetFields.length===0));\r\n }\r\n if (nTitles>0) {\r\n for (let iTitle=0; iTitle {\r\n const facetKeys = facets ? Object.keys(facets) : [];\r\n if (facetKeys.length > 0) {\r\n const selectedFilters: string[] = !!this.filters && !!this.filters[section.id] ? this.filters[section.id].split(',') : [];\r\n const selectedCriteria: string[] = !!this.setData && !!this.setData.search && !!this.setData.search.criteria && !!this.setData.search.criteria[section.id] ? Util.Transforms.restoreQueryValue(this.setData.search.criteria[section.id]).split('|') : [];\r\n section.add(facets[section.id], selectedFilters.concat(selectedCriteria), selectedCriteria);\r\n }\r\n section.loading = false;\r\n this.changeDetector.markForCheck();\r\n });\r\n\r\n if (!!this.formTemplate && this.formTemplate.name==='filters_history') {\r\n const facetItems = [];\r\n section.loading = true;\r\n this.getCustomFilterData(section.field, (key: string, value: string, display: string) => {\r\n const fsItem = {};\r\n fsItem[kServerKey] = key;\r\n fsItem[key] = value;\r\n fsItem[display] = -1;\r\n facetItems.push(fsItem);\r\n }).then(() => {\r\n const facets = {};\r\n facets[section.id] = facetItems;\r\n afterGetFacets(facets);\r\n }, err => {\r\n section.loading = false;\r\n this.changeDetector.markForCheck();\r\n });\r\n } else if (section.id !== 'datefacets') {\r\n const filters: string = Util.RestAPI.stringifyFilters(this.dataService.getFilters(this.desc));\r\n const query: string = '&facet='+section.id + ((filters && filters.length) ? ('&filter='+filters) : '') + (!all ? ('&max='+(kLessLen+1)) : '');\r\n section.loading = true;\r\n this.target.getFacets(query).subscribe(afterGetFacets, err => {\r\n section.loading = false;\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n private placeholderForSection(section: FilterSection): string {\r\n return this.localizer.getTranslation('PLACEHOLDER.SEARCH_FOR', [section.title]);\r\n }\r\n\r\n private openSection(index: number) {\r\n const section = this.sections[index];\r\n this.getSectionFacets(section);\r\n section.isOpen = true;\r\n section.isOpening = true;\r\n section.isClosing = false;\r\n }\r\n\r\n private closeSection(index: number) {\r\n const section = this.sections[index];\r\n section.isOpening = false;\r\n section.isClosing = true;\r\n }\r\n\r\n private animationComplete(section: FilterSection): void {\r\n if (this.expandedSection) {\r\n if (this.expandedSection.isContracting) {\r\n this.expandedSection.isContracting = false;\r\n this.expandedSection.isExpanding = false;\r\n this.expandedSection = null;\r\n } else if (this.expandedSection.isExpanding) {\r\n this.expandedSection.isExpanding = false;\r\n this.expandedSection.isContracting = false;\r\n }\r\n } else if (section) {\r\n if (section.isClosing) {\r\n section.isOpen = false;\r\n }\r\n section.isOpening = false;\r\n section.isClosing = false;\r\n }\r\n }\r\n\r\n private toggleExpandedSection(section: FilterSection): void {\r\n if (this.ui<2) {\r\n if (!!this.expandedSection) {\r\n section.isContracting = true;\r\n } else {\r\n section.isExpanding = true;\r\n this.expandedSection = section;\r\n this.getSectionFacets(section, true);\r\n setTimeout(() => {\r\n const headerBackArrow = document.getElementById('edx_sidebar_header_arrow');\r\n if (!!headerBackArrow) {\r\n headerBackArrow.focus();\r\n }\r\n }, 1);\r\n }\r\n } else {\r\n if (section.toggleMoreLess()) {\r\n this.getSectionFacets(section, true);\r\n }\r\n }\r\n }\r\n\r\n private toggleExtras(): void {\r\n this.extrasShown = !this.extrasShown;\r\n this.extrasButtonStr = this.extrasShown ? this.localizer.getTranslation('FORMS.BUTTONS.LESS') : this.localizer.getTranslation('FORMS.BUTTONS.MORE');\r\n if (this.dynamicForm) {\r\n this.dynamicForm.dynamicExtrasToggled(this.extrasShown);\r\n }\r\n }\r\n\r\n private clearName(): void {\r\n if (this.docNameInput && this.docNameInput.nativeElement) {\r\n (this.docNameInput.nativeElement as HTMLInputElement).value = '';\r\n this.showClearIcon = false;\r\n }\r\n }\r\n\r\n private sectionSearchKeyup(event: KeyboardEvent, section: FilterSection): void {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if (event.key==='Enter') {\r\n const txt: string = (event.target as HTMLInputElement).value;\r\n let queryArgs: string = '&facet='+section.id + ((txt && txt.length) ? '&prefix='+encodeURIComponent(txt) : '');\r\n const filterObj = this.dataService.getFilters(this.desc);\r\n if (filterObj && filterObj[section.id]) {\r\n delete filterObj[section.id];\r\n }\r\n const filters: string = Util.RestAPI.stringifyFilters(filterObj);\r\n if (filters && filters.length) {\r\n queryArgs += '&filter='+filters;\r\n }\r\n section.loading = true;\r\n section.pruneToChecked();\r\n this.toggleSectionSearch(section);\r\n this.target.getFacets(queryArgs).subscribe(facets => {\r\n const facetKeys = facets ? Object.keys(facets) : [];\r\n if (facetKeys.length!==0) {\r\n section.add(facets[section.id], this.filters && !!this.filters[section.id] ? this.filters[section.id].split(',') : null, null);\r\n }\r\n section.loading = false;\r\n this.changeDetector.markForCheck();\r\n }, err => {\r\n section.loading = false;\r\n this.changeDetector.markForCheck();\r\n });\r\n } else if (event.key==='Escape') {\r\n this.toggleSectionSearch(section);\r\n }\r\n }\r\n\r\n private showReset(): boolean {\r\n if (!this.resetShownOnce) {\r\n if (!this.okDisabled || this.isFiltered) {\r\n this.resetShownOnce = true;\r\n }\r\n }\r\n return this.resetShownOnce;\r\n }\r\n\r\n private disableReset(): boolean {\r\n return this.okDisabled && !this.isFiltered;\r\n }\r\n\r\n private search(): void {\r\n if (this.desc && !this.okDisabled) {\r\n const dirtyValues: any = this.getFilters();\r\n // When looking for documents include paper type docs also\r\n if (!!dirtyValues['ITEM_TYPE'] && dirtyValues['ITEM_TYPE'].indexOf('D') !== -1 && dirtyValues['ITEM_TYPE'].indexOf('M') === -1) {\r\n dirtyValues['ITEM_TYPE'] += ',M';\r\n }\r\n let serverData: any = Util.deepCopy(this.initialCriteria);\r\n this.updateSearchCriteria(serverData);\r\n this.updateSearchCriteria(dirtyValues);\r\n if (this.desc.type !== 'searches') { // for container search.\r\n serverData['%FOLDER_ID'] = this.desc.lib + ',' + this.desc.id;\r\n if (this.isFiltered && !!this.filters) {\r\n const filterKeys = Object.keys(this.filters);\r\n for (const key of filterKeys) {\r\n if (!dirtyValues[key] && !!this.filters[key]) {\r\n dirtyValues[key] = this.filters[key];\r\n }\r\n }\r\n if (filterKeys.indexOf('SEARCH_IN') > -1) {\r\n if (!!dirtyValues['FULLTEXT_EDIT']) {\r\n dirtyValues[Util.RestAPI.kFullTextTypes[dirtyValues['SEARCH_IN']]] = dirtyValues['FULLTEXT_EDIT'];\r\n }\r\n delete dirtyValues['FULLTEXT_EDIT'];\r\n delete dirtyValues['SEARCH_IN'];\r\n }\r\n }\r\n }\r\n // Assign dirty values to criteria\r\n serverData = Object.assign(serverData, dirtyValues);\r\n\r\n const searchCriteria: any = {\r\n FORM_NAME: this.formName,\r\n DESCRIPTION: this.dynamicForm ? this.formService.getSearchDescription(serverData, this.dynamicForm) : '',\r\n criteria: serverData\r\n };\r\n\r\n this.isFiltered = true;\r\n this.postFilterSearch(searchCriteria, dirtyValues);\r\n }\r\n }\r\n\r\n private anyItemChecked(items: any[]): boolean {\r\n for (const item of items) {\r\n if (item.checked) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private getFilters(): any {\r\n let dirtyValues: any = {};\r\n const dirtyValuesForSection = (section: FilterSection): void => {\r\n const items = section.items;\r\n if (this.anyItemChecked(items)) {\r\n let sep = '';\r\n const key: string = section.id;\r\n dirtyValues[key] = '';\r\n for (const item of items) {\r\n if (item.checked) {\r\n dirtyValues[key] += sep + this.facetKey(item, true);\r\n sep = key==='ITEM_TYPE' ? ',' : ';';\r\n }\r\n }\r\n }\r\n };\r\n if (this.expandedSection) {\r\n dirtyValuesForSection(this.expandedSection);\r\n }\r\n if (this.sections) {\r\n for (const section of this.sections) {\r\n if (section !== this.expandedSection) {\r\n dirtyValuesForSection(section);\r\n }\r\n }\r\n if (this.docNameInput && this.docNameInput.nativeElement) {\r\n const value = (this.docNameInput.nativeElement as HTMLInputElement).value;\r\n if (!!value) {\r\n dirtyValues['DOCNAME'] = value;\r\n }\r\n }\r\n }\r\n if (this.dynamicForm) {\r\n dirtyValues = Object.assign(dirtyValues, this.canHaveFacets && !this.sections ? this.filters : {}, this.dynamicForm.getDirtyValue());\r\n // remove any initial criteria fields from the filter data\r\n for (const key in this.initialCriteria) {\r\n if ((key in dirtyValues)) {\r\n delete dirtyValues[key];\r\n }\r\n }\r\n }\r\n return dirtyValues;\r\n }\r\n\r\n private updateSearchCriteria(criteria: any): void {\r\n if ('SEARCH_IN' in criteria) {\r\n if (!criteria['FULLTEXT_EDIT'] || criteria['FULLTEXT_EDIT'] === '') {\r\n delete criteria['SEARCH_IN'];\r\n }\r\n } else if (criteria['FULLTEXT_EDIT'] && criteria['FULLTEXT_EDIT'] !== '') {\r\n criteria['SEARCH_IN'] = 2; //If the criteria has 'FULLTEXT_EDIT' without 'SEARCH_IN' value, making the 'SEARCH_IN' value as 2. Bydefault 'SEARCH_IN' value will not be dirty until unless its been changed by user.\r\n }\r\n this.formService.updateSearchCriteria(criteria, this.formTemplate);\r\n }\r\n\r\n private postFilterSearch(searchCriteria: any, dirtyValues?: any): void {\r\n let sortKey: string;\r\n if (this.target.startSearching) {\r\n this.target.startSearching();\r\n }\r\n if (this.target.getSortKey) {\r\n sortKey = this.target.getSortKey();\r\n if (this.isFiltered && sortKey.endsWith('=VS.VERSION_LABEL')) {\r\n sortKey = null;\r\n if (this.target.resetSortParams) {\r\n this.target.resetSortParams();\r\n }\r\n }\r\n }\r\n Util.RestAPI.doFilterSearch(this.desc, this.params, searchCriteria, dirtyValues, sortKey).subscribe(data => {\r\n this.filters = data.set.filter;\r\n if (this.target.setListData) {\r\n this.target.setListData(data, this.isFiltered);\r\n }\r\n }, err => {\r\n if (this.target.setListData) {\r\n this.target.setListData({list:[], set: {total:0}}, this.isFiltered);\r\n }\r\n });\r\n }\r\n\r\n private delayedPrefillInitialValuesForForm(): void {\r\n let field: FormField;\r\n\r\n Util.RestAPI.conformFulltextCriteria(this.parentSearchCriteria);\r\n Util.RestAPI.conformFulltextCriteria(this.initialCriteria);\r\n Util.RestAPI.conformFulltextCriteria(this.filters);\r\n\r\n if (this.dynamicForm) {\r\n if (!this.searchInValue) {\r\n // default value selection in search - in dropdown. else use what the user last set\r\n if (this.initialCriteria['SEARCH_IN']) {\r\n this.searchInValue = this.initialCriteria['SEARCH_IN'];\r\n } else {\r\n this.searchInValue = '2';\r\n }\r\n }\r\n this.dynamicForm.updateControlValue('SEARCH_IN', this.searchInValue, false);\r\n if (Object.keys(this.parentSearchCriteria).length > 0) {\r\n // Only saved searches/ profile search will have search criteria & filters and others like folders will have only filters.\r\n let forceRender = false;\r\n for (const key in this.parentSearchCriteria) {\r\n field = this.dynamicForm.getField(key);\r\n if (field) {\r\n this.dynamicForm.updateControlValue(key, this.parentSearchCriteria[key], false);\r\n if (key in this.initialCriteria) {\r\n if (field.isCheckboxGroup && field.buttonMap) {\r\n if (Util.isContainerWithId(this.desc)) {\r\n // If it is a container search and having intial criteria of checkboxgroup, shouldn't allow to change them\r\n field.disabledCheckbox = field.buttonMap;\r\n } else {\r\n const IC: any = this.initialCriteria[key].split(',').map(ic => ic && ic.trim());\r\n // If it is a profile search, should able to choose remaining checkbox items other than items which were in intial criteria\r\n field.disabledCheckbox = field.buttonMap.filter(button => IC && IC.indexOf(button.value) !== -1);\r\n }\r\n } else {\r\n field.isReadonly = true;\r\n forceRender = true;\r\n }\r\n }\r\n }\r\n }\r\n if (forceRender) {\r\n this.dynamicForm.dynamicExtrasToggled(!this.extrasShown);\r\n setTimeout(() => {\r\n this.dynamicForm.dynamicExtrasToggled(this.extrasShown);\r\n }, 1);\r\n }\r\n }\r\n if (Object.keys(this.filters).length > 0) {\r\n // If it is a container search other than saved searches/ profile search, it will have only filters\r\n for (const key in this.filters) {\r\n let value = this.filters[key];\r\n if (key === 'ITEM_TYPE' && value==='D,M') {\r\n value = 'D';\r\n }\r\n this.dynamicForm.updateControlValue(key, value, false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private refreshForm(): void {\r\n const waitDFT = () => {\r\n if (!this.dynamicForm) {\r\n setTimeout(() => {\r\n waitDFT();\r\n }, 100);\r\n } else {\r\n this.dynamicForm.setLoading(true);\r\n setTimeout(() => {\r\n if (!!this.dynamicForm) { // might be trashed by the user with a quick close while loading\r\n this.dynamicForm.setLoading(false);\r\n }\r\n }, 300);\r\n }\r\n };\r\n if (!this.officeAddin) {\r\n waitDFT();\r\n }\r\n }\r\n\r\n private facetValue(item: any): string {\r\n return item[this.facetKey(item, false)];\r\n }\r\n\r\n private facetKey(item: any, forSever: boolean): string {\r\n return _facetKey(item, forSever);\r\n }\r\n\r\n private facetKeyName(item: any, section: FilterSection): string {\r\n let name: string = this.facetKey(item, false);\r\n if (section.field && section.field.fldtype==='radiogroup' && section.field.buttons) {\r\n const buttons = section.field.buttons.split('|');\r\n for (const button of buttons) {\r\n const parts: string[] = button.split(';');\r\n if (parts[0] === name) {\r\n name = parts[1];\r\n break;\r\n }\r\n }\r\n }\r\n return name;\r\n }\r\n\r\n private facetClicked(event: Event, item: any): boolean {\r\n if (item.readOnly) {\r\n return false;\r\n }\r\n item.checked = !item.checked;\r\n this.facetsDirty = true;\r\n this.okDisabled = false;\r\n return true;\r\n }\r\n\r\n private loadFacetsIfNeeded(): void {\r\n if (this.canHaveFacets) {\r\n const afterGetTitles = (titles: string[], fields: any[]) => {\r\n if (!!titles) {\r\n this.setupFacetFilters(titles, fields);\r\n if (this.expandedSection) {\r\n this.expandedSection.reset();\r\n this.getSectionFacets(this.expandedSection, true);\r\n }\r\n }\r\n };\r\n if (!this.sections) {\r\n if (!!this.customFacetFields && this.customFacetFields.length) {\r\n afterGetTitles(this.customFacetFields.map(f => f.name), this.customFacetFields);\r\n } else if (this.target && this.target.getFacetTitles) {\r\n this.target.getFacetTitles().then((titles: string[]) => {\r\n afterGetTitles(titles, null);\r\n });\r\n }\r\n } else {\r\n for (const section of this.sections) {\r\n if (section === this.expandedSection) {\r\n this.expandedSection.reset();\r\n this.getSectionFacets(this.expandedSection, true);\r\n } else if (section.isOpen) {\r\n this.getSectionFacets(section);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getCustomFilterData(templateField: any, itemCB: tItemCB): Promise {\r\n return new Promise((resolve, reject) => {\r\n const key = templateField.name;\r\n let param = key;\r\n if (param === 'TYPIST_ID') {\r\n param = 'TYPIST'; // work around DM server weirdity\r\n }\r\n const filters = Util.RestAPI.stringifyFilters(this.dataService.getFilters(this.desc));\r\n Util.RestAPI.get(this.desc,'history/'+param.toLowerCase(), 'ascending='+param+(!!filters && filters.length ? ('&filter='+filters) : '')).subscribe((historyListData: ListData) => {\r\n let list: any[] = !!historyListData && !!historyListData.list ? historyListData.list : [];\r\n if (key==='ACTIVITY_TYPE') {\r\n for (const item of list) {\r\n let display = this.localizer.getTranslation('HISTORY_ACTIONS.' + item.ACTIVITY_TYPE);\r\n if (display.startsWith('HISTORY_ACTIONS.')) {\r\n display = !!item.ACTIVITY_TYPE ? item.ACTIVITY_TYPE.toString() : '';\r\n }\r\n item['display'] = display;\r\n }\r\n }\r\n const nItems = list.length;\r\n if (nItems > 0) {\r\n if (nItems > 1) {\r\n list = list.sort((a: any, b: any): number => {\r\n const strA = (a['display'] || a[key] || '').toLocaleUpperCase();\r\n const strB = (b['display'] || b[key] || '').toLocaleUpperCase();\r\n return strA.localeCompare(strB);\r\n });\r\n }\r\n for (let i=0; i= 0 && index < this.sections.length) {\r\n if (this.sections[index].isOpen) {\r\n this.closeSection(index);\r\n } else {\r\n this.openSection(index);\r\n }\r\n }\r\n }\r\n\r\n public toggleSectionSearch(section: FilterSection, forceClear?: boolean, all?: boolean) {\r\n section.isSearchOpen = !section.isSearchOpen;\r\n if (section.isSearchOpen) {\r\n setTimeout(() => {\r\n const input: HTMLInputElement = document.getElementById('input_'+section.id) as HTMLInputElement;\r\n if (!!input) {\r\n if (forceClear) {\r\n input.value = '';\r\n this.getSectionFacets(section, all);\r\n }\r\n input.focus();\r\n }\r\n }, 1);\r\n }\r\n }\r\n\r\n public getFilterList(): string {\r\n let list = '';\r\n if (this.filters && this.formTemplate && this.formTemplate.defs) {\r\n Object.keys(this.filters).forEach((key, index) => {\r\n const field: any = Util.FieldMappings.templateField(this.formTemplate.defs, key);\r\n if (field && field.prompt) {\r\n if (list.length) {\r\n list += ', ' + this.localizer.getTranslation(field.prompt);\r\n } else {\r\n list = this.localizer.getTranslation(field.prompt);\r\n }\r\n }\r\n });\r\n }\r\n return this.localizer.getTranslation('REFINE_SEARCH.FILTERS_LIST',[list]);\r\n }\r\n\r\n public enableOK(enable: boolean, dirty: boolean): void {\r\n if (this.isOpen && this.dynamicForm) {\r\n this.okDisabled = this.facetsDirty ? false : (!this.dynamicForm.isDirty() || !enable);\r\n this.dynamicForm.markForCheck();\r\n }\r\n }\r\n\r\n public reset(): void {\r\n // Clear the changes done by the user.\r\n if (this.expandedSection && !this.isFiltered) {\r\n this.expandedSection.reset();\r\n } else {\r\n if (this.expandedSection) {\r\n this.expandedSection.empty();\r\n }\r\n if (!this.okDisabled || this.isFiltered) {\r\n if (this.isFiltered) {\r\n this.clearVariables(false);\r\n this.setInitialCriteria();\r\n if (this.initialCriteria) {\r\n this.formService.updateSearchCriteria(this.initialCriteria, this.formTemplate);\r\n const searchCriteria: any = {\r\n FORM_NAME: this.formName,\r\n DESCRIPTION: this.dynamicForm ? this.formService.getSearchDescription(this.initialCriteria, this.dynamicForm) : '',\r\n criteria: this.initialCriteria\r\n };\r\n this.postFilterSearch(searchCriteria, {});\r\n }\r\n } else {\r\n this.revertDirtyFields();\r\n }\r\n }\r\n this.facetsDirty = false;\r\n this.okDisabled = true;\r\n }\r\n }\r\n\r\n public setInitialCriteria(): void {\r\n if (Object.keys(this.parentSearchCriteria).length > 0 && Object.keys(this.filters).length > 0) {\r\n for (const key in this.parentSearchCriteria) {\r\n if (!(key in this.filters)) {\r\n this.initialCriteria[key] = this.parentSearchCriteria[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n public revertDirtyFields(): void {\r\n if (this.dynamicForm) {\r\n this.dynamicForm.resetDirty(this.initialCriteria);\r\n }\r\n if (this.canHaveFacets && !!this.sections && this.facetsDirty) {\r\n this.clearSection();\r\n this.loadFacetsIfNeeded();\r\n this.facetsDirty = false;\r\n }\r\n }\r\n\r\n public clearVariables(listIsChanging: boolean=true): void {\r\n this.isFiltered = false;\r\n this.filters = {};\r\n this.okDisabled = true;\r\n this.sections = null;\r\n if (listIsChanging) {\r\n this.canHaveFacets = false;\r\n }\r\n }\r\n\r\n public isFilterOpen(): boolean {\r\n return this.isOpen;\r\n }\r\n\r\n public open(): void {\r\n if (!this.isOpen) {\r\n this.isOpen = true;\r\n this.clearSection();\r\n this.loadFacetsIfNeeded();\r\n this.refreshForm();\r\n }\r\n }\r\n\r\n public close(): void {\r\n if (this.isOpen) {\r\n this.isOpen = false;\r\n if (this.ui>=2) {\r\n this.resetShownOnce = false;\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n }\r\n\r\n public getFormName(): string {\r\n return this.formName;\r\n }\r\n\r\n public prefillInitialValuesForForm(): void {\r\n if (!!this.formTemplate && this.formTemplate.name==='filters_history') {\r\n this.bFillFormAfterLoad = true;\r\n } else {\r\n setTimeout(() => {\r\n this.delayedPrefillInitialValuesForForm();\r\n }, 1);\r\n }\r\n }\r\n\r\n public getAndSetFormData(): boolean {\r\n const listData: any = this.target.getListData();\r\n const wasOpen: boolean = this.isOpen;\r\n this.filters = {};\r\n this.showFilters = false;\r\n const okToShowFilters: boolean = this.isFiltered || (listData && listData.list && (listData.list.length > 0)) ? true : false;\r\n if (okToShowFilters) {\r\n this.parentSearchCriteria = {};\r\n this.desc = this.target.getDesc();\r\n this.setData = listData ? listData.set : null;\r\n if (!!this.setData) {\r\n if (!!this.setData.search) {\r\n if (!!this.setData.search.criteria) {\r\n const fields = this.setData.search.criteria;\r\n for (const key in fields) {\r\n // Get value and restore any | multivalue separator with ; used in the UI\r\n const value = Util.Transforms.restoreMultiValueSearchText(fields[key]);\r\n this.parentSearchCriteria[key] = value && Array.isArray(value) ? value.join(',') : value;\r\n }\r\n }\r\n this.formName = this.setData.search.FORM_NAME;\r\n }\r\n if (this.setData.filter) {\r\n for (const key in this.setData.filter) {\r\n // Get value and restore any | multivalue separator with , used in the UI\r\n const value = Util.Transforms.restoreMultiValueSearchText(this.setData.filter[key]);\r\n this.filters[key] = value && Array.isArray(value) ? value.join(';') : value;\r\n }\r\n if (!this.isFiltered && Object.keys(this.filters).length>0) {\r\n this.isFiltered = true;\r\n }\r\n }\r\n }\r\n if (!this.isFiltered) {\r\n if (Object.keys(this.parentSearchCriteria).length > 0) {\r\n this.initialCriteria = this.parentSearchCriteria;\r\n }\r\n }\r\n const gotTemplate = (formTemplate: any, listHasFacets: boolean): void => {\r\n formTemplate['extrasshown'] = true;\r\n this.extrasShown = true;\r\n this.loading = false;\r\n this.formTemplate = formTemplate;\r\n this.canHaveFacets = listHasFacets;\r\n this.showFilters = true;\r\n if (wasOpen) {\r\n this.changeDetector.markForCheck();\r\n this.loadFacetsIfNeeded();\r\n this.refreshForm();\r\n }\r\n if (!!this.setData && !!this.setData.datefacets) {\r\n const fieldNames: string[] = this.setData.datefacets;\r\n this.facetFormTemplate = { fldtype: 'form', name: 'datefacets', prompt: '', defs: [] };\r\n for (const dateField of fieldNames) {\r\n const field = Util.FieldMappings.templateField(formTemplate.defs, dateField);\r\n this.facetFormTemplate.defs.push( {\r\n fldtype: 'edit',\r\n datatype: '8',\r\n name: dateField,\r\n prompt: !!field && !!field.prompt ? field.prompt : dateField,\r\n sqlinfo: dateField,\r\n lookup: '$edx_date_range',\r\n flags: 0x00000006\r\n });\r\n }\r\n }\r\n if (formTemplate.name==='filters_history') {\r\n this.params = 'history';\r\n this.customFacetFields = [];\r\n Util.FieldMappings.forEachTemplateField(formTemplate.defs, true, (field: any): boolean => {\r\n if (field.fldtype === 'edit' && (field.flags & FieldFlags.FIELD_COMBO)) {\r\n this.customFacetFields.push(field);\r\n }\r\n return true;\r\n });\r\n const nGetAndFill = !!this.customFacetFields ? this.customFacetFields.length : 0;\r\n let iGetAndFill = 0;\r\n const getAndFill = (templateField: any): void => {\r\n const dynamicForm: DynamicFormComponent = this.dynamicForm;\r\n dynamicForm.setLoading(true);\r\n const selectionMap: SelectItem[] = [];\r\n this.getCustomFilterData(templateField, (key: string, value: string, display: string) => {\r\n selectionMap.push({value,display});\r\n }).then(() => {\r\n const field: FormField = dynamicForm.getField(templateField.name);\r\n if (!!field) {\r\n field.selectionMap = selectionMap;\r\n }\r\n dynamicForm.setLoading(false);\r\n if (++iGetAndFill < nGetAndFill) {\r\n getAndFill(this.customFacetFields[iGetAndFill]);\r\n } else {\r\n if (this.bFillFormAfterLoad) {\r\n this.delayedPrefillInitialValuesForForm();\r\n this.bFillFormAfterLoad = false;\r\n }\r\n }\r\n }, err => {\r\n dynamicForm.setLoading(false);\r\n Util.RestAPI.handleError(err);\r\n this.bFillFormAfterLoad = false;\r\n });\r\n };\r\n const waitDFT = () => {\r\n if (!this.dynamicForm) {\r\n setTimeout(() => {\r\n waitDFT();\r\n }, 100);\r\n } else {\r\n getAndFill(this.customFacetFields[iGetAndFill]);\r\n }\r\n };\r\n if (!listHasFacets) {\r\n waitDFT();\r\n }\r\n }\r\n };\r\n if (!this.formName) {\r\n const form: any = Util.RestAPI.getDefaultSearchForm();\r\n if (!!form && !!form['%FORM_NAME']) {\r\n this.formName = form['%FORM_NAME'];\r\n } else {\r\n this.formName = '';\r\n }\r\n }\r\n this.loading = true;\r\n this.checkForFacets().then(listHasFacets => {\r\n const formName: string = this.ui<2 || this.officeAddin || listHasFacets || (!!this.formName && this.formName.startsWith('__local_filters_')) ? this.formName : '__local_filters_mobile';\r\n if (this.target && this.target.getFilterFormTemplate) {\r\n this.target.getFilterFormTemplate().then(formTemplate => {\r\n if (formTemplate) {\r\n gotTemplate(formTemplate, listHasFacets);\r\n } else {\r\n this.formService.getFormTemplate(formName, this.desc.lib, true).then(defFormTemplate => {\r\n gotTemplate(defFormTemplate, listHasFacets);\r\n });\r\n }\r\n });\r\n } else {\r\n this.formService.getFormTemplate(formName, this.desc.lib, true).then(formTemplate => {\r\n gotTemplate(formTemplate, listHasFacets);\r\n });\r\n }\r\n });\r\n } else {\r\n this.loading = false;\r\n }\r\n return this.isFiltered;\r\n }\r\n\r\n // **** FormController implementation\r\n public fieldChanged(field: FormField, control: AbstractControl, formFields: FormField[]): boolean {\r\n this.enableOK(true, true);\r\n if (field.name==='SEARCH_IN') {\r\n this.searchInValue = control.value;\r\n }\r\n return true;\r\n }\r\n\r\n // **** PopupCallback implementation\r\n public popupOK(): void {\r\n this.search();\r\n this.close();\r\n }\r\n\r\n public popupCancel(): void {\r\n this.close();\r\n }\r\n}\r\n\r\nexport interface FilterTarget {\r\n applyFilters?(filters: any): void;\r\n clearFilters?(): void;\r\n getDesc?(): BaseDesc;\r\n getListData?(): ListData;\r\n setListData?(data: ListData, isFiltered: boolean): void;\r\n startSearching?(): void;\r\n getSortKey?(): string;\r\n resetSortParams?(): void;\r\n getFilterFormTemplate?(): Promise;\r\n getFacets?(queryArgs: string): Observable;\r\n getFacetTitles?(): Promise;\r\n hasFacets?(): Promise;\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {{facetKeyName(item, section)}}\r\n
{{facetValue(item)}}
\r\n
\r\n
\r\n
{{this.localizer.getTranslation('PLACEHOLDER.NO_ITEMS')}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n
\r\n
{{section.title}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{facetKeyName(item, section)}}\r\n
{{facetValue(item)}}
\r\n
\r\n
\r\n
{{section.moreLess}}
\r\n
\r\n
{{altLabels['noItems']}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
{{expandedSection.title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{title}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{{noFiltersStr}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n=2 && isOpen\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{noFiltersStr}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, Input, OnChanges, OnInit, ViewChild } from '@angular/core';\r\nimport { Util } from '../utils/utils.module';\r\nimport { FormField } from '../models/form-field';\r\nimport { ListItem } from '../models/list-item';\r\nimport { DynamicFormComponent } from './dynamic-form.component';\r\nimport { LocalizeService } from '../services/localize.service';\r\nimport { ListTableComponent, ListTableParent } from '../lists/list-table.component';\r\nimport { AbstractValueAccessor } from './abstract-value-accessor';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'edx-form-field-list',\r\n styleUrls: ['dynamic-form-field.component.scss'],\r\n template: `\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n `\r\n})\r\n\r\nexport class FormFieldListComponent extends AbstractValueAccessor implements OnChanges, OnInit {\r\n @Input() parent: DynamicFormComponent;\r\n @Input() field: FormField;\r\n @Input() showExtras: boolean;\r\n @Input() inDialog: boolean;\r\n @Input() columnView: boolean;\r\n @Input() rerender = 0;\r\n @Input() form: FormGroup;\r\n @ViewChild('table') private table: ListTableComponent;\r\n public fieldDataList: ListItem[] = [];\r\n\r\n constructor(private localizer: LocalizeService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.fieldDataList = this.parent.getList(this.field.listKind);\r\n if (!!this.field.schemaID && this.field.schemaID === 'DELETE_LIST') {\r\n this.value = this.fieldDataList;\r\n this.parent.updateControlValue(this.field.name, this.value, true);\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.fieldDataList = this.parent.getList(this.field.listKind);\r\n if (!!this.parent.data && this.parent.data.isVersionEmail) {\r\n const curItem: any = Util.RestAPI.getCurItem();\r\n this.fieldDataList = [curItem];\r\n }\r\n setTimeout(() => {\r\n if (!!this.table) {\r\n this.table.setOpenedItem(null);\r\n }\r\n }, 1);\r\n }\r\n\r\n private getFileMessage(): string {\r\n const nItems = this.fieldDataList ? this.fieldDataList.length : 0;\r\n if (nItems===1 && this.fieldDataList[0].DOCNAME) {\r\n return this.fieldDataList[0].DOCNAME;\r\n }\r\n return this.localizer.getTranslation('PAGINATOR.COUNT',[''+nItems]);\r\n }\r\n\r\n private showLessList(): boolean {\r\n if (Util.Device.ui<2) {\r\n return this.fieldDataList.length===1 || (!!this.parent.formKind && this.parent.formKind === '__local_confirm_delete');\r\n }\r\n return false;\r\n }\r\n\r\n private setSelections(event: any): void {\r\n this.value = event;\r\n this.parent.updateControlValue(this.field.name,this.value,true);\r\n this.parent.fieldChanged(this.field);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Util, UserInterface } from '../utils/utils.module';\r\nimport { LocalizeService } from '../services/localize.service';\r\nimport { SelectItem } from '../models/form-field';\r\nimport { SelectComponent } from '../widgets/select.component';\r\nimport { oAuth2Service } from '../services/oauth2.service';\r\n\r\n@Component({\r\n selector: 'edx-form-login',\r\n styleUrls: ['form-login.component.scss' ],\r\n template: `\r\n
=2, phone:ui==2||ui==4, oai:isOfficeAddin}\" (ngSubmit)=\"onSubmit()\">\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
{{loginGuestBtnText}}
\r\n \r\n
\r\n
\r\n
\r\n
=2, phone:ui==2||ui==4, servershown:showServer}\" [attr.aria-label]=\"copyrightText\">{{copyrightText}}
\r\n `\r\n})\r\nexport class FormLoginComponent implements OnInit {\r\n @ViewChild('userInput') private userInput: ElementRef;\r\n public server: string;\r\n public userid: string;\r\n public password: string;\r\n public ui: UserInterface = Util.Device.ui;\r\n public isOfficeAddin: boolean = Util.Device.bIsOfficeAddin;\r\n public loginBtnText: string = this.localizer.getTranslation('SETTINGS.LOGIN');\r\n public copyrightText: string = this.localizer.getTranslation('SETTINGS.COPYRIGHT', [Util.Device.year]);\r\n public loginGuestBtnText: string = this.localizer.getTranslation('SETTINGS.GUEST_LOGIN');\r\n public loggingIn = false;\r\n public libsList: SelectItem[];\r\n public uiList: SelectItem[];\r\n public curLib = '';\r\n public showUserPswd = false;\r\n public showServer = false;\r\n public showLibraries = false;\r\n public showInterfaces = false;\r\n public showTestUpload = false;\r\n public allowAnonymous = false;\r\n private ssoData: any = null;\r\n private loggedIn = false;\r\n\r\n constructor(protected router: Router, public localizer: LocalizeService, private oauth2Service: oAuth2Service) {\r\n Util.RestAPI.getSiteConfig().then(data => {\r\n if (data.restapi && data.restapi.length) {\r\n this.server = data.restapi;\r\n this.retrieveLibraries(false).then(() => {}, err => {});\r\n } else {\r\n this.showUserPswd = true;\r\n }\r\n if (!!data.showserver) {\r\n this.showServer = true;\r\n }\r\n if (!!data.allowAnonymous) {\r\n this.allowAnonymous = true;\r\n }\r\n if (!!data.showlibraries) {\r\n this.showLibraries = true;\r\n }\r\n }, err => {\r\n this.showUserPswd = true;\r\n });\r\n this.uiList = [\r\n {display: 'web', value: UserInterface.web},\r\n {display: 'desktop', value: UserInterface.desktop},\r\n {display: 'phone browser', value: UserInterface.phone},\r\n {display: 'tablet browser', value: UserInterface.tablet},\r\n {display: 'phone no hdr', value: UserInterface.phone_cordova},\r\n {display: 'tablet no hdr', value: UserInterface.tablet_cordova}\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n Util.RestAPI.setLibraries(null);\r\n setTimeout(() => {\r\n if (!!this.userInput) {\r\n this.userInput.nativeElement.focus();\r\n }\r\n }, 1);\r\n }\r\n\r\n private uiLookChanged(selectComponent: SelectComponent): void {\r\n Util.Device.ui = this.ui = parseInt(selectComponent.value);\r\n switch (this.ui) {\r\n case UserInterface.web:\r\n localStorage.removeItem('desktop_look');\r\n break;\r\n case UserInterface.desktop:\r\n localStorage.setItem('desktop_look', 'desktop');\r\n break;\r\n case UserInterface.phone:\r\n localStorage.setItem('desktop_look', 'phone');\r\n break;\r\n case UserInterface.tablet:\r\n localStorage.setItem('desktop_look', 'tablet');\r\n break;\r\n case UserInterface.phone_cordova:\r\n localStorage.setItem('desktop_look', 'phone_cordova');\r\n break;\r\n case UserInterface.tablet_cordova:\r\n localStorage.setItem('desktop_look', 'tablet_cordova');\r\n break;\r\n }\r\n location.reload();\r\n }\r\n\r\n private retrieveLibraries(changed: boolean): Promise {\r\n Util.RestAPI.setLibraries(null);\r\n Util.RestAPI.setBaseURL(this.server);\r\n this.libsList = [];\r\n return new Promise((resolve, reject) => {\r\n Util.RestAPI.get('libraries',null,'configuration').subscribe((data: any) => {\r\n const libraries: string[] = !!data && !!data['libraries'] ? data['libraries'] : data;\r\n this.ssoData = !!data && !!data['authentication'] && data['authentication'].oidc_enabled ? data['authentication'] : null;\r\n if (!!libraries) {\r\n if (this.showLibraries) {\r\n this.libsList = libraries.map(l => ({value:l, display:l}));\r\n }\r\n const prefsLib = Util.RestAPI.getPreference('primary');\r\n if (!!prefsLib) {\r\n this.curLib = prefsLib;\r\n } else {\r\n this.curLib = libraries[0];\r\n }\r\n Util.RestAPI.setLibraries(libraries);\r\n this.showUserPswd = (!!Util.RestAPI.getSsoAuthErr() || !this.ssoData) && (!this.ssoData || !this.ssoData.oidc_required);\r\n if (changed) {\r\n this.oauth2Service.serverChanged();\r\n }\r\n resolve();\r\n } else {\r\n const err = {error:{rapi_code: 1}};\r\n this.handleError(err);\r\n reject(err);\r\n }\r\n }, err2 => {\r\n this.handleError(err2);\r\n reject(err2);\r\n });\r\n });\r\n }\r\n\r\n private isValid(): boolean {\r\n return !!this.server && ((!!this.userid && !!this.password) || !!this.ssoData);\r\n }\r\n\r\n public canLogin(): boolean {\r\n return this.isValid() && !!Util.RestAPI.getPrimaryLibrary() && !this.loggedIn && !this.loggingIn;\r\n }\r\n\r\n public handleError(error: any) {\r\n this.loggingIn = false;\r\n this.loginBtnText = this.localizer.getTranslation('SETTINGS.LOGIN');\r\n Util.Notify.error(this.localizer.getTranslation('SETTINGS.LOGIN'), error);\r\n }\r\n\r\n private continueSubmit(guestconnect: boolean=false): void {\r\n if (this.loggedIn) {\r\n this.loggingIn = false;\r\n this.loginBtnText = this.localizer.getTranslation('SETTINGS.LOGIN');\r\n Util.RestAPI.loadHome().then(success => {\r\n if (!success) {\r\n this.loggedIn = false;\r\n }\r\n });\r\n } else if (!!this.ssoData) {\r\n localStorage.setItem('edx_session_url', this.server);\r\n localStorage.removeItem('edx_authup');\r\n this.oauth2Service.login(this.ssoData).then((token: string) => {\r\n Util.RestAPI.setSSOAccessToken(token);\r\n Util.RestAPI.postGetLibs(null, success => {\r\n if (!success) {\r\n this.oauth2Service.reset();\r\n this.handleError({error:{rapi_code: 1}});\r\n this.ssoData = null;\r\n this.showUserPswd = true;\r\n }\r\n });\r\n }, err => {\r\n this.ssoData = null;\r\n this.showUserPswd = true;\r\n setTimeout(() => {\r\n this.continueSubmit(guestconnect);\r\n }, 1);\r\n });\r\n } else if (!Util.RestAPI.getPrimaryLibrary()) {\r\n this.retrieveLibraries(true).then(() => {\r\n setTimeout(() => {\r\n this.continueSubmit(guestconnect);\r\n }, 1);\r\n }, err => {});\r\n } else {\r\n let data = {};\r\n if (guestconnect) {\r\n data = {\r\n guestconnect: true,\r\n library: Util.RestAPI.getPrimaryLibrary()\r\n };\r\n } else {\r\n data = {\r\n userid: this.userid,\r\n password: this.password,\r\n library: Util.RestAPI.getPrimaryLibrary()\r\n };\r\n localStorage.setItem('edx_authup', 'true');\r\n }\r\n Util.RestAPI.post('/connect',Util.RestAPI.addTZInfoToLogin(data)).subscribe((loginReply: any) => {\r\n this.loggedIn = true;\r\n Util.RestAPI.setLoginReply(loginReply);\r\n setTimeout(() => {\r\n this.continueSubmit(guestconnect);\r\n }, 1);\r\n }, err => {\r\n localStorage.removeItem('edx_authup');\r\n if (Util.RestAPI.handleLoginError(err)) {\r\n setTimeout(() => {\r\n this.continueSubmit(guestconnect);\r\n }, 2500);\r\n }\r\n this.handleError(err);\r\n });\r\n }\r\n }\r\n\r\n public serverChanged(event: Event): void {\r\n this.retrieveLibraries(true).then(() => {}, err => {});\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n public libChanged(sel: SelectItem): void {\r\n this.curLib = sel.value;\r\n Util.RestAPI.setPrimaryLibrary(this.curLib, false);\r\n Util.RestAPI.setPreference('primary', this.curLib);\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.isValid()) {\r\n if (!this.server || (!this.server.startsWith('https://') && (!this.server.startsWith('http://') || Util.Device.bIsOfficeAddin))) {\r\n Util.Notify.warning(this.localizer.getTranslation('SETTINGS.LOGIN'),this.localizer.getTranslation(Util.Device.bIsOfficeAddin ? 'SETTINGS.MUST_BE_HTTPS' : 'SETTINGS.MUST_BE_HTTP'));\r\n } else {\r\n this.loggingIn = !this.loggingIn;\r\n this.loginBtnText = this.loggingIn ? this.localizer.getTranslation('FORMS.BUTTONS.CANCEL') : this.localizer.getTranslation('SETTINGS.LOGIN');\r\n if (this.loggingIn) {\r\n this.continueSubmit();\r\n } else {\r\n location.reload();\r\n }\r\n }\r\n }\r\n }\r\n\r\n public guestSubmit(event?: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n if (!this.server || (!this.server.startsWith('https://') && (!this.server.startsWith('http://') || Util.Device.bIsOfficeAddin))) {\r\n Util.Notify.warning(this.localizer.getTranslation('SETTINGS.LOGIN'),this.localizer.getTranslation('SETTINGS.MUST_BE_HTTP'));\r\n } else {\r\n this.loggingIn = !this.loggingIn;\r\n Util.RestAPI.setBaseURL(this.server);\r\n if (this.loggingIn) {\r\n this.continueSubmit(true);\r\n } else {\r\n location.reload();\r\n }\r\n }\r\n }\r\n\r\n public clear(event: Event, field: string): void {\r\n switch (field) {\r\n case 'server':\r\n this.server = null;\r\n break;\r\n case 'userid':\r\n this.userid = null;\r\n break;\r\n case 'password':\r\n this.password = null;\r\n break;\r\n }\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private testUploadForm(event: Event): void {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n const nWordDocs = 10;\r\n const items: any[] = [];\r\n for (let i=0; i {});\r\n }\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\nimport * as microsoftTeams from '@microsoft/teams-js';\r\n\r\nimport { FormWrapperComponent } from './form-wrapper.component';\r\nimport { DynamicFormComponent } from './dynamic-form.component';\r\nimport { FormField, SelectItem } from '../models/form-field';\r\nimport { Tile } from '../models/tile';\r\nimport { ListData, BaseDesc } from '../models/base';\r\nimport { SecurityControl } from '../models/security-control';\r\nimport { Util } from '../utils/utils.module';\r\nimport { LocalizeService } from '../services/localize.service';\r\n\r\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\n\r\nexport const FormScripts: any = {\r\n _shared: {\r\n get_versions_or_attachments(isAttachments: boolean, formWrapper: FormWrapperComponent, formData: any): Promise {\r\n let desc: any = formWrapper.desc ? formWrapper.desc : (formWrapper.selections && formWrapper.selections.length ? formWrapper.selections[0] : null);\r\n if (formData && (!desc || formData.readDesc)) {\r\n desc = formData.desc;\r\n }\r\n if (desc) {\r\n formWrapper.setLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Util.RestAPI.get(desc,isAttachments?'attachments':'versions', 'ascending=VERSION_LABEL').subscribe((listData: ListData) => {\r\n const list: any[] = !!listData && !!listData.list ? listData.list : [];\r\n formWrapper.setLoading(false);\r\n resolve(list);\r\n }, err => {\r\n formWrapper.setLoading(false);\r\n Util.RestAPI.handleError(err);\r\n reject(err);\r\n });\r\n });\r\n } else {\r\n return Promise.reject('no desc');\r\n }\r\n },\r\n populate_versions_or_attachments(isAttachments: boolean, formWrapper: FormWrapperComponent, removeAllOption: boolean, formData: any) {\r\n const postGet = (list: any[]) => {\r\n let hasPublishedVersion = false;\r\n const verions: any = [];\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const field: FormField = dynamicForm.getField(isAttachments?'$edx_attachment':'$edx_version');\r\n const nItems: number = list ? list.length : 0;\r\n let selectionMap: SelectItem[] = field.selectionMap;\r\n if (removeAllOption) {\r\n selectionMap = selectionMap.filter(i => i.value!=='all' && i.value!=='all_separate');\r\n }\r\n const currentItem = selectionMap.find(v => v.value === 'C');\r\n if (nItems > 0 && !!currentItem) {\r\n const currentVersion = list.reduce((max, current) => parseInt(current.VERSION_ID) > parseInt(max.VERSION_ID) ? current : max, list[0]);\r\n if (!!currentVersion) {\r\n currentItem.display += ' - v' + currentVersion.VERSION_LABEL;\r\n if (!!formData && formData.checkPublishedVersion && currentVersion.STATUS === '20') {\r\n formData['isCurrentVersionPublished'] = true;\r\n FormScripts.pick_version.togglePublishNote(formWrapper);\r\n }\r\n }\r\n }\r\n if (nItems) {\r\n field.selectionMap = [];\r\n for (let i=nItems-1; i>=0; i--) {\r\n const item = list[i];\r\n const label: string = item.VERSION_LABEL.toLowerCase();\r\n if (label !== 'pr1') {\r\n if (item.STATUS === '20') {\r\n selectionMap[1] = { value: selectionMap[1].value === 'P' ? item.VERSION_ID : selectionMap[1].value, display: selectionMap[1].display };\r\n hasPublishedVersion = true;\r\n if (!!formData && formData.checkPublishedVersion) {\r\n formData['publishedVersion'] = item.VERSION_ID;\r\n }\r\n }\r\n selectionMap.push({value:item.VERSION_ID,display:item.VERSION_LABEL});\r\n verions.push(item);\r\n }\r\n }\r\n }\r\n if (!hasPublishedVersion) {\r\n selectionMap.splice(1,1);\r\n }\r\n // force a rerender\r\n formWrapper.setLoading(true);\r\n setTimeout(() => {\r\n field.selectionMap = selectionMap;\r\n if (verions.length) {\r\n formWrapper.scriptData[isAttachments?'ATTACHMENTS':'VERSIONS'] = verions;\r\n } else if (isAttachments) {\r\n dynamicForm.setFieldVisibility('$edx_attachment', false);\r\n }\r\n formWrapper.setLoading(false);\r\n }, 1);\r\n };\r\n if (isAttachments) {\r\n FormScripts._shared.get_attachments(formWrapper, formData).then(postGet, err => { });\r\n } else {\r\n FormScripts._shared.get_versions(formWrapper, formData).then(postGet, err => { });\r\n }\r\n },\r\n remove_specfic_version_or_attachment(isAttachments: boolean, formWrapper: FormWrapperComponent, ver: string) {\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const field: FormField = dynamicForm.getField(isAttachments?'$edx_attachment':'$edx_version');\r\n const selectionMap: SelectItem[] = field.selectionMap;\r\n field.selectionMap = selectionMap.filter(i => i.value!==ver);\r\n },\r\n get_versions(formWrapper: FormWrapperComponent, formData?: any): Promise {\r\n return FormScripts._shared.get_versions_or_attachments(false, formWrapper, formData);\r\n },\r\n get_attachments(formWrapper: FormWrapperComponent, formData?: any): Promise {\r\n return FormScripts._shared.get_versions_or_attachments(true, formWrapper, formData);\r\n },\r\n populate_versions(formWrapper: FormWrapperComponent, removeAllOption: boolean, formData?: any) {\r\n return FormScripts._shared.populate_versions_or_attachments(false, formWrapper, removeAllOption, formData);\r\n },\r\n populate_attachments(formWrapper: FormWrapperComponent, removeAllOption: boolean, formData?: any) {\r\n return FormScripts._shared.populate_versions_or_attachments(true, formWrapper, removeAllOption, formData);\r\n },\r\n remove_all_versions(formWrapper: FormWrapperComponent) {\r\n FormScripts._shared.remove_specfic_version_or_attachment(false, formWrapper, 'all');\r\n },\r\n remove_all_separate_versions(formWrapper: FormWrapperComponent) {\r\n FormScripts._shared.remove_specfic_version_or_attachment(false, formWrapper, 'all_separate');\r\n },\r\n remove_published_version(formWrapper: FormWrapperComponent) {\r\n FormScripts._shared.remove_specfic_version_or_attachment(false, formWrapper, 'P');\r\n },\r\n remove_all_attachments(formWrapper: FormWrapperComponent) {\r\n FormScripts._shared.remove_specfic_version_or_attachment(true, formWrapper, 'all');\r\n },\r\n remove_all_separate_attachments(formWrapper: FormWrapperComponent) {\r\n FormScripts._shared.remove_specfic_version_or_attachment(true, formWrapper, 'all_separate');\r\n },\r\n check_remove_folder_pickers_for_export_checkout(formWrapper: FormWrapperComponent, formTemplate: any, bUseTempPath: boolean) {\r\n let pickerName: string;\r\n if (formTemplate && formTemplate.defs) {\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=nDefs-1; i>=0; i--) {\r\n if (formTemplate.defs[i].lookup==='$edx_folder_picker') {\r\n if (Util.Device.bIsElectron || Util.RestAPI.hasPFTA()) {\r\n pickerName = formTemplate.defs[i].name;\r\n } else {\r\n formTemplate.defs.splice(i,1);\r\n }\r\n }\r\n }\r\n }\r\n if ((Util.Device.bIsElectron || Util.RestAPI.hasPFTA()) && formWrapper && pickerName) {\r\n setTimeout(() => {\r\n if (formWrapper.dynamicForm) {\r\n formWrapper.dynamicForm.updateControlValue(pickerName, bUseTempPath ? Util.RestAPI.getTempPath() : Util.RestAPI.getDownloadsPath(), true);\r\n formWrapper.dynamicForm.setFieldEditable(pickerName,true);\r\n }\r\n if (!Util.Device.bIsElectron && Util.RestAPI.pftaVersion()<0x00160600) {\r\n formWrapper.dynamicForm.setFieldEditable(pickerName, false);\r\n }\r\n }, 1);\r\n }\r\n },\r\n check_remove_email_pickers(formWrapper: FormWrapperComponent, formTemplate: any) {\r\n if (!Util.Device.bIsCordova && formTemplate && formTemplate.defs) {\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=nDefs-1; i>=0; i--) {\r\n if (formTemplate.defs[i].lookup==='$edx_email_picker') {\r\n formTemplate.defs[i].lookup = null;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n export: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n let versions = '';\r\n let versionIDs = '';\r\n let attachments = '';\r\n const docList: any[] = formData ? formData['DOCUMENTS'] : null;\r\n const nDocList: number = docList && docList.length && docList[0]['VERSION_LABEL'] ? docList.length : 0;\r\n const isExternalContainer: boolean = Util.isExternalLib(docList[0]['lib']);\r\n let isOnlyAttachments = false;\r\n let isOnlyVersions = false;\r\n for (let i=0; i {\r\n if (isExternalContainer) {\r\n // Remove all selections for external container files - simply download the selected items\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_download_type', false);\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_version', false);\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_attachment', false);\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_download_location', false);\r\n } else {\r\n if (!formWrapper.selections || formWrapper.selections.length===1) {\r\n if (!isOnlyAttachments) {\r\n FormScripts._shared.populate_versions(formWrapper, Util.Device.isMobileDevie());\r\n FormScripts._shared.populate_attachments(formWrapper, Util.Device.isMobileDevie());\r\n }\r\n } else {\r\n FormScripts._shared.remove_published_version(formWrapper, formTemplate);\r\n if (Util.Device.isMobileDevie()) {\r\n FormScripts._shared.remove_all_versions(formWrapper, formTemplate);\r\n FormScripts._shared.remove_all_attachments(formWrapper, formTemplate);\r\n }\r\n FormScripts._shared.remove_all_separate_versions(formWrapper, formTemplate);\r\n FormScripts._shared.remove_all_separate_attachments(formWrapper, formTemplate);\r\n }\r\n if (isOnlyAttachments) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_version', false);\r\n formWrapper.dynamicForm.updateControlValue('$edx_version','none');\r\n }\r\n if (isOnlyVersions) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_attachment', false);\r\n formWrapper.dynamicForm.updateControlValue('$edx_attachment','none');\r\n }\r\n }\r\n }, 1);\r\n },\r\n choice_version(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const attachValue = formWrapper.dynamicForm.getControlValue('$edx_attachment');\r\n formWrapper.dynamicForm.updateControlValue('$edx_force_invalid', (control.value !== 'none' || attachValue !== 'none') ? '1' : undefined, true);\r\n formWrapper.scriptData['$edx_version_ID'] = 'none';\r\n if (!!formWrapper.formDialog.doCommand) {\r\n formWrapper.formDialog.doCommand('disableok', control.value === 'none' && attachValue === 'none');\r\n }\r\n },\r\n choice_attachment(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const versionValue = formWrapper.dynamicForm.getControlValue('$edx_version');\r\n formWrapper.dynamicForm.updateControlValue('$edx_force_invalid', (control.value !== 'none' || versionValue !== 'none') ? '1' : undefined, true);\r\n formWrapper.scriptData['$edx_version_ID'] = 'none';\r\n if (!!formWrapper.formDialog.doCommand) {\r\n formWrapper.formDialog.doCommand('disableok', control.value === 'none' && versionValue === 'none');\r\n }\r\n }\r\n },\r\n email: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n let versions = '';\r\n let versionIDs = '';\r\n let attachments = '';\r\n const docList: any[] = formWrapper ? formWrapper.selections : null;\r\n const nDocList: number = docList && docList.length && docList[0]['VERSION_LABEL'] ? docList.length : 0;\r\n const isVersionEmail: boolean = !!formData && !!formData.isVersionEmail;\r\n const curItem: any = Util.RestAPI.getCurItem();\r\n const fromAddress: string = Util.RestAPI.getEmail();\r\n const selections: any[] = isVersionEmail && !!curItem ? [curItem] : formWrapper.selections;\r\n const nSelections: number = selections ? selections.length : 0;\r\n let isOnlyAttachments = false;\r\n let isOnlyVersions = false;\r\n //Focus on first editable empty field\r\n formWrapper.disableFirstFocus = false;\r\n let bHaveNonDoc = false;\r\n for (let i=0; i=0; i--) {\r\n if (formTemplate.defs[i].name==='$edx_email_from') {\r\n formTemplate.defs[i].value = fromAddress;\r\n }\r\n if (bHaveNonDoc && (formTemplate.defs[i].name==='$edx_version' || formTemplate.defs[i].name==='$edx_attachment' || formTemplate.defs[i].name==='$edx_share_type')) {\r\n formTemplate.defs[i].flags = 0x01080000;\r\n } else if (isVersionEmail && ((!formData.attachments && formTemplate.defs[i].name === '$edx_version') || (formData.attachments && formTemplate.defs[i].name === '$edx_attachment'))) {\r\n for (let n=0; n= 0) {\r\n formTemplate.defs[i].flags = formTemplate.defs[i].flags | 0x02000000; // disable versions selector\r\n }\r\n }\r\n } else if (formData && formData['$edx_share_attach'] && formTemplate.defs[i].name==='$edx_form_list') {\r\n formTemplate.defs[i].prompt = localizer.getTranslation('FORMS.LOCAL.SHARE.ATTACH');\r\n } else if (formData && formData['$edx_share_nomail']) {\r\n switch (formTemplate.defs[i].name) {\r\n case '$edx_email_from':\r\n case '$edx_email_to':\r\n case '$edx_email_cc':\r\n case '$edx_email_bcc':\r\n case '$edx_share_subject':\r\n case '$edx_share_message':\r\n formTemplate.defs.splice(i,1);\r\n break;\r\n }\r\n }\r\n }\r\n // Size of form template may have changed. Refresh it.\r\n nDefs = formTemplate.defs.length;\r\n for (let i=0; i {\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n let subject: string;\r\n let setCC = false;\r\n let setBCC = false;\r\n\r\n if (bHaveNonDoc) {\r\n subject = localizer.getTranslation('FORMS.LOCAL.SHARE.SUBJECT_FORMAT', [localizer.getTranslation('FORMS.LOCAL.SHARE.REFERENCES'), localizer.getTranslation('APP_TITLE')]);\r\n dynamicForm.updateControlValue('$edx_share_type', 'linkonly', true);\r\n } else {\r\n subject = localizer.getTranslation('FORMS.LOCAL.SHARE.SUBJECT_DEFAULT', [localizer.getTranslation('APP_TITLE')]);\r\n formWrapper.dynamicForm.updateControlValue('$edx_share_type', 'documents', true);\r\n if (nSelections <= 1) {\r\n FormScripts._shared.populate_versions(formWrapper, false);\r\n FormScripts._shared.populate_attachments(formWrapper, false);\r\n }\r\n }\r\n dynamicForm.updateControlValue('$edx_email_from', fromAddress, true);\r\n dynamicForm.updateControlValue('$edx_share_subject', subject, true);\r\n FormScripts.email.populate_address('$edx_email_to', dynamicForm, localizer);\r\n setCC = FormScripts.email.populate_address('$edx_email_cc', dynamicForm, localizer);\r\n setBCC = FormScripts.email.populate_address('$edx_email_bcc', dynamicForm, localizer);\r\n if (setCC || setBCC) {\r\n setTimeout(() => {\r\n formWrapper.showExtras(true);\r\n }, 300);\r\n }\r\n if (isOnlyAttachments) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_version', false);\r\n formWrapper.dynamicForm.updateControlValue('$edx_version','none');\r\n }\r\n if (isOnlyVersions) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_attachment', false);\r\n formWrapper.dynamicForm.updateControlValue('$edx_attachment','none');\r\n }\r\n }, 1);\r\n },\r\n share_type(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const option: any = field.selectionMap && field.selectionMap.find((selections) => selections.value === control.value);\r\n if (option) {\r\n const subject: string = localizer.getTranslation('FORMS.LOCAL.SHARE.SUBJECT_FORMAT', [option.display, localizer.getTranslation('APP_TITLE')]);\r\n formWrapper.dynamicForm.updateControlValue('$edx_share_subject', subject);\r\n }\r\n },\r\n save_address(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const extParent: FormField = formWrapper.dynamicForm.getField(field.extensionParent);\r\n const extParentControl: AbstractControl = formWrapper.dynamicForm.getControl(field.extensionParent);\r\n if (!!extParent && !!extParentControl) {\r\n const prefKey = 'share_'+extParent.name;\r\n const addresses: string = Util.RestAPI.getPreference(prefKey);\r\n if (addresses === extParentControl.value) {\r\n extParentControl.setValue('');\r\n Util.RestAPI.setPreference(prefKey, '');\r\n FormScripts.email.set_button_state(true, field, localizer);\r\n } else {\r\n Util.RestAPI.setPreference(prefKey, extParentControl.value.replace(/\\s/g, ''));\r\n FormScripts.email.set_button_state(false, field, localizer);\r\n }\r\n }\r\n },\r\n address_changed(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const prefKey = 'share_' + field.name;\r\n const addresses: string = Util.RestAPI.getPreference(prefKey);\r\n if (addresses !== control.value) {\r\n FormScripts.email.set_button_state(true, field.fields[0], localizer);\r\n }\r\n formWrapper.dynamicForm.setFieldVisibility(field.name + '_save', false);\r\n setTimeout(() => {\r\n if (!!control.status && control.status === 'VALID') {\r\n formWrapper.dynamicForm.setFieldVisibility(field.name + '_save', true);\r\n }\r\n }, 1);\r\n },\r\n populate_address(fieldName: string, dynamicForm: DynamicFormComponent, localizer: LocalizeService): boolean {\r\n const prefKey = 'share_'+fieldName;\r\n const extName = fieldName + '_save';\r\n const extension: FormField = dynamicForm.getField(extName);\r\n const addresses: string = Util.RestAPI.getPreference(prefKey);\r\n let set = false;\r\n if (!!addresses) {\r\n FormScripts.email.set_button_state(false, extension, localizer);\r\n dynamicForm.setFieldVisibility(extName, true);\r\n dynamicForm.updateControlValue(fieldName, addresses, true);\r\n set = true;\r\n } else {\r\n FormScripts.email.set_button_state(true, extension, localizer);\r\n dynamicForm.setFieldVisibility(extName, false);\r\n }\r\n return set;\r\n },\r\n set_button_state(asSave: boolean, extension: FormField, localizer: LocalizeService): void {\r\n if (extension) {\r\n if (asSave) {\r\n extension.buttonImg = 'toolbar_save24.svg';\r\n extension.label = localizer.getTranslation('FORMS.BUTTONS.SAVE');\r\n } else {\r\n extension.buttonImg = 'formfield_clear.svg';\r\n extension.label = localizer.getTranslation('FORMS.BUTTONS.CLEAR_ALL');\r\n }\r\n }\r\n },\r\n choice_version(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n FormScripts.email.get_versions_attachments_for_multiple_docs(formWrapper, false);\r\n const attachValue = formWrapper.dynamicForm.getControlValue('$edx_attachment');\r\n formWrapper.dynamicForm.updateControlValue('$edx_force_invalid', (control.value !== 'none' || attachValue !== 'none') ? '1' : undefined, true);\r\n if (!!formWrapper.formDialog.doCommand) {\r\n formWrapper.formDialog.doCommand('disableok', control.value === 'none' && attachValue === 'none');\r\n }\r\n },\r\n choice_attachment(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n FormScripts.email.get_versions_attachments_for_multiple_docs(formWrapper, true);\r\n const versionValue = formWrapper.dynamicForm.getControlValue('$edx_version');\r\n formWrapper.dynamicForm.updateControlValue('$edx_force_invalid', (control.value !== 'none' || versionValue !== 'none') ? '1' : undefined, true);\r\n if (!!formWrapper.formDialog.doCommand) {\r\n formWrapper.formDialog.doCommand('disableok', control.value === 'none' && versionValue === 'none');\r\n }\r\n },\r\n get_versions_attachments_for_multiple_docs(formWrapper: FormWrapperComponent, isAttachments: boolean) {\r\n if (formWrapper.isOutlookMB()) {\r\n const controlValue = formWrapper.dynamicForm.getControlValue(isAttachments ? '$edx_attachment' : '$edx_version');\r\n const selections: any[] = formWrapper.selections;\r\n const nSelections: number = !!selections ? selections.length : 0;\r\n const listName: string = isAttachments ? 'ATTACHMENTS' : 'VERSIONS';\r\n if (nSelections > 1 && controlValue === 'all' && !formWrapper.scriptData[listName]) {\r\n formWrapper.scriptData[listName] = [];\r\n setTimeout(() => {\r\n const getCB = isAttachments ? FormScripts._shared.get_attachments : FormScripts._shared.get_versions;\r\n for (const selection of selections) {\r\n getCB(formWrapper, { desc: selection, readDesc: true }).then((list: any[]) => {\r\n formWrapper.scriptData[listName].splice(0, 0, ...list);\r\n });\r\n }\r\n }, 1);\r\n }\r\n }\r\n }\r\n },\r\n link: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const selections: any[] = formWrapper.selections;\r\n formWrapper.disableFirstFocus = false;\r\n const linkTypeSelect: any = Util.FieldMappings.templateField(formTemplate.defs, '$edx_link_type');\r\n const linkActionSelect: any = Util.FieldMappings.templateField(formTemplate.defs, '$edx_link_action');\r\n if (!Util.RestAPI.canShowPreview()) {\r\n const option = linkActionSelect.selections.find(s=>s.value === 'profile_preview');\r\n const index = option ? linkActionSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n linkActionSelect.selections.splice(index,1);\r\n }\r\n }\r\n if (!Util.Device.bIsTeamsAddIn) {\r\n linkTypeSelect.flags = 0x01180000;\r\n }\r\n if (selections[0].type !== 'documents') {\r\n const actions = selections[0].type === 'flexfolders' ? ['open'] : ['open', 'profile'];\r\n linkActionSelect.selections = linkActionSelect.selections.filter(t => actions.indexOf(t.value) !== -1);\r\n }\r\n setTimeout(() => {\r\n this.make_link(formWrapper, localizer);\r\n }, 1);\r\n },\r\n make_link(formWrapper: FormWrapperComponent, localizer: LocalizeService) {\r\n const desc: any = formWrapper.selections[0];\r\n const selType = formWrapper.dynamicForm.getControl('$edx_link_type');\r\n const selAction = formWrapper.dynamicForm.getControl('$edx_link_action');\r\n let linkStr: string;\r\n switch (selType.value) {\r\n case 'web':\r\n linkStr = Util.RestAPI.makeDeepLink(desc, selAction.value, false);\r\n break;\r\n case 'pcdocs':\r\n linkStr = 'pcdocs://'+desc.lib+'/'+desc.DOCNUM+'/'+(desc.vers || 'r');\r\n break;\r\n case 'teams_auto':\r\n linkStr = Util.RestAPI.makeDeepLink(desc, selAction.value, true);\r\n break;\r\n case 'teams_dialog':\r\n const subEntity = {\r\n id: desc.id,\r\n type: desc.type,\r\n lib: desc.lib,\r\n DOCNAME: encodeURIComponent(desc.DOCNAME),\r\n action: selAction.value || '',\r\n version: desc.vers || 'C'\r\n };\r\n microsoftTeams.shareDeepLink({ subEntityId: JSON.stringify(subEntity), subEntityLabel: desc.DOCNAME, subEntityWebUrl: null });\r\n setTimeout(() => {\r\n if (!!formWrapper.formDialog) {\r\n formWrapper.formDialog.doCommand('back');\r\n }\r\n }, 1);\r\n break;\r\n }\r\n if (!!linkStr) {\r\n formWrapper.dynamicForm.updateControlValue('$edx_link', linkStr, false);\r\n }\r\n },\r\n destroy(formWrapper: FormWrapperComponent, confirmed: boolean, allData: any, dirtyData: any) {\r\n if (confirmed) {\r\n if (!!document.execCommand) {\r\n const link = document.getElementById('$edx_link') as HTMLInputElement;\r\n link.focus();\r\n link.select();\r\n link.setSelectionRange(0, 99999);\r\n document.execCommand('copy');\r\n }\r\n }\r\n }\r\n },\r\n downloadzip: {\r\n desc: null,\r\n zipQuery: null,\r\n dlQuery: null,\r\n path: null,\r\n extraVers: null,\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n this.desc = formData ? formData.desc : null;\r\n this.zipQuery = formData ? formData.$edx_zip_type : null;\r\n this.dlQuery = formData ? formData.$edx_download_type : null;\r\n this.path = formData ? formData.$edx_download_location : null;\r\n this.extraVers = formData ? formData.$edx_extraVers : null;\r\n if (this.desc) {\r\n setTimeout(() => {\r\n formWrapper.showExtras(true);\r\n this.start(formWrapper);\r\n }, 1);\r\n }\r\n },\r\n destroy(formWrapper: FormWrapperComponent, confirmed: boolean, allData: any, dirtyData: any) {\r\n this.desc = null;\r\n this.zipQuery = null;\r\n this.dlQuery = null;\r\n this.path = null;\r\n this.extraVers = null;\r\n },\r\n start(formWrapper: FormWrapperComponent) {\r\n if (this.desc) {\r\n Util.RestAPI.post(this.desc,'','versions/zip',this.zipQuery,{observe:'response'}).subscribe((response) => {\r\n if (response.status === 200) {\r\n this.checkStatus(formWrapper);\r\n } else {\r\n this.end(formWrapper);\r\n }\r\n }, error => {\r\n this.end(formWrapper);\r\n });\r\n }\r\n },\r\n checkStatus(formWrapper: FormWrapperComponent) {\r\n if (this.desc) {\r\n Util.RestAPI.get(this.desc,'versions/zipstatus', null).subscribe(data => {\r\n //{\"data\":{\"status\":\"\",\"error\":\"\"}}\r\n //status can be: started, downloading, compressing, completed, error\r\n const status = data.status;\r\n try {\r\n if (!!status) {\r\n switch (status) {\r\n case 'error':\r\n this.end(formWrapper);\r\n break;\r\n case 'completed':\r\n Util.RestAPI.downloadFile(this.desc,'zip',this.dlQuery,this.path);\r\n setTimeout(() => {\r\n this.end(formWrapper);\r\n }, 2000);\r\n break;\r\n default:\r\n setTimeout(() => {\r\n this.checkStatus(formWrapper);\r\n }, 2000);\r\n }\r\n } else {\r\n this.end(formWrapper);\r\n }\r\n } catch (e) {\r\n this.end(formWrapper);\r\n }\r\n }, error => {\r\n this.end(formWrapper);\r\n });\r\n }\r\n },\r\n end(formWrapper: FormWrapperComponent) {\r\n const savedDesc = this.desc;\r\n const savedPath = this.path;\r\n const savedVers = this.extraVers;\r\n const savedDLQuery = this.dlQuery;\r\n this.dlQuery = null;\r\n this.zipQuery = null;\r\n if (this.desc) {\r\n if (!!savedVers) {\r\n setTimeout(() => {\r\n if (Util.Device.bIsElectron || Util.Device.bIsCordova) {\r\n Util.RestAPI.downloadFilesWithAppWorks([savedDesc], savedPath, undefined, savedVers, savedDLQuery, false, false);\r\n } else {\r\n const versions: string[] = savedVers.split(';');\r\n const path = Util.RestAPI.hasPFTA() && !savedPath ? 'downloads' : savedPath;\r\n for (const version of versions) {\r\n Util.RestAPI.downloadFile(savedDesc, version, savedDLQuery, path);\r\n }\r\n }\r\n }, 300);\r\n }\r\n this.desc = null;\r\n formWrapper.popupCancel();\r\n }\r\n }\r\n },\r\n copy: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const desc: any = formWrapper.desc ? formWrapper.desc : (formWrapper.selections && formWrapper.selections.length ? formWrapper.selections[0] : null);\r\n if (!!desc) {\r\n formWrapper.selections = [desc];\r\n formWrapper.setRelateToDesc(desc);\r\n }\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=nDefs-1; i>=0; i--) {\r\n if (formTemplate.defs[i].name==='$edx_version') {\r\n if (!!desc && desc.type==='folders') {\r\n formTemplate.defs.splice(i,1);\r\n }\r\n }\r\n }\r\n setTimeout(() => {\r\n let parent: BaseDesc = Util.RestAPI.getLastCopyContainer();\r\n const primaryLib = Util.RestAPI.getPrimaryLibrary();\r\n const isPrimaryLib = !formWrapper.desc.lib || formWrapper.desc.lib.toUpperCase() === primaryLib.toUpperCase();\r\n const isParentSameLibAsItem = !formWrapper.desc.lib || !parent || formWrapper.desc.lib.toUpperCase() === parent.lib.toUpperCase();\r\n if (!!parent && !isParentSameLibAsItem) {\r\n parent = undefined; // parent container lib not the same as copy doc lib so do not start copy to ref in parent lib, go to root of copy doc lib\r\n }\r\n if (!!parent || !isPrimaryLib) {\r\n const aDesc = parent || formWrapper.desc;\r\n formWrapper.dynamicForm.updateControlValue('$edx_chooser', !!aDesc ? JSON.stringify(aDesc) : null);\r\n if (!!parent) {\r\n formWrapper.scriptData['CREATEDESC'] = parent;\r\n }\r\n }\r\n if (!formWrapper.selections || formWrapper.selections.length===1) {\r\n if (!desc || desc.type!=='folders') {\r\n FormScripts._shared.populate_versions(formWrapper, Util.Device.isMobileDevie());\r\n }\r\n }\r\n if (formWrapper.rightWrapper && formData) {\r\n formWrapper.rightWrapper.copyFileName = formData['DOCNAME'];\r\n formWrapper.rightWrapper.copyAppID = formData['APP_ID'];\r\n if (formData['SECURITY']==='1') {\r\n Util.RestAPI.get(formWrapper.desc, 'security').subscribe(data => {\r\n if (!!data && !!data.list) {\r\n formWrapper.rightWrapper.dynamicForm.setSecurityList(data.list);\r\n }\r\n }, () => {});\r\n }\r\n }\r\n const waitForRightWrapper = () => {\r\n if (!!formWrapper.rightWrapper && !!formWrapper.headerWrapper) {\r\n formWrapper.rightWrapper.setEditable(true);\r\n formWrapper.headerWrapper.setEditable(true);\r\n } else {\r\n setTimeout(waitForRightWrapper,100);\r\n }\r\n };\r\n setTimeout(waitForRightWrapper,100);\r\n }, 1);\r\n },\r\n location_change(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const pickedItem = !!control.value ? JSON.parse(control.value) : null;\r\n if (!!pickedItem) {\r\n const curDesc = !!formWrapper.selections && formWrapper.selections.length ? formWrapper.selections[0] : null;\r\n formWrapper.scriptData['CREATEDESC'] = pickedItem;\r\n if (formWrapper.rightWrapper) {\r\n if (!formWrapper.rightWrapper.createType) {\r\n formWrapper.rightWrapper.createType = formWrapper.rightWrapper.desc.type;\r\n }\r\n Util.RestAPI.copyDescChanged({id:'', type:formWrapper.rightWrapper.desc.type,lib:pickedItem.lib});\r\n const isDVNode = (!!pickedItem.id && pickedItem.id.substring(0, 3) === 'DV-');\r\n if (!!curDesc && curDesc.lib !== pickedItem.lib || isDVNode || !!pickedItem.pickerpath) {\r\n if (!isDVNode) {\r\n formWrapper.rightWrapper.formData = {};\r\n } // changing libs we must knock out existing formData\r\n formWrapper.rightWrapper.locationChanged(pickedItem);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n delete: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n const isExternalContainer: boolean = Util.isExternalLib(formData.selections[0]['lib']);\r\n let allowFileDel: boolean = !isExternalContainer ? true : false;\r\n let allowProfileAndFileDel: boolean =!isExternalContainer ? true : false;\r\n let allowQueueDel: boolean = !isExternalContainer ? true : false;\r\n let nItems = 1;\r\n if (loginReply && loginReply['HEADERS'] && !isExternalContainer) {\r\n if (loginReply['HEADERS']['X-DM-GROUPID']!=='DOCS_SUPERVISORS') {\r\n if (loginReply['EFFECTIVE_RIGHTS']) {\r\n if (loginReply['EFFECTIVE_RIGHTS']['ALLOW_CONTENT_DEL'] === 'N') {\r\n allowFileDel = false;\r\n }\r\n if (loginReply['EFFECTIVE_RIGHTS']['ALLOW_DOC_DELETE'] === 'N') {\r\n allowProfileAndFileDel = false;\r\n }\r\n if (loginReply['EFFECTIVE_RIGHTS']['ALLOW_QUEUE_DEL'] === 'N') {\r\n allowQueueDel = false;\r\n }\r\n }\r\n }\r\n }\r\n let onlyDocsSelected = true;\r\n if (formData.selections && formData.selections.length) {\r\n nItems = formData.selections.length;\r\n onlyDocsSelected = formData.selections.every(item => item.type === 'documents' && item.STATUS !== '18' && item.APP_ID !== '' && item.STORAGE !== 'P' && !item.VERSION_ID);\r\n if (allowFileDel) {\r\n if (!onlyDocsSelected) {\r\n allowFileDel = false;\r\n }\r\n }\r\n if (allowQueueDel) {\r\n allowQueueDel = formData.selections.every(item => item.STORAGE !== 'D' && !item.VERSION_ID && item.type !== 'searches' && item.type !=='urls' && item.STORAGE !== 'P');\r\n }\r\n }\r\n if (formTemplate && formTemplate.defs) {\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=nDefs-1; i>=0; i--) {\r\n if (formTemplate.defs[i].fldtype==='radiogroup') {\r\n let goodValue: string = Util.RestAPI.getPreference('edx_delete_type');\r\n if (!allowFileDel || !allowProfileAndFileDel || !allowQueueDel) {\r\n const delOptions: string[] = formTemplate.defs[i]['buttons'].split('|');\r\n if ((!allowFileDel && !allowProfileAndFileDel && !allowQueueDel) || delOptions.length!==3) {\r\n formTemplate.defs.splice(i,1);\r\n } else {\r\n const goodOptions: string[] = [];\r\n const addIt = (index) => {\r\n let options: string = delOptions[index];\r\n const values: string[] = options.split(';');\r\n if (values && values.length) {\r\n goodValue = values[0];\r\n if (!onlyDocsSelected && goodValue==='DP') {\r\n values[1] = localizer.getTranslation('FOLDER_ACTIONS.DELETE');\r\n options = values.join(';');\r\n }\r\n }\r\n goodOptions.push(options);\r\n };\r\n if (allowQueueDel) {\r\n addIt(2);\r\n }\r\n if (allowProfileAndFileDel) {\r\n addIt(1);\r\n }\r\n if (allowFileDel) {\r\n addIt(0);\r\n }\r\n formTemplate.defs[i]['buttons'] = goodOptions.join('|');\r\n if (goodOptions.length<2) {\r\n formTemplate.defs[i].flags = 0x01000000;\r\n }\r\n }\r\n }\r\n if (!!goodValue && formTemplate.defs[i].fldtype === 'radiogroup') {\r\n formTemplate.defs[i]['value'] = goodValue;\r\n }\r\n }\r\n if (formTemplate.defs[i]['name'] === 'question' && !allowProfileAndFileDel) {\r\n if (allowQueueDel && !allowFileDel) {\r\n formTemplate.defs[i]['value'] = nItems === 1 ? localizer.getTranslation('FORMS.LOCAL.DELETE.ASK_QUE_FOR_DELETE_SINGLE', [formData.docName]) : localizer.getTranslation('FORMS.LOCAL.DELETE.ASK_QUE_FOR_DELETE_MANY', [nItems.toString()]);\r\n }\r\n if (allowFileDel && !allowQueueDel) {\r\n formTemplate.defs[i]['value'] = nItems === 1 ? localizer.getTranslation('FORMS.LOCAL.DELETE.ASK_DELETE_CONTENT_SINGLE', [formData.docName]) : localizer.getTranslation('FORMS.LOCAL.DELETE.ASK_DELETE_CONTENT_MANY', [nItems.toString()]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n confirm_delete: {\r\n confirmdelete(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n if (!!formWrapper.formDialog.doCommand) {\r\n formWrapper.formDialog.doCommand('disableok', control.value.length === 0);\r\n }\r\n }\r\n },\r\n conflictbehavior: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n if (formTemplate && formTemplate.defs) {\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=nDefs-1; i>=0; i--) {\r\n if (formTemplate.defs[i].fldtype==='radiogroup') {\r\n const options: string[] = formTemplate.defs[i]['buttons'].split('|');\r\n let goodValue: string = Util.RestAPI.getPreference('edx_delete_type');\r\n if (!goodValue) {\r\n goodValue = options[0].split(';')[0];\r\n }\r\n formTemplate.defs[i]['value'] = goodValue;\r\n }\r\n if (formTemplate.defs[i]['name'] === 'question') {\r\n formTemplate.defs[i]['value'] = localizer.getTranslation('FORMS.LOCAL.CONFLICT_BEHAVIOR.ASK_SELECT',[formData.docName]);\r\n }\r\n if (formTemplate.defs[i]['name'] === 'file') {\r\n formTemplate.defs[i]['value'] = formData.docName;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n permissions_selector: {\r\n originalValue: undefined,\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n let restrictedOnly = false;\r\n let rm_inherited = false;\r\n let security: string;\r\n const inDialog: boolean = formWrapper.inDialog;\r\n const isWorkspace: boolean = formWrapper.desc && formWrapper.desc.type==='workspaces' && (!formWrapper.createType || formWrapper.createType==='workspaces');\r\n const isSearch: boolean = formWrapper.desc && formWrapper.desc.type==='searches';\r\n const mainWrapperSercurity = !!formWrapper.mainWrapper && !!formWrapper.mainWrapper.desc ? formWrapper.mainWrapper.desc['SECUTRITY'] : null;\r\n const mainWrapperHasTrustees = !!formWrapper.mainWrapper && !!formWrapper.mainWrapper.trustees && formWrapper.mainWrapper.trustees.length>0;\r\n const calcSecurity = () => {\r\n security = formData['DEFAULT_RIGHTS'];\r\n if (loginReply && loginReply['EFFECTIVE_RIGHTS'] && loginReply['EFFECTIVE_RIGHTS']['VIEW_UNSECURED'] === 'N' ) {\r\n restrictedOnly = true;\r\n security = security || formData['SEC_REASON_LINK'];\r\n security = security || '1';\r\n } else {\r\n const mainWrapperSelectedSercurityChoice: string = !!formWrapper.mainWrapper && !!formWrapper.mainWrapper.desc && formWrapper.mainWrapper.desc['edx_selected_security_choice'] || null;\r\n security = security || formData['edx_selected_security_choice'] || mainWrapperSelectedSercurityChoice;\r\n security = security || formData['SECURITY'];\r\n security = security || formData['SEC_REASON_LINK'];\r\n security = security || (!!formData['ACCESSRIGHTS'] ? '1' : undefined);\r\n security = security || ((!!formWrapper.createType && formWrapper.createType === 'workspaces') ? '1' : undefined);\r\n security = security || '2';\r\n }\r\n if (security === '3') {\r\n restrictedOnly = true;\r\n rm_inherited = true;\r\n }\r\n };\r\n /* do not change this code without checking with formservice.ts permissions_selector template */\r\n if (Util.Device.ui>=2 && !Util.Device.bIsOfficeAddin) {\r\n formTemplate.defs[0].combosegment = true;\r\n formTemplate.defs[0].prompt = null;\r\n }\r\n if (isWorkspace || isSearch) {\r\n formTemplate.defs.splice(0,1);\r\n delete formTemplate.defs[0]['extensionparent'];\r\n formTemplate.defs[1]['extensionparent'] = '$edx_permissions_edit';\r\n }\r\n const waitForForm = () => {\r\n if (!!formWrapper.dynamicForm.form && (!inDialog || (!!formWrapper.mainWrapper && !!formWrapper.mainWrapper.dynamicForm.form))) {\r\n setTimeout(() => {\r\n if (!!formWrapper.mainWrapper && !!formWrapper.mainWrapper.formData) {\r\n formData = formWrapper.mainWrapper.formData;\r\n }\r\n calcSecurity();\r\n if (isWorkspace || isSearch) {\r\n if (!isWorkspace || !formWrapper.bMassProfileUpdate) {\r\n formWrapper.dynamicForm.setFieldLabel('$edx_permissions_edit', 'FORMS.LOCAL.PERMISSIONS_SELECTOR.SHARE', true);\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_permissions_edit', inDialog);\r\n }\r\n } else {\r\n if (inDialog) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_permissions_edit', security==='1');\r\n } else {\r\n formWrapper.dynamicForm.setFieldLabel('$edx_permissions_edit', 'FORMS.LOCAL.PERMISSIONS_SELECTOR.SAVE', true);\r\n }\r\n formWrapper.dynamicForm.setFieldVisibility('SECURITY', true);\r\n formWrapper.dynamicForm.setFieldEditable('SECURITY', !formWrapper.desc || (formWrapper.desc.type !== 'flexfolders' || formData['SEC_REASON_LINK']==='0'));\r\n let securityField: FormField = formWrapper.dynamicForm.getField('SECURITY');\r\n let selectionMap: SelectItem[] = securityField.selectionMap;\r\n if (formWrapper.disableInherited) {\r\n securityField = formWrapper.dynamicForm.getField('SECURITY');\r\n selectionMap = securityField.selectionMap;\r\n selectionMap = selectionMap.filter(i => i.value!=='2');\r\n securityField.selectionMap = selectionMap;\r\n if (security === '2') {\r\n security = '1';\r\n } // Convert INHERITED into RESTRICTED\r\n }\r\n if (restrictedOnly) {\r\n if (rm_inherited) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_permissions_edit', false);\r\n selectionMap = selectionMap.filter(i => i.value==='3');\r\n securityField.selectionMap = selectionMap;\r\n security = '3';\r\n } else {\r\n selectionMap = selectionMap.filter(i => i.value==='1');\r\n securityField.selectionMap = selectionMap;\r\n security = '1';\r\n }\r\n } else {\r\n selectionMap = selectionMap.filter(i => i.value!=='3');\r\n securityField.selectionMap = selectionMap;\r\n }\r\n if (!formWrapper.inDialog || (formWrapper.mainWrapper && (!formWrapper.mainWrapper.createType && !formWrapper.bMassProfileUpdate && ['profile_copy', 'profile_savetoedocs'].indexOf(formWrapper.mainWrapper.kind) === -1))) {\r\n // We do not use INHERITED value for existing docs anymore. It is always restricted except when creating a doc\r\n if (security === '2') {\r\n security = '1';\r\n } // Convert INHERITED into RESTRICTED\r\n selectionMap = selectionMap.filter(i => i.value!=='2');\r\n securityField.selectionMap = selectionMap;\r\n if (formWrapper.inDialog) {\r\n formWrapper.dynamicForm.setFieldVisibility('$edx_permissions_edit', security==='1');\r\n }\r\n }\r\n }\r\n this.originalValue = security;\r\n setTimeout(() => {\r\n formWrapper.dynamicForm.updateControlValue('SECURITY', security);\r\n }, 1);\r\n if (!!formWrapper.mainWrapper) {\r\n formWrapper.mainWrapper.dynamicForm.updateControlValue('SECURITY', security);\r\n }\r\n formWrapper.permissionChanged(security);\r\n }, 1);\r\n } else {\r\n setTimeout(waitForForm, 100);\r\n }\r\n };\r\n const waitForMainWrapper = () => {\r\n if (!!formWrapper.mainWrapper) {\r\n formData = formWrapper.mainWrapper.formData;\r\n calcSecurity();\r\n if (formWrapper.readOnly !== formWrapper.mainWrapper.readOnly) {\r\n formWrapper.setEditable(!formWrapper.mainWrapper.readOnly);\r\n }\r\n if ((formWrapper.mainWrapper.createType || formWrapper.mainWrapper.kind === 'profile_copy')) {\r\n if (mainWrapperSercurity === '1' && !mainWrapperHasTrustees) {\r\n if (formWrapper.desc['APP_ID'] === 'FOLDER' || formWrapper.desc['type'] === 'flexfolders' || formWrapper.mainWrapper.kind === 'profile_copy') {\r\n // We are creating document inside a restricted folder or workspace, set the trustee information Only do it for new doc and not edit profile\r\n formWrapper.mainWrapper.inheritSecurity(formWrapper);\r\n } else {\r\n // When creating a new document, set profile default trustees if any.\r\n formWrapper.mainWrapper.useDefaultTrustees();\r\n }\r\n } else if (security === '1' && mainWrapperHasTrustees) {\r\n formWrapper.mainWrapper.dynamicForm.setSecurityList(formWrapper.mainWrapper.trustees);\r\n }\r\n }\r\n waitForForm();\r\n } else {\r\n if (inDialog) {\r\n setTimeout(waitForMainWrapper, 100);\r\n } else {\r\n waitForForm();\r\n }\r\n }\r\n };\r\n waitForMainWrapper();\r\n },\r\n edit(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n if (formWrapper.mainWrapper) {\r\n if (formWrapper.inDialog) {\r\n formWrapper.mainWrapper.editSecurity();\r\n }\r\n } else {\r\n // It is coming from security tab so it is save\r\n formWrapper.saveSecurity();\r\n if (!!control) {\r\n this.originalValue = control.value;\r\n }\r\n }\r\n },\r\n cancel(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n formWrapper.resetSecurity();\r\n formWrapper.dynamicForm.updateControlValue('SECURITY', this.originalValue, true);\r\n if (formWrapper.mainWrapper) {\r\n formWrapper.mainWrapper.dynamicForm.updateControlValue('SECURITY', this.originalValue, true);\r\n }\r\n },\r\n choice(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const value: any = control.value;\r\n const title: string = localizer.getTranslation('METADATA.TABS.SECURITY');\r\n const body: string = localizer.getTranslation('FORMS.LOCAL.PERMISSIONS_SELECTOR.REMOVE_SECURITY', [formWrapper.desc['DOCNAME']]);\r\n const okBtn: string = localizer.getTranslation('FORMS.BUTTONS.OK');\r\n let previousSecurity: any = formWrapper.desc['SEC_REASON_LINK'];\r\n const dialogDone = (controlValue) => {\r\n if (previousSecurity !== value) {\r\n formWrapper.dynamicForm.updateControlValue('SECURITY', controlValue, true);\r\n }\r\n if (formWrapper.mainWrapper) {\r\n formWrapper.mainWrapper.dynamicForm.updateControlValue('SECURITY', controlValue, true);\r\n }\r\n formWrapper.securityDirty(previousSecurity !== controlValue);\r\n };\r\n formWrapper.desc['edx_selected_security_choice'] = value;\r\n if (formWrapper.desc['SEC_REASON_LINK'] !== value && !formWrapper.createType) {\r\n if (formWrapper.desc['SEC_REASON_LINK'] && (formWrapper.desc['SEC_REASON_LINK'] === 1 || formWrapper.desc['SEC_REASON_LINK'] === 2) && value === '0') {\r\n previousSecurity = formWrapper.desc['SEC_REASON_LINK'];\r\n Util.Notify.warning(title, body, okBtn, null, true, true, true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n dialogDone(control.value);\r\n formWrapper.permissionChanged(control.value);\r\n } else {\r\n // Restore previously set security if not confirmed\r\n dialogDone(previousSecurity);\r\n formWrapper.permissionChanged(previousSecurity);\r\n }\r\n });\r\n } else {\r\n dialogDone(value);\r\n formWrapper.permissionChanged(control.value);\r\n }\r\n } else {\r\n dialogDone(value);\r\n formWrapper.permissionChanged(control.value);\r\n }\r\n }\r\n },\r\n checkout: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n for (const def of formTemplate['defs']) {\r\n if (def.name === '$edx_folder_loc') {\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n if (!!loginReply.APPLICATIONS) {\r\n loginReply.APPLICATIONS.forEach(app => {\r\n if (app.access.indexOf('checkout-to') !== -1 || app.access.indexOf('checkout') !== -1) {\r\n const newSelection: any = Util.deepCopy(app);\r\n newSelection['display'] = app.name;\r\n newSelection['value'] = app.id;\r\n def.selections.push(newSelection);\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n FormScripts._shared.check_remove_folder_pickers_for_export_checkout(formWrapper, formTemplate, true);\r\n },\r\n external_checkout_location(formWrapper: FormWrapperComponent, formTemplate: any, field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n if (control.value !== 'LOCAL' && control.value !== 'NONE') {\r\n let newDesc: any = {};\r\n for (const sel of field.selectionMap) {\r\n if (sel['id'] === control.value) {\r\n const containers: any = localizer.getTranslation('FOLDER_ACTIONS.CONTAINERS');\r\n newDesc = {id:sel['id'],type:sel['type'],lib:sel['lib'],DOCNAME:containers};\r\n break;\r\n }\r\n }\r\n Util.RestAPI.pickFolders(newDesc, false, false, true, (list: any[], success: boolean) => {\r\n if (success && list && list.length) {\r\n formWrapper.dynamicForm.updateControlValue('$edx_sever_loc_display',list[0].DOCNAME);\r\n const pathParts: string[] = !!list[0].pickerpath ? list[0].pickerpath.split('/') : [''];\r\n pathParts.splice(pathParts.length-1);\r\n const externalLoc = pathParts.length ? pathParts.join('\\\\') + '\\\\' + list[0].DOCNAME : list[0].DOCNAME;\r\n formWrapper.dynamicForm.setFieldEditable('%CHECKIN_LOCATION', false);\r\n formWrapper.dynamicForm.updateControlValue('%CHECKIN_LOCATION',externalLoc);\r\n formWrapper.scriptData['CREATEDESC'] = list[0];\r\n if (formWrapper.rightWrapper) {\r\n formWrapper.rightWrapper.createType = formWrapper.rightWrapper.desc.type;\r\n Util.RestAPI.copyDescChanged({id:'', type:formWrapper.rightWrapper.desc.type,lib:list[0].lib});\r\n if (control.value!=='$edx_select_folder') {\r\n formWrapper.rightWrapper.formData = {}; // changing libs we must knock out existing formData\r\n }\r\n }\r\n } else {\r\n formWrapper.dynamicForm.updateControlValue('$edx_folder_loc','LOCAL');\r\n }\r\n });\r\n } else {\r\n FormScripts._shared.check_remove_folder_pickers_for_export_checkout(formWrapper, formWrapper.formTemplate, true);\r\n }\r\n },\r\n checkout_location(formWrapper: FormWrapperComponent, formTemplate: any, field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n for (const def of formTemplate['defs']) {\r\n if (def.name === '$edx_folder_loc') {\r\n const loginReply: any = Util.RestAPI.getLoginReply();\r\n if (!!loginReply.APPLICATIONS) {\r\n loginReply.APPLICATIONS.forEach(app => {\r\n if (app.access.indexOf('checkout-to') !== -1 || app.access.indexOf('checkout') !== -1) {\r\n const newSelection: any = Util.deepCopy(app);\r\n newSelection['display'] = app.name;\r\n newSelection['value'] = app.id;\r\n def.selections.push(newSelection);\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n FormScripts._shared.check_remove_folder_pickers_for_export_checkout(formWrapper, formTemplate, true);\r\n }\r\n },\r\n checkin: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n let index: number;\r\n let option: any;\r\n let newVersValue: string = null;\r\n const newVersSelect: any = Util.FieldMappings.templateField(formTemplate.defs, '$edx_new_version');\r\n const docs: any[] = !!formData['DOCUMENTS'] && formData['DOCUMENTS'].length ? formData['DOCUMENTS'] : [];\r\n const doc: any = docs.length ? docs[0] : null;\r\n const docsWithFirstLib = !!doc ? docs.filter(d => d.lib === doc.lib) : [];\r\n if (formData['STATUS']==='20' || formData['STATUS']==='19') {\r\n // the file is the pubished version or read-only do not include replace version in the picker\r\n if (!!newVersSelect && !!newVersSelect.selections && newVersSelect.selections.length) {\r\n option = newVersSelect.selections.find(s => s.value==='REPLACE_VERSION');\r\n index = option ? newVersSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n newVersSelect.selections.splice(index,1);\r\n }\r\n }\r\n }\r\n if (docsWithFirstLib.length !== docs.length && !!newVersSelect && !!newVersSelect.selections && newVersSelect.selections.length) {\r\n // different libs in list remove checkin as new doc\r\n option = newVersSelect.selections.find(s => s.value==='NEW_DOCUMENT');\r\n index = option ? newVersSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n newVersSelect.selections.splice(index,1);\r\n }\r\n }\r\n const postLoad = () => {\r\n setTimeout(() => {\r\n const versionField = formWrapper.dynamicForm.getField('$edx_new_version');\r\n const currentUser: string = Util.RestAPI.getUserID();\r\n if (!!versionField && !!newVersSelect.selections) {\r\n versionField.selectionMap = newVersSelect.selections;\r\n }\r\n if (!!newVersValue) {\r\n formWrapper.dynamicForm.updateControlValue('$edx_new_version', newVersValue, true);\r\n }\r\n formWrapper.dynamicForm.updateControlValue('%CHECKIN_LOCATION', '', true);\r\n formWrapper.dynamicForm.updateControlValue('TYPIST_ID', currentUser, true);\r\n formWrapper.dynamicForm.updateControlValue('AUTHOR_ID', currentUser, true);\r\n if ((Util.Device.bIsElectron || Util.Device.bIsCordova || Util.RestAPI.hasPFTA()) && formWrapper.selections && formWrapper.selections.length && formData['%CHECKIN_LOCATION']) {\r\n const checkinLoc: string = formData['%CHECKIN_LOCATION'];\r\n const filePaths: string[] = [];\r\n const nSelections: number = formWrapper.selections.length;\r\n let nResponses = 0;\r\n formWrapper.dynamicForm.setLoading(true);\r\n // Synchronous retrieval of filePaths so that they remain in the same order\r\n // as they are in formWrapper.selections. Multiple file check-in can then\r\n // correlate file names, app ids, and document numbers positionally in profile form\r\n // whn they are lsisted as semicolon separated values\r\n const getFilePaths = () => new Promise(resolve => {\r\n let i = 0;\r\n const checkDone = () => {\r\n ++i;\r\n if (i >= nSelections) {\r\n resolve(filePaths);\r\n } else {\r\n getNext();\r\n }\r\n };\r\n const getNext = () => {\r\n Util.RestAPI.makeFilePath(formWrapper.selections[i], checkinLoc).then(filePath => {\r\n ++nResponses;\r\n if (filePath) {\r\n filePaths.push(filePath);\r\n }\r\n if (nResponses===nSelections) {\r\n formWrapper.dynamicForm.updateControlValue('$edx_file_picker', filePaths[0], true);\r\n formWrapper.dynamicForm.updateControlValue('%CHECKIN_LOCATION', checkinLoc, true);\r\n formWrapper.uploadFiles(null, filePaths);\r\n formWrapper.dynamicForm.setLoading(false);\r\n }\r\n checkDone();\r\n });\r\n };\r\n getNext();\r\n });\r\n getFilePaths();\r\n } else if (formData['%CHECKIN_LOCATION'].startsWith('http') || formData['%CHECKIN_LOCATION'].startsWith('HTTP')) {\r\n formWrapper.dynamicForm.updateControlValue('%CHECKIN_LOCATION', formData['%CHECKIN_LOCATION'], true);\r\n formWrapper.dynamicForm.setFieldEditable('%CHECKIN_LOCATION', false);\r\n } else {\r\n formWrapper.dynamicForm.updateControlValue('$edx_file_picker', '', true);\r\n }\r\n }, 1);\r\n };\r\n FormScripts._shared.get_versions(formWrapper, formData).then((list: any[]) => {\r\n if (list && list.length) {\r\n let changed = false;\r\n const versions: any = {};\r\n let lastVersNumber: string;\r\n list = list.sort((a: any, b: any) => {\r\n const aVersLabel: string = a.VERSION_LABEL;\r\n const bVersLabel: string = b.VERSION_LABEL;\r\n const aNum: number = parseInt(a.VERSION);\r\n const bNum: number = parseInt(b.VERSION);\r\n if (aNum>bNum) {\r\n return 1;\r\n } else if (aNum s.value==='NEW_VERSION');\r\n index = option ? newVersSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n newVersSelect.selections.splice(index,1);\r\n }\r\n newVersValue = 'NEW_SUB_VERSION';\r\n }\r\n if (doc && doc.VERSION_LABEL) {\r\n const docVersion = Util.versionFromLabel(doc.VERSION_LABEL);\r\n if (!!versions[docVersion] && !Util.RestAPI.canAddNewSubversion(list)) {\r\n changed = true;\r\n option = newVersSelect.selections.find(s => s.value==='NEW_SUB_VERSION');\r\n index = option ? newVersSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n newVersSelect.selections.splice(index,1);\r\n }\r\n if (newVersValue === 'NEW_SUB_VERSION') {\r\n newVersValue = 'NEW_DOCUMENT';\r\n }\r\n }\r\n }\r\n if (changed) {\r\n postLoad();\r\n }\r\n }\r\n }, err => { });\r\n postLoad();\r\n },\r\n version_choice(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl) {\r\n const value: any = control.value;\r\n const show = value !== 'NEW_DOCUMENT';\r\n const nonNewDocFields = ['$edx_version_guide', 'AUTHOR_ID', 'TYPIST_ID', 'COMMENT'];\r\n nonNewDocFields.forEach(f => formWrapper.dynamicForm.setFieldVisibility(f, show));\r\n }\r\n },\r\n newversion: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const doc: any = !!formData['DOCUMENTS'] && formData['DOCUMENTS'].length ? formData['DOCUMENTS'][0] : null;\r\n if (Util.Device.bIsCordova && formWrapper.selections && formWrapper.selections.length && formWrapper.selections[0].fullPath) {\r\n const parts: string[] = formWrapper.selections[0].fullPath.split('/');\r\n const filename: string = parts[parts.length-1];\r\n formData['%CHECKIN_LOCATION'] = filename;\r\n const docObj: any = Util.decodeFileName(filename);\r\n if (!!docObj) {\r\n formData['DOCNUMBER'] = docObj.docNum;\r\n }\r\n setTimeout(() => {\r\n formWrapper.dynamicForm.updateControlValue('$edx_file_picker', filename, true);\r\n formWrapper.uploadFiles(null, [filename]);\r\n }, 1);\r\n }\r\n FormScripts._shared.get_versions(formWrapper, formData).then((list: any[]) => {\r\n let changed = false;\r\n let index: number;\r\n let option: any;\r\n let newVersValue: string = null;\r\n const newVersSelect: any = Util.FieldMappings.templateField(formTemplate.defs, '$edx_new_version');\r\n if (list && list.length) {\r\n if (!Util.RestAPI.canAddNewVersion(list)) {\r\n changed = true;\r\n option = newVersSelect.selections.find(s => s.value==='NEW_VERSION');\r\n index = option ? newVersSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n newVersSelect.selections.splice(index,1);\r\n }\r\n newVersValue = 'NEW_SUB_VERSION';\r\n } else if (!Util.RestAPI.canAddNewSubversion(list)) {\r\n changed = true;\r\n option = newVersSelect.selections.find(s => s.value==='NEW_SUB_VERSION');\r\n index = option ? newVersSelect.selections.indexOf(option) : -1;\r\n if (index!==-1) {\r\n newVersSelect.selections.splice(index,1);\r\n }\r\n newVersValue = 'NEW_VERSION';\r\n }\r\n if (changed) {\r\n formWrapper.dynamicForm.createFieldsFromTemplate(formTemplate.defs);\r\n setTimeout(() => {\r\n formWrapper.dynamicForm.updateControlValue('$edx_new_version', newVersValue, true);\r\n formWrapper.dynamicForm.updateControlValue('%CHECKIN_LOCATION', '', true);\r\n formWrapper.dynamicForm.updateControlValue('COMMENT', '', true);\r\n }, 1);\r\n }\r\n }\r\n }, err => { });\r\n }\r\n },\r\n pick_version: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n setTimeout(() => {\r\n FormScripts._shared.populate_versions(formWrapper, Util.Device.isMobileDevie(), formData);\r\n FormScripts._shared.get_versions(formWrapper, formData).then((list: any[]) => {\r\n if (!!list && list.length > 1) {\r\n const currentVersion = list.reduce((max, current) => parseInt(current.VERSION_ID) > parseInt(max.VERSION_ID) ? current : max, list[0]);\r\n if (!!currentVersion) {\r\n formWrapper.dynamicForm.updateControlValue('$edx_currentversion_id', currentVersion.VERSION_ID, true);\r\n }\r\n }\r\n });\r\n }, 1);\r\n },\r\n validate_published(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n FormScripts.pick_version.togglePublishNote(formWrapper);\r\n },\r\n togglePublishNote(formWrapper: FormWrapperComponent) {\r\n formWrapper.dynamicForm.setFieldVisibility('publishnote', false);\r\n if (!!formWrapper.formData && formWrapper.formData.checkPublishedVersion) {\r\n const selectedVersion: string = formWrapper.dynamicForm.getControlValue('$edx_version');\r\n if (['p', 'P'].indexOf(selectedVersion) > -1 || (['c', 'C'].indexOf(selectedVersion) > -1 && formWrapper.formData.isCurrentVersionPublished) || (!!formWrapper.formData.publishedVersion && (selectedVersion === formWrapper.formData.publishedVersion))) {\r\n formWrapper.dynamicForm.setFieldVisibility('publishnote', true);\r\n localStorage.setItem('isVersionPublished', 'true');\r\n } else {\r\n localStorage.removeItem('isVersionPublished');\r\n }\r\n } else {\r\n localStorage.removeItem('isVersionPublished');\r\n }\r\n }\r\n },\r\n template_options: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=0; i {\r\n const field = Util.FieldMappings.templateField(formTemplate.defs, name);\r\n if (!!field) {\r\n field.flags = 0x01000000;\r\n }\r\n };\r\n if (!Util.Device.bIsCordova) {\r\n hideField('uploading');\r\n }\r\n if ((!Util.Device.bIsElectron && !Util.RestAPI.hasPFTA() || !Util.RestAPI.canUserCheckoutDocuments())) {\r\n hideField('def_checkout_open');\r\n }\r\n if (Util.Device.bIsOfficeAddin && !Util.RestAPI.hasPFTA()) {\r\n hideField('def_open');\r\n }\r\n if (!hasOneDrive && !Util.RestAPI.hasPFTA()) {\r\n hideField('saving');\r\n } else {\r\n if (!hasOneDrive) {\r\n hideField('delete_original');\r\n }\r\n if (!Util.RestAPI.hasPFTA()) {\r\n hideField('instant_save');\r\n }\r\n }\r\n const initData: any = {};\r\n Util.FieldMappings.forEachTemplateField(formTemplate.defs, false, ((field: any): boolean => {\r\n if (!!field && !!field.name) {\r\n initData[field.name] = field.value;\r\n }\r\n return true;\r\n }));\r\n formWrapper.scriptData['PREF_GENERAL'] = initData;\r\n },\r\n getFormData(dynamicForm: DynamicFormComponent, formTemplate: any) {\r\n return this.formData;\r\n },\r\n destroy(formWrapper: FormWrapperComponent, confirmed: boolean, allData: any, dirtyData: any, localizer: LocalizeService) {\r\n this.formData = {};\r\n if (confirmed) {\r\n const formDataStr = localStorage.getItem('$edx_preferences');\r\n if (!!formDataStr) {\r\n try {\r\n this.formData = JSON.parse(formDataStr);\r\n } catch (e) {\r\n this.formData = {};\r\n }\r\n }\r\n Util.FieldMappings.forEachTemplateField(formWrapper.formTemplate.defs, false, ((field: any): boolean => {\r\n if (field && field.name) {\r\n this.formData[field.name] = allData[field.name];\r\n }\r\n return true;\r\n }));\r\n localStorage.setItem('$edx_preferences', JSON.stringify(this.formData));\r\n this.formData = {};\r\n Util.RestAPI.prefsChanged();\r\n }\r\n }\r\n },\r\n preferences_tiles: {\r\n formData: null,\r\n curTiles: null,\r\n allTiles: null,\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n formWrapper.setLoading(true);\r\n\r\n let curTile: Tile;\r\n const home_defaultBox: any = Util.FieldMappings.templateField(formTemplate.defs, 'home_default');\r\n const home_additionalBox: any = Util.FieldMappings.templateField(formTemplate.defs, 'home_additional');\r\n const home_customBox: any = Util.FieldMappings.templateField(formTemplate.defs, 'home_custom');\r\n const home_defaultBoxFields: any[] = home_defaultBox ? home_defaultBox.fields : null;\r\n const home_additionalBoxFields: any[] = home_additionalBox ? home_additionalBox.fields : null;\r\n const home_customBoxBoxFields: any[] = home_customBox ? home_customBox.fields : null;\r\n const defaultTiles = Util.RestAPI.getDefaultTiles();\r\n this.curTiles = Util.RestAPI.getTiles();\r\n this.allTiles = [].concat(this.curTiles);\r\n if (!!defaultTiles && defaultTiles.length) {\r\n defaultTiles.forEach(t1 => {\r\n if (this.allTiles.findIndex(t2 => t1.type===t2.type && t1.id===t2.id && (t1.lib===t2.lib || !t2.lib)) === -1) {\r\n this.allTiles.push(t1);\r\n }\r\n });\r\n }\r\n this.changeToLib = null;\r\n this.resetTiles = false;\r\n this.formData = {};\r\n const downloadsTile = this.curTiles.find(t => t.id==='downloads');\r\n const importsTile = this.curTiles.find(t => t.id==='imports');\r\n if (!!home_defaultBoxFields && !!home_additionalBoxFields && !!home_customBoxBoxFields && !!this.curTiles && !!defaultTiles) {\r\n const addTile = (tile: Tile, fields: any[]): void => {\r\n if (!(Util.Device.isPhoneLook() && ((!Util.Device.bIsOfficeAddin && tile.id==='checkedout') || tile.name==='hero'))) {\r\n const name: string = 'tile__' + tile.id + '__' + tile.type + '__' + tile.lib;\r\n const tileName: string = tile.name !== 'hero' ? localizer.getTranslation(tile.name) : localizer.getTranslation('TILE_NAMES.HERO_WELCOME');\r\n fields.push( {\r\n fldtype: 'checkbox',\r\n prompt: ' ',\r\n label: tileName,\r\n datatype: '4',\r\n name,\r\n flags: 0x00000000,\r\n uncheckedtrigger: '0',\r\n checkedtrigger: '1',\r\n value: '1'\r\n });\r\n this.formData[name] = tile.index===-1 ? '0' : '1';\r\n }\r\n };\r\n for (curTile of defaultTiles) {\r\n if (curTile.index >= 0) {\r\n addTile(this.curTiles.find(t => t.id===curTile.id && t.type===curTile.type && t.lib===curTile.lib) || curTile, home_defaultBoxFields);\r\n } else {\r\n addTile(this.curTiles.find(t => t.id===curTile.id && t.type===curTile.type && t.lib===curTile.lib) || curTile, home_additionalBoxFields);\r\n }\r\n }\r\n for (curTile of this.curTiles) {\r\n if (!defaultTiles.find(t => t.id===curTile.id && t.type===curTile.type && t.lib===curTile.lib)) {\r\n if (!!downloadsTile && curTile.id==='downloads') {\r\n addTile(curTile, home_defaultBoxFields);\r\n } else if (!!importsTile && curTile.id==='imports') {\r\n addTile(curTile, home_defaultBoxFields);\r\n } else {\r\n addTile(curTile, home_customBoxBoxFields);\r\n }\r\n }\r\n }\r\n }\r\n setTimeout(() => {\r\n formWrapper.setLoading(false);\r\n }, 1);\r\n },\r\n getFormData(dynamicForm: DynamicFormComponent, formTemplate: any) {\r\n return this.formData;\r\n },\r\n destroy(formWrapper: FormWrapperComponent, confirmed: boolean, allData: any, dirtyData: any, localizer: LocalizeService) {\r\n if (confirmed) {\r\n let nTilesChanged = 0;\r\n const keys: string[] = Object.keys(dirtyData);\r\n for (const key of keys) {\r\n //\"tile__\" + tile.id\r\n if (key.startsWith('tile__')) {\r\n const value: string = dirtyData[key];\r\n const parts: string[] = key.split('__');\r\n const tile: Tile = this.allTiles.find(t => t.id===parts[1] && t.type===parts[2] && t.lib===parts[3]);\r\n if (value==='1') {\r\n if (tile.index===-1) {\r\n if (tile.name==='hero') {\r\n tile.index = 0;\r\n } else {\r\n tile.index = this.curTiles.length + nTilesChanged;\r\n tile.name = localizer.getTranslation(tile.name);\r\n }\r\n ++nTilesChanged;\r\n const curTile = this.curTiles.find(t => t.id===parts[1] && t.type===parts[2] && t.lib===parts[3]);\r\n if (!!curTile) {\r\n curTile.index = tile.index;\r\n } else {\r\n this.curTiles.push(tile);\r\n }\r\n }\r\n } else if (value==='0') {\r\n if (tile.index!==-1) {\r\n tile.index = -1;\r\n if (!Util.RestAPI.isPermaTile(tile)) {\r\n const indx = this.curTiles.indexOf(tile);\r\n if (indx !== -1) {\r\n this.curTiles.splice(indx, 1);\r\n }\r\n }\r\n ++nTilesChanged;\r\n }\r\n }\r\n }\r\n }\r\n if (nTilesChanged) {\r\n Util.RestAPI.setTiles(this.curTiles);\r\n }\r\n }\r\n this.formData = null;\r\n this.curTiles = null;\r\n this.allTiles = null;\r\n this.defaultTiles = null;\r\n }\r\n },\r\n savesearch: {\r\n parent: null,\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n formData = formData || {};\r\n formWrapper.layout = 'column';\r\n if (formData.isSavedSearch) {\r\n formTemplate.defs[1].selections[0]['display'] = formData.savedSearchName;\r\n formTemplate.defs[3].flags = 0x01000000;\r\n } else {\r\n formTemplate.defs.splice(1, 2);\r\n }\r\n FormScripts.savesearch.isSavedSearch = formData.isSavedSearch;\r\n },\r\n search_change(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl) {\r\n if (FormScripts.savesearch.isSavedSearch) {\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const newSearch: any = dynamicForm.getField('name') || {};\r\n const updateText: any = dynamicForm.getField('update_saved_search') || {};\r\n\r\n newSearch.isVisible = control.value !== '0';\r\n updateText.isVisible = control.value === '0';\r\n }\r\n },\r\n },\r\n advancedsearch: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n if (formWrapper) {\r\n formWrapper.layout = 'column';\r\n }\r\n }\r\n },\r\n locations_chooser: {\r\n click(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl) {\r\n Util.RestAPI.clickPickFiles();\r\n }\r\n },\r\n oai_addmsg: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const nDefs: number = formTemplate.defs.length;\r\n const attachments: any[] = formData['$edx_attachments'];\r\n const nAttachments: number = attachments ? attachments.length : 0;\r\n for (let i=0; i1) {\r\n buttons += '|-1;'+localizer.getTranslation('FORMS.LOCAL.OAI_ADD.ALL');\r\n }\r\n for (let j=0; j 0 ? list[0] : null;\r\n const isCheckedOutByMe: boolean = !!item && item['STATUS'] === '3' && !!item['checkout'] && item['checkout']['TYPIST_ID'].toUpperCase() === Util.RestAPI.getUserID();\r\n const saveAsRadio: any = Util.FieldMappings.templateField(formTemplate.defs, '$edx_save_as_radio');\r\n let buttons: string[] = saveAsRadio.buttons.split('|');\r\n const updateRadioOptions = (): void => {\r\n const radioField = formWrapper.dynamicForm.getField('$edx_save_as_radio');\r\n if (!!radioField) {\r\n radioField.buttonMap = buttons.map(button => {\r\n const parts = button.split(';');\r\n return { value: parts[0], display: parts[1] };\r\n });\r\n }\r\n formWrapper.dynamicForm.updateControlValue('$edx_save_as_radio', buttons[0].split(';')[0], true);\r\n formWrapper.dynamicForm.updateControlValue('COMMENT', '', true);\r\n };\r\n const rights: SecurityControl = Util.RestAPI.getRightsForItem(item);\r\n if (Util.Device.bIsOfficeAddin && (item['STATUS'] === '18' || (item['STATUS'] === '3' && !isCheckedOutByMe) || item['READONLY'] === 'Y' || !rights.canEditContent)) {\r\n const ndIndex = buttons.findIndex(b => b.split(';')[0] === 'ND');\r\n if (ndIndex !== -1) {\r\n buttons = buttons.slice(ndIndex, ndIndex + 1);\r\n }\r\n setTimeout(() => updateRadioOptions(), 1);\r\n } else {\r\n FormScripts._shared.get_versions(formWrapper, { desc: item }).then((versions: any[]) => {\r\n let versionIndex: number;\r\n if (versions && versions.length) {\r\n if (!Util.RestAPI.canAddNewVersion(versions)) {\r\n versionIndex = buttons.findIndex(b => b.split(';')[0] === 'NV');\r\n if (versionIndex !== -1) {\r\n buttons.splice(versionIndex, 1);\r\n }\r\n }\r\n if (!Util.RestAPI.canAddNewSubversion(versions)) {\r\n versionIndex = buttons.findIndex(b => b.split(';')[0] === 'NSV');\r\n if (versionIndex !== -1) {\r\n buttons.splice(versionIndex, 1);\r\n }\r\n }\r\n // Per DM Extensions, remove replace version radio from save-as menu, when the highest version is read-only\r\n const highestVersion = versions.reduce((max, current) => parseInt(current.VERSION) > parseInt(max.VERSION) || current.VERSION_LABEL > max.VERSION_LABEL ? current : max, versions[0]);\r\n let curDocVersion: any;\r\n if (!!formData['versionLabel']) {\r\n curDocVersion = versions.find((version) => version.VERSION_LABEL === formData['versionLabel']);\r\n }\r\n if ((!!highestVersion && highestVersion['STATUS'] === '19') || (!!curDocVersion && curDocVersion['STATUS'] === '20') || !Util.RestAPI.canUserEditPreviousVersions()) {\r\n versionIndex = buttons.findIndex(b => b.split(';')[0] === 'RV');\r\n if (versionIndex !== -1) {\r\n buttons.splice(versionIndex, 1);\r\n }\r\n }\r\n }\r\n updateRadioOptions();\r\n }, err => {\r\n updateRadioOptions();\r\n });\r\n if (Util.Device.bIsOfficeAddinOutlook || (!!item && (item['STATUS'] === '18' || (item['STATUS'] === '3' && !isCheckedOutByMe) || item['READONLY'] === 'Y')) || !Util.RestAPI.canUserEditPreviousVersions()) {\r\n const rvIndex = buttons.findIndex(b => b.split(';')[0] === 'RV');\r\n if (rvIndex !== -1) {\r\n buttons.splice(rvIndex, 1);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n activitysearch: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n setTimeout(() => {\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const activityField: FormField = dynamicForm.getField('ACTIVITY');\r\n if (activityField) {\r\n const selectionMap: SelectItem[] = [];\r\n let i = 0;\r\n let foundAction = true;\r\n activityField.selectionMap = [];\r\n formWrapper.setLoading(false);\r\n setTimeout(() => {\r\n while (foundAction) {\r\n const display: string = localizer.getTranslation('HISTORY_ACTIONS.' + i);\r\n if (!!display && !display.startsWith('HISTORY_ACTIONS.')) {\r\n selectionMap.push({value:i.toString(),display});\r\n ++i;\r\n } else {\r\n foundAction = false;\r\n }\r\n }\r\n activityField.selectionMap = selectionMap;\r\n }, 300);\r\n }\r\n }, 1);\r\n }\r\n },\r\n date_range: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n setTimeout(() => {\r\n const date = new Date();\r\n const monthNum: number = date.getMonth()+1;\r\n const dayNum: number = date.getDate();\r\n const month: string = monthNum < 10 ? ('0' + monthNum) : monthNum.toString();\r\n const day: string = dayNum < 10 ? ('0' + dayNum) : dayNum.toString();\r\n const dateStr = date.getFullYear()+'-'+month+'-'+day;\r\n formWrapper.dynamicForm.getField('$edx_start_date').maxDate = dateStr;\r\n }, 1);\r\n },\r\n date_change(formWrapper: FormWrapperComponent, formTemplate: any, field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const value = control.value;\r\n let otherField: AbstractControl;\r\n if (field.name==='$edx_start_date') {\r\n otherField = dynamicForm.getControl('$edx_end_date');\r\n dynamicForm.getField('$edx_end_date').minDate = value;\r\n } else if (field.name==='$edx_end_date') {\r\n otherField = dynamicForm.getControl('$edx_start_date');\r\n dynamicForm.getField('$edx_start_date').maxDate = value;\r\n }\r\n if (!!otherField && !!dynamicForm.inlineParent) {\r\n const otherFieldValue = otherField.value;\r\n let dateRange = '';\r\n if (!!otherFieldValue && !!value) {\r\n if (field.name==='$edx_start_date') {\r\n dateRange = value + ' TO ' + otherFieldValue;\r\n } else {\r\n dateRange = otherFieldValue + ' TO ' + value;\r\n }\r\n }\r\n dynamicForm.markForCheck();\r\n setTimeout(() => {\r\n dynamicForm.inlineParent.inlineDateRangeChanged(dateRange, !!dateRange);\r\n }, 1);\r\n }\r\n }\r\n },\r\n rm_request: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n setTimeout(() => {\r\n const date = new Date();\r\n const monthNum: number = date.getMonth()+1;\r\n const dayNum: number = date.getDate();\r\n const month: string = monthNum < 10 ? ('0' + monthNum) : monthNum.toString();\r\n const day: string = dayNum < 10 ? ('0' + dayNum) : dayNum.toString();\r\n const dateStr = date.getFullYear()+'-'+month+'-'+day;\r\n formWrapper.dynamicForm.getField('%REQUEST_NOTREQUIREDAFTER_DATE').minDate = dateStr;\r\n formWrapper.dynamicForm.getField('%REQUEST_REQUIRED_DATE').minDate = dateStr;\r\n }, 1);\r\n },\r\n set_not_required_after(formWrapper: FormWrapperComponent, formTemplate: any, field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const dateStr: string = formWrapper.dynamicForm.getFieldValue('%REQUEST_REQUIRED_DATE');\r\n formWrapper.dynamicForm.getField('%REQUEST_NOTREQUIREDAFTER_DATE').minDate = dateStr;\r\n formWrapper.dynamicForm.updateControlValue('%REQUEST_NOTREQUIREDAFTER_DATE',dateStr,true);\r\n }\r\n },\r\n teams_appid: {\r\n click(formWrapper: FormWrapperComponent, formTemplate: any, field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n microsoftTeams.shareDeepLink({ subEntityId: '_', subEntityLabel: '_', subEntityWebUrl: null });\r\n },\r\n got_link(formWrapper: FormWrapperComponent, formTemplate: any, field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n if (!!control.value) {\r\n Util.Notify.confirmOK();\r\n }\r\n }\r\n },\r\n shareonedrive: {\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const fromAddress: string = Util.RestAPI.getEmail();\r\n //Focus on first editable empty field\r\n formWrapper.disableFirstFocus = false;\r\n const nDefs: number = formTemplate.defs.length;\r\n for (let i=nDefs-1; i>=0; i--) {\r\n if (formTemplate.defs[i].name==='$edx_email_from') {\r\n formTemplate.defs[i].value = fromAddress;\r\n }\r\n if (formTemplate.defs[i].name==='$edx_version' || formTemplate.defs[i].name==='$edx_attachment' || formTemplate.defs[i].name==='$edx_share_type') {\r\n formTemplate.defs[i].flags = 0x01080000;\r\n }\r\n }\r\n FormScripts._shared.check_remove_email_pickers(formWrapper, formTemplate);\r\n setTimeout(() => {\r\n const singleDocName: string = (!!formData && !!formData['DOCUMENTS'] && formData['DOCUMENTS'].length===1) ? formData['DOCUMENTS'][0]['DOCNAME'] : null;\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n let setCC = false;\r\n let setBCC = false;\r\n let subject: string;\r\n\r\n if (!!singleDocName) {\r\n subject = localizer.getTranslation('FORMS.LOCAL.SHARE.SHARE_ONEDRIVE_SINGLE', [Util.RestAPI.getUserFullName(), singleDocName]);\r\n } else {\r\n subject = localizer.getTranslation('FORMS.LOCAL.SHARE.SHARE_ONEDRIVE_MANY', [Util.RestAPI.getUserFullName()]);\r\n }\r\n dynamicForm.updateControlValue('$edx_share_type', 'simplemail', true);\r\n dynamicForm.updateControlValue('$edx_email_from', fromAddress, true);\r\n dynamicForm.updateControlValue('$edx_link_scope', '', true);\r\n dynamicForm.updateControlValue('$edx_share_subject', subject, true);\r\n dynamicForm.updateControlValue('$edx_share_message', '', true);\r\n if (!!formWrapper.selections && formWrapper.selections.length) {\r\n const item = formWrapper.selections[0];\r\n dynamicForm.updateControlValue('$edx_link_scope', 'type=view&scope=organization', true);\r\n this.get_link_type(formWrapper,item,'type=view&scope=organization',localizer);\r\n }\r\n FormScripts.email.populate_address('$edx_email_to', dynamicForm, localizer);\r\n setCC = FormScripts.email.populate_address('$edx_email_cc', dynamicForm, localizer);\r\n setBCC = FormScripts.email.populate_address('$edx_email_bcc', dynamicForm, localizer);\r\n if (setCC || setBCC) {\r\n setTimeout(() => {\r\n formWrapper.showExtras(true);\r\n }, 300);\r\n }\r\n }, 1);\r\n },\r\n get_link_type(formWrapper: FormWrapperComponent, item: any, link_type: any, localizer: LocalizeService) {\r\n const handleError = (error) => {\r\n dynamicForm.updateControlValue('$edx_link_scope', '', true);\r\n formWrapper.setLoading(false);\r\n Util.Notify.error(localizer.getTranslation('FORMS.LOCAL.SHARE.LINK_ERROR'), error);\r\n };\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const desc: BaseDesc = {id:item.id,lib:item.lib,type:item.type};\r\n Util.RestAPI.get(desc,'weblink',link_type).subscribe((data: any) => {\r\n try {\r\n if (!!data) {\r\n const link = data['webLink'];\r\n dynamicForm.updateControlValue('$edx_share_html_link', `${item.DOCNAME}`);\r\n }\r\n formWrapper.setLoading(false);\r\n } catch (e) {\r\n handleError(e);\r\n }\r\n }, handleError);\r\n },\r\n choice_link_type(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const dynamicForm: DynamicFormComponent = formWrapper.dynamicForm;\r\n const selections: any[] = formWrapper.selections;\r\n const scope: string = control.value.split('&')[1].split('=')[1];\r\n if (scope === 'invite') {\r\n dynamicForm.updateControlValue('$edx_share_type', 'invite', true);\r\n return;\r\n } else {\r\n dynamicForm.updateControlValue('$edx_share_type', 'simplemail', true);\r\n }\r\n if (!!selections && selections.length) {\r\n const item = selections[0];\r\n this.get_link_type(formWrapper,item,control.value,localizer);\r\n }\r\n },\r\n save_address(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n FormScripts.email.save_address(formWrapper, formFields, field, control, localizer);\r\n }\r\n },\r\n footer_options: {\r\n options: ['DOCNUMBER','DOCVERSION','DOCNAME','DOCAUTHOR','DOCTYPE','DOCAPPLICATION','DOCABSTRACT','DATE','DOCLIB','PAGENUMBERS','FONT','TEXTAREA','DOCCLIENTID','DOCCLIENTNAME','DOCMATTERID','DOCMATTERNAME'],\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const optionsBox = Util.FieldMappings.templateField(formTemplate.defs, 'options');\r\n const autoCB = Util.FieldMappings.templateField(formTemplate.defs, 'auto');\r\n const dontShowCB = Util.FieldMappings.templateField(formTemplate.defs, 'dont_show');\r\n const xmlText = Util.FieldMappings.templateField(formTemplate.defs, 'xml');\r\n const optionsBoxFields: any[] = optionsBox.fields;\r\n const footerOptionsStr = Util.RestAPI.getPreference('edx_footer_options');\r\n const footerOptions = !!footerOptionsStr ? JSON.parse(footerOptionsStr) : {};\r\n for (const id of this.options) {\r\n optionsBoxFields.push({\r\n fldtype: 'checkbox',\r\n label: localizer.getTranslation('FORMS.LOCAL.FOOTER_OPTIONS.' + id),\r\n datatype: '4',\r\n name: id,\r\n flags: 0x00000000,\r\n uncheckedtrigger: '0',\r\n checkedtrigger: '1',\r\n value: !!footerOptions[id] ? footerOptions[id] : '0',\r\n scripttrigger: { script: 'check_click' }\r\n });\r\n }\r\n optionsBoxFields.push({\r\n fldtype: 'checkbox',\r\n label: localizer.getTranslation('FORMS.LOCAL.FOOTER_OPTIONS.SELALL'),\r\n datatype: '4',\r\n name: 'edx_select_all',\r\n flags: 0x00000000,\r\n uncheckedtrigger: '0',\r\n checkedtrigger: '1',\r\n value: footerOptions['edx_select_all'] || '0',\r\n scripttrigger: { script: 'check_click' }\r\n });\r\n autoCB.value = !!footerOptions['auto'] ? footerOptions['auto'] : '0';\r\n dontShowCB.value = !!footerOptions['dont_show'] ? footerOptions['dont_show'] : '0';\r\n if (!!footerOptions['xml']) {\r\n xmlText.value = footerOptions['xml'];\r\n }\r\n },\r\n check_click(formWrapper: FormWrapperComponent, formFields: FormField[], field: FormField, control: AbstractControl, localizer: LocalizeService) {\r\n const selectAllField = 'edx_select_all';\r\n const selectAllChecked = formWrapper.dynamicForm.getFieldValue(selectAllField) === '1';\r\n const formValues = this.getFormValues(formWrapper);\r\n const allItemsChecked = Object.values(formValues).filter(i => i === '0').length === 0 ? true : false;\r\n formWrapper.setLoading(true);\r\n if (field.name === selectAllField) {\r\n for (const id of this.options) {\r\n formWrapper.dynamicForm.updateControlValue(id, control.value, true);\r\n }\r\n }\r\n if (field.name !== selectAllField) {\r\n if (selectAllChecked) {\r\n formWrapper.dynamicForm.updateControlValue(selectAllField, '0', true);\r\n } else if (allItemsChecked) {\r\n formWrapper.dynamicForm.updateControlValue(selectAllField, '1', true);\r\n }\r\n }\r\n let xmlStr = '';\r\n for (const id of this.options) {\r\n const cntrlVal = formWrapper.dynamicForm.getFieldValue(id);\r\n if (cntrlVal === '1') {\r\n if (id === 'FONT') {\r\n xmlStr += '';\r\n } else if (id === 'PAGENUMBERS') {\r\n xmlStr += '';\r\n } else if (id === 'DOCVERSION') {\r\n xmlStr += '' + localizer.getTranslation('FORMS.LOCAL.FOOTER_OPTIONS.' + id) + ': ';\r\n } else if (id === 'TEXTAREA') {\r\n xmlStr += '';\r\n } else {\r\n xmlStr += '<' + id + ' ALIGN=\\'NewLine\\'>' +localizer.getTranslation('FORMS.LOCAL.FOOTER_OPTIONS.' + id) + ': ';\r\n }\r\n }\r\n }\r\n formWrapper.dynamicForm.updateControlValue('xml', xmlStr, true);\r\n setTimeout(() => {\r\n formWrapper.setLoading(false);\r\n }, 300);\r\n },\r\n getFormValues(formWrapper: FormWrapperComponent) {\r\n const values = formWrapper.dynamicForm.form.value;\r\n Object.keys(values).forEach(value => {\r\n if (!this.options.includes(value)) {\r\n delete(values[value]);\r\n }\r\n });\r\n return values;\r\n },\r\n destroy(formWrapper: FormWrapperComponent, confirmed: boolean, allData: any, dirtyData: any) {\r\n if (confirmed) {\r\n const footerOptionsStr = Util.RestAPI.getPreference('edx_footer_options');\r\n const footerOptions = !!footerOptionsStr ? JSON.parse(footerOptionsStr) : {};\r\n const keys = Object.keys(allData);\r\n for (const key of keys) {\r\n footerOptions[key] = allData[key];\r\n }\r\n dirtyData['xml'] = allData['xml'];\r\n Util.RestAPI.setPreference('edx_footer_options', JSON.stringify(footerOptions));\r\n }\r\n }\r\n },\r\n massprofile_results: {\r\n formData: null,\r\n init(formWrapper: FormWrapperComponent, formTemplate: any, formData: any, localizer: LocalizeService) {\r\n const nProfiles = formData.length;\r\n let nUpdated = 0;\r\n let nErorrs = 0;\r\n formData.forEach((i: any) => {\r\n if (!!i.error && i.error.code === 0) {\r\n ++nUpdated;\r\n } else {\r\n ++nErorrs;\r\n }\r\n if (!!i.error && i.error.message === '') {\r\n i.error.message = localizer.getTranslation('FORMS.BUTTONS.OK');\r\n }\r\n });\r\n this.formData = { nProfiles, nUpdated, nErorrs, DOCUMENTS: formData };\r\n },\r\n getFormData(dynamicForm: DynamicFormComponent, formTemplate: any) {\r\n return this.formData;\r\n },\r\n destroy(formWrapper: FormWrapperComponent, confirmed: boolean, allData: any, dirtyData: any) {\r\n this.formData = null;\r\n }\r\n }\r\n};\r\n","import { Component, Input, OnChanges, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, SimpleChange, Output, EventEmitter, NgZone } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\nimport { DynamicFormComponent, FormController } from './dynamic-form.component';\r\nimport { FormService } from '../services/form.service';\r\nimport { ProfileService } from '../services/profile.service';\r\nimport { FormField, Visibility, FieldScript, SelectItem } from '../models/form-field';\r\nimport { Util, UserInterface } from '../utils/utils.module';\r\nimport { BaseDesc } from '../models/base';\r\nimport { FileFormInfo, AppIDInfo, DataFile } from '../models/file-form-info';\r\nimport { ListItem } from '../models/list-item';\r\nimport { AccessLevel } from '../models/security-control';\r\nimport { LocalizeService } from '../services/localize.service';\r\nimport { PopupCallback } from '../widgets/popup.component';\r\nimport { SelectComponent } from '../widgets/select.component';\r\nimport { CommandHandler } from '../models/command-handler';\r\nimport { FormScripts } from './form-scripts';\r\nimport { WindowModalComponent } from '../windows/window-modal.component';\r\nimport { ListService } from '../services/list.service';\r\nimport { FileDropTargetDirective } from '../directives/drag-target.directive';\r\n\r\nclass CustomForm {\r\n constructor(private _fw: FormWrapperComponent) {}\r\n public setFieldValue(field: string, value: any, makeDirty: boolean): void {\r\n this._fw.updateControlValue(field, value, makeDirty);\r\n }\r\n public getFieldValue(field: string): any {\r\n return this._fw.dynamicForm.getControlValue(field);\r\n }\r\n public setHidden(field: string, hidden: boolean): void {\r\n this._fw.dynamicForm.setFieldVisibility(field, !hidden);\r\n }\r\n public setReadOnly(field: string, readOnly: boolean): void {\r\n this._fw.dynamicForm.setFieldEditable(field, !readOnly);\r\n }\r\n}\r\n\r\ndeclare const Office;\r\ndeclare const Word;\r\ndeclare const ICC;\r\nconst kExtrasShownKey = 'edx_extras_shown';\r\nconst noAddFolderIDs: string[] = ['recentedits', 'checkedout', 'downloads', 'imports', 'all', 'deleted', 'templates', ''];\r\n\r\n@Component({\r\n selector: 'edx-form-wrapper',\r\n styleUrls: ['form-wrapper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n \r\n
=2,phone:ui===2||ui===4, columnview:pickersAreColumnview()}\">\r\n \r\n \r\n
\r\n
=2,phone:ui===2||ui===4, columnview:pickersAreColumnview(),copy:kind==='profile_copy'}\">\r\n \r\n \r\n
\r\n
=2,phone:ui===2||ui===4, columnview:pickersAreColumnview()}\">\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{applyAllStr}}\r\n
\r\n
\r\n \r\n {{relateToStr}}\r\n
\r\n `\r\n})\r\nexport class FormWrapperComponent implements OnChanges, PopupCallback, FormController {\r\n @ViewChild(DynamicFormComponent) dynamicForm: DynamicFormComponent;\r\n @Output() notifyPermissionChanged: EventEmitter = new EventEmitter();\r\n @Output() notifyNameChanged: EventEmitter = new EventEmitter();\r\n @Output() applyAllChanged: EventEmitter = new EventEmitter();\r\n @Output() extrasShownByChild: EventEmitter = new EventEmitter();\r\n @Output() pccExtrasShownByChild: EventEmitter = new EventEmitter();\r\n @Output() formDataChanged: EventEmitter = new EventEmitter();\r\n @Output() okEnabled: EventEmitter = new EventEmitter();\r\n @Output() notifySecurityDirty: EventEmitter = new EventEmitter();\r\n @Output() notifyShareChanged: EventEmitter = new EventEmitter();\r\n @Output() notifyFormChanged: EventEmitter = new EventEmitter();\r\n @Input() kind = '';\r\n @Input() desc: BaseDesc;\r\n @Input() selections?: any[] = [];\r\n @Input() disableFirstFocus?: boolean = true;\r\n @Input() readOnly?: boolean = false;\r\n @Input() inDialog?: boolean = false;\r\n @Input() inNotify?: boolean = false;\r\n @Input() refresh?: boolean = false;\r\n @Input() hideChoosers?: boolean = false;\r\n @Input() createType?: string = null;\r\n @Input() formData?: any = {};\r\n @Input() trustees?: any[] = [];\r\n @Input() fileFormInfo?: FileFormInfo = null;\r\n @Input() layout?: string = null;\r\n @Input() rightWrapper?: FormWrapperComponent = null;\r\n @Input() mainWrapper?: FormWrapperComponent = null;\r\n @Input() headerWrapper?: FormWrapperComponent = null;\r\n @Input() fileList?: File[] = null;\r\n @Input() filePaths: string[] = null; // like fileList but Electron or Cordova paths\r\n @Input() dataFiles?: DataFile[] = null;\r\n @Input() changeListener?: FieldChangeListener = null;\r\n @Input() applyAllChecked?: boolean = true;\r\n @Input() formDialog?: CommandHandler = null;\r\n @Input() inlineParent?: DynamicFormComponent = null;\r\n @Input() fileDropTarget?: FileDropTargetDirective = null;\r\n @Input() tabIndex = 0;\r\n @Input('filesChanging') set setter(value: boolean) {\r\n if (value) {\r\n const saveData = () => {\r\n if (!!this.dynamicForm) {\r\n this.dynamicForm.userChangingProfileForm(false, false);\r\n this.formChanged = true;\r\n } else {\r\n setTimeout(saveData, 100);\r\n }\r\n };\r\n saveData();\r\n }\r\n }\r\n public scriptData: any = {};\r\n public okDisabled = false;\r\n public copyFileName: string = null;\r\n public copyAppID: string = null;\r\n public disableInherited = false;\r\n public securityIsReadOnly = false;\r\n public formTemplate: any = null;\r\n public relateToStr: string;\r\n public showRelateTo = true;\r\n public bMassProfileUpdate = false;\r\n private extrasShown = false;\r\n private profileFormList: any[] = [];\r\n private profileStr = '';\r\n private saveToStr: string = this.localizer.getTranslation('FORMS.BUTTONS.SAVE_TO');\r\n private defForm: string = null;\r\n private defFormNumber: number = null;\r\n private defFormTitle: string = null;\r\n private defaultProfileForm: string = null;\r\n private allowProfFormPicker = true;\r\n private ui: UserInterface;\r\n private officeAddin: boolean;\r\n private accessInfo: ListItem[];\r\n private formChanged = false;\r\n private relateToChecked = false;\r\n private relateToDesc: BaseDesc = null;\r\n private applyAllStr: string = this.localizer.getTranslation('FORMS.BUTTONS.APPLY_TO_ALL');\r\n private originalFormData: any = null;\r\n private formLayout: string;\r\n private effectiveRights: any;\r\n private originalDesc: any = null;\r\n private bSecurityWasEdited = false;\r\n private bApplyAllOriginalState: boolean;\r\n private thirdButtonIsAutoProfile: boolean;\r\n private customForm: CustomForm = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef, private zone: NgZone, private formService: FormService, private localizer: LocalizeService, private profileService: ProfileService, public listService: ListService) {\r\n this.ui = Util.Device.ui;\r\n this.thirdButtonIsAutoProfile = (Util.Device.bIsOfficeAddinWord || Util.Device.bIsOfficeAddinOutlook);\r\n this.officeAddin = Util.Device.bIsOfficeAddin;\r\n this.formLayout = (this.ui<2 || this.readOnly) ? 'page' : 'column';\r\n this.showRelateTo = Util.RestAPI.canUserCreateRelations();\r\n }\r\n\r\n ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {\r\n setTimeout(() => {\r\n if (!!changes['trustees'] && (!!this.createType || this.kind === 'profile_copy')) {\r\n const myUserID = Util.RestAPI.getUserID().toUpperCase();\r\n const myUserIDUC = myUserID.toUpperCase();\r\n let me = null;\r\n if (!!this.trustees) {\r\n me = this.trustees.find(t => !!t['USER_ID'] && t['USER_ID'].toUpperCase() === myUserIDUC);\r\n } else {\r\n this.trustees = [];\r\n }\r\n if (!me) {\r\n this.trustees.push({ flag: 2, USER_ID: myUserID, rights: AccessLevel.ACCESS_LEVEL_CREATOR });\r\n }\r\n }\r\n if (changes['desc'] || changes['kind'] || changes['formData'] || changes['refresh']) {\r\n if (changes['kind'] && changes['kind'].currentValue === 'profile_query_edit' && changes['formData']) {\r\n Util.RestAPI.conformFulltextCriteria(this.formData);\r\n }\r\n if (!this.formData) {\r\n this.formData = {};\r\n }\r\n this.defForm = null;\r\n if (!this.customForm && this.kind.startsWith(Util.kCustomFormPrefix)) {\r\n this.customForm = new CustomForm(this);\r\n }\r\n if ((this.kind.startsWith(Util.kLocalFormPrefix) || this.kind.startsWith(Util.kCustomFormPrefix)) && !this.createType) {\r\n let desc: any = null;\r\n if (this.selections && this.selections.length) {\r\n this.formData = Object.assign(this.formData, this.formService.makeFormData(this.kind,this.selections));\r\n desc = this.selections[0];\r\n } else if (!changes['desc'] && this.formData && Object.keys(this.formData).length && this.desc && this.kind === '__local_permissions_selector') {\r\n // send profile_defaults as formdata when defaults are set. as long as the desc has not changed.\r\n } else if (!!this.desc) {\r\n if (!this.mainWrapper || this.kind !== '__local_permissions_selector') {\r\n this.formData = Object.assign(this.formData, this.formService.makeFormData(this.kind,[this.desc]));\r\n }\r\n desc = this.desc;\r\n }\r\n if (!!desc && (!!desc['checkout'] || !!desc['LOCATION'] || Util.Device.bIsCordova) && this.kind==='__local_checkin') {\r\n this.formData['STATUS'] = desc['checkout'] ? desc['checkout']['STATUS'] : desc['STATUS'];\r\n this.formData['%CHECKIN_LOCATION'] = desc['checkout'] ? desc['checkout']['LOCATION'] : desc['LOCATION'];\r\n if (!this.formData['%CHECKIN_LOCATION']) {\r\n this.formData['%CHECKIN_LOCATION'] = Util.RestAPI.getTempPath();\r\n }\r\n if (!!desc['checkout']) {\r\n const docs: any[] = this.formData['DOCUMENTS'];\r\n const nDocs: number = docs ? docs.length : 0;\r\n let nDocsWithVersionLabels = 0;\r\n const setVersLabel = (doc: any, versLabel: string) => {\r\n if (doc['VERSION_LABEL'] === undefined) {\r\n doc['VERSION_LABEL'] = versLabel;\r\n }\r\n if (++nDocsWithVersionLabels === nDocs) {\r\n this.loadFormTemplate();\r\n }\r\n };\r\n for (let i=0; i {\r\n if (!!this.mainWrapper.dynamicForm.form) {\r\n if (this.mainWrapper.bMassProfileUpdate) {\r\n this.formData = Util.deepCopy(this.mainWrapper.formData);\r\n this.bMassProfileUpdate = true;\r\n } else {\r\n if (this.mainWrapper.desc.lib !== this.desc.lib) {\r\n this.desc = this.mainWrapper.desc;\r\n this.formData = {};\r\n } else {\r\n this.formData = Object.assign(this.mainWrapper.formData, this.formService.makeFormData(this.kind,[this.desc]));\r\n }\r\n this.bMassProfileUpdate = false;\r\n }\r\n } else {\r\n setTimeout(waitFormMainWrapperForm, 100);\r\n }\r\n };\r\n waitFormMainWrapperForm();\r\n }\r\n this.loadFormTemplate();\r\n } else {\r\n this.loadFormTemplate();\r\n }\r\n } else {\r\n const isProfileForm: boolean = this.kind.startsWith('profile');\r\n const isSearchForm: boolean = this.kind.startsWith('profile_query');\r\n if (isProfileForm && !(this.profileFormList && this.profileFormList.length)) {\r\n this.profileStr = this.localizer.getTranslation('METADATA.TABS.PROFILE');\r\n if (isSearchForm) {\r\n this.profileFormList = Util.RestAPI.getSearchForms();\r\n } else {\r\n this.profileFormList = [];\r\n }\r\n }\r\n this.okDisabled = isProfileForm && !isSearchForm;\r\n this.effectiveRights = Util.RestAPI.getLibraryEffectiveRights(!!this.desc ? this.desc.lib : null) || {};\r\n if (this.createType && isProfileForm) {\r\n if (this.dataFiles && this.dataFiles.length && !!this.dataFiles[0].fromSaveAsDesc && this.dataFiles[0].fromSaveAsDesc.lib.toUpperCase() !== this.desc.lib.toUpperCase()) {\r\n const descCpy = Util.deepCopy(this.desc);\r\n descCpy.lib = this.dataFiles[0].fromSaveAsDesc.lib;\r\n descCpy.DOCNAME = descCpy.lib;\r\n this.desc = null;\r\n setTimeout(() => {\r\n this.desc = descCpy;\r\n this.setFormListLoadTemplate();\r\n }, 100);\r\n } else {\r\n this.setFormListLoadTemplate();\r\n }\r\n } else if (isProfileForm && !!this.desc && (!this.selections || this.selections.length <= 1)) {\r\n if (this.desc.type==='folders') {\r\n this.applyAllStr = this.localizer.getTranslation('FORMS.BUTTONS.PUBLIC_FOLDER');\r\n this.applyAllChecked = false;\r\n }\r\n this.getFormDataAndFormTemplate();\r\n } else {\r\n this.setFormListLoadTemplate();\r\n }\r\n }\r\n }\r\n }, 1);\r\n }\r\n\r\n private setFormListLoadTemplate(defForm?: string): void {\r\n let appProfileForms: any[] = null;\r\n let appType: string = null;\r\n this.setLoading(true);\r\n const getProfileForms = (anAppType: string): void => {\r\n let allProfileForms = [...Util.RestAPI.getProfileForms(this.desc.lib)];\r\n this.profileFormList = [];\r\n if (!!anAppType) {\r\n allProfileForms = allProfileForms.sort((f1, f2) => f1['%FORM_APPLICATION'] === anAppType ? -1 : f2['%FORM_APPLICATION'] === anAppType ? 1 : 0);\r\n }\r\n allProfileForms.forEach(f1 => {\r\n if (this.profileFormList.findIndex(f2 => f2.DOCNUM === f1.DOCNUM) === -1) {\r\n this.profileFormList.push(f1);\r\n }\r\n });\r\n };\r\n const afterGetDefaults = () => {\r\n if (appProfileForms && appProfileForms.length) {\r\n getProfileForms(appType); // prefer an app type so the duplicates remove the other types if the doc number matches\r\n this.fillProfileFormList(appProfileForms, defForm);\r\n if (!this.defForm && !!this.fileFormInfo && !!this.fileFormInfo.defForm) {\r\n this.defForm = this.fileFormInfo.defForm;\r\n }\r\n } else if (!this.readOnly && !this.createType && !!this.selections && this.selections.length > 1) {\r\n getProfileForms(null); // Mass Profile Update\r\n }\r\n this.loadFormTemplate();\r\n this.setLoading(false);\r\n };\r\n if (this.createType==='folders' && !Util.isExternalLib(this.desc.lib)) {\r\n appType = 'FOLDER';\r\n this.applyAllStr = this.localizer.getTranslation('FORMS.BUTTONS.PUBLIC_FOLDER');\r\n this.applyAllChecked = this.desc.id === 'public';\r\n } else if (this.createType==='documents') {\r\n if (!!this.formData && this.formData['STORAGE'] !== 'P') {\r\n appType = this.appIDForUpload();\r\n if (!!appType) {\r\n appType = appType.split(Util.RestAPI.kMultiFileSeparator)[0];\r\n }\r\n }\r\n } else if (this.kind === 'profile_copy' && !!this.desc['APP_ID']) {\r\n appType = this.desc['APP_ID'];\r\n }\r\n if (!!appType) {\r\n if (!!this.formData && this.formData['APP_ID']) {\r\n const descMap: string[] = Util.FieldMappings.descMapForField('APP_ID');\r\n if (descMap && descMap.length) {\r\n for (const desc of descMap) {\r\n delete this.formData[desc];\r\n }\r\n }\r\n }\r\n this.formData['APP_ID'] = appType;\r\n }\r\n if (!appType && !this.fileList && !!this.formData && this.formData['STORAGE']==='P') {\r\n appType = 'Paper';\r\n appProfileForms = Util.RestAPI.getProfileFormsForApp(appType, this.desc.lib);\r\n if (appProfileForms && appProfileForms.length) {\r\n this.formData['FORM'] = appProfileForms[0]['%FORM_NAME'];\r\n }\r\n afterGetDefaults();\r\n } else {\r\n if (!appType && !!this.formData && !!this.formData['APP_ID']) {\r\n appType = this.formData['APP_ID'];\r\n }\r\n if (!!appType && appType.indexOf(Util.RestAPI.kMultiAppIdSeparator) === -1) {\r\n appProfileForms = Util.RestAPI.getProfileFormsForApp(appType, !!this.desc ? this.desc.lib : Util.RestAPI.getPrimaryLibrary());\r\n }\r\n afterGetDefaults();\r\n }\r\n }\r\n\r\n private pickersAreColumnview(): boolean {\r\n if (!!this.kind && this.kind === 'profile_office_home') {\r\n return true;\r\n }\r\n return this.formLayout==='column';\r\n }\r\n\r\n private checkFileNameExistsInDM(): void {\r\n const fromSaveAsDesc = !!this.dataFiles && this.dataFiles.length ? this.dataFiles[0].fromSaveAsDesc : null;\r\n const docObj: any = this.applyAllChecked ? null : Util.decodeFileName(this.fileNameForUpload(false));\r\n if (!!fromSaveAsDesc) {\r\n this.relateToStr = this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.RELATE_TO', ['#'+fromSaveAsDesc.id]);\r\n } else if (!!docObj && docObj.libExists) {\r\n this.relateToStr = this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.RELATE_TO', ['#'+docObj.docNum]);\r\n } else {\r\n this.relateToStr = null;\r\n }\r\n }\r\n\r\n public setRelateToDesc(relateToDesc: BaseDesc): void {\r\n this.relateToDesc = relateToDesc;\r\n this.relateToStr = this.localizer.getTranslation('FORMS.LOCAL.RELATIONS.RELATE_TO', ['#'+this.relateToDesc.id]);\r\n }\r\n\r\n private relateToClicked(event: Event): void {\r\n this.relateToChecked = !this.relateToChecked;\r\n }\r\n\r\n public applyAllShown(): boolean {\r\n if (!this.mainWrapper && !this.readOnly && !this.bMassProfileUpdate) {\r\n if (this.createType === 'documents') {\r\n const nFiles: number = this.fileList ? this.fileList.length : this.filePaths ? this.filePaths.length : this.dataFiles ? this.dataFiles.length : 0;\r\n return nFiles > 1;\r\n } else if (this.createType === 'folders' || (!!this.desc && !!this.desc.id && this.desc.type==='folders' && !!this.formData && !!this.formData['public_system_id'])) {\r\n return !!this.effectiveRights && this.effectiveRights.ROOT_FOLDER === 'Y';\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private applyAllClicked(event: Event): void {\r\n if (this.bApplyAllOriginalState === undefined) {\r\n this.bApplyAllOriginalState = this.applyAllChecked;\r\n }\r\n this.applyAllChecked = !this.applyAllChecked;\r\n if (this.createType === 'documents') {\r\n this.checkFileNameExistsInDM();\r\n this.dynamicForm.fillNameAndAppID();\r\n this.applyAllChanged.emit(this.applyAllChecked);\r\n }\r\n }\r\n\r\n private getTextForLogging(text: string): string {\r\n const trimSize = 500;\r\n if (!!text && text.length > trimSize) {\r\n return text.substr(0, trimSize) + '....[' + (text.length - trimSize) + ' more characters truncated]';\r\n }\r\n return text;\r\n }\r\n\r\n private getTextLength(text: string): number {\r\n return !!text ? text.length: 0;\r\n }\r\n\r\n private autoProfileClicked(): void {\r\n Util.Notify.info(this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.HEADING'), this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.STARTED'));\r\n this.setLoading(true);\r\n\r\n const errHandler = (err: any): void => {\r\n console.log(err);\r\n Util.Notify.error('Auto profile', err);\r\n this.setLoading(false);\r\n };\r\n\r\n const doneHandler = (data: any): void => {\r\n Util.Notify.success(this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.HEADING'), this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.COMPLETED'));\r\n const result: any = data;\r\n const keys: string[] = Object.keys(result);\r\n this.dynamicForm.validationBlocking(true);\r\n const formValues: any = this.dynamicForm.getValue();\r\n\r\n const outputMessages = [];\r\n\r\n for (const key of keys) {\r\n const field: FormField = this.dynamicForm.getField(key);\r\n\r\n if (!!field) {\r\n // console.log('autoProfileClicked(): Processing field with key: ' + key + '\\t\\tField details: ' + JSON.stringify(field, null, '\\t'));\r\n const hits: any[] = result[key];\r\n const firstHit: any = hits[0];\r\n const firstValue: any = firstHit.value;\r\n\r\n if (!field.parentField) {\r\n this.dynamicForm.updateControlValue(key, firstValue, true);\r\n this.dynamicForm.setFieldDesc(key, firstHit.desc);\r\n outputMessages.push({field: key, oldValue: formValues[key], newValue: firstValue});\r\n field.hits = hits;\r\n field.autoValidated = true;\r\n field.lastLookupValue = firstValue;\r\n\r\n const childHits: any[] = result[field.childField];\r\n\r\n if (field.childField) {\r\n this.dynamicForm.updateControlValue(field.childField, '', true);\r\n this.dynamicForm.setFieldDesc(field.childField, '');\r\n const childField: FormField = this.dynamicForm.getField(field.childField);\r\n\r\n childField.hits = [];\r\n childField.autoValidated = true;\r\n childField.lastLookupValue = '';\r\n\r\n if (childHits) {\r\n for (const childHit of childHits) {\r\n if (childHit.parent === firstValue) {\r\n const firstChildHit: any = childHit.value[0];\r\n this.dynamicForm.updateControlValue(field.childField, firstChildHit.value, true);\r\n this.dynamicForm.setFieldDesc(field.childField, firstChildHit.desc);\r\n\r\n outputMessages.push({field: field.childField, oldValue: formValues[field.childField], newValue: firstChildHit.value});\r\n childField.hits = childHits;\r\n childField.autoValidated = true;\r\n childField.lastLookupValue = firstChildHit.value;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n console.log('autoProfileClicked(): Could not find field with key: ' + key);\r\n }\r\n }\r\n\r\n ['CLIENT_ID', 'MATTER_ID', 'TYPE_ID'].forEach(key => {\r\n const formField = this.dynamicForm.getField(key);\r\n const message = outputMessages.filter(outputMessage => outputMessage.field === key);\r\n\r\n if (message.length > 0) {\r\n if (message[0].oldValue && message[0].oldValue !== message[0].newValue) {\r\n formField.statusMessage = this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.FIELD.CHANGE', [message[0].oldValue]);\r\n return;\r\n }\r\n formField.statusMessage = this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.FIELD.MATCH', [message[0].newValue]);\r\n return;\r\n }\r\n\r\n // If the results returned all the fields it was checking on or this case was not required, we wouldn't need the hardcoded array.\r\n formField.statusMessage = this.localizer.getTranslation('FORMS.LOCAL.AUTO_PROFILING.FIELD.NO_MATCH', [formField.label]);\r\n });\r\n\r\n setTimeout(() => {\r\n this.dynamicForm.validationBlocking(false);\r\n this.setLoading(false);\r\n }, 300);\r\n };\r\n const doAutoProfile = (input: any): void => {\r\n this.profileService.getSuggestions(input).then(data => {\r\n doneHandler(data);\r\n }, err => {\r\n errHandler(err);\r\n });\r\n };\r\n const sendToAutoProfile = (addinType: string, lib: string, formName: string, textStr: string): void => {\r\n Util.RestAPI.getSmartProfilingData(lib, formName).toPromise().then((smartProfilingData: any) => {\r\n //console.log('autoProfileClicked(): [' + addinType + '] Sending ' + this.getTextLength(textStr) + ' characters of text to smart profiling: \"' + this.getTextForLogging(textStr) + '\"');\r\n const profilingObj = new Object({text: textStr, smartProfilingData});\r\n doAutoProfile(profilingObj);\r\n }, error => {\r\n errHandler(error);\r\n });\r\n };\r\n if (Util.Device.bIsOfficeAddinWord) {\r\n const addinType = 'MS WORD';\r\n //console.log('autoProfileClicked(): This is a [' + addinType + '] add-in.');\r\n Word.run(context => {\r\n const body = context.document.body;\r\n context.load(body, 'text');\r\n return context.sync().then(() => {\r\n sendToAutoProfile(addinType, this.desc.lib, this.getFormName(), body.text);\r\n });\r\n }).catch(error => {\r\n errHandler(error);\r\n });\r\n } else if (Util.Device.bIsOfficeAddinOutlook) {\r\n const addinType = 'OUTLOOK';\r\n const NEWLINE = '\\r\\n';\r\n //console.log('autoProfileClicked(): This is an [' + addinType + '] add-in.');\r\n const addMailAddress = (label: string, addrs: any[]): string => {\r\n let addrsStr = '';\r\n if (addrs && addrs.length) {\r\n for (const addr of addrs) {\r\n addrsStr += label + ': ' + addr.displayName + ' <' + addr.emailAddress + '>' + NEWLINE;\r\n }\r\n }\r\n return addrsStr;\r\n };\r\n const addAttachments = (attachments: any[]): string => {\r\n let attachmentsStr = '';\r\n if (attachments && attachments.length) {\r\n attachmentsStr += 'ATTACHMENT_COUNT: ' + attachments.length + NEWLINE;\r\n for (const attachment of attachments) {\r\n //TODO for attachment.id / attachment.contentType / attachment.size / attachment.attachmentType / attachment.isInline\r\n attachmentsStr += 'ATTACHMENT_NAME: ' + attachment.name + NEWLINE;\r\n }\r\n }\r\n return attachmentsStr;\r\n };\r\n const outlookItem = Office.context.mailbox.item;\r\n outlookItem.body.getAsync('text', asyncResult => {\r\n if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {\r\n //TODO for emails APP_ID / PARENTMAIL_ID / EMAIL_RECEIVED ? / MSG_ITEM: '1' / ATTACH_NUM\r\n const internetMessageId: string = outlookItem.internetMessageId.startsWith('<') ? outlookItem.internetMessageId : ('<' + outlookItem.internetMessageId + '>');\r\n sendToAutoProfile(addinType, this.desc.lib, this.getFormName(), 'OUTLOOK_ITEM_CLASS: ' + outlookItem.itemClass + NEWLINE + 'EMAIL_ID: ' + internetMessageId + NEWLINE + addMailAddress('EMAIL_FROM', outlookItem.from) + 'EMAIL_DATE_TIME_CREATED: ' + outlookItem.dateTimeCreated + NEWLINE + 'EMAIL_DATE_TIME_MODIFIED: ' + outlookItem.dateTimeModified + NEWLINE + addMailAddress('EMAIL_TO', outlookItem.to) + addMailAddress('EMAIL_CC', outlookItem.cc) + addMailAddress('EMAIL_BCC', outlookItem.bcc) + 'EMAIL_NORMALIZED_SUBJECT: ' + outlookItem.normalizedSubject + NEWLINE + addAttachments(outlookItem.attachments) + asyncResult.value);\r\n } else {\r\n if (asyncResult.status === Office.AsyncResultStatus.Failed) {\r\n console.log('autoProfileClicked(): [' + addinType + '] Failed to retrieve email body text content. ERROR: ' + asyncResult.error.message);\r\n }\r\n }\r\n });\r\n } else {\r\n //Log this in case we need to know why the smart profiling is not getting the actual text we expect\r\n console.log('autoProfileClicked(): Error: Could not retrieve document text for smart profiling. This is not a MS WORD or OUTLOOK Office add-in.');\r\n doAutoProfile('');\r\n }\r\n }\r\n\r\n private toggleExtras(): void {\r\n this.extrasToggled(!this.extrasShown);\r\n }\r\n\r\n private formSelectList(): SelectItem[] {\r\n const selItems: SelectItem[] = [];\r\n for (const profForm of this.profileFormList) {\r\n selItems.push({ value: profForm.id, display: profForm.id + ' | ' + profForm.FORM_TITLE });\r\n }\r\n if (this.defFormNumber > 0 && !selItems.some(p => p.value === this.defaultProfileForm)) {\r\n selItems.splice(0, selItems.length);\r\n selItems.push({ value: this.defaultProfileForm, display: this.defaultProfileForm + ' | ' + this.defFormTitle });\r\n }\r\n return selItems;\r\n }\r\n\r\n private saveAsSelectList(): SelectItem[] {\r\n const items: SelectItem[] = [\r\n { value: 'D', display: this.localizer.getTranslation('FORMS.LOCAL.OAI_ADD.DEFAULT') },\r\n { value: 'P', display: this.localizer.getTranslation('FORMS.LOCAL.OAI_ADD.PDF') }\r\n ];\r\n if (Util.Device.bIsOfficeAddinWord) {\r\n items.push({ value: 'T', display: this.localizer.getTranslation('FORMS.LOCAL.OAI_ADD.TEXT') });\r\n }\r\n return items;\r\n }\r\n\r\n private isProfilePickerDisabled(): boolean {\r\n return this.readOnly || this.kind.startsWith('profile_editdefs_') || ((this.createType || this.kind === 'profile_query') && !Util.RestAPI.canUserChangeProfileFormOnSave()) || ((!this.createType && this.kind !== 'profile_query') && !Util.RestAPI.canUserChangeProfileFormOnEdit());\r\n }\r\n\r\n private fillProfileFormList(forms: any[], defForm?: string): void {\r\n const newList: any[] = [];\r\n if (!!forms && !!this.profileFormList) {\r\n for (const form of forms) {\r\n for (const aForm of this.profileFormList) {\r\n //Look for %FORM_APPLICATION and compare it, if it is available\r\n const formApp: any = form['%FORM_APPLICATION'];\r\n if (newList.findIndex(nForm => nForm.id === aForm.id) === -1 && (!formApp || (formApp && (formApp === aForm['%FORM_APPLICATION']))) && (aForm.id === form.FORM || aForm.id === form.id)) {\r\n newList.push(aForm);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (newList.length) {\r\n let formName: string = null;\r\n if (!defForm && !!this.formData) {\r\n if (!this.createType && !!this.formData['FORM'] && !isNaN(parseInt(this.formData['FORM']))) {\r\n const form: any = newList.find(f => f['DOCNUM'] === this.formData['FORM']);\r\n formName = form ? form.id : Util.RestAPI.getProfileFormName(this.formData['FORM'], this.desc.lib);\r\n } else if (!!this.formData['FORMNAME']) {\r\n if (this.kind === 'profile_savetoedocs') {\r\n const appType: string = this.formData['APP_ID'] ? this.formData['APP_ID'] : 'DEFAULT';\r\n const appProfileForms: any[] = Util.RestAPI.getProfileFormsForApp(appType);\r\n if (appProfileForms.length > 0) {\r\n formName = appProfileForms[0]['%FORM_NAME'];\r\n this.defForm = formName;\r\n }\r\n } else {\r\n formName = this.formData['FORMNAME'];\r\n }\r\n }\r\n }\r\n this.defForm = defForm || formName || newList[0].id;\r\n this.profileFormList = newList;\r\n }\r\n }\r\n\r\n private getFormDataAndFormTemplate(defForm?: string): void {\r\n const isProfileForm: boolean = this.kind.startsWith('profile');\r\n const isSearchForm: boolean = this.kind.startsWith('profile_query');\r\n const kind: string = isProfileForm ? 'profile' : this.kind;\r\n if (!!defForm) {\r\n this.defForm = defForm;\r\n } else if ((isProfileForm || isSearchForm) && !this.defForm && this.desc && this.desc['FORM_NAME']) {\r\n this.defForm = this.desc['FORM_NAME'];\r\n }\r\n this.setLoading(true);\r\n if (this.kind.startsWith('profile_editdefs_')) {\r\n let parts = this.kind.split('profile_editdefs_');\r\n parts = parts[1].split('___');\r\n const appIDInfo: AppIDInfo = Util.RestAPI.getDefsForAppID(parts[0], parts[1], parts[2]);\r\n this.formData = appIDInfo.profile_defaults;\r\n this.trustees = appIDInfo.trustees;\r\n this.formData['FORMNAME'] = parts[0];\r\n this.formData['APP_ID'] = parts[1];\r\n this.setLoading(false);\r\n this.setFormListLoadTemplate();\r\n } else {\r\n this.formService.getFormData(this.desc, kind, this.defForm).then((formData: any): void => {\r\n if (this.kind !== 'profile_query_edit') {\r\n this.formData = formData;\r\n }\r\n if (!isSearchForm && isProfileForm) {\r\n if (!!formData && formData.forms && formData.forms.length) {\r\n this.fillProfileFormList(formData.forms, this.defForm);\r\n } else {\r\n if (!!formData && !!formData.FORMNAME && !this.defaultProfileForm) {\r\n this.defaultProfileForm = formData.FORMNAME;\r\n this.defFormTitle = formData.FORM_TITLE;\r\n this.defFormNumber = parseInt(formData.FORM);\r\n } else {\r\n const defProfileForm: any = Util.RestAPI.getDefaultProfileForm(this.desc.lib);\r\n if (!!defProfileForm) {\r\n this.fillProfileFormList([defProfileForm], this.defForm === this.defaultProfileForm ? this.defForm : null);\r\n }\r\n }\r\n }\r\n if (this.desc.type==='folders') {\r\n this.applyAllChecked = !!this.formData['public_system_id'] && this.formData['public_system_id'] !=='0';\r\n }\r\n }\r\n this.setLoading(false);\r\n if (!this.profileFormList || this.profileFormList.length === 0) {\r\n this.setFormListLoadTemplate(!!formData && !!formData.FORMNAME ? formData.FORMNAME : undefined);\r\n } else {\r\n this.loadFormTemplate();\r\n }\r\n if (!isSearchForm && isProfileForm && formData && formData.DOCNAME) {\r\n this.notifyNameChanged.emit(formData.DOCNAME);\r\n }\r\n if (!isSearchForm && isProfileForm && formData && formData.IS_SHARED) {\r\n this.notifyShareChanged.emit(formData);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public showProfilePicker(): boolean {\r\n return this.kind.startsWith('profile') && (!this.desc || ((this.desc.lib || this.desc.id === 'recentedits') && !Util.isExternalLib(this.desc.lib))) && this.profileFormList && this.profileFormList.length>0 && this.allowProfFormPicker && (!this.readOnly || this.kind === 'profile_readonly');\r\n }\r\n\r\n public showSaveAsPicker(): boolean {\r\n return this.kind.startsWith('profile') && !this.readOnly && this.dataFiles && this.dataFiles.length && !!this.dataFiles[0].fromSaveAsDesc;\r\n }\r\n\r\n public showLocationChooser(): boolean {\r\n return this.kind.startsWith('profile') && this.kind!=='profile_copy' && !!this.createType && this.createType !== 'workspaces' && !!this.desc && !Util.isExternalLib(this.desc.lib);\r\n }\r\n\r\n public locationChanged(desc: BaseDesc): void {\r\n const appID = this.appIDForUpload().split(Util.RestAPI.kMultiFileSeparator)[0];\r\n const libChanged = this.desc.lib !== desc.lib;\r\n const oldDefForm = this.defForm;\r\n this.setLoading(true);\r\n Util.RestAPI.getFormInfoForAppID(appID, desc).then((ffi: FileFormInfo) => {\r\n this.fileFormInfo = ffi;\r\n this.desc = desc;\r\n this.formChanging(libChanged, libChanged ? ffi.defForm : oldDefForm);\r\n this.setLoading(false);\r\n });\r\n }\r\n\r\n private patchGuideText(): void {\r\n const formData: any = this.formData;\r\n const replaceGuide = (defs: any[]) => {\r\n for (const obj of defs) {\r\n if (Array.isArray(obj)) {\r\n replaceGuide(obj);\r\n } else if (obj.fldtype==='text' || obj.fldtype==='guidetext') {\r\n if (!obj.value || !obj.value.length) {\r\n const value: string = formData[obj.name];\r\n if (value && value.length) {\r\n obj.value = value;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n replaceGuide(this.formTemplate.defs);\r\n }\r\n\r\n private getScriptGroup(name?: string): any {\r\n let scriptGroup: any;\r\n if (!!this.formTemplate && !!this.kind) {\r\n name = name || this.formTemplate.name;\r\n if (this.kind.startsWith(Util.kCustomFormPrefix)) {\r\n let formName = Util.removeCustomFormPrefix(this.kind);\r\n const firstUS: number = formName.indexOf('_');\r\n const vendor: string = formName.substring(0, firstUS);\r\n formName = formName.substr(firstUS+1);\r\n if (!!ICC && !!ICC[vendor] && !!ICC[vendor][formName]) {\r\n scriptGroup = ICC[vendor][formName];\r\n }\r\n } else {\r\n scriptGroup = FormScripts[name];\r\n }\r\n }\r\n return scriptGroup;\r\n }\r\n\r\n private formChanging(libChanged: boolean, formChangedName: string): void {\r\n this.formChanged = true;\r\n if (this.bMassProfileUpdate || this.desc.id === '0') {\r\n this.loadFormTemplate();\r\n } else {\r\n this.dynamicForm.userChangingProfileForm(libChanged, !!formChangedName);\r\n if (this.createType || (this.kind==='profile_copy' && libChanged)) {\r\n this.getNewFormTemplateDefaultsAndTemplate(formChangedName);\r\n } else {\r\n this.getFormDataAndFormTemplate(formChangedName);\r\n }\r\n }\r\n this.notifyFormChanged.emit(formChangedName);\r\n }\r\n\r\n private changeFormTemplate(selectComponent: SelectComponent): void {\r\n const newForm: string = selectComponent.value;\r\n if (this.defForm !== newForm) {\r\n this.defForm = newForm;\r\n this.formChanging(false, newForm);\r\n }\r\n }\r\n\r\n private getNewFormTemplateDefaultsAndTemplate(defForm: string): void {\r\n const loadWithFileFormInfo = (ffi: FileFormInfo) => {\r\n this.fileFormInfo = ffi;\r\n const info: FileFormInfo = this.fileFormInfo;\r\n const defDataKeys = Object.keys(this.formData);\r\n const immutableData = {};\r\n for (const key of defDataKeys) {\r\n if (Util.isEmailField(key) || key === 'STORAGE') {\r\n immutableData[key] = this.formData[key];\r\n }\r\n }\r\n const immutableDataKeys = Object.keys(immutableData);\r\n if (!!info) {\r\n for (let i=0; i {\r\n loadWithFileFormInfo(this.fileFormInfo);\r\n });\r\n } else {\r\n loadWithFileFormInfo(this.fileFormInfo);\r\n }\r\n }\r\n\r\n private changeSaveAs(selectComponent: SelectComponent): void {\r\n let ext: string;\r\n switch (selectComponent.value) {\r\n case 'D':\r\n ext = Util.Device.bIsOfficeAddinWord ? 'docx' : Util.Device.bIsOfficeAddinExcel ? 'xlsx' : Util.Device.bIsOfficeAddinPowerPoint ? 'pptx' : undefined;\r\n break;\r\n case 'T':\r\n ext = Util.Device.bIsOfficeAddinWord ? 'txt' : undefined;\r\n break;\r\n case 'P':\r\n ext = 'pdf';\r\n break;\r\n }\r\n if (!!ext) {\r\n for (const dataFile of this.dataFiles) {\r\n const parts: string[] = dataFile.name.split('.');\r\n if (parts.length > 1) {\r\n parts.splice(parts.length-1,1);\r\n }\r\n parts.push(ext);\r\n dataFile.name = parts.join('.');\r\n }\r\n let appType = this.appIDForUpload();\r\n if (!!appType) {\r\n appType = appType.split(Util.RestAPI.kMultiFileSeparator)[0];\r\n this.dynamicForm.updateControlValue('APP_ID', appType, true);\r\n }\r\n }\r\n }\r\n\r\n private loadFormTemplate(): void {\r\n let lib: string = this.desc && this.desc.lib ? this.desc.lib : Util.RestAPI.getPrimaryLibrary();\r\n let formName: string = this.kind;\r\n const isProfileForm: boolean = this.kind.startsWith('profile');\r\n const isSearchForm: boolean = this.kind.startsWith('profile_query');\r\n if (isProfileForm) {\r\n if (isSearchForm) {\r\n if (!this.defForm) {\r\n const defSearchForm = Util.RestAPI.getDefaultSearchForm() || {};\r\n this.defForm = defSearchForm['%FORM_NAME'];\r\n }\r\n formName = this.defForm;\r\n } else if (this.desc) {\r\n if (this.createType === 'workspaces' || (!this.createType && this.desc.type === 'workspaces')) {\r\n formName = Util.RestAPI.getDefaultWorkspaceForm().id;\r\n this.defForm = formName;\r\n this.allowProfFormPicker = false;\r\n } else if (!this.createType && this.desc.type === 'fileplans') {\r\n formName = Util.RestAPI.getDefaultFilepartForm().id;\r\n this.defForm = formName;\r\n this.allowProfFormPicker = false;\r\n } else if (!this.createType && this.desc.type === 'boxes') {\r\n formName = Util.RestAPI.getDefaultBoxForm().id;\r\n this.defForm = formName;\r\n this.allowProfFormPicker = false;\r\n } else if (this.defForm) {\r\n formName = this.defForm;\r\n } else if (!!this.formData && !!this.formData['FORMNAME']) {\r\n formName = this.formData['FORMNAME'];\r\n this.defForm = formName;\r\n } else if (this.formData && this.formData['FORM'] && Util.RestAPI.getProfileFormName(this.formData['FORM'], lib)) {\r\n formName = Util.RestAPI.getProfileFormName(this.formData['FORM'], lib);\r\n this.defForm = formName;\r\n } else if (Util.RestAPI.getDefaultProfileForm(lib)) {\r\n formName = Util.RestAPI.getDefaultProfileForm(lib).id;\r\n this.defForm = formName;\r\n }\r\n if (Util.isExternalLib(this.desc.lib)) {\r\n if (this.kind === 'profile_savetoedocs') {\r\n // If we are saving to eDOCS all form and library setting from the item selected\r\n // in the external app tile must be overriden by DM server default profile form\r\n // and DM server default library so that the \"rightWrapper\" will obtain the correct\r\n // profile form. Hence, work with a copy leaving the original list item intact.\r\n this.originalDesc = Util.deepCopy(this.desc);\r\n this.desc = this.originalDesc;\r\n const appType: string = this.desc['APP_ID'] ? this.desc['APP_ID'] : 'DEFAULT';\r\n const appProfileForms: any[] = Util.RestAPI.getProfileFormsForApp(appType);\r\n if (appProfileForms.length > 0) {\r\n formName = appProfileForms[0]['%FORM_NAME'];\r\n this.fillProfileFormList(appProfileForms, formName);\r\n lib = appProfileForms[0]['lib'];\r\n this.defForm = formName;\r\n this.desc['lib'] = lib;\r\n this.desc['AUTHOR_ID'] = Util.RestAPI.getUserID();\r\n this.formData['AUTHOR_ID'] = Util.RestAPI.getUserID();\r\n this.createType = 'documents';\r\n this.dataFiles = [];\r\n for (let i=0; i {\r\n this.formTemplate = formTemplate;\r\n const extrasShownStr = localStorage.getItem(kExtrasShownKey);\r\n const extrasShownPref = !!extrasShownStr ? JSON.parse(extrasShownStr) : {};\r\n if (this.formTemplate && this.formTemplate.defs) {\r\n if (isProfileForm && !isSearchForm) {\r\n const storageField: any = Util.FieldMappings.templateField(this.formTemplate.defs, 'STORAGE');\r\n if (storageField) {\r\n storageField.vistriggers = [{\r\n hidden: true,\r\n fields: ['RETENTION'],\r\n values: ['K', 'T']\r\n }];\r\n }\r\n if (extrasShownPref['PROFILE'] !== undefined) {\r\n this.formTemplate['extrasshown'] = extrasShownPref['PROFILE'];\r\n }\r\n if (!!this.formData['PD_VITAL'] && this.formData['PD_VITAL'] === 'N' && !!this.formData['PD_VREVIEW_DATE']) {\r\n delete this.formData['PD_VREVIEW_DATE'];\r\n }\r\n if (!this.readOnly && !this.createType && !!this.selections && this.selections.length > 1) {\r\n const docNameIndex = this.formTemplate.defs.findIndex(f => f.name === 'DOCNAME');\r\n if (docNameIndex >= 0) {\r\n this.formTemplate.defs.splice(docNameIndex, 1);\r\n }\r\n this.formTemplate.defs.splice(0, 0, {fldtype:'list', name:'$edx_form_list', prompt:this.localizer.getTranslation('FORMS.LOCAL.SHARE.DOCUMENTS'), listKind:'DOCUMENTS', schemaID:'FORM_DOCUMENT_LIST', flags:0x00000040});\r\n this.formData['DOCUMENTS'] = this.selections;\r\n this.applyAllChecked = true;\r\n this.bMassProfileUpdate = true;\r\n } else if (!!this.dataFiles && this.dataFiles.length && !!this.dataFiles[0].fromSaveAsDesc) {\r\n this.setRelateToDesc(this.dataFiles[0].fromSaveAsDesc);\r\n }\r\n } else if (isSearchForm) {\r\n if (extrasShownPref['SEARCH_PROFILE'] !== undefined) {\r\n this.formTemplate['extrasshown'] = extrasShownPref['SEARCH_PROFILE'];\r\n } else {\r\n this.formTemplate['extrasshown'] = true;\r\n }\r\n }\r\n if (this.kind.startsWith('profile_editdefs_')) {\r\n this.formTemplate.extrasshown = true;\r\n Util.FieldMappings.forEachTemplateField(this.formTemplate.defs, false, (field): boolean => {\r\n if (field.flags & 0x00000040) {\r\n field.flags ^= 0x00000040;\r\n }\r\n if (field.name==='DOCNAME') {\r\n field.flags = 0x01000000;\r\n }\r\n return true;\r\n });\r\n } else if (this.kind === '__local_checkin') {\r\n if ((!!this.formData['%CHECKIN_LOCATION'] && this.formData['%CHECKIN_LOCATION'].toUpperCase().startsWith('HTTP')) ||\r\n (!!this.formData['DOCUMENTS'][0]['LOCATION'] && this.formData['DOCUMENTS'][0]['LOCATION'].toUpperCase().startsWith('HTTP'))) {\r\n const locationField: any = Util.FieldMappings.templateField(this.formTemplate.defs, '%CHECKIN_LOCATION');\r\n locationField.flags = 0x00080000; // READ-ONLY\r\n if (!this.formData['%CHECKIN_LOCATION'] && this.formData['DOCUMENTS'][0]['LOCATION']) {\r\n this.formData['%CHECKIN_LOCATION'] = this.formData['DOCUMENTS'][0]['LOCATION'];\r\n }\r\n }\r\n } else if (this.kind === 'profile_savetoedocs') {\r\n if (!this.originalDesc) {\r\n // If there is no originalDesc then we are saving individual files to eDOCS and each file pops-up a new form\r\n // at which point the originalDesc from previous save was lost. Restore it here to current desc so that we can\r\n // detect any changes to the save destination as it will change this.desc but not the this.originalDesc\r\n this.originalDesc = Util.deepCopy(this.desc);\r\n this.desc = this.originalDesc;\r\n }\r\n }\r\n if ((this.createType === 'documents' || this.createType === 'folders') && !this.kind.startsWith(Util.kLocalFormPrefix) && !this.kind.startsWith(Util.kCustomFormPrefix)) {\r\n if (this.createType === 'documents') {\r\n if (this.formData['STORAGE'] === 'P') {\r\n const field: any = Util.FieldMappings.templateField(this.formTemplate.defs, 'APP_ID');\r\n if (field) {\r\n field.flags = 0x02000000;\r\n }\r\n } else {\r\n if (!this.fileList && !this.filePaths && !this.dataFiles && !this.copyFileName) {\r\n this.formTemplate.defs.splice(0, 0, {\r\n fldtype: 'edit',\r\n name: '$edx_file_picker',\r\n lookup: '$edx_file_picker',\r\n prompt: this.localizer.getTranslation('FORMS.PLACEHOLDERS.FILE'),\r\n flags: 0x00000042\r\n });\r\n } else {\r\n this.checkFileNameExistsInDM();\r\n }\r\n }\r\n if (this.desc.type === 'fileplans' && this.desc.id.startsWith('FP-FilePart')) {\r\n const filePartNo: string = this.desc.id.split('FP-FilePart-')[1];\r\n this.formData['PD_FILEPT_NO'] = filePartNo;\r\n }\r\n }\r\n if (!this.formData['AUTHOR_ID']) {\r\n this.formData['AUTHOR_ID'] = Util.RestAPI.getUserID();\r\n this.formData['AUTHOR_FULL_NAME'] = Util.RestAPI.getUserFullName();\r\n }\r\n this.formData['FORMNAME'] = formName;\r\n if (!this.originalFormData) {\r\n this.originalFormData = this.formData;\r\n this.formData = Util.RestAPI.fillInProfile(this.formTemplate, this.formData);\r\n } else {\r\n // Add original formdata to formdata.\r\n for (const prop in this.originalFormData) {\r\n this.formData[prop] = this.originalFormData[prop];\r\n }\r\n this.formData = Util.RestAPI.fillInProfile(this.formTemplate, this.formData);\r\n }\r\n this.formData['FORMNAME'] = formName;\r\n }\r\n this.patchGuideText();\r\n if (((isProfileForm && this.readOnly) || this.formTemplate.extrasshown) && !this.extrasShown) {\r\n this.showExtras(true);\r\n }\r\n }\r\n if (this.formChanged && (this.createType === 'documents' || this.createType === 'folders')) {\r\n const headerWrapper: FormWrapperComponent = this.headerWrapper;\r\n if (headerWrapper) {\r\n const scriptGroupHdr: any = this.getScriptGroup(headerWrapper.formTemplate.name);\r\n if (scriptGroupHdr && typeof scriptGroupHdr.init === 'function') {\r\n const headerInitScript = scriptGroupHdr.init.bind(scriptGroupHdr);\r\n headerInitScript(headerWrapper, headerWrapper.formTemplate, this.formData, headerWrapper.localizer);\r\n }\r\n }\r\n }\r\n const scriptGroup: any = this.getScriptGroup();\r\n if (scriptGroup && typeof scriptGroup.init === 'function') {\r\n const initScript = scriptGroup.init.bind(scriptGroup);\r\n initScript(this.customForm || this, this.formTemplate, this.formData, this.localizer);\r\n }\r\n if (scriptGroup && typeof scriptGroup.getFormData === 'function') {\r\n const getFormDataScript = scriptGroup.getFormData.bind(scriptGroup);\r\n this.formData = getFormDataScript(this.customForm || this, this.formTemplate);\r\n }\r\n this.cdr.markForCheck();\r\n const waitForRender = () => {\r\n if (!!this.dynamicForm && !!this.dynamicForm.form && !!this.dynamicForm.form.controls) {\r\n const keys: string[] = Object.keys(this.formData);\r\n for (const key of keys) {\r\n const field = this.dynamicForm.getField(key);\r\n const control: AbstractControl = this.dynamicForm.getControl(key);\r\n if (!!field && field.visibilityTriggers && !!control) {\r\n this.runVisTriggers(field, control);\r\n }\r\n }\r\n // Code for 16.7.1.1 (Hague) to repopulate profile defaults with additional lookup and auxiliary fields\r\n // This should be removed once DM server can return profile defaults with all dependent fields\r\n if (this.dynamicForm.formKind.startsWith('profile') || this.kind === '__local_rm_removefrombox') {\r\n this.dynamicForm.scanFieldsForRevalidatonOrEvaluation(this.formData);\r\n }\r\n this.setLoading(false);\r\n } else {\r\n setTimeout(waitForRender, 10);\r\n }\r\n };\r\n waitForRender();\r\n };\r\n if (this.formData['formTemplate']) {\r\n postLoad(this.formData['formTemplate']);\r\n } else {\r\n this.formService.getFormTemplate(formName, lib, isSearchForm || this.formData['STORAGE'] === 'P').then(postLoad);\r\n }\r\n }\r\n\r\n private destroyScript(confirmed: boolean, allData: any, dirtyData: any): any {\r\n if (this.formTemplate && this.formTemplate.name) {\r\n const scriptGroup: any = this.getScriptGroup();\r\n if (scriptGroup && typeof scriptGroup.destroy === 'function') {\r\n const destroyScript = scriptGroup.destroy.bind(scriptGroup);\r\n destroyScript(this.customForm || this, confirmed, allData, dirtyData, this.localizer);\r\n }\r\n }\r\n }\r\n\r\n public onResize(): void {\r\n setTimeout(() => {\r\n this.cdr.markForCheck();\r\n if (this.dynamicForm) {\r\n this.dynamicForm.onResize();\r\n }\r\n }, 1);\r\n }\r\n\r\n public setLoading(loading: boolean): void {\r\n this.dynamicForm.setLoading(loading);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n public permissionChanged(newVal: string): void {\r\n this.notifyPermissionChanged.emit(newVal);\r\n }\r\n\r\n public inheritSecurity(formWrapper: FormWrapperComponent): void {\r\n this.listService.getListData(formWrapper.desc,'security',true,'LAST_EDIT_DATE',null,0,100).then(data => {\r\n this.dynamicForm.setSecurityList(data.list);\r\n });\r\n }\r\n\r\n public useDefaultTrustees(): void {\r\n if (this.formData) {\r\n const defaultTrustees: any[] = this.listService.addAuthorTypistAsTrustee(this.formData['AUTHOR_ID'], Util.RestAPI.getUserID());\r\n if (!!this.trustees && this.trustees.length) {\r\n if (Array.isArray(this.trustees[0])) {\r\n this.trustees = this.trustees[0];\r\n }\r\n this.trustees.forEach(t => {\r\n if (!defaultTrustees.find(d => d.USER_ID === t.USER_ID)) {\r\n defaultTrustees.push(t);\r\n }\r\n });\r\n }\r\n this.dynamicForm.setSecurityList(defaultTrustees);\r\n }\r\n }\r\n\r\n public editSecurity(): void {\r\n this.dynamicForm.doEditSecurity();\r\n }\r\n\r\n public saveSecurity(): void {\r\n let cmd: string = null;\r\n const curWindow: WindowModalComponent = Util.RestAPI.getCurWindow();\r\n const securityControl: AbstractControl = this.dynamicForm.getControl('SECURITY');\r\n const value: any = securityControl ? securityControl.value : (this.desc.type==='workspaces' || this.desc.type==='searches') ? '1' : '0';\r\n // Restore selected choice if it was cleared due to an error previous save (it is cleared in the error handler to force trystee list reload)\r\n this.desc['edx_selected_security_choice'] = value;\r\n if (!!curWindow) {\r\n if (value === '1') {\r\n cmd = 'security_save';\r\n curWindow.doCommand(cmd);\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_edit', false);\r\n } else if (value === '2') {\r\n const serverData: any = {'%INHERIT_LOOKUP_SECURITY_FROM':'0'};\r\n this.formService.putToServer(this.desc, serverData, 'profile', null, false, null, null);\r\n cmd = 'security_save';\r\n curWindow.doCommand(cmd);\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_edit', false);\r\n } else {\r\n curWindow.settingUnrestrictedSecurity();\r\n const notifyTitle: string = this.localizer.getTranslation('FORMS.LOCAL.PERMISSIONS_SELECTOR.SECURITY_REMOVED');\r\n const notifyErrorTitle: string = this.localizer.getTranslation('FORMS.LOCAL.PERMISSIONS_SELECTOR.SECURITY_NOT_REMOVED');\r\n const serverData: any = {'%INHERIT_LOOKUP_SECURITY_FROM':'-1',SECURITY:'0' ,SEC_REASON_LINK:'0'};\r\n this.formService.putToServer(this.desc, serverData, 'profile', null, false, notifyTitle, null, notifyErrorTitle);\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_edit', false);\r\n this.securityDirty(false);\r\n }\r\n curWindow.refresh(cmd, value);\r\n }\r\n }\r\n\r\n public resetSecurity(): void {\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_edit', false);\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_cancel', false);\r\n Util.RestAPI.refreshCurWindow('security_reset');\r\n }\r\n\r\n public securityDirty(dirty: boolean): void {\r\n const securityControl: AbstractControl = this.dynamicForm.getControl('SECURITY');\r\n const value: any = securityControl ? securityControl.value : (this.desc.type==='workspaces' || this.desc.type==='searches') ? '1' : '0';\r\n if (this.inDialog) {\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_edit', value==='1');\r\n } else {\r\n if (!Util.Device.isPhoneLook()) {\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_edit', dirty);\r\n this.dynamicForm.setFieldLabel('$edx_permissions_edit', 'FORMS.LOCAL.PERMISSIONS_SELECTOR.SAVE', true);\r\n this.dynamicForm.setFieldVisibility('$edx_permissions_cancel', dirty);\r\n }\r\n }\r\n this.bSecurityWasEdited = dirty;\r\n if (!!this.mainWrapper) {\r\n this.mainWrapper.bSecurityWasEdited = dirty;\r\n }\r\n setTimeout(() => {\r\n this.notifySecurityDirty.emit(dirty);\r\n }, dirty ? 1 : 100);\r\n }\r\n\r\n public securityReadOnly(readOnly: boolean): void {\r\n this.securityIsReadOnly = readOnly;\r\n const securityField: FormField = this.dynamicForm.getField('SECURITY');\r\n if (!!securityField) {\r\n let selectionMap: SelectItem[] = securityField.selectionMap;\r\n if (!!selectionMap) {\r\n selectionMap = selectionMap.filter(i => i.value==='1');\r\n securityField.selectionMap = selectionMap;\r\n }\r\n securityField.isEnabled = false;\r\n }\r\n this.permissionChanged('1');\r\n }\r\n\r\n public allowFirstFocus(): boolean {\r\n return !this.disableFirstFocus && !this.readOnly;\r\n }\r\n\r\n public layoutChanged(layout: string): void {\r\n this.formLayout = layout;\r\n }\r\n\r\n private saveProfileDefs(formName: string, appID: string, lib: string, editableData: any, allData: any, masterDynamicForm: DynamicFormComponent): Promise {\r\n return new Promise((resovle, reject) => {\r\n const yesBtn: string = this.localizer.getTranslation('FORMS.BUTTONS.YES');\r\n const notifyTitle: string = this.localizer.getTranslation('PROFILE_DEFAULTS.DEFAULT_SETTINGS');\r\n const description: string = Util.RestAPI.getAppIDDescription(appID);\r\n let notifyBody: string = this.localizer.getTranslation('PROFILE_DEFAULTS.ASK_CHANGE', [description, formName]);\r\n Util.Notify.confirm(notifyTitle, notifyBody, yesBtn, null, true, true, true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n if (this.bSecurityWasEdited) {\r\n if (allData['SECURITY'] === '1') {\r\n editableData['SEC_REASON_LINK'] = '1';\r\n editableData['_restapi'] = {security: masterDynamicForm.getSecurityList()};\r\n } else {\r\n editableData['_restapi'] = {security: []};\r\n }\r\n }\r\n Util.RestAPI.setProfileDefaults(formName, appID, editableData, lib).then(data => {\r\n notifyBody = this.localizer.getTranslation('PROFILE_DEFAULTS.DEFAULT_SAVED');\r\n Util.Notify.success(notifyTitle, notifyBody);\r\n resovle(true);\r\n }, error => {\r\n Util.Notify.warning(notifyTitle, error);\r\n resovle(error);\r\n });\r\n } else {\r\n resovle(false);\r\n }\r\n });\r\n });\r\n }\r\n\r\n // **** PopupCallback implementation\r\n popupThirdBtn(): void {\r\n if (this.thirdButtonIsAutoProfile) {\r\n this.autoProfileClicked();\r\n } else {\r\n let masterDynamicForm: DynamicFormComponent = this.dynamicForm;\r\n if (this.rightWrapper && this.rightWrapper.dynamicForm) {\r\n masterDynamicForm = this.rightWrapper.dynamicForm;\r\n }\r\n const includeDescriptionOfFields = true;\r\n const editableData: any = masterDynamicForm.getEditableValues(includeDescriptionOfFields);\r\n const allData: any = masterDynamicForm.getAllData();\r\n const appID = allData['APP_ID'];\r\n const formName = this.getFormName();\r\n this.saveProfileDefs(formName, appID, this.desc.lib, editableData, allData, masterDynamicForm).then(() => {},err => {});\r\n }\r\n }\r\n\r\n popupOK(): void {\r\n const primaryLibUC: string = Util.RestAPI.getPrimaryLibrary().toUpperCase();\r\n const isPrimaryLib = !!this.desc && (!this.desc.lib || this.desc.lib.toUpperCase() === primaryLibUC);\r\n const isSearchForm: boolean = this.kind.startsWith('profile_query') || this.kind === (Util.kLocalFormPrefix + 'activitysearch');\r\n const bRMEnabled: boolean = !!Util.RestAPI.getLoginReply() && !!Util.RestAPI.getLoginReply().RM_ENABLED;\r\n let notifyTitle: string = null;\r\n let notifyBody: string = null;\r\n let notifyError: string = null;\r\n const checkinData: any = null;\r\n let masterDynamicForm: DynamicFormComponent = this.dynamicForm;\r\n if (this.rightWrapper && this.rightWrapper.dynamicForm) {\r\n masterDynamicForm = this.rightWrapper.dynamicForm;\r\n }\r\n const allData: any = masterDynamicForm.getAllData();\r\n let failedCheckedinCount = 0;\r\n let serverData: any = masterDynamicForm.getDirtyValue();\r\n let crossLibRoot: string = null;\r\n if (!!serverData['ITEM_TYPE'] && serverData['ITEM_TYPE'].indexOf('D') !== -1) {\r\n // When looking for documents include paper type docs also\r\n serverData['ITEM_TYPE'] += ',M';\r\n }\r\n if (serverData['APP_ID'] === 'MS OUTLOOK') {\r\n serverData['ITEM_TYPE'] = 'E';\r\n serverData['MSG_ITEM'] = '1';\r\n }\r\n if (!isSearchForm && bRMEnabled) {\r\n if (!!serverData['PD_VITAL']) {\r\n if (serverData['PD_VITAL'] === 'N') {\r\n serverData['%CHANGE_VITAL_STATUS_NEWSTATUS'] = 2;\r\n if (!!serverData['PD_VREVIEW_DATE']) {\r\n delete serverData['PD_VREVIEW_DATE'];\r\n }\r\n } else {\r\n serverData['%CHANGE_VITAL_STATUS_NEWSTATUS'] = 1;\r\n }\r\n }\r\n if (!!serverData['PD_VREVIEW_DATE']) {\r\n serverData['%CHANGE_VITAL_REVIEW_DATE'] = '1';\r\n }\r\n }\r\n if (this.formTemplate.localonly) {\r\n this.formDataChanged.emit(serverData);\r\n this.destroyScript(true, allData, serverData);\r\n } else if (this.kind.startsWith('profile_editdefs_')) {\r\n const includeDescriptionOfFields = true;\r\n const editableData: any = masterDynamicForm.getEditableValues(includeDescriptionOfFields);\r\n let parts = this.kind.split('profile_editdefs_');\r\n parts = parts[1].split('___');\r\n this.saveProfileDefs(parts[0], parts[1], this.desc.lib, editableData, allData, masterDynamicForm).then(() => {\r\n this.destroyScript(true, allData, serverData);\r\n }, err => {\r\n this.destroyScript(true, allData, serverData);\r\n });\r\n } else {\r\n let localFormName: string = null;\r\n let params: string = null;\r\n let version: string;\r\n let versionIDOverride: string;\r\n let attachVersion: string;\r\n let sendRaw = false;\r\n const downloadList: any[] = [];\r\n let queryargs: string = null;\r\n let formName: string;\r\n\r\n if (!serverData._restapi && !isSearchForm) {\r\n serverData._restapi = {};\r\n }\r\n if (this.kind==='profile_savetoedocs') {\r\n localFormName = 'savetoedocs';\r\n } else if (this.kind.startsWith(Util.kLocalFormPrefix)) {\r\n localFormName = Util.removeLocalFormPrefix(this.kind);\r\n } else if (this.kind.startsWith('profile')) {\r\n if (!isSearchForm) {\r\n formName = allData['form_name'] || this.getFormName();\r\n if (formName) {\r\n const formID: string = Util.RestAPI.getProfileFormID(formName);\r\n serverData._restapi['form_name'] = formName;\r\n if (formID) {\r\n serverData['FORM'] = formID;\r\n }\r\n }\r\n if (allData['SECURITY'] === '1' || (allData['SECURITY'] === '2' && this.bMassProfileUpdate && this.desc.type==='workspaces')) {\r\n let secList: any[] = null;\r\n serverData['SEC_REASON_LINK'] = '1';\r\n secList = masterDynamicForm.getSecurityList();\r\n if (!secList || secList.length===0 || this.bMassProfileUpdate) {\r\n const author = serverData['AUTHOR_ID'];\r\n if (!!author && (this.bMassProfileUpdate || (!!masterDynamicForm.originalAuthor && author !== masterDynamicForm.originalAuthor))) {\r\n secList = [{flag: 2, USER_ID: author, rights: AccessLevel.ACCESS_LEVEL_CREATOR}];\r\n if (this.bMassProfileUpdate) {\r\n masterDynamicForm.trusteesDirective = 'add';\r\n } else {\r\n queryargs = 'add';\r\n }\r\n }\r\n }\r\n if (!!secList && secList.length) {\r\n serverData._restapi['security'] = secList;\r\n }\r\n } else if (allData['SECURITY'] === '2' && !this.bMassProfileUpdate) {\r\n serverData['SEC_REASON_LINK'] = '2';\r\n serverData['%INHERIT_LOOKUP_SECURITY_FROM'] = '0';\r\n }\r\n if (this.desc['edx_selected_security_choice']) {\r\n // Delete this to trigger reload of trustee list if re-editing security wihtout leaving the modal view\r\n delete this.desc['edx_selected_security_choice'];\r\n }\r\n if (serverData.DOCNAME || serverData['X1237']) {\r\n const curWindow = Util.RestAPI.getCurWindow();\r\n if (!!curWindow && Util.isSameDesc(this.desc, curWindow.getDesc())) {\r\n curWindow.changedName(serverData.DOCNAME || serverData['X1237']);\r\n }\r\n }\r\n }\r\n if (this.createType) {\r\n if (this.createType === 'workspaces') {\r\n // do not send the location to create a workspace as they are no where\r\n // We need to find all the casees where refid is not valid\r\n if (!isPrimaryLib) {\r\n queryargs = '?library=' + this.desc.lib;\r\n }\r\n if (!serverData['DOCNAME']) {\r\n serverData['DOCNAME'] = serverData['X1237'];\r\n }\r\n serverData['FILE_EXTENSION'] = 'WORKSPACE';\r\n serverData['APP_ID'] = 'FOLDER';\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.UPLOAD.SUCCESS_CREATION',[serverData['DOCNAME']]);\r\n } else {\r\n if (Util.isFolder(this.desc.type) && noAddFolderIDs.indexOf(this.desc.id)===-1 && (this.createType!=='documents' || this.desc.type!=='flexfolders') && this.desc.type!=='fileplans') {\r\n serverData._restapi['ref'] = this.desc;\r\n if (!isPrimaryLib && this.createType.indexOf('?library=') === -1) {\r\n this.createType += '?library='+this.desc.lib;\r\n }\r\n } else if (!isPrimaryLib) {\r\n if (this.createType.indexOf('?library=') === -1) {\r\n this.createType += '?library='+this.desc.lib;\r\n }\r\n crossLibRoot = this.desc.lib;\r\n }\r\n if (this.createType.startsWith('documents')) {\r\n const keys: string[] = Object.keys(allData);\r\n for (const key of keys) {\r\n if (!!key && Util.isEmailField(key) && !!allData[key] && !serverData[key] && !!Util.FieldMappings.templateField(this.formTemplate.defs, key)) {\r\n // add all mail fields filled in by outlook if the fields exist on the profile form\r\n serverData[key] = allData[key];\r\n }\r\n }\r\n if (allData['STORAGE'] === 'P' || (this.originalFormData && this.originalFormData['STORAGE'] === 'P')) {\r\n serverData['STORAGE'] = 'P';\r\n serverData['FILE_EXTENSION'] = '%FORM_PAPER_APPLICATION';\r\n serverData['APP_ID'] = '';\r\n } else {\r\n const nDataFiles = this.dataFiles ? this.dataFiles.length : 0;\r\n if (this.relateToChecked && !this.applyAllChecked) {\r\n const docObj: any = Util.decodeFileName(this.fileNameForUpload(false));\r\n if (!!docObj) {\r\n serverData._restapi['associate'] = { lib: docObj.lib, id: docObj.docNum };\r\n } else if (!!this.relateToDesc) {\r\n serverData._restapi['associate'] = { lib: this.relateToDesc.lib, id: this.relateToDesc.id };\r\n }\r\n }\r\n let checkinInfo: any = null;\r\n if (this.kind === 'profile_checkin') {\r\n checkinInfo = this.getCheckInInfoFromFileName();\r\n if (!!checkinInfo) {\r\n serverData['DOCNUM'] = checkinInfo['DOCNUMS'];\r\n serverData['LIBS'] = checkinInfo['LIBS'];\r\n serverData._restapi = Object.assign(serverData._restapi, checkinInfo);\r\n }\r\n }\r\n if (nDataFiles) {\r\n if (Util.Device.bIsOfficeAddinOutlook) {\r\n serverData['MSG_ITEM'] = '1';\r\n const firstAttachNum: number = this.dataFiles[0].attachNum;\r\n if (firstAttachNum !== undefined && firstAttachNum !== null) {\r\n if (firstAttachNum===-1) {\r\n serverData['ATTACH_NUM'] = '-1';\r\n } else {\r\n serverData['ATTACH_NUM'] = '';\r\n for (let i=0; i 1 ? nameParts[nameParts.length-1] : null;\r\n if (!!ext) {\r\n const extUpper = ext.toUpperCase();\r\n const docNameUpper = serverData.DOCNAME.toUpperCase();\r\n if (docNameUpper.endsWith('.'+extUpper)) {\r\n ext = null;\r\n } else if (docNameUpper.endsWith('_'+extUpper)) {\r\n serverData.DOCNAME = serverData.DOCNAME.substr(0, serverData.DOCNAME.length - (ext.length + 1));\r\n }\r\n }\r\n this.dataFiles[i].name = serverData.DOCNAME + (!!ext ? ('.' + ext) : '');\r\n }\r\n }\r\n Util.RestAPI.uploadDataFiles(null, serverData, this.dataFiles, false, null, !isPrimaryLib ? ('?library=' + this.desc.lib) : null);\r\n } else if (this.fileList) {\r\n let fileListToUpload: File[];\r\n if (this.applyAllChecked===false) {\r\n fileListToUpload = [];\r\n fileListToUpload.push(this.fileList[0]);\r\n } else {\r\n fileListToUpload = this.fileList;\r\n }\r\n const queryArgs = Util.Device.bIsOfficeAddinOutlook && fileListToUpload.length && (fileListToUpload[0].name.toUpperCase().endsWith('.MSG') || fileListToUpload[0].name.toUpperCase().endsWith('.EML')) ? 'outlook' : null;\r\n Util.RestAPI.uploadFilesWithBrowser(this.createType, serverData, fileListToUpload, null, queryArgs);\r\n } else if (this.filePaths && (Util.Device.bIsElectron || Util.Device.bIsCordova || Util.RestAPI.hasPFTA())) {\r\n let filePathsToUpload: string[] = this.filePaths;\r\n if (this.applyAllChecked===false) {\r\n filePathsToUpload = [];\r\n filePathsToUpload.push(this.filePaths[0]);\r\n } else {\r\n filePathsToUpload = this.filePaths;\r\n }\r\n if (Util.Device.bIsElectron || Util.Device.bIsCordova) {\r\n Util.RestAPI.uploadFilesWithAppWorks(filePathsToUpload, serverData, false, false, undefined, undefined, undefined, undefined, !isPrimaryLib?this.desc.lib:undefined);\r\n } else {\r\n Util.RestAPI.uploadFilesWithPFTA(filePathsToUpload, serverData, !isPrimaryLib?this.desc.lib:undefined);\r\n }\r\n }\r\n if (this.kind === 'profile_checkin' && !!checkinInfo) {\r\n return this.finishPopOKWithRefresh(allData, serverData);\r\n }\r\n // RestAPI takes care of upload and profile data so just get out\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n }\r\n } else {\r\n if (this.createType.startsWith('folders')) {\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.UPLOAD.SUCCESS_CREATION',[serverData['DOCNAME']]);\r\n if (this.applyAllChecked && this.desc.id !== 'public') {\r\n // not in public folders but user wants the folder to be public\r\n if (!!serverData._restapi['ref'] && Util.RestAPI.restAPIVersion()>=0x00200400) {\r\n const curRef = serverData._restapi['ref'];\r\n serverData._restapi['ref'] = [curRef, {type: 'folders', id: 'public', lib: this.desc.lib}];\r\n } else {\r\n serverData._restapi['ref'] = {type: 'folders', id: 'public', lib: this.desc.lib};\r\n }\r\n } else if (!this.applyAllChecked && this.desc.id === 'public') {\r\n // in pubilc folders but user does not want this to be public\r\n delete serverData._restapi.ref;\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n params = 'profile';\r\n if (this.desc.type==='folders' && this.bApplyAllOriginalState !== undefined && this.bApplyAllOriginalState !== this.applyAllChecked) {\r\n setTimeout(() => {\r\n if (this.applyAllChecked) {\r\n // not in public folders but user wants the folder to be public\r\n const data: any = [{id:'public', type:'folders', lib:this.desc.lib}];\r\n Util.RestAPI.post(this.desc, data, 'references').subscribe((response) => {\r\n }, error => {\r\n Util.Notify.error(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), error);\r\n });\r\n } else {\r\n // in pubilc folders but user does not want this to be public\r\n const query: string = 'reftype=folders&refid=public&reflib=' + this.desc.lib + '&refsysid=' + this.formData['public_system_id'];\r\n Util.RestAPI.delete(this.desc, 'references', query).subscribe((response) => {\r\n }, error => {\r\n Util.Notify.error(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), error);\r\n });\r\n }\r\n }, 1);\r\n }\r\n }\r\n }\r\n if (localFormName) {\r\n let searchCriteria: any = localFormName === 'advancedsearch' ? this.createSearchCriteria(serverData) : null;\r\n switch (localFormName) {\r\n case 'url':\r\n this.selections = []; // ignore selections when creating a new url\r\n if (this.desc.type !== 'flexfolders' && this.desc.type !== 'fileplans') {\r\n serverData._restapi['ref'] = this.desc;\r\n }\r\n notifyTitle = this.localizer.getTranslation('FOLDER_ACTIONS.URL_CREATED');\r\n break;\r\n case 'activitysearch':\r\n this.formService.updateSearchCriteria(serverData, this.formTemplate);\r\n searchCriteria = {\r\n DESCRIPTION: this.formService.getSearchDescription(serverData, masterDynamicForm),\r\n criteria: serverData\r\n };\r\n searchCriteria['$edx_extra_query'] = '&search=activity';\r\n // fall thru\r\n case 'advancedsearch':\r\n setTimeout(() => {\r\n Util.RestAPI.navToSearchURL('folders', searchCriteria);\r\n }, Util.kPopupDismissMS);\r\n // we are navigating to not try and post or put any thing to the server that is contents of this form\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n case 'editsecurity':\r\n case 'setsecurity':\r\n this.selections = []; // ignore selections when setting flexfolder security\r\n if (this.desc.type === 'flexfolders') {\r\n serverData._restapi['security'] = {};\r\n if (allData['SECURITY'] !== '0') {\r\n serverData['SEC_REASON_LINK'] = '1';\r\n this.desc['SEC_REASON_LINK'] = '1';\r\n // Delete this to trigger reload of trustee list if re-editing security wihtout leaving the modal view\r\n delete this.desc['edx_selected_security_choice'];\r\n serverData._restapi['security'] = masterDynamicForm.getSecurityList();\r\n } else if (this.desc['SEC_REASON_LINK'] === '1' && this.desc['HAS_SECURITY'] !== '0') {\r\n // Has security but the form never loaded the trustee list (hence SECURITY == '0') yet OK was klicked.\r\n // So, take no action just exit - nothing changed !\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n } else {\r\n serverData['SEC_REASON_LINK'] = '0';\r\n this.desc['SEC_REASON_LINK'] = '0';\r\n }\r\n params = 'security';\r\n notifyTitle = this.localizer.getTranslation('FOLDER_ACTIONS.EDIT_SECURITY');\r\n notifyBody = this.localizer.getTranslation('FOLDER_ACTIONS.SECURITY_EDITED');\r\n }\r\n break;\r\n case 'createobject':\r\n serverData['DESCRIPTION'] = serverData['$edx_obj_desc'];\r\n case 'createfolder':\r\n params = 'folders';\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.UPLOAD.SUCCESS_CREATION',[serverData['DOCNAME']]);\r\n const notifyErrorTitle: string = this.localizer.getTranslation('FORMS.LOCAL.UPLOAD.FAILED_CREATION',[serverData['DOCNAME']]);\r\n this.formService.postToServer(this.desc, serverData, params, queryargs, sendRaw, notifyTitle, null, notifyErrorTitle);\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n case 'savetoedocs':\r\n if (this.dataFiles && this.dataFiles.length >= 1) {\r\n const securityList: ListItem[] = this.dynamicForm.getSecurityList();\r\n const descOrCreateType: any = 'documents';\r\n const isCheckin: any = ((!!this.dataFiles && !!this.dataFiles[0].externalName) && (this.dataFiles[0].name !== this.dataFiles[0].externalName));\r\n serverData['_restapi'] = {items:[]};\r\n if (!!this.applyAllChecked) {\r\n let separator = '';\r\n serverData['DOCNUM'] = '';\r\n for (let i=0; i v.VERSION_ID === version);\r\n allDocs.splice(0,0,...list);\r\n if (!!attachVersion && (attachVersion !== 'all' && attachVersion !== 'all_separate')) {\r\n extraVers = attachVersion;\r\n }\r\n }\r\n if (!!attachVersion) {\r\n list = attachVersion === 'all' || attachVersion === 'all_separate' ? this.scriptData['ATTACHMENTS'] : this.scriptData['ATTACHMENTS'].filter(v => v.VERSION_ID === attachVersion);\r\n allDocs.splice(0,0,...list);\r\n if (!!version && (version !== 'all' && version !== 'all_separate')) {\r\n extraVers = version;\r\n }\r\n }\r\n const exportFormData: any = { DOCUMENTS:allDocs, DOCNAME:firstItem.DOCNAME, desc:firstItem, $edx_download_type:dlType, $edx_download_location:allData['$edx_download_location'], $edx_zip_type:zipQuery, $edx_extraVers:extraVers };\r\n Util.Notify.progress(title,'__local_downloadzip',null,exportFormData,false,false,false).then(confirmed => { });\r\n // dialog takes care of download when zipping so just get out\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n } else if (Util.RestAPI.hasPFTA() && (version==='all' && !!this.selections && this.selections.length > 1) || (attachVersion==='all' && !!this.selections && this.selections.length > 1)) {\r\n const downloadDocs: any[] = [];\r\n let isAttachments = attachVersion==='all' && version!=='all';\r\n const nSelections = this.selections.length;\r\n let iSelection = 0;\r\n const getVersions = () => {\r\n const sel = this.selections[iSelection];\r\n const versDesc = {readDesc: true, desc:{id:sel.id, type:sel.type, lib:sel.lib}};\r\n FormScripts._shared.get_versions_or_attachments(isAttachments, this, versDesc).then(list => {\r\n for (const item of list) {\r\n downloadDocs.push({id:versDesc.desc.id, lib:versDesc.desc.lib, type:versDesc.desc.type, ver:item['VERSION_ID']});\r\n }\r\n ++iSelection;\r\n if (iSelection === nSelections) {\r\n if (!isAttachments && attachVersion==='all') {\r\n isAttachments = true;\r\n iSelection = 0;\r\n getVersions();\r\n } else {\r\n const downloadFileName: string = this.localizer.getTranslation('FORMS.LOCAL.SHARE.DOCUMENTS')+'.zip';\r\n const downloadFileData: any = {filename:downloadFileName, documents:downloadDocs};\r\n let downloadQueryArgs = 'documentszip&share';\r\n if (version === 'all') {\r\n downloadQueryArgs += '&versions';\r\n }\r\n if (attachVersion === 'all') {\r\n downloadQueryArgs += '&attachments';\r\n }\r\n Util.RestAPI.post('documents/token/zipdownload', downloadFileData, null, downloadQueryArgs).subscribe(tokenData => {\r\n if (!!tokenData && tokenData.tokenid) {\r\n const downloadFileUrl: string = Util.RestAPI.getServerURLOrigin() + '/documents/' + tokenData.tokenid + '?share';\r\n Util.RestAPI.downloadFileUrl(downloadFileUrl, downloadPath, downloadFileName);\r\n }\r\n });\r\n }\r\n } else {\r\n getVersions();\r\n }\r\n });\r\n };\r\n getVersions();\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n } else {\r\n let sep = '';\r\n const addAllSep = (versOrAttachs: any[]): void => {\r\n // now push the same item to the selections array so the loop to download works with the versions list\r\n for (const vers of versOrAttachs) {\r\n this.selections.push(firstItem);\r\n version += sep + vers.VERSION_ID;\r\n sep = ';';\r\n }\r\n };\r\n if (!!attachVersion) {\r\n if (!!version) {\r\n if (version === 'all_separate' && attachVersion === 'all_separate') {\r\n version = '';\r\n this.selections = [];\r\n addAllSep(this.scriptData['VERSIONS']);\r\n addAllSep(this.scriptData['ATTACHMENTS']);\r\n } else if (version === 'all_separate') {\r\n version = attachVersion;\r\n sep = ';';\r\n addAllSep(this.scriptData['VERSIONS']);\r\n } else if (attachVersion === 'all_separate') {\r\n sep = ';';\r\n addAllSep(this.scriptData['ATTACHMENTS']);\r\n } else {\r\n const attachParts: string[] = attachVersion.split(';');\r\n const versParts: string[] = version.split(';');\r\n versParts.splice(0,0,...attachParts);\r\n version = versParts.join(';');\r\n // now push the same item to the selections array so the loop to download works with the versions list\r\n const selections: any[] = [];\r\n selections.splice(0,0,...this.selections);\r\n for (const attach of attachParts) {\r\n selections.push(firstItem);\r\n }\r\n this.selections = selections;\r\n }\r\n } else {\r\n if (attachVersion === 'all_separate') {\r\n version = '';\r\n this.selections = [];\r\n addAllSep(this.scriptData['ATTACHMENTS']);\r\n } else {\r\n version = attachVersion;\r\n }\r\n }\r\n } else if (version === 'all_separate') {\r\n version = '';\r\n this.selections = [];\r\n addAllSep(this.scriptData['VERSIONS']);\r\n }\r\n }\r\n break;\r\n case 'shareonedrive':\r\n if (allData['$edx_share_type'] === 'invite') {\r\n const recipients: string[] = allData['$edx_email_to'].split(',');\r\n serverData = {};\r\n serverData['roles'] = [allData['$edx_link_scope'].split('&')[0].split('=')[1]];\r\n serverData['message'] = allData['$edx_share_message'];\r\n serverData['requireSignIn'] = true;\r\n serverData['sendInvitation'] = true;\r\n serverData['recipients'] = [];\r\n for (const recipient of recipients) {\r\n serverData['recipients'].push({email: recipient});\r\n }\r\n params = 'invite';\r\n const item: ListItem = this.selections[0];\r\n const desc: BaseDesc = {id:item.id,lib:item.lib,type:item.type};\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.SHARE.INVITE');\r\n notifyBody = this.localizer.getTranslation('FORMS.LOCAL.SHARE.INVITE_SENT');\r\n notifyError = this.localizer.getTranslation('FORMS.LOCAL.SHARE.INVITE_ERROR');\r\n this.formService.postToServer(desc, serverData, 'invite', null, false, notifyTitle, notifyBody, notifyError);\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n }\r\n // fall thru\r\n case 'email':\r\n let nSecuredDocs = 0;\r\n const attachments: any[] = [];\r\n const keys: string[] = Object.keys(serverData);\r\n let emailQueryArgs: string;\r\n let optionKey = 'DOCUMENTS';\r\n const isMultiVersionEmail = !!allData['$edx_version_ID'] && allData['$edx_version_ID'].indexOf(';') > -1;\r\n const bIsOutlookMB: boolean = Util.Device.bIsOfficeAddin && !!Office && !!Office.context && !!Office.context.mailbox;\r\n if (allData['$edx_version'] !== 'none') {\r\n version = !!allData['$edx_version_ID'] ? allData['$edx_version_ID'] : allData['$edx_version'];\r\n if (version === 'all') {\r\n emailQueryArgs = 'versions';\r\n }\r\n }\r\n if (allData['$edx_attachment'] !== 'none') {\r\n attachVersion = !!allData['$edx_version_ID'] ? allData['$edx_version_ID'] : allData['$edx_attachment'];\r\n if (attachVersion === 'all') {\r\n emailQueryArgs = !!emailQueryArgs ? (emailQueryArgs + '&attachments') : 'attachments';\r\n }\r\n }\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.SHARE.SHARE_SENT');\r\n notifyError = this.localizer.getTranslation('FORMS.LOCAL.SHARE.SHARE_ERROR');\r\n const sendOutlookAttach = (outlookAttachments: any[]) => {\r\n if (Office.context.mailbox.item.addFileAttachmentAsync) {\r\n for (const outlookAttach of outlookAttachments) {\r\n Office.context.mailbox.item.addFileAttachmentAsync(outlookAttach.url, outlookAttach.name, {asyncContext: {app:'edx'}}, result => {\r\n if (result.status === Office.AsyncResultStatus.Failed) {\r\n this.zone.run(() => {\r\n Util.Notify.error(this.localizer.getTranslation('GENERIC_ERRORS.ERROR'), result);\r\n });\r\n }\r\n });\r\n }\r\n } else {\r\n Office.context.mailbox.displayNewMessageForm( {\r\n subject: this.localizer.getTranslation('FORMS.LOCAL.SHARE.SUBJECT_FORMAT', [this.localizer.getTranslation('FORMS.LOCAL.SHARE.'+optionKey), this.localizer.getTranslation('APP_TITLE')]),\r\n htmlBody: '',\r\n attachments: outlookAttachments\r\n });\r\n }\r\n };\r\n const doOutlookAttach = () => {\r\n let nTokens = 0;\r\n const outlookAttachments: any[] = [];\r\n for (const attachItem of attachments) {\r\n const addLink: boolean = attachItem.link;\r\n Util.RestAPI.getFileToken(attachItem, attachItem.ver, false, addLink && attachItem.ver === 'all').then(tokenData => {\r\n if (tokenData && tokenData.url && tokenData.name) {\r\n let outlookFileName: string = tokenData.name;\r\n let outlookFileUrl: string = tokenData.url;\r\n if (allData['$edx_share_type']==='linkonly' || addLink) {\r\n outlookFileName += '.drf';\r\n outlookFileUrl += '?linkonly&share';\r\n optionKey = allData['$edx_share_type']==='linkonly' ? 'REFERENCES' : 'ALL';\r\n } else if (allData['$edx_share_type']==='documentszip') {\r\n outlookFileName += '.zip';\r\n outlookFileUrl += '?documentszip&share';\r\n optionKey = 'DOCUMENTS_ZIP';\r\n } else if (allData['$edx_share_type']==='linkonlyzip') {\r\n outlookFileName += '.zip';\r\n outlookFileUrl += '?linkonlyzip&share';\r\n optionKey = 'REFERENCES_ZIP';\r\n } else if (allData['$edx_share_type']==='allzip') {\r\n outlookFileName += '.zip';\r\n outlookFileUrl += '?allzip&share';\r\n optionKey = 'ALL_ZIP';\r\n } else {\r\n outlookFileUrl += '?share';\r\n }\r\n if (!!emailQueryArgs) {\r\n if (emailQueryArgs.startsWith('&')) {\r\n outlookFileUrl += emailQueryArgs;\r\n } else {\r\n outlookFileUrl += '&' + emailQueryArgs;\r\n }\r\n }\r\n outlookAttachments.push({type: 'file', name: outlookFileName, url: outlookFileUrl, isInline: false });\r\n }\r\n if (++nTokens === attachments.length) {\r\n sendOutlookAttach(outlookAttachments);\r\n }\r\n });\r\n }\r\n };\r\n const doOutlookAttachSingleZip = (key: string) => {\r\n const outlookFileName: string = this.localizer.getTranslation('FORMS.LOCAL.SHARE.'+key)+'.zip';\r\n const fileData: any = {filename:outlookFileName, documents:attachments};\r\n Util.RestAPI.post('documents/token/zipdownload',fileData, null, emailQueryArgs).subscribe(tokenData => {\r\n if (!!tokenData && tokenData.tokenid) {\r\n const outlookFileUrl: string = Util.RestAPI.getServerURLOrigin() + '/documents/' + tokenData.tokenid + '?share';\r\n sendOutlookAttach([{type: 'file', name: outlookFileName, url: outlookFileUrl, isInline: false }]);\r\n }\r\n });\r\n };\r\n const doShare = () => {\r\n const postGetHTML = (html: string) => {\r\n if (!!html) {\r\n formData['html'] = html;\r\n }\r\n if (localFormName !== 'shareonedrive' && Util.Device.bIsOfficeAddin && Office && Office.context && Office.context.mailbox) {\r\n if (Util.RestAPI.restAPIVersion() >= 0x00160702 && (allData['$edx_share_type']==='documentszip' || allData['$edx_share_type']==='linkonlyzip' || allData['$edx_share_type']==='allzip')) {\r\n optionKey = allData['$edx_share_type']==='documentszip' ? 'DOCUMENTS_ZIP' : allData['$edx_share_type']==='linkonlyzip' ? 'REFERENCES_ZIP' : 'ALL_ZIP';\r\n doOutlookAttachSingleZip(allData['$edx_share_type']==='documentszip' ? 'DOCUMENTS' : allData['$edx_share_type']==='linkonlyzip' ? 'REFERENCES' : 'ALL');\r\n } else {\r\n doOutlookAttach();\r\n }\r\n } else {\r\n this.formService.postToServer('documents/share', formData, null, emailQueryArgs, false, notifyTitle, null, notifyError);\r\n }\r\n };\r\n let subject: string = formData['subject'];\r\n let message: string;\r\n if (localFormName === 'shareonedrive') {\r\n message = `
${subject}

${this.localizer.getTranslation('FORMS.LOCAL.SHARE.MESSAGE')}:
${formData['message']}

${allData['$edx_share_html_link']}`;\r\n subject = this.localizer.getTranslation('FORMS.LOCAL.SHARE.SHARE_NOTIFICATION');\r\n delete formData['$edx_share_html_link'];\r\n } else {\r\n message = formData['message'];\r\n }\r\n Util.Transforms.formatHTMLEmail(subject, message).then(html => {\r\n postGetHTML(html);\r\n }, err => {\r\n postGetHTML(null);\r\n });\r\n };\r\n const afterAddAttachments = () => {\r\n formData['_restapi'] = {src: attachments};\r\n if (nSecuredDocs && Util.RestAPI.getPreference('warn_share_secured')==='1') {\r\n const title: string = this.localizer.getTranslation('FORMS.LOCAL.SHARE.SECURITY_WARNING');\r\n const okBtn: string = this.localizer.getTranslation('FORMS.LOCAL.SHARE.SHARE');\r\n const body: string = this.localizer.getTranslation('FORMS.LOCAL.SHARE.CHECK_SECURE');\r\n Util.Notify.warning(title,body,okBtn,null,true,true,true).then(confirmed => {\r\n if (confirmed && confirmed.confirm) {\r\n doShare();\r\n }\r\n });\r\n } else {\r\n doShare();\r\n }\r\n };\r\n const addSelectionsToAttachments = () => {\r\n let selections = this.selections;\r\n if (this.formData.isVersionEmail) {\r\n const curItem: any = Util.RestAPI.getCurItem();\r\n selections = [curItem];\r\n }\r\n const nSelections = selections.length;\r\n let i = 0;\r\n const addVersions = () => {\r\n const item = selections[i++];\r\n const afterAddItem = () => {\r\n if (i < nSelections) {\r\n addVersions();\r\n } else {\r\n afterAddAttachments();\r\n }\r\n };\r\n if (item['SECURITY'] >= '1') {\r\n ++nSecuredDocs;\r\n }\r\n const addVersion = (versionToAdd: string) => {\r\n if (allData['$edx_share_type']!=='linkonly' && (allData['$edx_share_type']!=='linkonlyzip' || !bIsOutlookMB) && (!bIsOutlookMB || ['all', 'allzip'].indexOf(allData['$edx_share_type']) === -1 || versionToAdd !== 'all')) {\r\n attachments.push({\r\n ver: versionToAdd,\r\n id: item.id,\r\n type: item.type,\r\n lib: item.lib,\r\n DOCNAME: item.DOCNAME\r\n });\r\n }\r\n if (allData['$edx_share_type']==='linkonly' || (((['all', 'allzip'].indexOf(allData['$edx_share_type']) !== -1 && (versionToAdd === 'all' || (version !== 'all' && attachVersion !== 'all'))) || allData['$edx_share_type']==='linkonlyzip') && bIsOutlookMB)) {\r\n attachments.push({\r\n ver: versionToAdd,\r\n id: item.id,\r\n type: item.type,\r\n lib: item.lib,\r\n DOCNAME: item.DOCNAME,\r\n link: true\r\n });\r\n }\r\n };\r\n if (bIsOutlookMB && ((version==='all' && !!this.scriptData['VERSIONS']) || (attachVersion==='all' && !!this.scriptData['ATTACHMENTS'])) || isMultiVersionEmail) {\r\n let list: any[];\r\n if (version==='all') {\r\n list = this.scriptData['VERSIONS'];\r\n if (attachVersion==='all') {\r\n list.splice(0,0,...this.scriptData['ATTACHMENTS']);\r\n }\r\n } else if (isMultiVersionEmail) {\r\n list = this.selections;\r\n } else {\r\n list = this.scriptData['ATTACHMENTS'];\r\n }\r\n const nItems = list.length;\r\n for (let iItem=nItems-1; iItem>=0; iItem--) {\r\n const versItem = list[iItem];\r\n const label: string = versItem.VERSION_LABEL.toLowerCase();\r\n if (label !== 'pr1' && versItem.DOCNUMBER === item.id) {\r\n addVersion(versItem.VERSION_ID);\r\n }\r\n }\r\n if (!isMultiVersionEmail) {\r\n if (!!version && version !== 'all') {\r\n addVersion(version);\r\n }\r\n if (!!attachVersion && attachVersion !== 'all') {\r\n addVersion(attachVersion);\r\n }\r\n }\r\n } else if (Util.isContainer(item.type) || version === 'C' || version === 'P') {\r\n addVersion(version === 'P' ? 'P' : 'C');\r\n if (!!attachVersion) {\r\n addVersion(attachVersion);\r\n }\r\n } else {\r\n if (version==='all' || attachVersion==='all') {\r\n addVersion('all');\r\n if (version==='all' && !!attachVersion && attachVersion!=='all') {\r\n addVersion(attachVersion);\r\n } else if (attachVersion==='all' && !!version && version!=='all') {\r\n addVersion(version);\r\n }\r\n } else {\r\n if (!!version) {\r\n addVersion(version);\r\n }\r\n if (!!attachVersion) {\r\n addVersion(attachVersion);\r\n }\r\n }\r\n }\r\n afterAddItem();\r\n };\r\n addVersions();\r\n };\r\n for (let key of keys) {\r\n if (key === '$edx_version' || key === '$edx_attachment') {\r\n continue;\r\n }\r\n let data: any = serverData[key];\r\n if (key.startsWith('$edx_')) {\r\n if (key.startsWith('$edx_email')) {\r\n data = data.replace(/\\s/g, '');\r\n }\r\n const parts: string[] = key.split('_');\r\n key = parts[parts.length-1];\r\n }\r\n formData[key] = data;\r\n }\r\n addSelectionsToAttachments();\r\n // dialog takes care of sharing so just get out\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n case 'copy':\r\n const createDesc = this.scriptData['CREATEDESC'];\r\n if (this.rightWrapper && this.rightWrapper.dynamicForm) {\r\n serverData = this.rightWrapper.dynamicForm.getDirtyAndRequiredValue();\r\n if (!serverData._restapi) {\r\n serverData._restapi = {};\r\n }\r\n securityList = this.rightWrapper.dynamicForm.getSecurityList();\r\n } else {\r\n serverData = { _restapi: {} };\r\n securityList = null;\r\n }\r\n if (securityList && securityList.length) {\r\n serverData['SECURITY'] = '1';\r\n serverData._restapi['security'] = securityList;\r\n }\r\n if (!!createDesc) {\r\n if (this.desc.type!=='flexfolders' && this.desc.type!=='fileplans' && createDesc.type!=='fileplans' && noAddFolderIDs.indexOf(createDesc.id)===-1) {\r\n serverData._restapi['ref'] = createDesc;\r\n if (!isPrimaryLib || createDesc.lib.toUpperCase() !== primaryLibUC) {\r\n queryargs = '?library=' + createDesc.lib;\r\n }\r\n if (this.rightWrapper.applyAllChecked && this.desc.type === 'folders' && this.rightWrapper.desc.id !== 'public') {\r\n // not in public folders but user wants the folder to be public\r\n if (!!serverData._restapi['ref'] && Util.RestAPI.restAPIVersion()>=0x00200400) {\r\n const curRef = serverData._restapi['ref'];\r\n serverData._restapi['ref'] = [curRef, {type: 'folders', id: 'public', lib: this.desc.lib}];\r\n } else {\r\n serverData._restapi['ref'] = {type: 'folders', id: 'public', lib: this.desc.lib};\r\n }\r\n }\r\n } else if (createDesc.lib.toUpperCase() !== primaryLibUC) {\r\n queryargs = '?library=' + createDesc.lib;\r\n crossLibRoot = createDesc.lib;\r\n }\r\n } else if (!isPrimaryLib) {\r\n queryargs = '?library=' + this.desc.lib;\r\n }\r\n serverData['DOCNAME'] = this.dynamicForm.getFieldValue('DOCNAME');\r\n serverData['STATUS'] = '0';\r\n if (this.desc['ITEM_TYPE']==='W') { // workspace\r\n const wsForm: any = Util.RestAPI.getDefaultWorkspaceForm();\r\n serverData['ITEM_TYPE'] = 'W';\r\n serverData['FILE_EXTENSION'] = 'WORKSPACE';\r\n serverData['APP_ID'] = 'FOLDER';\r\n serverData._restapi['form_name'] = wsForm.id;\r\n serverData['FORM'] = wsForm.SYSTEM_ID;\r\n } else {\r\n serverData['FULLTEXT'] = 'Y';\r\n serverData._restapi['form_name'] = this.rightWrapper.defForm;\r\n }\r\n if (this.relateToChecked && !!this.relateToDesc) {\r\n serverData._restapi['associate'] = { lib: this.relateToDesc.lib, id: this.relateToDesc.id };\r\n }\r\n if ( this.dynamicForm.getFieldValue('edx_copy_profile') !== 'N' && (!createDesc || createDesc.type!=='fileplans')) {\r\n // Copy all RM specific fields if present in the original data\r\n this.copyAll_RM_SpecificFields(allData,serverData);\r\n } else if (!!createDesc && createDesc.type==='fileplans') {\r\n // Copy all RM specific fields from the new file-part\r\n this.copyAll_RM_SpecificFields(createDesc,serverData);\r\n }\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.COPY.COPY');\r\n break;\r\n case 'rm_request':\r\n if (!serverData['%REQUEST_NOTREQUIREDAFTER_DATE'] || !!serverData['%REQUEST_NOTREQUIREDAFTER_DATE'] && serverData['%REQUEST_NOTREQUIREDAFTER_DATE'] === '') {\r\n serverData['%REQUEST_NOTREQUIREDAFTER_DATE'] = '1899-12-30'; // This is variant date zero\r\n }\r\n break;\r\n case 'url':\r\n case 'link':\r\n case 'fp_box_rm_request':\r\n case 'rm_vitalreviewdate':\r\n case 'fp_box_rm_loanrequest':\r\n case 'rm_loanrequest':\r\n case 'rm_putinbox':\r\n case 'rm_removefrombox':\r\n case 'versions_editprofile':\r\n case 'shareonedrive':\r\n break;\r\n default:\r\n Util.Notify.error('Client Coding Error','FormWrapperComponent: missing case for local form in popupOK');\r\n return;\r\n }\r\n const handleSelectedItems = () => {\r\n for (let i=0; i0 &&!!intoThisFolder && intoThisFolder.id==='recentedits' && intoThisFolder.lib !== this.selections[0].lib) {\r\n intoThisFolder.lib = this.selections[0].lib;\r\n intoThisFolder.DOCNAME = intoThisFolder.lib;\r\n }\r\n intoThisFolder = !!intoThisFolder && Util.isUploadTarget(intoThisFolder) && (!!intoThisFolder.id && (intoThisFolder.type!=='folders' || (intoThisFolder!=='public' && intoThisFolder!=='checkedout'))) ? intoThisFolder : null;\r\n if (externalLocation) {\r\n const extension: any = Util.Transforms.getExtensionFromAppID(this.selections[i].APP_ID);\r\n let docObj: any = Util.decodeFileName(this.selections[i].DOCNAME);\r\n if (!docObj) {\r\n docObj = {name:this.selections[i].DOCNAME,ext:extension};\r\n }\r\n if (!this.dataFiles) {\r\n this.dataFiles = [];\r\n }\r\n this.dataFiles[i] = {name:docObj.name + '.' + docObj.ext};\r\n this.dataFiles[i].url = this.selections[i]['checkout']['LOCATION'];\r\n this.dataFiles[i].externalName = this.selections[i].DOCNAME;\r\n this.dataFiles[i].size = Number(this.selections[i].size);\r\n this.dataFiles[i]['_restapi'] = {};\r\n this.dataFiles[i]['_restapi'].checkinData = {};\r\n this.dataFiles[i]['_restapi'].checkinData['%STATUS'] = '%UNLOCK';\r\n this.dataFiles[i]['_restapi'].checkinData['DOCNUM'] = this.selections[i].id;\r\n this.dataFiles[i]['_restapi'].checkinData['lib'] = this.selections[i].lib;\r\n intoThisFolder = {id:'recentedits',type:'folders',lib:Util.RestAPI.getPrimaryLibrary()};\r\n this.filePaths = null;\r\n } else {\r\n this.dataFiles = null;\r\n }\r\n if (i===this.selections.length-1) {\r\n setTimeout(() => {\r\n Util.RestAPI.uploadFilesWithUI(this.fileList, this.filePaths, this.dataFiles, intoThisFolder);\r\n }, 500);\r\n }\r\n } else {\r\n if (!Util.RestAPI.hasPFTA() && ((this.filePaths && this.filePaths.length !== this.selections.length) || (this.fileList && this.fileList.length !== this.selections.length))) {\r\n Util.Notify.error(this.localizer.getTranslation('FORMS.LOCAL.CHECK_IN.CHECK_IN'),this.localizer.getTranslation('FORMS.LOCAL.CHECK_IN.ERROR_FILE_MATCH'));\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n }\r\n if (this.fileList) {\r\n if (!filesMatchDocuments) {\r\n [filesMatchDocuments, failedCheckedinCount] = this.selectedFilesMatchSelectedDocuments();\r\n if (!filesMatchDocuments) {\r\n const notifyBodyNoMatch: string = this.localizer.getTranslation('FORMS.LOCAL.CHECK_IN.ERROR_FILE_COUNT',[failedCheckedinCount.toString()]);\r\n Util.Notify.error(this.localizer.getTranslation('FORMS.LOCAL.CHECK_IN.CHECK_IN'),notifyBodyNoMatch);\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n }\r\n }\r\n // file name is such: DM16L-#33484-v77916-bands.xlsx\r\n formData = new FormData();\r\n const file = this.findCheckinDiskFile(item);\r\n if (!!item.checkout && !!item.checkout['VERSION_LABEL']) {\r\n version = item.checkout['VERSION_LABEL'];\r\n } else if (!!item['VERSION_LABEL']) {\r\n version = item['VERSION_LABEL'];\r\n }\r\n descOrCreateType = checkinKind==='REPLACE_VERSION' ? null : item;\r\n formData.append('file', file);\r\n formData.append('data', JSON.stringify(serverData));\r\n serverData = formData;\r\n sendRaw = true;\r\n if (checkinKind!=='NEW_VERSION' && version && version.length) {\r\n params = 'versions/' + version;\r\n } else {\r\n params = null;\r\n }\r\n } else if (this.filePaths && (Util.Device.bIsElectron || Util.Device.bIsCordova) && !externalLocation) {\r\n // RestAPI takes care of upload and profile data so just get out\r\n Util.RestAPI.uploadFilesWithAppWorks(this.filePaths, serverData, checkinKind==='REPLACE_VERSION', checkinKind!=='NEW_VERSION', undefined, this.selections);\r\n return this.finishPopOKWithRefresh(allData, serverData);\r\n } else if (Util.RestAPI.hasPFTA() && !externalLocation) {\r\n Util.RestAPI.checkinDocsWithPFTA(this.selections, serverData, checkinKind==='REPLACE_VERSION', checkinKind!=='NEW_VERSION');\r\n return this.finishPopOKWithRefresh(allData, serverData);\r\n } else if (externalLocation) {\r\n formData = new FormData();\r\n if (checkinKind==='REPLACE_VERSION' || checkinKind==='NEW_SUB_VERSION') {\r\n if (checkinKind==='NEW_SUB_VERSION') {\r\n descOrCreateType = item;\r\n } else {\r\n descOrCreateType = null;\r\n }\r\n if (!!item.checkout && !!item.checkout['VERSION_LABEL']) {\r\n version = item.checkout['VERSION_LABEL'];\r\n } else if (!!item['VERSION_LABEL']) {\r\n version = item['VERSION_LABEL'];\r\n }\r\n } else {\r\n descOrCreateType = item;\r\n }\r\n serverData['_restapi'] = {LOCATION: externalLocation, DOCNAME: item['DOCNAME']};\r\n formData.append('data', JSON.stringify(serverData));\r\n serverData = formData;\r\n sendRaw = true;\r\n if (checkinKind!=='NEW_VERSION' && version && version.length) {\r\n params = 'versions/' + version;\r\n } else {\r\n params = null;\r\n }\r\n if (!!item['openWindow']) {\r\n Util.Help.closeURL(item['openWindow']);\r\n }\r\n }\r\n }\r\n } else if ((localFormName==='copy') || (localFormName==='newversion')) {\r\n const destName: string = !!this.docNameFromRef(serverData) ? this.docNameFromRef(serverData) : !!crossLibRoot ? crossLibRoot : Util.RestAPI.getPrimaryLibrary();\r\n const newName: string = serverData['DOCNAME'];\r\n const docNum: string = item['DOCNUMBER'] || item['DOCNUM'];\r\n const verLbl: string = item['VERSION_LABEL'] || item['ver'];\r\n notifyBody = this.localizer.getTranslation('FORMS.LOCAL.COPY.DONE',[item.DOCNAME,destName,newName]);\r\n version = null;\r\n if (localFormName==='newversion') {\r\n serverData._restapi = {};\r\n item['id'] = docNum;\r\n item['type'] = 'documents';\r\n version = item['VERSION_ID'];\r\n if (allData['$edx_new_version']==='NEW_VERSION') {\r\n params = docNum;\r\n if (item.lib.toUpperCase() !== primaryLibUC) {\r\n queryargs = '?library=' + item.lib;\r\n }\r\n notifyBody = this.localizer.getTranslation('FORMS.LOCAL.COPY.VERSION_DONE',[verLbl]);\r\n } else if (allData['$edx_new_version']==='NEW_SUB_VERSION') {\r\n params = docNum + '/versions/' + verLbl;\r\n if (item.lib.toUpperCase !== primaryLibUC) {\r\n queryargs = '?library=' + item.lib;\r\n }\r\n notifyBody = this.localizer.getTranslation('FORMS.LOCAL.COPY.SUB_VERSION_DONE',[verLbl]);\r\n }\r\n if (allData['%CHECKIN_LOCATION']) {\r\n delete serverData['%CHECKIN_LOCATION'];\r\n if (this.fileList) {\r\n let fileName: string = allData['%CHECKIN_LOCATION'];\r\n formData = new FormData();\r\n formData.append('file', this.fileList[0]);\r\n formData.append('data', JSON.stringify(serverData));\r\n serverData = formData;\r\n sendRaw = true;\r\n notifyTitle = this.localizer.getTranslation('DOC_STATUS.CHECKEDIN');\r\n if (fileName.startsWith('file:')) {\r\n fileName = fileName.substring(5);\r\n }\r\n notifyBody = this.localizer.getTranslation(allData['$edx_new_version']==='NEW_VERSION'?'FORMS.LOCAL.COPY.VERSION_DONE_FILE':'FORMS.LOCAL.COPY.SUB_VERSION_DONE_FILE',[fileName]);\r\n } else if (this.filePaths && (Util.Device.bIsElectron || Util.Device.bIsCordova)) {\r\n // RestAPI takes care of upload and profile data so just get out\r\n Util.RestAPI.uploadFilesWithAppWorks(this.filePaths, serverData, false, allData['$edx_new_version']==='NEW_SUB_VERSION' && !!verLbl, verLbl, this.selections, notifyTitle);\r\n this.destroyScript(true, allData, serverData);\r\n return;\r\n }\r\n }\r\n } else {\r\n version = this.dynamicForm.getFieldValue('$edx_version');\r\n }\r\n if (!serverData._restapi) {\r\n serverData._restapi = {};\r\n }\r\n version = version || (!!item['VERSION_ID'] ? item['VERSION_ID']: 'C');\r\n serverData._restapi['src'] = {\r\n ver: version,\r\n id: item.id,\r\n type: item.type,\r\n lib: item.lib\r\n };\r\n descOrCreateType = item.type;\r\n if (localFormName==='copy' && serverData._restapi['ref'] && serverData._restapi['ref'].length === 1) {\r\n if (serverData._restapi['ref'].lib.toUpperCase() !== primaryLibUC) {\r\n queryargs = '?library=' + serverData._restapi['ref'].lib;\r\n }\r\n if (!serverData._restapi['ref'].id || serverData._restapi['ref'].id.substring(0,3)==='DV-') {\r\n // copy to root\r\n delete serverData._restapi['ref'];\r\n }\r\n }\r\n } else if (localFormName==='checkout') {\r\n if (isExternalCheckout) {\r\n if (serverData._restapi) {\r\n version = !!item['VERSION_ID'] ? item['VERSION_ID']: 'C';\r\n serverData._restapi['src'] = {\r\n ver: version,\r\n id: item.id,\r\n type: item.type,\r\n lib: item.lib\r\n };\r\n const extAppInfo: any = Util.RestAPI.findExternalApp(serverData._restapi['ref']['lib']);\r\n if (extAppInfo) {\r\n serverData['DESCRIPTION'] = this.localizer.getTranslation('HISTORY_ACTIONS.999',[extAppInfo['name']]);\r\n }\r\n }\r\n } else {\r\n version = downloadItem && item['VERSION_ID'] ? item['VERSION_ID'] : undefined;\r\n }\r\n if (item['ITEM_TYPE'] === 'M') {\r\n serverData['%STATUS'] = '%LOCK';\r\n downloadItem = false;\r\n }\r\n } else if (localFormName === 'rm_request') {\r\n params = 'requests';\r\n descOrCreateType = item;\r\n } else if (localFormName === 'rm_loanrequest') {\r\n params = 'requests';\r\n serverData['%BORROW_ITEM'] = '1';\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.LOANED_TITLE');\r\n notifyBody = this.selections.length === 1 ? this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.LOANED', [item.DOCNUM]) : this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.LOANED_MANY', [this.selections.length.toString()]);\r\n } else if (localFormName === 'rm_vitalreviewdate') {\r\n params = 'records/';\r\n serverData['%CHANGE_VITAL_REVIEW_DATE'] = '1';\r\n } else if (localFormName === 'rm_putinbox') {\r\n params = 'boxoperations';\r\n descOrCreateType = item;\r\n serverData['%PUT_IN_BOX'] = serverData['PD_BOX'];\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.KEPT_IN_BOX');\r\n notifyBody = this.selections.length === 1 ? this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.PUT_IN_SUCCESS', [item['PD_FILEPT_NO'], serverData['PD_BOX']]): this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.PUT_IN_SUCCESS_MANY', [this.selections.length, serverData['PD_BOX']]);\r\n } else if (localFormName === 'rm_removefrombox') {\r\n params = 'boxoperations';\r\n descOrCreateType = item;\r\n serverData['%REMOVE_FROM_BOX'] = serverData['PD_LOCATION_CODE'];\r\n notifyTitle = this.localizer.getTranslation('METADATA.RECORDS_ACTIONS.REMOVED_FROM_BOX');\r\n notifyBody = this.selections.length === 1 ? this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.REMOVE_FROM_SUCCESS', [item['PD_FILEPT_NO'], serverData['PD_LOCATION_CODE']]) : this.localizer.getTranslation('FORMS.LOCAL.RM_REQUEST.REMOVE_FROM_SUCCESS_MANY', [this.selections.length, serverData['PD_LOCATION_CODE']]);\r\n } else if (localFormName === 'versions_editprofile') {\r\n params = 'versions/' + item['VERSION_ID'] + '/profile';\r\n }\r\n const versToUse = versionIDOverride || version;\r\n let singleVers: string = versToUse;\r\n if (!!versToUse && versToUse.indexOf(';') >= 0) {\r\n singleVers = versToUse.split(';')[i];\r\n }\r\n const sendItemAndDownload = (useTempFile?: boolean, versionInfoData?: any): any => {\r\n let doContinue = false;\r\n if (sendItem) {\r\n if (descOrCreateType) {\r\n this.formService.postToServer(descOrCreateType, serverData, params, queryargs, sendRaw, notifyTitle, notifyBody);\r\n } else {\r\n if (localFormName === 'checkin' && allData['$edx_new_version'] === 'NEW_DOCUMENT') {\r\n doContinue = true;\r\n } else {\r\n this.formService.putToServer(item, serverData, params, queryargs, sendRaw, notifyTitle, notifyBody);\r\n }\r\n }\r\n }\r\n if (downloadItem) {\r\n if (Util.Device.bIsElectron || Util.Device.bIsCordova) {\r\n downloadList.push(item);\r\n if (Util.Device.bIsElectron) {\r\n if (localFormName === 'export' && Util.isExternalLib(item.lib)) {\r\n downloadLaunch = true;\r\n downloadShortName = true;\r\n } else if (localFormName === 'checkout') {\r\n downloadLaunch = true;\r\n }\r\n }\r\n } else {\r\n if (Util.RestAPI.hasPFTA() && localFormName === 'checkout' && !downloadPath) {\r\n Util.RestAPI.downloadFile(item, singleVers, downloadQueryargs, 'temp', false, true);\r\n } else if (Util.RestAPI.hasPFTA() && localFormName === 'export' && !downloadPath) {\r\n Util.RestAPI.downloadFile(item, singleVers, downloadQueryargs, 'downloads');\r\n } else {\r\n Util.RestAPI.downloadFile(item, singleVers, downloadQueryargs, downloadPath, false, localFormName === 'checkout', null, useTempFile, versionInfoData);\r\n }\r\n }\r\n }\r\n return doContinue;\r\n };\r\n if (Util.RestAPI.hasPFTA() && localFormName === 'checkout' && !!downloadPath) {\r\n Util.RestAPI.checkTempFile(item, downloadPath, singleVers).then(result => {\r\n if (!result.ignoreSelection) {\r\n sendItemAndDownload(result.useTempFile, result.versionInfoData);\r\n }\r\n });\r\n } else {\r\n if (sendItemAndDownload(false, null)) {\r\n continue;\r\n }\r\n }\r\n serverData = savedServerData;\r\n }\r\n };\r\n\r\n if (this.selections.length > 1 && Util.RestAPI.hasPFTA() && localFormName === 'checkout' && !!downloadPath) {\r\n Util.RestAPI.canCheckoutSelectedDocuments(this.selections, downloadPath, 'C').then(canCheckout => {\r\n if (canCheckout) {\r\n handleSelectedItems();\r\n }\r\n });\r\n } else {\r\n handleSelectedItems();\r\n }\r\n if (downloadList.length) {\r\n Util.RestAPI.downloadFilesWithAppWorks(downloadList, downloadPath, undefined, versionIDOverride || version, downloadQueryargs, downloadLaunch, false, false, false, downloadShortName);\r\n }\r\n } else {\r\n if (this.createType || isSearchForm) {\r\n if (isSearchForm) {\r\n // if we are a search form for execute, massage the save criteria for execute\r\n if (this.desc.type==='forms') {\r\n this.formService.updateSearchCriteria(serverData, this.formTemplate);\r\n }\r\n const searchCriteria: any = {\r\n FORM_NAME: allData['form_name'] || this.getFormName(),\r\n DESCRIPTION: this.formService.getSearchDescription(serverData, masterDynamicForm),\r\n criteria: serverData\r\n };\r\n if (this.kind === 'profile_query_edit') {\r\n searchCriteria['DESCRIPTION'] = Util.Transforms.restoreQueryValue(this.desc['DESCRIPTION']||this.desc['DOCNAME']);\r\n notifyTitle = this.localizer.getTranslation('FOLDER_ACTIONS.EDIT_SEARCH');\r\n notifyBody = this.localizer.getTranslation('FOLDER_ACTIONS.EDIT_CRITERIA_SUCCESS', [searchCriteria['DESCRIPTION']]);\r\n params = 'profile';\r\n this.formService.putToServer(this.desc, searchCriteria, params, null, sendRaw, notifyTitle, notifyBody);\r\n } else {\r\n if (searchCriteria.criteria.STATUS==='0') {\r\n searchCriteria.criteria['READONLY'] = 'N';\r\n }\r\n setTimeout(() => {\r\n Util.RestAPI.navToSearchURL('folders', searchCriteria);\r\n }, Util.kPopupDismissMS);\r\n }\r\n } else {\r\n this.formService.postToServer(this.createType, serverData, params, queryargs, sendRaw, notifyTitle, notifyBody);\r\n }\r\n } else {\r\n if (this.bMassProfileUpdate) {\r\n serverData._restapi['multipletargets'] = this.selections.map(s => s.id).join(';');\r\n serverData._restapi['trusteesdirective'] = masterDynamicForm.trusteesDirective;\r\n notifyTitle = this.localizer.getTranslation('FORMS.LOCAL.MASS_PROFILE.RESULTS');\r\n this.formService.putToServer(this.desc.type+'/multiple', serverData, params, '?library='+this.desc.lib, sendRaw, notifyTitle, notifyBody, null, 'massprofile_results');\r\n } else {\r\n this.formService.putToServer(this.desc, serverData, params, queryargs, sendRaw, notifyTitle, notifyBody);\r\n }\r\n }\r\n }\r\n this.destroyScript(true, allData, serverData);\r\n }\r\n }\r\n\r\n private finishPopOKWithRefresh(allData: any, serverData: any): void {\r\n this.destroyScript(true, allData, serverData);\r\n Util.RestAPI.refreshCurWindow();\r\n }\r\n\r\n private docNameFromRef(serverData: any): string {\r\n if (!!serverData && !!serverData._restapi && !!serverData._restapi['ref']) {\r\n const refs = Array.isArray(serverData._restapi['ref']) ? serverData._restapi['ref'] : [serverData._restapi['ref']];\r\n for (const ref of refs) {\r\n if (!!ref.DOCNAME) {\r\n return ref.DOCNAME;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private getCheckInInfoFromFileName(): any {\r\n let checkinInfo: any = null;\r\n const docObjs: any[] = [];\r\n const nFiles: number = this.fileList ? this.fileList.length : this.filePaths ? this.filePaths.length : this.dataFiles ? this.dataFiles.length : 0;\r\n for (let i=0; i 1) {\r\n for (i; i