{"version":3,"sources":["pages/property-types.js","popups/_base.js","popups/checkpoint-filter-window.js","popups/element-codings.js","popups/mail-template-placeholders.js","popups/mail-template-preview.js","popups/process-condition-time-configuration.js","popups/select-issue-states-for-commit.js","pages/_base/properties/property.js","pages/_base/properties/button-row-property.js","pages/_base/properties/checkbox-property.js","pages/_base/properties/label.js","pages/_base/properties/number-property.js","pages/_base/properties/property-group.js","pages/_base/properties/resettable-button-property.js","pages/_base/properties/rich-text-property.js","pages/_base/properties/text-line-property.js","pages/_base/properties/text-memo-property.js","pages/_base/properties/time-property.js","pages/_base/page.js","pages/_base/page-tab.js","pages/system/client-settings.js","pages/system/element-codings.js","pages/system/mail-templates.js","pages/_base/properties/file-table-property.js"],"names":["Modifications","Pages","PropertyTypes","Group","TextLine","TextMemo","Number","ResettableButton","RichTextField","Buttons","Checkbox","FileTable","global","PopupBase","options","this","constructor","Error","ID","Close","Caption","i18next","t","OnClick","No","Function","Styles","ShowOverlay","top","left","call","unbindEvents","$","window","off","close","$window","remove","$overlay","resizeWindow","screenHeight","height","screenWidth","width","ResizeToFitToContent","parseInt","css","find","outerHeight","$content","children","each","_idx","child","$child","$bottom","MaxHeight","MaxWidth","margin-top","margin-left","prototype","Show","init","$clientBody","markup","attr","html","EnableDragging","Title","AdditionalContentClasses","join","CreateContentMarkup","button","cssClass","toLowerCase","substring","AdditionalClasses","length","push","FlexDummyAfter","overlayMarkup","append","$top","on","proxy","me","evt","$btn","currentTarget","identifier","data","draggable","handle","cancel","appendTo","scroll","selector","$elem","hasOwnProperty","styles","Object","values","BindAdditionalEvents","OnAfterRendered","noop","Popups","CheckpointFilterWindow","_","z-index",".content","padding",".gfx-table","margin-bottom",".content > label","display",".content > label:not(:first-child)","Filters","onTextFilterInput","Text","trim","val","getSelectedKeywordsText","selectedKeywords","Keywords","filter","oid","keyword","changemode","Properties","ModificationType","Enums","Deleted","count","getSelectedCategoriesText","selectedCategories","Categories","category","onShowKeywordPicker","title","checkedEntities","onApply","keywords","text","treeOptions","schema","id","opened","checkbox","fullrow","entity","TreePicker","onShowCategoriesPicker","categories","onClearKeywords","siblings","onClearCategories","create","focus","ElementCodingsWindow","elementCodings","forms","onSelectCoding","SearchResult","ElementCodings","Forms","OnSelectCoding","$header","$footer","$search","$prefixesList","getPrefixesListMarkup","sort","sortByPrefix","map","createPrefixesListItem","a","b","Tools","SortStringArray","Prefix","elementCoding","isSelected","CurrentlySelectedPrefix","innerHtml","contains","replace","SearchRegExp","format","OID","onClickPrefixListItem","$this","listMarkup","ElementCodingsMap","removeClass","addClass","getElementCodingsListMarkup","$availableElementCodingsList","linkedForms","currentMax","createNewIdentText","Description","form","CodingOID","SortByTitle","reduce","CodingIdent","newIdent","element","formatElementCodingIdent","newIdentNumber","createExistingFormCodingItemMarkup","formHierarchy","getElementPath","elementType","Form","formCodingIdent","selectPrefixesSearchResult","selectedResult","$children","idx","selectedSearchResult","$selectedSearchResult","get","scrollIntoView","onSearchFunction","_event","searchText","input","RegExp","fn","lastIndex","test","Search","setResultCount","onSelectPreviousOrNextFunction","codingIdent","selectedCodingOID","forEach","coding","windowMarkup","searchOptions","placeholder","search","System","MailTemplatePlaceholdersWindow","dropZoneSelector","DropZoneSelector","$dropZoneElements","getIssuePlaceholderDescription","key","getPlaceholderDescription","groupKey","placeholderKey","description","$placeHoldersList","unbindDropZoneEvents","bindEvents","onClickPlaceholdersListItem","onDragStart","onDragEnd","bindDropZoneEvents","onDragOver","onDrop","DraggedListItem","style","fontWeight","originalEvent","dataTransfer","effectAllowed","setData","outerHTML","$dragOverlay","CurrentPage","CurrentTab","PropertyMap","pageProperty","Type","Editor","onDropToRichTextField","placeholderText","createPlaceholderText","insertHTML","MarkAsModified","preventDefault","dropEffect","$targetControl","$targetItem","parents","onDropToTextField","name","dataset","indexOf","substr","checkpoint","Checkpoints","Photo","Signature","cursorPos","prop","currentValue","textBefore","textAfter","getPlaceholdersListMarkup","PlaceHoldersList","sortByPositionAndTitle","createPlaceholdersListGroup","group","createPlaceholdersListItem","position","CurrentlySelectedPlaceholder","isSearchResult","nameIsSearchResult","placeholderDescription","PlaceHoldersMap","getPlaceholderDescriptionMarkup","$placeHoldersDescription","selectPlaceholdersSearchResult","maxPosition","Parametergroups","Enabled","Parameters","Position","param","Info","max","IsInvestigation","IsContactModuleAvailable","MailTemplatePreview","Subject","Body","overflow",".content > p:first-child","margin",".content .form-info",".content .row","border",".content .property","font-weight",".content .text","IntroductionText","escapeHtml","CurrentForm","NewForm","ProcessConditionTimeConfiguration","Yes","onApplyClick","createContentMarkup","timeConfiguration","TimeConfiguration","i","time","getRowMarkup","offset","type","Math","abs","Offset","OnlyOnStateChangeIsForced","offsetAndType","onlyOnStateChangeIsForced","hasDayOfWeekFilter","AllowedDaysOfWeek","content","views","formProcess","isWeekdayAllowed","Weekdays","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","PostponeProcessToNextPossibleWeekday","ExecuteOnlyAfterStatusChange","initWindow","getTimeConfiguration","configurations","$configuration","offsetValue","parseFloat","offsetType","executeType","issueTime","allowedDaysOfWeek","getAllowedDaysOfWeek","postponeProcessToNextPossibleWeekday","executeOnlyAfterStatusChange","newTimeConfiguration","GetEmptyGuid","uuid","$daysOfWeek","let","$dayOfWeek","onAddTimeConfigurationClick","$newRow","before","prev","onTimeExecuteTypeChange","onOffsetIssueTimeChange","onDeleteTimeConfigurationClick","closest","value","$issueTime","next","issueTimeValue","toggleClass","$executeType","executeTypVal","checkForAndMarkInvalidCheckboxes","checkboxesValid","invalidMessage","dayOfWeekOptions","show","hide","toggleInvalidClasses","checkboxes","invalid","j","parentElement","SelectIssueStatesForCommit",".status-wrapper","gap","align-items",".status-wrapper > label","text-overflow",".selection-wrapper + .selection-wrapper","defaultModifiedOpenStatus","Client","Settings","TicketOpened","defaultModifiedClosedStatus","TicketCompleted","NotModified","Edited","SelectedOpenStatusOID","SelectedClosedStatusOID","createButtonCaption","status","Color","onSelectOpenStatus","showStatusSelection","removeAttr","onSelectClosedStatus","selectedStatusOID","showClosedStatus","callback","WindowWrappers","ShowStatusSelection","selectedStatusses","selectMultiple","windowCaption","showCheckbox","onApplySelection","statusOID","statusState","StatusState","Closed","Open","additionalFilter","IsDeletedState","modifiedStatus","PropertyBase","definition","Render","IsRequired","RenderInput","AllowMultiSelection","RenderMultiSelectionValue","GetValue","Validate","SetValue","ApplyValue","Base","ButtonRowProperty","buttonConfig","renderButton","property","Icon","CaptionFormatter","unformattedValue","CurrentEntity","MappedProperty","formattedCaption","$prop","BindEvents","$button","Array","split","CheckboxProperty","OnChange","is","Label","NumberProperty","isNaN","ConversionFactor","Minimum","Maximum","PropertyGroup","menuConfig","OfficeConfiguration","Mode","hiddenProperties","HiddenProperties","ResettableButtonProperty","onResettableButtonClearClick","OnAfterResetClick","formattedValue","ValueFormatter","OnSelectClick","OnResetClick","RichTextProperty","Rows","userLanguage","User","Language","editorLanguage","SUNEDITOR_LANG","SUNEDITOR","buttonList","lang","$area","DOMPurify","sanitize","setContents","core","context","originElement","ShowRteContentSize","self","onChange","apply","arguments","getContents","TextLineProperty","Button","MaxLength","unescapeHtml","OnBlur","TextMemoProperty","TimeProperty","hr","padleft","min","$hrProp","$minProp","Date","getHours","getMinutes","date","hour","minute","setHours","PageBase","tabs","Tabs","TabMap","Options","TreeTextProperty","tab","RenderTab","tabId","RenderProperties","ApplyValues","ValidateProperties","SaveEntity","then","onAfterEntitySaved","properties","setChanged","Commit","Center","ResetSearch","tree","xhr","handleHttpError","HttpActionType","Write","Deferred","resolve","promise","OnBeforeDestroy","Destroy","Page","PageTab","propertyGroups","PropertyGroups","renderPropertyGroup","hideAllProperties","$container","replaceWith","settingsAreValid","ClientSettingsView","availableTabs","showServiceQrCode","onBtnDefaultTaskStatusClick","formatPropertyButtonCaption","onBtnDefaultFormStatusClick","onBtnDefaultInspectionStatusClick","onBtnDefaultDisturbanceStatusClick","onBtnSelectStatusAfterExternalProcessingClick","onResetSelectStatusAfterExternalProcessing","onBtnTaskCompletedStatusClick","onBtnDefaultTaskPriorityClick","onBtnDefaultDeviationCategoryClick","onBtnDefaultPrintOptionsButtonClick","onBtnSelectMinimumAndroidAppVersionClick","onResetMinimumAndroidAppVersion","formatMinimumAppVersionValue","onBtnSelectMinimumIOSAppVersionClick","onResetMinimumIOSAppVersion","onDefineEstimatedEffortPresets","QRCode","ServiceURI","propertyIdentifier","propertyClickListener","propertyType","Priority","Status","SetStateOnlyIfAllRequiredCollected","ValueCategory","viewProperty","isPropertySelectable","entities","propertyOID","onSelect","caption","isSelectable","classes","Children","color","selectable","selected","Priorities","$printOptionsPicker","$overflow","settings","Wrapper","ApplyButton","AbortButton","Searchbox","PrintType","OnSave","anyChanged","JSON","stringify","PrintOptionsPicker","GetPrintOptions","OnHide","printOptions","parse","PrintOptions","Create","onOpenAppVersionSelection","AppVersions","version","Android","IOS","availableVersions","popupHeading","onSelectMinimumAppVersion","Version","presets","EstimatedEffortEditor","GetCustomEstimatedEffort","Hide","estimatedEffortSettings","putClient","ClientSettings","ElementCodingsView","Save","MailTemplatesView","Source","onBtnSelectFormClick","onBtnResetFormClick","formatFormValue","onBtnOpenPlaceholdersWindowsClick","onBtnShowMailTemplatePreview","TableProperty","onBtnSelectAttachmentFilesClick","OnRemoveClick","onBtnRemoveFileClick","GetActionDropdownItems","getAttachmentFilesActionDropdownItems","cpRegex","issueRegex","formProperty","formIdentifier","onSelectForm","PlaceholdersWindow","subject","newFormIdentifier","applyChanges","Elements","buttonText","subjectProperty","bodyProperty","previousFormIdentifier","body","removeConflictedPlaceholdersFromText","getHasCheckpointPlaceholderConflicts","currentFormIdentifier","subjectWithConflicts","getTextWithHighlightedConflictedPlaceholders","bodyWithConflicts","currentForm","newForm","ChangeMode","FilePicker","onPick","file","onSelectAttachmentFiles","fileIdentifier","currentlySelectedFiles","addUnique","Files","AddFileToTable","filterTypes","FileType","File","FileInput","InitUpload","initAttachmentFileUpload","Accept","Multiple","url","Config","BaseUri","params","fileData","filename","pop","FolderOID","RootFolder","IsAvailableOffline","$fileUpload","uploadedFiles","upload","Spinner","response","folder","isImage","MimeType","Metrics","s","m","l","o","tmp","SizeS","SizeM","SizeL","SizeOriginal","Folders","numberOfFilesHandled","numberOfFiles","concat","event","OnUploadError","selectedFormOID","selectedForm","parseTextWithPlaceholders","match","exec","cpIdentifier","Parent","ParentOID","returnOnlyIfMatchesFound","replaceIssuePlaceholders","replaceCheckpointPlaceholders","checkpointText","replaceFunction","matchesFound","MailTemplates","FileTableProperty","onActionDropdownButtonClick","stopPropagation","hasClass","items","createActionDropdown","item","$item","onFileClick","FileWindow","updateFileInformation","$fileRow","$tbody","$row","renderFilesTableBody","files","renderFilesTable","newFileRow","renderFilesTableBodyRow","UnbindEvents","identifiers","IsValidGuid"],"mappings":"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","file":"modifications.min.js","sourcesContent":["(function (global) {\r\n global.PropertyTypes = {\r\n Group: 0,\r\n TextLine: 1,\r\n TextMemo: 2,\r\n Number: 3,\r\n ResettableButton: 4,\r\n RichTextField: 5,\r\n Buttons: 6,\r\n Checkbox: 7,\r\n FileTable: 8\r\n };\r\n})(Modifications.Pages || (Modifications.Pages = {}));","(function (global) {\r\n var PopupBase = function (options) {\r\n if (this.constructor === PopupBase) {\r\n throw new Error('This class cannot be instanciated.')\r\n }\r\n\r\n if (!options.ID) {\r\n throw new Error('No Popup ID given!');\r\n }\r\n\r\n if (!options.Buttons) {\r\n options.Buttons = {\r\n Close: {\r\n Caption: i18next.t('misc.close'),\r\n OnClick: this.Close\r\n }\r\n };\r\n }\r\n\r\n if (options.Buttons.No && !(options.Buttons.No.OnClick instanceof Function)) {\r\n options.Buttons.No.OnClick = this.Close;\r\n }\r\n\r\n this.options = options;\r\n\r\n initStyles.call(this);\r\n };\r\n\r\n function initStyles() {\r\n this.options.Styles = this.options.Styles || {};\r\n this.options.Styles['_'] = this.options.Styles['_'] || {};\r\n this.options.Styles['_']['z-index'] = this.options.Styles['_']['z-index'] || 1;\r\n\r\n if (this.options.ShowOverlay) {\r\n this.options.Styles['_']['z-index']++;\r\n }\r\n\r\n if (!this.options.Styles['_'].top) {\r\n this.options.Styles['_'].top = '50%';\r\n }\r\n\r\n if (!this.options.Styles['_'].left) {\r\n this.options.Styles['_'].left = '50%';\r\n }\r\n }\r\n\r\n PopupBase.prototype.Show = function () {\r\n init.call(this);\r\n bindEvents.call(this);\r\n applyStyles.call(this);\r\n resizeWindow.call(this);\r\n this.BindAdditionalEvents();\r\n this.OnAfterRendered();\r\n };\r\n\r\n PopupBase.prototype.Close = close;\r\n\r\n function init() {\r\n var $clientBody = $('body');\r\n var markup = createMarkup.call(this);\r\n\r\n if (this.options.ShowOverlay) {\r\n var overlayMarkup = createOverlayMarkup.call(this);\r\n\r\n $clientBody.append(overlayMarkup);\r\n\r\n this.$overlay = $('#' + this.options.ID + '-overlay');\r\n }\r\n\r\n $clientBody.append(markup);\r\n\r\n this.$window = $('#' + this.options.ID);\r\n this.$top = this.$window.find('.top');\r\n this.$content = this.$window.find('.content');\r\n this.$bottom = this.$window.find('.bottom');\r\n }\r\n\r\n function createOverlayMarkup() {\r\n return [\r\n '
'\r\n ].join('');\r\n }\r\n\r\n function createMarkup() {\r\n var html = [\r\n '
',\r\n '

',\r\n '', this.options.Title, '',\r\n '
',\r\n '

',\r\n '
',\r\n this.CreateContentMarkup(),\r\n '
',\r\n '
',\r\n '
'\r\n ];\r\n\r\n for (var attr in this.options.Buttons) {\r\n var button = this.options.Buttons[attr];\r\n var cssClass = 'btn-' + attr[0].toLowerCase() + attr.substring(1);\r\n\r\n if ((button.AdditionalClasses || []).length) {\r\n cssClass += ' ' + (button.AdditionalClasses || []).join(' ');\r\n }\r\n\r\n html.push(\r\n '
',\r\n button.Caption,\r\n '
',\r\n );\r\n\r\n if (button.FlexDummyAfter) {\r\n html.push('
');\r\n }\r\n }\r\n\r\n html.push(\r\n '
',\r\n '
',\r\n '
'\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function unbindEvents() {\r\n $(window).off('resize.' + this.options.ID);\r\n }\r\n\r\n function bindEvents() {\r\n unbindEvents.call(this);\r\n\r\n this.$top.find('.close')\r\n .on('click', $.proxy(close, this));\r\n\r\n var me = this;\r\n\r\n if (this.options.Buttons) {\r\n for (var attr in this.options.Buttons) {\r\n var button = this.options.Buttons[attr];\r\n\r\n if (!(button.OnClick instanceof Function)) {\r\n continue;\r\n }\r\n\r\n var $btn = this.$bottom.find('.btn-' + attr[0].toLowerCase() + attr.substring(1));\r\n\r\n $btn.on('click', function (evt) {\r\n var $btn = $(evt.currentTarget);\r\n\r\n if ($btn.attr('disabled') === 'disabled') {\r\n return;\r\n }\r\n\r\n var identifier = $btn.data('identifier');\r\n\r\n if (me.options.Buttons[identifier].OnClick instanceof Function) {\r\n me.options.Buttons[identifier].OnClick.call(me);\r\n }\r\n\r\n me.Close();\r\n });\r\n }\r\n }\r\n\r\n $(window)\r\n .on('resize.' + this.options.ID, $.proxy(resizeWindow, this));\r\n\r\n if (this.options.EnableDragging) {\r\n this.$window\r\n .draggable({\r\n handle: '.top',\r\n cancel: '.close',\r\n appendTo: 'body',\r\n scroll: false\r\n });\r\n }\r\n }\r\n\r\n function applyStyles() {\r\n if (this.options.ShowOverlay) {\r\n $('#' + this.options.ID + '-overlay')\r\n .css('z-index', this.options.Styles['_']['z-index'] - 1);\r\n }\r\n\r\n if (!this.options.Styles) {\r\n return;\r\n }\r\n\r\n for (var selector in this.options.Styles) {\r\n if (!this.options.Styles.hasOwnProperty(selector)) {\r\n continue;\r\n }\r\n\r\n var $elem = selector === '_' ?\r\n this.$window :\r\n this.$window.find(selector);\r\n\r\n var styles = this.options.Styles[selector];\r\n\r\n if (Object.values(styles).length === 0) {\r\n continue;\r\n }\r\n\r\n $elem.css(styles);\r\n }\r\n\r\n\r\n }\r\n\r\n function close() {\r\n this.$window.remove();\r\n\r\n if (this.$overlay instanceof $) {\r\n this.$overlay.remove();\r\n }\r\n\r\n unbindEvents.call(this);\r\n }\r\n\r\n function resizeWindow() {\r\n var screenHeight = $(window).height();\r\n var screenWidth = $(window).width();\r\n var width = this.$window.width();\r\n var height = this.options.ResizeToFitToContent ?\r\n getWindowHeightByContent.call(this) :\r\n this.$window.outerHeight();\r\n\r\n if (height > this.options.MaxHeight) {\r\n height = this.options.MaxHeight;\r\n }\r\n\r\n if (width > this.options.MaxWidth) {\r\n width = this.options.MaxWidth;\r\n }\r\n\r\n if ((screenHeight - 40) < height) {\r\n height = screenHeight - 40;\r\n }\r\n\r\n if ((screenWidth - 40) < width) {\r\n width = screenWidth - 40;\r\n }\r\n\r\n this.$window.css({\r\n height: height,\r\n width: width,\r\n 'margin-top': -((height + 20) / 2),\r\n 'margin-left': -((width + 20) / 2)\r\n });\r\n }\r\n\r\n function getWindowHeightByContent() {\r\n var height = parseInt(this.$window.css('border-top-width'), 10) +\r\n parseInt(this.$window.css('border-bottom-width'), 10) +\r\n this.$window.find('.top').outerHeight(true);\r\n\r\n this.$content.children().each(function (_idx, child) {\r\n var $child = $(child);\r\n\r\n height += $child.outerHeight(true);\r\n });\r\n\r\n height += this.$bottom.outerHeight(true);\r\n\r\n return height;\r\n }\r\n\r\n PopupBase.prototype.CreateContentMarkup = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n PopupBase.prototype.BindAdditionalEvents = $.noop;\r\n\r\n PopupBase.prototype.OnAfterRendered = $.noop;\r\n\r\n global.PopupBase = PopupBase;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ./_base.js\r\n */\r\n(function (global) {\r\n /**\r\n * @param options\r\n * @augments {PopupBase}\r\n * @constructor\r\n */\r\n var CheckpointFilterWindow = function (options) {\r\n if (!options.ID) {\r\n options.ID = 'checkpoint-filter-window';\r\n }\r\n\r\n if (!options.Title) {\r\n options.Title = i18next.t('changeMode.panels.checkpoints.filterWindow.windowTitle');\r\n }\r\n\r\n options.ShowOverlay = true;\r\n options.MaxHeight = 300;\r\n options.MaxWidth = 410;\r\n options.ResizeToFitToContent = true;\r\n options.Styles = {\r\n '_': {\r\n 'z-index': 13001\r\n },\r\n '.content': {\r\n padding: '1rem'\r\n },\r\n '.gfx-table': {\r\n padding: 0,\r\n 'margin-bottom': '1rem'\r\n },\r\n '.content > label': {\r\n display: 'block',\r\n },\r\n '.content > label:not(:first-child)': {\r\n 'margin-top': '1rem'\r\n }\r\n };\r\n\r\n this.Filters = options.Filters || {};\r\n\r\n global.PopupBase.call(this, options);\r\n };\r\n\r\n CheckpointFilterWindow.prototype = Object.create(global.PopupBase.prototype, {\r\n constructor: CheckpointFilterWindow\r\n });\r\n\r\n CheckpointFilterWindow.prototype.CreateContentMarkup = function () {\r\n var html = [\r\n '',\r\n '',\r\n\r\n '',\r\n '
',\r\n '
',\r\n getSelectedKeywordsText.call(this),\r\n '
',\r\n '
×
',\r\n '
',\r\n\r\n '',\r\n '
',\r\n '
',\r\n getSelectedCategoriesText.call(this),\r\n '
',\r\n '
×
',\r\n '
'\r\n ];\r\n\r\n return html.join('');\r\n };\r\n\r\n CheckpointFilterWindow.prototype.BindAdditionalEvents = function () {\r\n this.$content.find('#' + this.options.id + '-' + 'text-filter').on('input', $.proxy(onTextFilterInput, this));\r\n this.$content.find('.btn-keywords').on('click', $.proxy(onShowKeywordPicker, this));\r\n this.$content.find('.btn-keywords + .btn-reset').on('click', $.proxy(onClearKeywords, this));\r\n this.$content.find('.btn-categories').on('click', $.proxy(onShowCategoriesPicker, this));\r\n this.$content.find('.btn-categories + .btn-reset').on('click', $.proxy(onClearCategories, this));\r\n };\r\n\r\n CheckpointFilterWindow.prototype.OnAfterRendered = function () {\r\n this.$content.find('#' + this.options.id + '-' + 'text-filter')\r\n .val(this.Filters.Text)\r\n .focus();\r\n };\r\n\r\n function onTextFilterInput(evt) {\r\n this.Filters.Text = $.trim($(evt.currentTarget).val());\r\n }\r\n\r\n function getSelectedKeywordsText() {\r\n var selectedKeywords = (this.Filters.Keywords || []).filter(function (oid) {\r\n var keyword = changemode.Properties[oid];\r\n\r\n return keyword && keyword.ModificationType !== Enums.ModificationType.Deleted;\r\n });\r\n\r\n if (selectedKeywords.length) {\r\n return i18next.t('changeMode.panels.checkpoints.filterWindow.selectedKeywords', {\r\n count: selectedKeywords.length\r\n });\r\n }\r\n\r\n return i18next.t('changeMode.panels.checkpoints.filterWindow.selectKeywords');\r\n }\r\n\r\n function getSelectedCategoriesText() {\r\n var selectedCategories = (this.Filters.Categories || []).filter(function (oid) {\r\n var category = changemode.Properties[oid];\r\n\r\n return category && category.ModificationType !== Enums.ModificationType.Deleted;\r\n });\r\n\r\n if (selectedCategories.length) {\r\n return i18next.t('changeMode.panels.checkpoints.filterWindow.selectedCategories', {\r\n count: selectedCategories.length\r\n });\r\n }\r\n\r\n return i18next.t('changeMode.panels.checkpoints.filterWindow.selectCategories');\r\n }\r\n\r\n function onShowKeywordPicker(evt) {\r\n var me = this;\r\n var $btn = $(evt.currentTarget);\r\n var options = {\r\n title: i18next.t('changeMode.panels.checkpoints.filterWindow.selectKeywords'),\r\n checkedEntities: this.Filters.Keywords,\r\n onApply: function (keywords) {\r\n me.Filters.Keywords = keywords;\r\n $btn.text(getSelectedKeywordsText.call(me));\r\n },\r\n treeOptions: {\r\n schema: {id: 'OID', text: 'Title', children: 'Children'},\r\n opened: true,\r\n checkbox: {fullrow: true},\r\n filter: function (entity) {\r\n return entity.ModificationType !== Enums.ModificationType.Deleted;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(changemode.Keywords, options);\r\n }\r\n\r\n function onShowCategoriesPicker(evt) {\r\n var me = this;\r\n var $btn = $(evt.currentTarget);\r\n var options = {\r\n title: i18next.t('changeMode.panels.checkpoints.filterWindow.selectCategories'),\r\n checkedEntities: this.Filters.Categories,\r\n onApply: function (categories) {\r\n me.Filters.Categories = categories;\r\n $btn.text(getSelectedCategoriesText.call(me));\r\n },\r\n treeOptions: {\r\n schema: {id: 'OID', text: 'Title', children: 'Children'},\r\n opened: true,\r\n checkbox: {fullrow: true},\r\n filter: function (entity) {\r\n return entity.ModificationType !== Enums.ModificationType.Deleted;\r\n }\r\n }\r\n };\r\n\r\n TreePicker.Show(changemode.Categories, options);\r\n }\r\n\r\n function onClearKeywords(evt) {\r\n this.Filters.Keywords = null;\r\n\r\n var $btnSelectKeywords = $(evt.currentTarget).siblings('.btn-keywords');\r\n $btnSelectKeywords.text(getSelectedKeywordsText.call(this));\r\n }\r\n\r\n function onClearCategories(evt) {\r\n this.Filters.Categories = null;\r\n\r\n var $btnSelectKeywords = $(evt.currentTarget).siblings('.btn-categories');\r\n $btnSelectKeywords.text(getSelectedCategoriesText.call(this));\r\n }\r\n\r\n global.CheckpointFilterWindow = CheckpointFilterWindow;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ./_base.js\r\n */\r\n(function (global) {\r\n var ElementCodingsWindow = function (id, elementCodings, forms, onSelectCoding) {\r\n if (!id) {\r\n id = 'element-codings';\r\n }\r\n\r\n this.ID = id;\r\n this.SearchResult = [];\r\n this.ElementCodings = elementCodings;\r\n this.Forms = forms;\r\n this.OnSelectCoding = onSelectCoding;\r\n };\r\n\r\n function show(selectedCodingOID) {\r\n if ($('#' + this.ID).length > 0) {\r\n return;\r\n }\r\n\r\n initPlaceholders.call(this, selectedCodingOID);\r\n\r\n var windowMarkup = getWindowMarkup.call(this);\r\n $('body').append(windowMarkup);\r\n\r\n initWindow.call(this);\r\n bindEvents.call(this);\r\n resizeWindow.call(this);\r\n\r\n return this;\r\n }\r\n\r\n function initWindow() {\r\n this.$window = $('#' + this.ID);\r\n this.$header = this.$window.find('h1');\r\n this.$footer = this.$window.find('.bottom');\r\n\r\n this.$search = this.$window.find('.search');\r\n this.$prefixesList = this.$window.find('.prefixes-list');\r\n this.$availableElementCodingsList = this.$window.find('.available-codings');\r\n\r\n initSearch.call(this);\r\n }\r\n\r\n function initPlaceholders(selectedCodingOID) {\r\n var me = this;\r\n\r\n me.ElementCodings.sort(sortByPrefix);\r\n me.ElementCodingsMap = {};\r\n me.ElementCodings.forEach(function (coding) {\r\n if (!!selectedCodingOID && coding.OID === selectedCodingOID) {\r\n me.CurrentlySelectedPrefix = coding;\r\n }\r\n\r\n me.ElementCodingsMap[coding.OID] = coding;\r\n });\r\n\r\n if (!me.CurrentlySelectedPrefix) {\r\n me.CurrentlySelectedPrefix = me.ElementCodings[0];\r\n }\r\n }\r\n\r\n function initSearch() {\r\n var searchOptions = {\r\n placeholder: i18next.t('changeMode.elementCodings.window.search')\r\n };\r\n\r\n this.Search = this.$search\r\n .search(searchOptions)\r\n .search(true);\r\n }\r\n\r\n function getWindowMarkup() {\r\n return [\r\n '
',\r\n '

',\r\n '', i18next.t('changeMode.elementCodings.window.title'), '',\r\n '',\r\n '

',\r\n\r\n '
',\r\n '
',\r\n '
',\r\n '

',\r\n i18next.t('changeMode.elementCodings.window.infoText'),\r\n '

',\r\n '
',\r\n '
',\r\n\r\n '
',\r\n '
',\r\n '
',\r\n '
    ',\r\n getPrefixesListMarkup.call(this),\r\n '
',\r\n '
',\r\n getElementCodingsListMarkup.call(this),\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n\r\n '
',\r\n '
',\r\n '
',\r\n i18next.t('changeMode.elementCodings.window.close'),\r\n '
',\r\n '
',\r\n '
'\r\n ].join('');\r\n }\r\n\r\n function unbindEvents() {\r\n this.$header.off('click');\r\n this.$footer.find('.btn-close').off('click');\r\n\r\n this.$search.off('.search');\r\n this.$prefixesList.off('click');\r\n\r\n $(window).off('resize.resizeElementCodingsWindow');\r\n }\r\n\r\n function bindEvents() {\r\n unbindEvents.call(this);\r\n\r\n this.$header.find('.close').on('click', $.proxy(close, this));\r\n this.$footer.find('.btn-close').on('click', $.proxy(close, this));\r\n\r\n this.$prefixesList.on('click', 'li:not(.selected)', $.proxy(onClickPrefixListItem, this));\r\n\r\n this.$search\r\n .on('search.search', $.proxy(onSearchFunction, this))\r\n .on('select-previous-result.search select-next-result.search', $.proxy(onSelectPreviousOrNextFunction, this));\r\n\r\n $(window)\r\n .on('resize.resizeElementCodingsWindow', $.proxy(resizeWindow, this));\r\n\r\n this.$window\r\n .draggable({\r\n handle: '.top',\r\n cancel: '.close',\r\n appendTo: 'body',\r\n scroll: false\r\n });\r\n\r\n if (this.OnSelectCoding instanceof Function) {\r\n this.$availableElementCodingsList.on('click', 'li[data-codingident]', $.proxy(onSelectCoding, this));\r\n }\r\n }\r\n\r\n function getPrefixesListMarkup() {\r\n return this.ElementCodings\r\n .sort(sortByPrefix)\r\n .map($.proxy(createPrefixesListItem, this))\r\n .join('');\r\n }\r\n\r\n function sortByPrefix(a, b) {\r\n return Tools.SortStringArray(a.Prefix, b.Prefix);\r\n }\r\n\r\n function createPrefixesListItem(elementCoding) {\r\n var isSelected = elementCoding === this.CurrentlySelectedPrefix;\r\n var isSearchResult = Tools.contains(this.SearchResult, elementCoding.Prefix, 'Prefix');\r\n var innerHtml = isSearchResult ?\r\n elementCoding.Prefix.replace(this.SearchRegExp, '$1') :\r\n elementCoding.Prefix;\r\n\r\n return isSelected ?\r\n '
  • {1}
  • '.format(elementCoding.OID, innerHtml) :\r\n '
  • {1}
  • '.format(elementCoding.OID, innerHtml);\r\n }\r\n\r\n function onClickPrefixListItem(evt) {\r\n var $this = $(evt.currentTarget);\r\n var oid = $this.data('oid');\r\n\r\n this.CurrentlySelectedPrefix = this.ElementCodingsMap[oid];\r\n\r\n this.$prefixesList.children('.selected').removeClass('selected');\r\n $this.addClass('selected');\r\n\r\n var listMarkup = getElementCodingsListMarkup.call(this);\r\n\r\n this.$availableElementCodingsList.html(listMarkup);\r\n }\r\n\r\n function getElementCodingsListMarkup() {\r\n var html = [];\r\n var me = this;\r\n\r\n if (me.CurrentlySelectedPrefix) {\r\n html.push(\r\n '

    ', me.CurrentlySelectedPrefix.Prefix, '

    ',\r\n !!me.CurrentlySelectedPrefix.Description ?\r\n '

    ' + me.CurrentlySelectedPrefix.Description + '

    ' :\r\n ''\r\n );\r\n\r\n var linkedForms = me.Forms.filter(function (form) {\r\n return form.CodingOID === me.CurrentlySelectedPrefix.OID;\r\n });\r\n\r\n linkedForms.sort(Tools.SortByTitle);\r\n\r\n var currentMax = linkedForms.reduce(function (currentMax, form) {\r\n return currentMax > form.CodingIdent ? currentMax : form.CodingIdent;\r\n }, 0);\r\n\r\n var newIdent = Tools.element.formatElementCodingIdent(currentMax + 1);\r\n var createNewIdentText = i18next.t('changeMode.elementCodings.window.createNewIdent', {\r\n newIdentNumber: newIdent\r\n });\r\n\r\n html.push(\r\n ''\r\n );\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function createExistingFormCodingItemMarkup(form) {\r\n var formHierarchy = Tools.element.getElementPath(form.OID, true, [Enums.elementType.Form]);\r\n var formCodingIdent = Tools.element.formatElementCodingIdent(form.CodingIdent);\r\n\r\n var html = [\r\n '
  • ',\r\n '', form.Title, ' (', formCodingIdent, ')', '',\r\n !!formHierarchy ? '

    ' + formHierarchy + '

    ' : '',\r\n '
  • '\r\n ];\r\n\r\n return html.join('');\r\n }\r\n\r\n function selectPrefixesSearchResult(selectedResult) {\r\n var idx = (selectedResult || 1) - 1;\r\n\r\n if (idx >= this.SearchResult.length) {\r\n return;\r\n }\r\n\r\n var selectedSearchResult = this.SearchResult[idx];\r\n var $children = this.$prefixesList.children();\r\n var $selectedSearchResult = $children.filter('[data-oid=\"{0}\"]'.format(selectedSearchResult.OID));\r\n\r\n $children\r\n .filter('.selected-search-result')\r\n .removeClass('selected-search-result');\r\n\r\n $selectedSearchResult.addClass('selected-search-result');\r\n $selectedSearchResult.get(0).scrollIntoView();\r\n }\r\n\r\n function onSearchFunction(_event, data) {\r\n var me = this;\r\n var searchText = (data.input || '')\r\n .trim()\r\n .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\r\n\r\n if (searchText) {\r\n me.SearchRegExp = new RegExp('(' + searchText + ')', 'ig');\r\n\r\n me.SearchResult = Object.values(me.ElementCodingsMap).filter(function (fn) {\r\n me.SearchRegExp.lastIndex = 0;\r\n\r\n return me.SearchRegExp.test(fn.Prefix);\r\n });\r\n\r\n me.Search.setResultCount(me.SearchResult.length);\r\n } else {\r\n me.SearchRegExp = null;\r\n me.SearchResult = [];\r\n me.Search.setResultCount(0);\r\n }\r\n\r\n var listMarkup = getPrefixesListMarkup.call(me);\r\n\r\n me.$prefixesList.html(listMarkup);\r\n\r\n selectPrefixesSearchResult.call(me);\r\n }\r\n\r\n function onSelectPreviousOrNextFunction(_event, data) {\r\n selectPrefixesSearchResult.call(this, data.selectedResult);\r\n }\r\n\r\n function onSelectCoding(evt) {\r\n var $li = $(evt.currentTarget);\r\n var codingIdent = $li.data('codingident');\r\n\r\n this.OnSelectCoding(this.CurrentlySelectedPrefix.OID, codingIdent);\r\n }\r\n\r\n function resizeWindow() {\r\n var screenHeight = $(window).height();\r\n var height = 600;\r\n\r\n if ((screenHeight - 40) < height) {\r\n height = screenHeight - 40;\r\n }\r\n\r\n this.$window.css({\r\n height: height,\r\n 'margin-top': -((height + 20) / 2)\r\n });\r\n }\r\n\r\n function close() {\r\n this.$window.remove();\r\n\r\n unbindEvents.call(this);\r\n }\r\n\r\n ElementCodingsWindow.prototype.Show = show;\r\n ElementCodingsWindow.prototype.Close = close;\r\n\r\n if (!global.System) {\r\n global.System = {};\r\n }\r\n\r\n global.System.ElementCodingsWindow = ElementCodingsWindow;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ./_base.js\r\n */\r\n(function (global) {\r\n var MailTemplatePlaceholdersWindow = function (id, dropZoneSelector, form) {\r\n if (!id) {\r\n id = 'mail-template-placeholders';\r\n }\r\n\r\n this.ID = id;\r\n\r\n if (!!dropZoneSelector) {\r\n this.DropZoneSelector = dropZoneSelector;\r\n this.$dropZoneElements = $(dropZoneSelector);\r\n }\r\n\r\n this.Form = form;\r\n this.SearchResult = [];\r\n };\r\n\r\n function show() {\r\n if ($('#' + this.ID).length > 0) {\r\n return;\r\n }\r\n\r\n initPlaceholders.call(this);\r\n\r\n var windowMarkup = getWindowMarkup.call(this);\r\n $('body').append(windowMarkup);\r\n\r\n initWindow.call(this);\r\n bindEvents.call(this);\r\n resizeWindow.call(this);\r\n\r\n return this;\r\n }\r\n\r\n function initWindow() {\r\n this.$window = $('#' + this.ID);\r\n this.$header = this.$window.find('h1');\r\n this.$footer = this.$window.find('.bottom');\r\n\r\n this.$search = this.$window.find('.search');\r\n this.$placeHoldersList = this.$window.find('.list');\r\n this.$placeHoldersDescription = this.$window.find('.description');\r\n\r\n initSearch.call(this);\r\n }\r\n\r\n function initPlaceholders() {\r\n var me = this;\r\n\r\n me.PlaceHoldersList = getFormParameterPlaceholders.call(me);\r\n\r\n var maxPosition = me.PlaceHoldersList.length > 0\r\n ? me.PlaceHoldersList.reduce(function (max, group) {\r\n return max > group.position ? max : group.position;\r\n }, -1)\r\n : -1;\r\n\r\n me.PlaceHoldersList.push(\r\n {\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issuePlaceholders.title'),\r\n position: ++maxPosition,\r\n children: [\r\n {\r\n name: 'IssueCreatorName',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueCreatorName.title'),\r\n description: getIssuePlaceholderDescription('issueCreatorName')\r\n },\r\n {\r\n name: 'IssueCreationTimestamp',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueCreationTimestamp.title'),\r\n description: getIssuePlaceholderDescription('issueCreationTimestamp')\r\n },\r\n {\r\n name: 'IssueEditorName',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueEditorName.title'),\r\n description: getIssuePlaceholderDescription('issueEditorName')\r\n },\r\n {\r\n name: 'IssueModificationTimestamp',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueModificationTimestamp.title'),\r\n description: getIssuePlaceholderDescription('issueModificationTimestamp')\r\n },\r\n {\r\n name: 'IssueTitle',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueTitle.title'),\r\n description: getIssuePlaceholderDescription('issueTitle')\r\n },\r\n {\r\n name: 'IssueDescription',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueDescription.title'),\r\n description: getIssuePlaceholderDescription('issueDescription')\r\n },\r\n {\r\n name: 'IssueLocationTitle',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueLocationTitle.title'),\r\n description: getIssuePlaceholderDescription('issueLocationTitle')\r\n },\r\n {\r\n name: 'IssueType',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueType.title'),\r\n description: getIssuePlaceholderDescription('issueType')\r\n },\r\n {\r\n name: 'IssueFormTitle',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueFormTitle.title'),\r\n description: getIssuePlaceholderDescription('issueFormTitle')\r\n },\r\n {\r\n name: 'IssueDeadlineTimestamp',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueDeadlineTimestamp.title'),\r\n description: getIssuePlaceholderDescription('issueDeadlineTimestamp')\r\n },\r\n {\r\n name: 'IssueStateTitle',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueStateTitle.title'),\r\n description: getIssuePlaceholderDescription('issueStateTitle')\r\n },\r\n {\r\n name: 'IssuePriorityTitle',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issuePriorityTitle.title'),\r\n description: getIssuePlaceholderDescription('issuePriorityTitle')\r\n },\r\n {\r\n name: 'IssueId',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueId.title'),\r\n description: getIssuePlaceholderDescription('issueId')\r\n },\r\n {\r\n name: 'IssueRevision',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.issueRevision.title'),\r\n description: getIssuePlaceholderDescription('issueRevision')\r\n },\r\n {\r\n name: 'OpenRecordingLink',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.openRecording.title'),\r\n description: getIssuePlaceholderDescription('openRecording')\r\n }\r\n ]\r\n });\r\n\r\n if (me.Form && me.Form.IsInvestigation) {\r\n me.PlaceHoldersList.push({\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.investigationPlaceholders.title'),\r\n position: ++maxPosition,\r\n children: [\r\n {\r\n name: 'OpenInvestigationLink',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.openInvestigationLink.title'),\r\n description: getPlaceholderDescription('investigationPlaceholders', 'openInvestigationLink')\r\n }\r\n ]\r\n });\r\n }\r\n\r\n if (me.Form && Tools.IsContactModuleAvailable()) {\r\n me.PlaceHoldersList.push({\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.sharedCorrectiveActionsPlaceholders.title'),\r\n position: ++maxPosition,\r\n children: [\r\n {\r\n name: 'OpenSharedCorrectiveActionsLink',\r\n title: i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.openSharedCorrectiveActionsLink.title'),\r\n description: getPlaceholderDescription('sharedCorrectiveActionsPlaceholders', 'openSharedCorrectiveActionsLink')\r\n }\r\n ]\r\n });\r\n }\r\n\r\n me.PlaceHoldersList.sort(sortByPositionAndTitle);\r\n\r\n me.PlaceHoldersMap = {};\r\n me.PlaceHoldersList\r\n .filter(function (group) {\r\n return (group.children || []).length;\r\n })\r\n .forEach(function (group) {\r\n group.children\r\n .filter(function (fn) {\r\n return !!fn.name;\r\n })\r\n .forEach(function (fn) {\r\n me.PlaceHoldersMap[fn.name.toLowerCase()] = fn;\r\n });\r\n });\r\n\r\n this.CurrentlySelectedPlaceholder = this.PlaceHoldersList[0].children[0];\r\n }\r\n\r\n function initSearch() {\r\n var searchOptions = {\r\n placeholder: i18next.t('changeMode.mailTemplates.placeholdersWindow.search')\r\n };\r\n\r\n this.Search = this.$search\r\n .search(searchOptions)\r\n .search(true);\r\n }\r\n\r\n function getIssuePlaceholderDescription(key) {\r\n return getPlaceholderDescription('issuePlaceholders', key);\r\n }\r\n\r\n function getPlaceholderDescription(groupKey, placeholderKey) {\r\n if (!groupKey || !placeholderKey) {\r\n return null;\r\n }\r\n\r\n groupKey[0] = groupKey[0].toLowerCase();\r\n placeholderKey[0] = placeholderKey[0].toLowerCase();\r\n\r\n var description = '' +\r\n i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.' + groupKey + '.title') +\r\n '';\r\n\r\n description += '

    ' +\r\n i18next.t(\r\n 'changeMode.mailTemplates.placeholdersWindow.placeholders.' +\r\n placeholderKey +\r\n '.description'\r\n );\r\n\r\n return description;\r\n }\r\n\r\n function getFormParameterPlaceholders() {\r\n if (!this.Form || !(this.Form.Parametergroups || []).length) {\r\n return [];\r\n }\r\n\r\n var me = this;\r\n\r\n me.Checkpoints = {};\r\n\r\n return this.Form.Parametergroups\r\n .filter(function (group) {\r\n return group.Enabled &&\r\n group.ModificationType !== Enums.ModificationType.Deleted &&\r\n (group.Parameters || []).length > 0;\r\n })\r\n .map(function (group) {\r\n return {\r\n title: group.Title,\r\n position: group.Position,\r\n children: group.Parameters\r\n .filter(function (param) {\r\n return param.Enabled &&\r\n param.ModificationType !== Enums.ModificationType.Deleted &&\r\n param.Type !== Enums.elementType.Info;\r\n })\r\n .map(function (param) {\r\n me.Checkpoints[param.OID] = param;\r\n\r\n var description = '' +\r\n i18next.t('changeMode.mailTemplates.placeholdersWindow.checkpointGroup') +\r\n ': ' +\r\n group.Title +\r\n '';\r\n\r\n if (!!param.Description) {\r\n description += '

    ' + param.Description;\r\n }\r\n\r\n return {\r\n name: 'CP_' + param.OID,\r\n title: $.trim(param.Title),\r\n description: description,\r\n position: param.Position\r\n };\r\n })\r\n };\r\n });\r\n }\r\n\r\n function getWindowMarkup() {\r\n return [\r\n '
    ',\r\n '

    ',\r\n '', i18next.t('changeMode.mailTemplates.placeholdersWindow.title'), '',\r\n '',\r\n '

    ',\r\n\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '

    ',\r\n i18next.t('changeMode.mailTemplates.placeholdersWindow.infoText'),\r\n '

    ',\r\n '
    ',\r\n '
    ',\r\n\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
      ',\r\n getPlaceholdersListMarkup.call(this),\r\n '
    ',\r\n '
    ',\r\n getPlaceholderDescriptionMarkup.call(this),\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n i18next.t('changeMode.mailTemplates.placeholdersWindow.close'),\r\n '
    ',\r\n '
    ',\r\n '
    '\r\n ].join('');\r\n }\r\n\r\n function unbindEvents() {\r\n this.$header.off('click');\r\n this.$footer.find('.btn-close').off('click');\r\n\r\n this.$search.off('.search');\r\n this.$placeHoldersList.off('click');\r\n\r\n $(window).off('resize.resizeMailTemplatePlaceholdersWindow');\r\n\r\n if (this.$dropZoneElements instanceof $) {\r\n this.$placeHoldersList.find('li')\r\n .off('dragstart')\r\n .off('dragend');\r\n\r\n unbindDropZoneEvents.call(this);\r\n }\r\n }\r\n\r\n function unbindDropZoneEvents() {\r\n if (this.$dropZoneElements instanceof $) {\r\n this.$dropZoneElements\r\n .off('dragover')\r\n .off('drop');\r\n }\r\n }\r\n\r\n function bindEvents() {\r\n unbindEvents.call(this);\r\n\r\n this.$header.find('.close').on('click', $.proxy(close, this));\r\n this.$footer.find('.btn-close').on('click', $.proxy(close, this));\r\n\r\n this.$placeHoldersList.on('click', 'li:not(.item-header):not(.selected)', $.proxy(onClickPlaceholdersListItem, this));\r\n\r\n this.$search\r\n .on('search.search', $.proxy(onSearchFunction, this))\r\n .on('select-previous-result.search select-next-result.search', $.proxy(onSelectPreviousOrNextFunction, this));\r\n\r\n $(window)\r\n .on('resize.resizeMailTemplatePlaceholdersWindow', $.proxy(resizeWindow, this));\r\n\r\n this.$window\r\n .draggable({\r\n handle: '.top',\r\n cancel: '.close',\r\n appendTo: 'body',\r\n scroll: false\r\n });\r\n\r\n if (this.$dropZoneElements instanceof $) {\r\n this.$placeHoldersList.find('li')\r\n .on('dragstart', $.proxy(onDragStart, this))\r\n .on('dragend', $.proxy(onDragEnd, this));\r\n }\r\n }\r\n\r\n function bindDropZoneEvents() {\r\n if (!this.DropZoneSelector) {\r\n return;\r\n }\r\n\r\n unbindDropZoneEvents.call(this);\r\n\r\n this.$dropZoneElements = $(this.DropZoneSelector);\r\n\r\n if (this.$dropZoneElements instanceof $) {\r\n this.$dropZoneElements\r\n .on('dragover', $.proxy(onDragOver, this))\r\n .on('drop', $.proxy(onDrop, this));\r\n }\r\n }\r\n\r\n function onDragStart(evt) {\r\n var me = this;\r\n\r\n bindDropZoneEvents.call(me);\r\n\r\n me.DraggedListItem = evt.currentTarget;\r\n me.DraggedListItem.style.fontWeight = 'bold';\r\n\r\n evt.originalEvent.dataTransfer.effectAllowed = 'move';\r\n evt.originalEvent.dataTransfer.setData('text/html', me.outerHTML);\r\n\r\n me.$dragOverlay = $('
    ');\r\n $('body').append(me.$dragOverlay);\r\n\r\n me.$dropZoneElements.addClass('drop-visible');\r\n\r\n if (changemode.CurrentPage && changemode.CurrentPage.CurrentTab) {\r\n Object.values(changemode.CurrentPage.CurrentTab.PropertyMap)\r\n .filter(function (pageProperty) {\r\n return pageProperty.Type === Modifications.Pages.PropertyTypes.RichTextField &&\r\n pageProperty.Editor;\r\n })\r\n .forEach(function (pageProperty) {\r\n pageProperty.Editor.onDrop = function () {\r\n onDropToRichTextField.call(me, pageProperty);\r\n };\r\n });\r\n }\r\n }\r\n\r\n function onDragOver(evt) {\r\n if (evt.preventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n evt.originalEvent.dataTransfer.dropEffect = 'move';\r\n\r\n return false;\r\n }\r\n\r\n function onDragEnd() {\r\n this.DraggedListItem.style.fontWeight = 'normal';\r\n\r\n if (this.$dragOverlay) {\r\n this.$dragOverlay.remove();\r\n this.$dragOverlay = null;\r\n }\r\n\r\n this.$dropZoneElements.removeClass('drop-visible');\r\n }\r\n\r\n function onDrop(evt) {\r\n if (this.DraggedListItem == null) {\r\n return;\r\n }\r\n\r\n var $targetControl = $(evt.currentTarget);\r\n var $targetItem = $targetControl.parents('.item');\r\n var pageProperty = changemode.CurrentPage && changemode.CurrentPage.CurrentTab ?\r\n changemode.CurrentPage.CurrentTab.PropertyMap[$targetItem.attr('id')] :\r\n null;\r\n\r\n if (!pageProperty) {\r\n return;\r\n }\r\n\r\n switch (pageProperty.Type) {\r\n case Modifications.Pages.PropertyTypes.TextLine:\r\n case Modifications.Pages.PropertyTypes.TextMemo:\r\n onDropToTextField.call(this, $targetControl);\r\n break;\r\n }\r\n\r\n this.DraggedListItem.style.fontWeight = 'normal';\r\n\r\n if (this.$dragOverlay) {\r\n this.$dragOverlay.remove();\r\n this.$dragOverlay = null;\r\n }\r\n\r\n this.$dropZoneElements.removeClass('drop-visible');\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n function createPlaceholderText() {\r\n if (!this.DraggedListItem) {\r\n return null;\r\n }\r\n\r\n var name = this.DraggedListItem.dataset.name;\r\n\r\n if (!name) {\r\n return null;\r\n }\r\n\r\n return '{{' + name + '}}';\r\n }\r\n\r\n function onDropToTextField($targetControl) {\r\n if (!($targetControl instanceof $)) {\r\n return null;\r\n }\r\n\r\n var name = this.DraggedListItem ? (this.DraggedListItem.dataset.name || '') : '';\r\n\r\n if (name.indexOf('CP_') === 0) {\r\n var oid = name.substr(3);\r\n var checkpoint = this.Checkpoints[oid]\r\n\r\n if (!checkpoint ||\r\n checkpoint.Type === Enums.elementType.Photo ||\r\n checkpoint.Type === Enums.elementType.Signature) {\r\n return null;\r\n }\r\n }\r\n\r\n var placeholderText = createPlaceholderText.call(this);\r\n\r\n if (!placeholderText) {\r\n return null;\r\n }\r\n\r\n var cursorPos = $targetControl.prop('selectionStart');\r\n var currentValue = $targetControl.val();\r\n var textBefore = currentValue.substring(0, cursorPos);\r\n var textAfter = currentValue.substring(cursorPos, currentValue.length);\r\n\r\n $targetControl.val(textBefore + placeholderText + textAfter);\r\n }\r\n\r\n function onDropToRichTextField(pageProperty) {\r\n if (!pageProperty ||\r\n !pageProperty.Type === Modifications.Pages.PropertyTypes.RichTextField ||\r\n !pageProperty.Editor) {\r\n return null;\r\n }\r\n\r\n var placeholderText = createPlaceholderText.call(this);\r\n\r\n if (!placeholderText) {\r\n return null;\r\n }\r\n\r\n pageProperty.Editor.insertHTML(placeholderText, true, false);\r\n\r\n Object.values(changemode.CurrentPage.CurrentTab.PropertyMap)\r\n .filter(function (pageProperty) {\r\n return pageProperty.Type === Modifications.Pages.PropertyTypes.RichTextField &&\r\n pageProperty.Editor;\r\n })\r\n .forEach(function (pageProperty) {\r\n pageProperty.Editor.onDrop = null;\r\n });\r\n\r\n this.DraggedListItem.style.fontWeight = 'normal';\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n\r\n return null;\r\n }\r\n\r\n function getPlaceholdersListMarkup() {\r\n return this.PlaceHoldersList\r\n .sort(sortByPositionAndTitle)\r\n .map($.proxy(createPlaceholdersListGroup, this))\r\n .join('');\r\n }\r\n\r\n function createPlaceholdersListGroup(group) {\r\n return [\r\n '
  • ', group.title, '
  • ',\r\n (group.children || [])\r\n .sort(sortByPositionAndTitle)\r\n .map($.proxy(createPlaceholdersListItem, this))\r\n .join('')\r\n ].join('');\r\n }\r\n\r\n function sortByPositionAndTitle(a, b) {\r\n if (a.position !== b.position) {\r\n return a.position - b.position;\r\n }\r\n\r\n return Tools.SortStringArray(a.title, b.title);\r\n }\r\n\r\n function createPlaceholdersListItem(placeholder) {\r\n var isSelected = placeholder === this.CurrentlySelectedPlaceholder;\r\n var isSearchResult = Tools.contains(this.SearchResult, placeholder.name, 'name');\r\n var nameIsSearchResult = isSearchResult && this.SearchRegExp.test(placeholder.name);\r\n var innerHtml = isSearchResult && !nameIsSearchResult ?\r\n placeholder.title.replace(this.SearchRegExp, '$1') :\r\n placeholder.title;\r\n\r\n if (this.SearchRegExp) {\r\n this.SearchRegExp.lastIndex = 0;\r\n }\r\n\r\n if (nameIsSearchResult) {\r\n innerHtml = '' + placeholder.title + '';\r\n }\r\n\r\n return isSelected ?\r\n '
  • {1}
  • '.format(placeholder.name, innerHtml) :\r\n '
  • {1}
  • '.format(placeholder.name, innerHtml);\r\n }\r\n\r\n function onClickPlaceholdersListItem(evt) {\r\n var $this = $(evt.currentTarget);\r\n var name = $this.data('name').toLowerCase();\r\n\r\n this.CurrentlySelectedPlaceholder = this.PlaceHoldersMap[name];\r\n\r\n this.$placeHoldersList.children('.selected').removeClass('selected');\r\n $this.addClass('selected');\r\n\r\n var placeholderDescription = getPlaceholderDescriptionMarkup.call(this);\r\n\r\n this.$placeHoldersDescription.html(placeholderDescription);\r\n }\r\n\r\n function getPlaceholderDescriptionMarkup() {\r\n var html = [];\r\n\r\n if (this.CurrentlySelectedPlaceholder) {\r\n html.push(\r\n '

    ', this.CurrentlySelectedPlaceholder.title, '

    ',\r\n this.CurrentlySelectedPlaceholder.description || ''\r\n );\r\n }\r\n\r\n return html.join('');\r\n }\r\n\r\n function selectPlaceholdersSearchResult(selectedResult) {\r\n var idx = (selectedResult || 1) - 1;\r\n\r\n if (idx >= this.SearchResult.length) {\r\n return;\r\n }\r\n\r\n var selectedSearchResult = this.SearchResult[idx];\r\n var $children = this.$placeHoldersList.children();\r\n var $selectedSearchResult = $children.filter('[data-name=\"{0}\"]'.format(selectedSearchResult.name));\r\n\r\n $children\r\n .filter('.selected-search-result')\r\n .removeClass('selected-search-result');\r\n\r\n $selectedSearchResult.addClass('selected-search-result');\r\n $selectedSearchResult.get(0).scrollIntoView();\r\n }\r\n\r\n function onSearchFunction(_event, data) {\r\n var me = this;\r\n var searchText = (data.input || '')\r\n .trim()\r\n .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\r\n\r\n if (searchText) {\r\n me.SearchRegExp = new RegExp('(' + searchText + ')', 'ig');\r\n\r\n me.SearchResult = Object.values(me.PlaceHoldersMap)\r\n .filter(function (fn) {\r\n me.SearchRegExp.lastIndex = 0;\r\n\r\n return me.SearchRegExp.test(fn.title) || me.SearchRegExp.test(fn.name);\r\n })\r\n .sort(sortByPositionAndTitle);\r\n\r\n me.Search.setResultCount(me.SearchResult.length);\r\n } else {\r\n me.SearchRegExp = null;\r\n me.SearchResult = [];\r\n me.Search.setResultCount(0);\r\n }\r\n\r\n var listMarkup = getPlaceholdersListMarkup.call(me);\r\n\r\n me.$placeHoldersList.html(listMarkup);\r\n\r\n selectPlaceholdersSearchResult.call(me);\r\n bindEvents.call(me);\r\n }\r\n\r\n function onSelectPreviousOrNextFunction(_event, data) {\r\n selectPlaceholdersSearchResult.call(this, data.selectedResult);\r\n }\r\n\r\n function resizeWindow() {\r\n var screenHeight = $(window).height();\r\n var height = 600;\r\n\r\n if ((screenHeight - 40) < height) {\r\n height = screenHeight - 40;\r\n }\r\n\r\n this.$window.css({\r\n height: height,\r\n 'margin-top': -((height + 20) / 2)\r\n });\r\n }\r\n\r\n function close() {\r\n this.$window.remove();\r\n\r\n unbindEvents.call(this);\r\n }\r\n\r\n MailTemplatePlaceholdersWindow.prototype.Show = show;\r\n MailTemplatePlaceholdersWindow.prototype.Close = close;\r\n\r\n if (!global.System) {\r\n global.System = {};\r\n }\r\n\r\n global.System.MailTemplatePlaceholdersWindow = MailTemplatePlaceholdersWindow;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ./_base.js\r\n */\r\n(function (global) {\r\n var MailTemplatePreview = function (options) {\r\n if (!options.ID) {\r\n options.ID = 'mail-template-preview';\r\n }\r\n\r\n if (!options.Subject && !options.Body) {\r\n throw new Error('No texts defined!');\r\n }\r\n\r\n options.Title = options.Title || i18next.t('changeMode.mailTemplates.previewWindow.title');\r\n options.ResizeToFitToContent = true;\r\n options.ShowOverlay = true;\r\n\r\n options.Styles = {\r\n '_': {\r\n 'z-index': 14001,\r\n width: 768\r\n },\r\n '.content': {\r\n overflow: 'auto',\r\n padding: '10px'\r\n },\r\n '.content > p:first-child': {\r\n margin: '0 0 1rem 0'\r\n },\r\n '.content .form-info': {\r\n 'margin-bottom': '1rem'\r\n },\r\n '.content .row': {\r\n border: '1px solid #eee',\r\n padding: 5,\r\n 'margin-top': 5\r\n },\r\n '.content .property': {\r\n 'margin-top': 0,\r\n 'font-weight': 'bold'\r\n },\r\n '.content .text': {\r\n 'margin-bottom': 0,\r\n padding: 16\r\n }\r\n };\r\n\r\n global.PopupBase.call(this, options);\r\n };\r\n\r\n MailTemplatePreview.prototype = Object.create(global.PopupBase.prototype, {\r\n constructor: MailTemplatePreview\r\n });\r\n\r\n MailTemplatePreview.prototype.CreateContentMarkup = function () {\r\n var html = [];\r\n\r\n if (this.options.IntroductionText) {\r\n html.push(\r\n '

    ',\r\n Tools.escapeHtml(this.options.IntroductionText),\r\n '

    ',\r\n );\r\n }\r\n\r\n if (this.options.CurrentForm) {\r\n html.push(\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n i18next.t('changeMode.mailTemplates.previewWindow.currentForm'),\r\n ':
    ',\r\n '
    ',\r\n Tools.escapeHtml(this.options.CurrentForm.Title),\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n i18next.t('changeMode.mailTemplates.previewWindow.newForm'),\r\n ':
    ',\r\n '
    ',\r\n this.options.NewForm ?\r\n Tools.escapeHtml(this.options.NewForm.Title) :\r\n '-/-',\r\n '
    ',\r\n '
    ',\r\n '
    '\r\n );\r\n }\r\n\r\n if (!!this.options.Subject) {\r\n html.push(\r\n '
    ',\r\n '

    ',\r\n i18next.t('changeMode.mailTemplates.previewWindow.subject'),\r\n '

    ',\r\n\r\n '

    ',\r\n Tools.escapeHtml(this.options.Subject, ['script']),\r\n '

    ',\r\n '
    '\r\n );\r\n }\r\n\r\n if (!!this.options.Body) {\r\n html.push(\r\n '
    ',\r\n '

    ',\r\n i18next.t('changeMode.mailTemplates.previewWindow.body'),\r\n '

    ',\r\n\r\n '
    ',\r\n this.options.Body,\r\n '
    ',\r\n '
    '\r\n );\r\n }\r\n\r\n return html.join('');\r\n };\r\n\r\n global.MailTemplatePreview = MailTemplatePreview;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ./_base.js\r\n */\r\n(function (global) {\r\n var ProcessConditionTimeConfiguration = function (options) {\r\n this.options = options || {};\r\n this.onApply = this.options.onApply || $.noop();\r\n\r\n if (!this.options.ID) {\r\n this.options.ID = 'process-condition-time-configuration';\r\n }\r\n\r\n this.options.Title = this.options.Title;\r\n this.options.ShowOverlay = true;\r\n\r\n if (!this.options.Buttons) {\r\n this.options.Buttons = {\r\n Close: {\r\n Caption: i18next.t('misc.abort')\r\n },\r\n Yes: {\r\n Caption: i18next.t('misc.apply'),\r\n OnClick: $.proxy(onApplyClick, this)\r\n }\r\n };\r\n }\r\n\r\n this.options.Styles = {\r\n '_': {\r\n 'z-index': 14001,\r\n width: 768\r\n },\r\n '.content': {\r\n overflow: 'auto',\r\n padding: '10px'\r\n }\r\n };\r\n\r\n initStyles.call(this);\r\n };\r\n\r\n function initStyles() {\r\n this.options.Styles = this.options.Styles || {};\r\n this.options.Styles['_'] = this.options.Styles['_'] || {};\r\n this.options.Styles['_']['z-index'] = this.options.Styles['_']['z-index'] || 1;\r\n\r\n if (this.options.ShowOverlay) {\r\n this.options.Styles['_']['z-index']++;\r\n }\r\n\r\n if (!this.options.Styles['_'].top) {\r\n this.options.Styles['_'].top = '50%';\r\n }\r\n\r\n if (!this.options.Styles['_'].left) {\r\n this.options.Styles['_'].left = '50%';\r\n }\r\n }\r\n\r\n function createContentMarkup() {\r\n var html = [];\r\n var timeConfiguration = this.options.TimeConfiguration || [];\r\n\r\n html.push(\r\n '
    ',\r\n '
    ',\r\n '

    ',\r\n i18next.t('changeMode.panels.processSettings.condition.timeConfigurationWindow.information'),\r\n '

    ',\r\n '
    ',\r\n '
    '\r\n );\r\n\r\n for (var i = 0; i < timeConfiguration.length; i++) {\r\n var time = timeConfiguration[i];\r\n var offsetAndType = getTimeOffsetAndType(time.Offset || 0);\r\n var markup = getRowMarkup(time, offsetAndType, this.options.OnlyOnStateChangeIsForced);\r\n\r\n html.push(markup);\r\n }\r\n\r\n html.push(addTimeConfigurationButtonMarkup());\r\n\r\n return html.join('');\r\n }\r\n\r\n function getRowMarkup(time, offsetAndType, onlyOnStateChangeIsForced) {\r\n var hasDayOfWeekFilter = time && time.AllowedDaysOfWeek && time.AllowedDaysOfWeek !== 0;\r\n return [\r\n '
    '.format(time.OID),\r\n '
    ',\r\n '
    ',\r\n ''.format(offsetAndType.Offset),\r\n '',\r\n '',\r\n '',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n i18next.t('changeMode.panels.processSettings.condition.timeConfigurationWindow.executeProcessOnFollowingWeekdays'),\r\n '
    ',\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n '
    ',\r\n i18next.t('changeMode.panels.processSettings.condition.timeConfigurationWindow.atLeastOneDayOfWeekRequired'),':',\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 ].join('');\r\n }\r\n\r\n function getTimeOffsetAndType(offset) {\r\n var type;\r\n if (offset && offset % 720 === 0) {\r\n offset = Math.abs(offset / 1440);\r\n type = 3;\r\n } else if (offset % 30 === 0) {\r\n offset = Math.abs(offset / 60);\r\n type = 2;\r\n } else {\r\n offset = Math.abs(offset);\r\n type = 1;\r\n }\r\n\r\n return { Type: type, Offset: offset };\r\n }\r\n\r\n function getOffsetInMinutes(offset, type) {\r\n switch (type) {\r\n case 1:\r\n return offset;\r\n case 2:\r\n return offset * 60;\r\n case 3:\r\n return offset * 1440;\r\n }\r\n }\r\n\r\n function addTimeConfigurationButtonMarkup() {\r\n return '
    + {0}
    '\r\n .format(i18next.t('changeMode.panels.processSettings.condition.timeConfigurationWindow.addSendingTimestamp'));\r\n }\r\n\r\n function createMarkup() {\r\n var html = [\r\n '
    ',\r\n '

    ',\r\n '', this.options.Title, '',\r\n '
    ',\r\n '

    ',\r\n '
    ',\r\n createContentMarkup.call(this),\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    '\r\n ];\r\n\r\n for (var attr in this.options.Buttons) {\r\n var button = this.options.Buttons[attr];\r\n var cssClass = 'btn-' + attr[0].toLowerCase() + attr.substr(1);\r\n\r\n html.push(\r\n '
    ',\r\n button.Caption,\r\n '
    ',\r\n );\r\n }\r\n\r\n html.push(\r\n '
    ',\r\n '
    ',\r\n '
    '\r\n );\r\n\r\n return html.join('');\r\n }\r\n\r\n function initWindow() {\r\n var $clientBody = $('body');\r\n var markup = createMarkup.call(this);\r\n\r\n if (this.options.ShowOverlay) {\r\n var overlayMarkup = createOverlayMarkup.call(this);\r\n\r\n $clientBody.append(overlayMarkup);\r\n\r\n this.$overlay = $('#' + this.options.ID + '-overlay');\r\n }\r\n\r\n $clientBody.append(markup);\r\n\r\n this.$window = $('#' + this.options.ID);\r\n this.$top = this.$window.find('.top');\r\n this.$content = this.$window.find('.content');\r\n this.$bottom = this.$window.find('.bottom');\r\n }\r\n\r\n function createOverlayMarkup() {\r\n return [\r\n '
    '\r\n ].join('');\r\n }\r\n\r\n function show() {\r\n if ($('#' + this.options.ID).length > 0) {\r\n return;\r\n }\r\n\r\n initWindow.call(this);\r\n applyStyles.call(this);\r\n bindEvents.call(this);\r\n resizeWindow.call(this);\r\n\r\n return this;\r\n }\r\n\r\n function bindEvents() {\r\n unbindEvents.call(this);\r\n\r\n this.$top.find('.close')\r\n .on('click', $.proxy(close, this));\r\n\r\n var me = this;\r\n\r\n if (this.options.Buttons) {\r\n if (this.options.Buttons.Close) {\r\n this.$bottom.find('.btn-close')\r\n .on('click', function () {\r\n if (me.options.Buttons.Close.OnClick instanceof Function) {\r\n me.options.Buttons.Close.OnClick.call(me);\r\n }\r\n\r\n me.Close();\r\n });\r\n }\r\n\r\n if (this.options.Buttons.No) {\r\n this.$bottom.find('.btn-no')\r\n .on('click', function () {\r\n if (me.options.Buttons.No.OnClick instanceof Function) {\r\n me.options.Buttons.No.OnClick.call(me);\r\n }\r\n\r\n me.Close();\r\n });\r\n }\r\n\r\n if (this.options.Buttons.Yes) {\r\n this.$bottom.find('.btn-yes')\r\n .on('click', function () {\r\n if (!checkForAndMarkInvalidCheckboxes.call(me)) {\r\n return;\r\n }\r\n\r\n if (me.options.Buttons.Yes.OnClick instanceof Function) {\r\n me.options.Buttons.Yes.OnClick.call(me);\r\n }\r\n\r\n me.Close();\r\n\r\n });\r\n }\r\n }\r\n\r\n $(window)\r\n .on('resize.' + this.options.ID, $.proxy(resizeWindow, this));\r\n\r\n this.$content.find('.time-offset-execute-type').on('change', $.proxy(onTimeExecuteTypeChange, this));\r\n this.$content.find('.time-offset-issue-time').on('change', $.proxy(onOffsetIssueTimeChange, this));\r\n this.$content.find('.delete-time-configuration').on('click', $.proxy(onDeleteTimeConfigurationClick, this));\r\n this.$content.find('.add-time-configuration').on('click', $.proxy(onAddTimeConfigurationClick, this));\r\n }\r\n\r\n function getTimeConfiguration() {\r\n var configurations = this.$content.find('div.condition-time-configuration');\r\n\r\n if (configurations.length === 0) {\r\n return null;\r\n }\r\n\r\n var timeConfiguration = [];\r\n\r\n for (var i = 0; i < configurations.length; i++) {\r\n var $configuration = $(configurations[i]);\r\n var oid = $configuration.data('id');\r\n var offset = $configuration.find('.time-offset').val();\r\n var offsetValue = parseFloat(offset) || 0;\r\n var offsetType = parseInt($configuration.find('.time-offset-type').val(), 10);\r\n var executeType = parseInt($configuration.find('.time-offset-execute-type').val(), 10);\r\n var issueTime = parseInt($configuration.find('.time-offset-issue-time').val(), 10);\r\n var allowedDaysOfWeek = getAllowedDaysOfWeek($configuration.find('.weekday-picker .day-of-week-option'));\r\n var postponeProcessToNextPossibleWeekday = $configuration.find('.postpone-process-to-next-possible-weekday').prop('checked');\r\n var executeOnlyAfterStatusChange = $configuration.find('.execute-only-after-status-change').prop('checked');\r\n\r\n offsetValue = Math.abs(getOffsetInMinutes(offset, offsetType));\r\n\r\n if (executeType === 1) {\r\n offsetValue = -Math.abs(offsetValue);\r\n }\r\n\r\n if (oid === Tools.GetEmptyGuid()) {\r\n oid = uuid();\r\n }\r\n\r\n var newTimeConfiguration = {\r\n OID: oid,\r\n Offset: offsetValue,\r\n Type: issueTime,\r\n ExecuteOnlyAfterStatusChange: executeOnlyAfterStatusChange\r\n };\r\n\r\n // Option soll übersprungen werden, wenn alle Wochentage ausgewählt wurden\r\n if (allowedDaysOfWeek < 127) {\r\n newTimeConfiguration.AllowedDaysOfWeek = allowedDaysOfWeek;\r\n newTimeConfiguration.PostponeProcessToNextPossibleWeekday = postponeProcessToNextPossibleWeekday;\r\n }\r\n\r\n timeConfiguration.push(newTimeConfiguration);\r\n }\r\n\r\n return timeConfiguration;\r\n }\r\n\r\n function getAllowedDaysOfWeek($daysOfWeek) {\r\n if (!($daysOfWeek || []).length)\r\n return null;\r\n\r\n var allowedDaysOfWeek = 0;\r\n for (let i = 0; i < $daysOfWeek.length; i++) {\r\n var $dayOfWeek = $($daysOfWeek[i]);\r\n\r\n if ($dayOfWeek.prop('checked')) {\r\n allowedDaysOfWeek |= parseInt($dayOfWeek.prop('value'));\r\n }\r\n }\r\n\r\n return allowedDaysOfWeek;\r\n }\r\n\r\n function checkForAndMarkInvalidCheckboxes(){\r\n var configurations = this.$content.find('div.condition-time-configuration');\r\n\r\n if ((configurations || []).length === 0) {\r\n return true;\r\n }\r\n\r\n var checkboxesValid = true;\r\n for (var i = 0; i < configurations.length; i++) {\r\n var $configuration = $(configurations[i]);\r\n var invalidMessage = $configuration.find('.weekday-picker .invalid-message');\r\n var dayOfWeekOptions = $configuration.find('.weekday-picker .day-of-week-option');\r\n var allowedDaysOfWeek = getAllowedDaysOfWeek(dayOfWeekOptions);\r\n\r\n if (allowedDaysOfWeek === 0) {\r\n checkboxesValid = false;\r\n invalidMessage.show();\r\n } else {\r\n invalidMessage.hide();\r\n }\r\n\r\n toggleInvalidClasses(dayOfWeekOptions, allowedDaysOfWeek === 0);\r\n }\r\n\r\n return checkboxesValid;\r\n }\r\n\r\n function toggleInvalidClasses(checkboxes, invalid) {\r\n if (!(checkboxes || []).length) {\r\n return;\r\n }\r\n\r\n for (var j = 0; j < checkboxes.length; j++) {\r\n var checkbox = checkboxes[j].parentElement;\r\n\r\n $(checkbox).toggleClass('invalid', invalid)\r\n }\r\n }\r\n\r\n function onApplyClick() {\r\n var timeConfiguration = getTimeConfiguration.call(this);\r\n\r\n this.options.onApply(timeConfiguration);\r\n }\r\n\r\n function onAddTimeConfigurationClick(evt) {\r\n var $this = $(evt.currentTarget);\r\n var time = {Offset: 0, Type: 1, OID: uuid()};\r\n var offsetAndType = {Type: 1, Offset: 0};\r\n\r\n $this.before($(getRowMarkup(time, offsetAndType, this.options.OnlyOnStateChangeIsForced)));\r\n var $newRow = $this.prev();\r\n\r\n $newRow.find('.time-offset-execute-type').on('change', $.proxy(onTimeExecuteTypeChange, this));\r\n $newRow.find('.time-offset-issue-time').on('change', $.proxy(onOffsetIssueTimeChange, this));\r\n $newRow.find('.delete-time-configuration').on('click', $.proxy(onDeleteTimeConfigurationClick, this));\r\n $newRow.find('.add-time-configuration').on('click', $.proxy(onAddTimeConfigurationClick, this));\r\n }\r\n\r\n function onDeleteTimeConfigurationClick(evt) {\r\n var $this = $(evt.currentTarget);\r\n var $timeConfiguration = $this.closest('div.condition-time-configuration');\r\n\r\n $timeConfiguration.remove();\r\n }\r\n\r\n function onTimeExecuteTypeChange(evt) {\r\n var $this = $(evt.currentTarget);\r\n var value = $this.val();\r\n var $issueTime = $this.next();\r\n var issueTimeValue = $issueTime.val();\r\n\r\n $issueTime.find('[value=\"0\"]').toggleClass('hide', value === \"1\");\r\n $issueTime.find('[value=\"1\"]').toggleClass('hide', value === \"1\");\r\n\r\n if (issueTimeValue === \"0\" || issueTimeValue === \"1\") {\r\n $issueTime.val(2);\r\n }\r\n }\r\n\r\n function onOffsetIssueTimeChange(evt) {\r\n var $this = $(evt.currentTarget);\r\n var value = $this.val();\r\n var $executeType = $this.prev();\r\n var executeTypVal = $executeType.val();\r\n\r\n $this.find('[value=\"0\"]').toggleClass('hide', executeTypVal === '1');\r\n $this.find('[value=\"1\"]').toggleClass('hide', executeTypVal === '1');\r\n\r\n if (value === '0' || value === '1') {\r\n $executeType.val(2);\r\n }\r\n }\r\n\r\n function unbindEvents() {\r\n $(window).off('resize.' + this.options.ID);\r\n\r\n this.$content.find('.time-offset-execute-type').off('change');\r\n this.$content.find('.delete-time-configuration').off('click');\r\n this.$content.find('.add-time-configuration').off('click');\r\n }\r\n\r\n function close() {\r\n this.$window.remove();\r\n\r\n if (this.$overlay instanceof $) {\r\n this.$overlay.remove();\r\n }\r\n\r\n unbindEvents.call(this);\r\n }\r\n\r\n function resizeWindow() {\r\n var screenHeight = $(window).height();\r\n var screenWidth = $(window).width();\r\n var width = this.$window.width();\r\n var height = this.options.ResizeToFitToContent ?\r\n getWindowHeightByContent.call(this) :\r\n this.$window.outerHeight();\r\n\r\n if (height > this.options.MaxHeight) {\r\n height = this.options.MaxHeight;\r\n }\r\n\r\n if (width > this.options.MaxWidth) {\r\n width = this.options.MaxWidth;\r\n }\r\n\r\n if ((screenHeight - 40) < height) {\r\n height = screenHeight - 40;\r\n }\r\n\r\n if ((screenWidth - 40) < width) {\r\n width = screenWidth - 40;\r\n }\r\n\r\n this.$window.css({\r\n height: height,\r\n width: width,\r\n 'margin-top': -((height + 20) / 2),\r\n 'margin-left': -((width + 20) / 2)\r\n });\r\n }\r\n\r\n function getWindowHeightByContent() {\r\n var height = parseInt(this.$window.css('border-top-width'), 10) +\r\n parseInt(this.$window.css('border-bottom-width'), 10) +\r\n this.$window.find('.top').outerHeight(true);\r\n\r\n this.$content.children().each(function (_idx, child) {\r\n var $child = $(child);\r\n\r\n height += $child.outerHeight(true);\r\n });\r\n\r\n height += this.$bottom.outerHeight(true);\r\n\r\n return height;\r\n }\r\n\r\n function applyStyles() {\r\n if (this.options.ShowOverlay) {\r\n $('#' + this.options.ID + '-overlay')\r\n .css('z-index', this.options.Styles['_']['z-index'] - 1);\r\n }\r\n\r\n if (!this.options.Styles) {\r\n return;\r\n }\r\n\r\n for (var selector in this.options.Styles) {\r\n if (!this.options.Styles.hasOwnProperty(selector)) {\r\n continue;\r\n }\r\n\r\n var $elem = selector === '_' ?\r\n this.$window :\r\n this.$window.find(selector);\r\n\r\n var styles = this.options.Styles[selector];\r\n\r\n if (Object.values(styles).length === 0) {\r\n continue;\r\n }\r\n\r\n $elem.css(styles);\r\n }\r\n }\r\n\r\n ProcessConditionTimeConfiguration.prototype.Show = show;\r\n ProcessConditionTimeConfiguration.prototype.Close = close;\r\n\r\n global.ProcessConditionTimeConfiguration = ProcessConditionTimeConfiguration;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ./_base.js\r\n */\r\n(function (global) {\r\n /**\r\n * @param options\r\n * @augments {PopupBase}\r\n * @constructor\r\n */\r\n var SelectIssueStatesForCommit = function (options) {\r\n if (!options.ID) {\r\n options.ID = 'select-issue-states-for-commit';\r\n }\r\n\r\n options.ResizeToFitToContent = true;\r\n options.ShowOverlay = true;\r\n\r\n if (!options.Buttons) {\r\n options.Buttons = {\r\n Close: {\r\n Caption: i18next.t('misc.close')\r\n }\r\n };\r\n }\r\n\r\n options.Styles = {\r\n '_': {\r\n 'z-index': 14001,\r\n width: 650\r\n },\r\n '.content': {\r\n overflow: 'auto',\r\n padding: '10px'\r\n },\r\n '.content > p:first-child': {\r\n margin: '0 0 1rem 0'\r\n },\r\n '.status-wrapper': {\r\n display: 'flex',\r\n gap: '1rem',\r\n 'align-items': 'center'\r\n },\r\n '.status-wrapper > label': {\r\n width: '7rem',\r\n 'text-overflow': 'ellipsis',\r\n overflow: 'hidden'\r\n },\r\n '.selection-wrapper + .selection-wrapper': {\r\n 'margin-top': '.5rem'\r\n }\r\n };\r\n\r\n var defaultModifiedOpenStatus = changemode.Properties[Client.Settings.TicketOpened];\r\n var defaultModifiedClosedStatus = changemode.Properties[Client.Settings.TicketCompleted];\r\n\r\n if (defaultModifiedOpenStatus.ModificationType === Enums.ModificationType.NotModified ||\r\n defaultModifiedOpenStatus.ModificationType === Enums.ModificationType.Edited) {\r\n this.SelectedOpenStatusOID = defaultModifiedOpenStatus.OID;\r\n }\r\n\r\n if (defaultModifiedClosedStatus.ModificationType === Enums.ModificationType.NotModified ||\r\n defaultModifiedClosedStatus.ModificationType === Enums.ModificationType.Edited) {\r\n this.SelectedClosedStatusOID = defaultModifiedClosedStatus.OID;\r\n }\r\n\r\n global.PopupBase.call(this, options);\r\n };\r\n\r\n SelectIssueStatesForCommit.prototype = Object.create(global.PopupBase.prototype, {\r\n constructor: SelectIssueStatesForCommit\r\n });\r\n\r\n SelectIssueStatesForCommit.prototype.CreateContentMarkup = function () {\r\n return [\r\n '

    ',\r\n i18next.t('changeMode.messages.commitModificationsDeleteStatusInUse.text'),\r\n '

    ',\r\n '
    ',\r\n '
    ',\r\n '',\r\n '', createButtonCaption(Properties[this.SelectedOpenStatusOID]), '',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '',\r\n '', createButtonCaption(Properties[this.SelectedClosedStatusOID]), '',\r\n '
    ',\r\n '
    '\r\n ].join('');\r\n };\r\n\r\n SelectIssueStatesForCommit.prototype.BindAdditionalEvents = function () {\r\n this.$content.find('.btn-select-open-status').on('click', $.proxy(onSelectOpenStatus, this));\r\n this.$content.find('.btn-select-closed-status').on('click', $.proxy(onSelectClosedStatus, this));\r\n };\r\n\r\n SelectIssueStatesForCommit.prototype.OnAfterRendered = function () {\r\n if (!this.SelectedOpenStatusOID || !this.SelectedClosedStatusOID) {\r\n this.$bottom.find('.btn-yes').attr('disabled', 'disabled');\r\n }\r\n };\r\n\r\n function createButtonCaption(status) {\r\n if (!status) {\r\n return i18next.t('changeMode.messages.commitModificationsDeleteStatusInUse.pleaseSelectStatus');\r\n }\r\n\r\n return [\r\n '',\r\n Tools.escapeHtml(status.Title)\r\n ].join('');\r\n }\r\n\r\n function onSelectOpenStatus(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var me = this;\r\n\r\n showStatusSelection(me.SelectedOpenStatusOID, false, function (status) {\r\n me.SelectedOpenStatusOID = status.OID;\r\n $btn.html(createButtonCaption(status));\r\n\r\n me.$bottom.find('.btn-yes').removeAttr('disabled');\r\n });\r\n }\r\n\r\n function onSelectClosedStatus(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var me = this;\r\n\r\n showStatusSelection(me.SelectedClosedStatusOID, true, function (status) {\r\n me.SelectedClosedStatusOID = status.OID;\r\n $btn.html(createButtonCaption(status));\r\n\r\n me.$bottom.find('.btn-yes').removeAttr('disabled');\r\n });\r\n }\r\n\r\n function showStatusSelection(selectedStatusOID, showClosedStatus, callback) {\r\n Tools.WindowWrappers.ShowStatusSelection({\r\n selectedStatusses: [selectedStatusOID],\r\n selectMultiple: false,\r\n windowCaption: i18next.t('issueViewer.panels.settings.selectStatus'),\r\n showCheckbox: false,\r\n onApplySelection: function (statusOID) { callback(Properties[statusOID]); },\r\n statusState: showClosedStatus ? Enums.StatusState.Closed : Enums.StatusState.Open,\r\n additionalFilter: function (status) {\r\n if (status.IsDeletedState) {\r\n return false;\r\n }\r\n\r\n var modifiedStatus = changemode.Properties[status.OID];\r\n\r\n if (!modifiedStatus) {\r\n return false;\r\n }\r\n\r\n return modifiedStatus.ModificationType === Enums.ModificationType.NotModified ||\r\n modifiedStatus.ModificationType === Enums.ModificationType.Edited;\r\n }\r\n });\r\n }\r\n\r\n global.SelectIssueStatesForCommit = SelectIssueStatesForCommit;\r\n})(Modifications.Popups || (Modifications.Popups = {}));","/**\r\n * @require ../../property-types.js\r\n */\r\n(function (global) {\r\n var PropertyBase = function (definition) {\r\n if (this.constructor === PropertyBase) {\r\n throw new Error('This class cannot be instanciated.')\r\n }\r\n\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n for (var attr in definition) {\r\n if (!definition.hasOwnProperty(attr)) {\r\n continue;\r\n }\r\n\r\n this[attr] = definition[attr];\r\n }\r\n }\r\n\r\n PropertyBase.prototype.Render = function () {\r\n var html = ['
    ',\r\n '
    ', this.Caption, this.IsRequired ? ' *' : '', '
    ',\r\n '
    ',\r\n this.RenderInput()\r\n );\r\n\r\n if (!!this.Description) {\r\n html.push(\r\n '

    ',\r\n this.Description || '',\r\n '

    '\r\n );\r\n }\r\n\r\n if (this.AllowMultiSelection && this.RenderMultiSelectionValue instanceof Function) {\r\n html.push(this.RenderMultiSelectionValue.call(this, this.GetValue()));\r\n }\r\n\r\n html.push(\r\n '
    ',\r\n '
    '\r\n );\r\n\r\n return html.join('');\r\n };\r\n\r\n PropertyBase.prototype.RenderInput = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n PropertyBase.prototype.OnAfterRendered = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n PropertyBase.prototype.Validate = function () {\r\n var value = this.GetValue();\r\n\r\n return !this.IsRequired || value !== '' && value != null;\r\n };\r\n\r\n PropertyBase.prototype.SetValue = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n PropertyBase.prototype.GetValue = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n PropertyBase.prototype.ApplyValue = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.Base = PropertyBase;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var ButtonRowProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.Buttons;\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n ButtonRowProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: ButtonRowProperty\r\n });\r\n\r\n ButtonRowProperty.prototype.RenderInput = function () {\r\n var me = this;\r\n\r\n return (this.Buttons || [])\r\n .map(function (buttonConfig) {\r\n return renderButton(buttonConfig, me);\r\n })\r\n .join('');\r\n };\r\n\r\n function renderButton(buttonConfig, property) {\r\n var html = ['
    ');\r\n\r\n if (buttonConfig.Icon) {\r\n html.push(\r\n '
    ',\r\n '',\r\n '
    ',\r\n '
    ',\r\n buttonConfig.Caption,\r\n '
    '\r\n );\r\n } else if (buttonConfig.CaptionFormatter instanceof Function) {\r\n var unformattedValue = CurrentEntity[property.MappedProperty];\r\n var formattedCaption = buttonConfig.CaptionFormatter(unformattedValue);\r\n\r\n if (!formattedCaption) {\r\n formattedCaption = buttonConfig.Caption;\r\n }\r\n\r\n html.push(formattedCaption);\r\n } else {\r\n html.push(buttonConfig.Caption);\r\n }\r\n\r\n html.push('
    ');\r\n\r\n return html.join('');\r\n }\r\n\r\n ButtonRowProperty.prototype.OnAfterRendered = function () {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n var value = CurrentEntity[this.MappedProperty];\r\n\r\n $prop.data('value', value);\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n ButtonRowProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n var me = this;\r\n\r\n this.Buttons.forEach(function (buttonConfig) {\r\n var $button = $prop.find('.' + buttonConfig.ID);\r\n\r\n if (!$button.length || !(buttonConfig.OnClick instanceof Function)) {\r\n return;\r\n }\r\n\r\n $button.on('click', $.proxy(buttonConfig.OnClick, me));\r\n });\r\n };\r\n\r\n ButtonRowProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n if (value instanceof Array) {\r\n value = value.join('|');\r\n }\r\n\r\n $prop\r\n .data('value', value)\r\n .attr('data-value', value);\r\n };\r\n\r\n ButtonRowProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n var value = $prop.data('value');\r\n\r\n if (this.AllowMultiSelection && typeof value === 'string') {\r\n return value.split('|');\r\n }\r\n\r\n return value;\r\n };\r\n\r\n ButtonRowProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.ButtonRowProperty = ButtonRowProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var CheckboxProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.Checkbox;\r\n\r\n if (!(definition.OnChange instanceof Function)) {\r\n definition.OnChange = function () {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n };\r\n }\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n CheckboxProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: CheckboxProperty\r\n });\r\n\r\n CheckboxProperty.prototype.RenderInput = function () {\r\n var html = [\r\n ''\r\n ];\r\n\r\n return html.join('');\r\n };\r\n\r\n CheckboxProperty.prototype.OnAfterRendered = function () {\r\n var value = CurrentEntity[this.MappedProperty];\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.prop('checked', !!value);\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n CheckboxProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.on('input', this.OnChange);\r\n };\r\n\r\n CheckboxProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n $prop.prop('checked', !!value);\r\n };\r\n\r\n CheckboxProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n return $prop.is(':checked');\r\n };\r\n\r\n CheckboxProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.CheckboxProperty = CheckboxProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var Label = function (definition) {\r\n if (!definition) {\r\n throw new Error('Label definition not given');\r\n }\r\n\r\n if (!definition.Caption) {\r\n throw new Error('No caption given');\r\n }\r\n\r\n for (var attr in definition) {\r\n if (!definition.hasOwnProperty(attr)) {\r\n continue;\r\n }\r\n\r\n this[attr] = definition[attr];\r\n }\r\n };\r\n\r\n Label.prototype.Render = function () {\r\n var html = [\r\n '
    ',\r\n '', this.Caption, '',\r\n ];\r\n\r\n if (!!this.Description) {\r\n html.push('

    ', this.Description, '

    ');\r\n }\r\n\r\n html.push('
    ');\r\n\r\n return html.join('');\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.Label = Label;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var NumberProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.Number;\r\n\r\n if (!(definition.OnChange instanceof Function)) {\r\n definition.OnChange = function () {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n };\r\n }\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n NumberProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: NumberProperty\r\n });\r\n\r\n NumberProperty.prototype.RenderInput = function () {\r\n var html = [\r\n ''\r\n ];\r\n\r\n return html.join('');\r\n };\r\n\r\n NumberProperty.prototype.OnAfterRendered = function () {\r\n var value = parseInt(CurrentEntity[this.MappedProperty], 10);\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (isNaN(value) || !$prop.length) {\r\n return;\r\n }\r\n\r\n if (!isNaN(this.ConversionFactor)) {\r\n value = parseInt(value / this.ConversionFactor, 10);\r\n }\r\n\r\n $prop.val(value || '');\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n NumberProperty.prototype.Validate = function () {\r\n var value = this.GetValue();\r\n\r\n if (typeof this.Minimum === 'number' &&\r\n value < this.Minimum) {\r\n return false;\r\n }\r\n\r\n if (typeof this.Maximum === 'number' &&\r\n value > this.Maximum) {\r\n return false;\r\n }\r\n\r\n return !this.IsRequired || value !== '' && value != null;\r\n };\r\n\r\n NumberProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.on('input', this.OnChange);\r\n };\r\n\r\n NumberProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (isNaN(value) || !$prop.length) {\r\n return null;\r\n }\r\n\r\n if (!isNaN(this.ConversionFactor)) {\r\n value = parseInt(value * this.ConversionFactor, 10);\r\n }\r\n\r\n $prop.val(value);\r\n };\r\n\r\n NumberProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n return $prop.val();\r\n };\r\n\r\n NumberProperty.prototype.ApplyValue = function () {\r\n var value = this.GetValue();\r\n\r\n if (!isNaN(this.ConversionFactor)) {\r\n value = parseInt(value * this.ConversionFactor, 10);\r\n }\r\n\r\n CurrentEntity[this.MappedProperty] = value;\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.NumberProperty = NumberProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var PropertyGroup = function (definition) {\r\n if (!definition) {\r\n throw new Error('PropertyGroup definition not given');\r\n }\r\n\r\n if (!(definition.Properties instanceof Array) ||\r\n definition.Properties.length === 0) {\r\n throw new Error('No properties given');\r\n }\r\n\r\n for (var attr in definition) {\r\n if (!definition.hasOwnProperty(attr)) {\r\n continue;\r\n }\r\n\r\n if (attr === 'Type') {\r\n this.Type = global.PropertyTypes.Group;\r\n } else {\r\n this[attr] = definition[attr];\r\n }\r\n }\r\n }\r\n\r\n PropertyGroup.prototype.Render = function () {\r\n var menuConfig = Client.OfficeConfiguration[Mode];\r\n var tabConfig = menuConfig && menuConfig.HiddenProperties ? menuConfig.HiddenProperties[content.Mode] : null;\r\n var hiddenProperties = tabConfig || [];\r\n\r\n return [\r\n '
    ',\r\n (this.Properties || []).filter(function (property) {\r\n return hiddenProperties.indexOf(property.ID) === -1;\r\n }).map(function (property) {\r\n return property.Render();\r\n }).join(''),\r\n '
    '\r\n ].join('');\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.PropertyGroup = PropertyGroup;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var ResettableButtonProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.ResettableButton;\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n ResettableButtonProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: ResettableButtonProperty\r\n });\r\n\r\n ResettableButtonProperty.prototype.RenderInput = function () {\r\n var unformattedValue = CurrentEntity[this.MappedProperty];\r\n var formattedValue = this.ValueFormatter instanceof Function ?\r\n this.ValueFormatter(unformattedValue) :\r\n unformattedValue;\r\n\r\n if (this.AllowMultiSelection && unformattedValue instanceof Array) {\r\n unformattedValue = unformattedValue.join('|');\r\n }\r\n\r\n var html = [\r\n '
    ',\r\n '
    ', !!formattedValue ? formattedValue : i18next.t('misc.noSelection'), '
    ',\r\n '
    ×
    ',\r\n '
    '\r\n ];\r\n\r\n return html.join('');\r\n };\r\n\r\n ResettableButtonProperty.prototype.OnAfterRendered = function () {\r\n this.BindEvents.call(this);\r\n };\r\n\r\n ResettableButtonProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n var me = this;\r\n\r\n $prop.find('.select').on('click', this.OnSelectClick);\r\n $prop.find('.clear').on(\r\n 'click',\r\n this.OnResetClick instanceof Function ?\r\n $.proxy(this.OnResetClick, me) :\r\n $.proxy(onResettableButtonClearClick, me)\r\n );\r\n };\r\n\r\n ResettableButtonProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n var formattedValue = this.ValueFormatter instanceof Function ?\r\n this.ValueFormatter(value) :\r\n value;\r\n\r\n $prop.find('.select')\r\n .html(formattedValue || i18next.t('misc.noSelection'));\r\n\r\n if (value instanceof Array) {\r\n value = value.join('|');\r\n }\r\n\r\n $prop\r\n .data('value', value)\r\n .attr('data-value', value);\r\n };\r\n\r\n ResettableButtonProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n var value = $prop.data('value');\r\n\r\n if (this.AllowMultiSelection && typeof value === 'string') {\r\n return value.split('|');\r\n }\r\n\r\n return value;\r\n };\r\n\r\n ResettableButtonProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n function onResettableButtonClearClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var $prop = $btn.parents('.clearable-button-selection');\r\n\r\n if ($prop.length) {\r\n this.SetValue('');\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n if (this.OnAfterResetClick instanceof Function) {\r\n this.OnAfterResetClick.call(this, evt.currentTarget);\r\n }\r\n }\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.ResettableButtonProperty = ResettableButtonProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var RichTextProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.RichTextField;\r\n\r\n if (!(definition.OnChange instanceof Function)) {\r\n definition.OnChange = function () {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n };\r\n }\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n RichTextProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: RichTextProperty\r\n });\r\n\r\n RichTextProperty.prototype.RenderInput = function () {\r\n var html = [\r\n ''\r\n );\r\n\r\n html.push('');\r\n\r\n return html.join('');\r\n };\r\n\r\n RichTextProperty.prototype.OnAfterRendered = function () {\r\n var userLanguage = User.Language;\r\n var editorLanguage = SUNEDITOR_LANG[userLanguage.split('-')[0]];\r\n\r\n this.Editor = SUNEDITOR.create(this.ID + '-value', {\r\n buttonList: [\r\n ['font', 'fontSize', 'formatBlock'],\r\n '/', // Line break\r\n ['bold', 'underline', 'italic', 'strike'],\r\n ['fontColor', 'hiliteColor'],\r\n ['removeFormat'],\r\n ['align', 'list']\r\n ],\r\n lang: editorLanguage || SUNEDITOR_LANG['en']\r\n });\r\n\r\n var value = CurrentEntity[this.MappedProperty];\r\n\r\n if (!!value) {\r\n value = DOMPurify.sanitize(value);\r\n this.Editor.setContents(value);\r\n }\r\n\r\n var $area = $(this.Editor.core.context.element.originElement);\r\n Tools.ShowRteContentSize($area, value);\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n RichTextProperty.prototype.BindEvents = function () {\r\n var self = this;\r\n\r\n this.Editor.onChange = function (content, core) {\r\n if (self.OnChange instanceof Function) {\r\n self.OnChange.apply(this, arguments);\r\n }\r\n\r\n var $area = $(core.context.element.originElement);\r\n\r\n Tools.ShowRteContentSize($area, content);\r\n };\r\n };\r\n\r\n RichTextProperty.prototype.SetValue = function (value) {\r\n if (!this.Editor) {\r\n return null;\r\n }\r\n\r\n value = DOMPurify.sanitize(value);\r\n\r\n this.Editor.setContents(value);\r\n };\r\n\r\n RichTextProperty.prototype.GetValue = function () {\r\n if (!this.Editor) {\r\n return null;\r\n }\r\n\r\n return DOMPurify.sanitize(this.Editor.getContents());\r\n };\r\n\r\n RichTextProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.RichTextProperty = RichTextProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var TextLineProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.TextLine;\r\n\r\n if (!(definition.OnChange instanceof Function)) {\r\n definition.OnChange = function () {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n };\r\n }\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n TextLineProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: TextLineProperty\r\n });\r\n\r\n TextLineProperty.prototype.RenderInput = function () {\r\n var html = [];\r\n\r\n if (this.Button) {\r\n html.push('
    ');\r\n }\r\n\r\n html.push(\r\n ' 0) {\r\n html.push(' maxlength=\"', this.MaxLength, '\"');\r\n }\r\n\r\n html.push('>');\r\n\r\n if (this.Button) {\r\n html.push(\r\n '
    ' : '>',\r\n this.Button.Caption,\r\n '
    ',\r\n '
    '\r\n );\r\n }\r\n\r\n return html.join('');\r\n };\r\n\r\n TextLineProperty.prototype.OnAfterRendered = function () {\r\n var value = CurrentEntity[this.MappedProperty];\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.val(Tools.unescapeHtml(value) || '');\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n TextLineProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.on('input', this.OnChange);\r\n\r\n if (this.OnBlur instanceof Function) {\r\n $prop.on('blur', this.OnBlur);\r\n }\r\n\r\n if (this.OnBlur instanceof Function) {\r\n $prop.on('blur', this.OnBlur);\r\n }\r\n\r\n if (this.Button && this.Button.OnClick instanceof Function) {\r\n $prop\r\n .siblings('.button-steal')\r\n .on('click', this.Button.OnClick);\r\n }\r\n };\r\n\r\n TextLineProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n $prop.val(Tools.unescapeHtml(value));\r\n };\r\n\r\n TextLineProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n return Tools.escapeHtml($prop.val()) || null;\r\n };\r\n\r\n TextLineProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.TextLineProperty = TextLineProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var TextMemoProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.TextMemo;\r\n\r\n if (!(definition.OnChange instanceof Function)) {\r\n definition.OnChange = function () {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n };\r\n }\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n TextMemoProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: TextMemoProperty\r\n });\r\n\r\n TextMemoProperty.prototype.RenderInput = function () {\r\n var html = [\r\n ''\r\n );\r\n\r\n return html.join('');\r\n };\r\n\r\n TextMemoProperty.prototype.OnAfterRendered = function () {\r\n var value = CurrentEntity[this.MappedProperty];\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.val(Tools.unescapeHtml(value) || '');\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n TextMemoProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.on('input', this.OnChange);\r\n };\r\n\r\n TextMemoProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n $prop.val(Tools.unescapeHtml(value));\r\n };\r\n\r\n TextMemoProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n return Tools.escapeHtml($prop.val());\r\n };\r\n\r\n TextMemoProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.TextMemoProperty = TextMemoProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./property.js\r\n */\r\n(function (global) {\r\n var TimeProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.TextLine;\r\n\r\n if (!(definition.OnChange instanceof Function)) {\r\n definition.OnChange = function () {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n };\r\n }\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n TimeProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: TimeProperty\r\n });\r\n\r\n TimeProperty.prototype.RenderInput = function () {\r\n var html = [\r\n '
    ',\r\n '',\r\n '',\r\n '
    '\r\n );\r\n\r\n return html.join('');\r\n };\r\n\r\n TimeProperty.prototype.OnAfterRendered = function () {\r\n var value = CurrentEntity[this.MappedProperty];\r\n\r\n if (!(value instanceof Date)) {\r\n return null;\r\n }\r\n\r\n var $hrProp = $('#' + this.ID + '-hour');\r\n var $minProp = $('#' + this.ID + '-minute');\r\n\r\n if (!$hrProp.length || !$minProp.length) {\r\n return null;\r\n }\r\n\r\n $hrProp.val(value.getHours());\r\n $minProp.val(value.getMinutes());\r\n\r\n this.BindEvents.call(this);\r\n };\r\n\r\n TimeProperty.prototype.BindEvents = function () {\r\n var $hrProp = $('#' + this.ID + '-hour');\r\n var $minProp = $('#' + this.ID + '-minute');\r\n\r\n if (!$hrProp.length || !$minProp.length) {\r\n return null;\r\n }\r\n\r\n $hrProp.on('input', this.OnChange);\r\n $minProp.on('input', this.OnChange);\r\n };\r\n\r\n TimeProperty.prototype.SetValue = function (value) {\r\n if (!(value instanceof Date)) {\r\n return null;\r\n }\r\n\r\n var $hrProp = $('#' + this.ID + '-hour');\r\n var $minProp = $('#' + this.ID + '-minute');\r\n\r\n if (!$hrProp.length || !$minProp.length) {\r\n return null;\r\n }\r\n\r\n $hrProp.val(value.getHours());\r\n $minProp.val(value.getMinutes());\r\n };\r\n\r\n TimeProperty.prototype.GetValue = function () {\r\n var $hrProp = $('#' + this.ID + '-hour');\r\n var $minProp = $('#' + this.ID + '-minute');\r\n\r\n if (!$hrProp.length || !$minProp.length) {\r\n return null;\r\n }\r\n\r\n var hour = parseInt($hrProp.val(), 10) || 0;\r\n var minute = parseInt($minProp.val(), 10) || 0;\r\n\r\n var date = new Date();\r\n\r\n date = new Date(date.setHours(hour, minute, 0, 0));\r\n\r\n return date;\r\n };\r\n\r\n TimeProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.TimeProperty = TimeProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ./properties/button-row-property.js\r\n * @require ./properties/checkbox-property.js\r\n * @require ./properties/label.js\r\n * @require ./properties/number-property.js\r\n * @require ./properties/property-group.js\r\n * @require ./properties/resettable-button-property.js\r\n * @require ./properties/rich-text-property.js\r\n * @require ./properties/text-line-property.js\r\n * @require ./properties/text-memo-property.js\r\n * @require ./properties/time-property.js\r\n */\r\n(function (global) {\r\n var PageBase = function (tabs, options) {\r\n if (this.constructor === PageBase) {\r\n throw new Error('This class cannot be instanciated.')\r\n }\r\n\r\n if (!(tabs || []).length) {\r\n return;\r\n }\r\n\r\n this.Tabs = tabs;\r\n this.TabMap = {};\r\n this.Options = options || {\r\n TreeTextProperty: 'Title'\r\n };\r\n\r\n var me = this;\r\n\r\n this.Tabs.forEach(function (tab) {\r\n me.TabMap[tab.ID] = tab;\r\n });\r\n };\r\n\r\n PageBase.prototype.RenderTab = function (tabId) {\r\n if (!this.TabMap.hasOwnProperty(tabId)) {\r\n return;\r\n }\r\n\r\n var tab = this.TabMap[tabId];\r\n\r\n tab.RenderProperties();\r\n\r\n this.CurrentTab = tab;\r\n };\r\n\r\n PageBase.prototype.ApplyValues = function () {\r\n var me = this;\r\n\r\n if (!me.CurrentTab) {\r\n return $.Deferred().resolve().promise();\r\n }\r\n\r\n if (!me.CurrentTab.ValidateProperties()) {\r\n return $.Deferred().resolve().promise();\r\n }\r\n\r\n me.CurrentTab.ApplyValues();\r\n\r\n return me.SaveEntity()\r\n .then(function () {\r\n onAfterEntitySaved.call(me);\r\n }, function (xhr) {\r\n Tools.handleHttpError(Enums.HttpActionType.Write, xhr);\r\n });\r\n };\r\n\r\n PageBase.prototype.SaveEntity = function () {\r\n throw new Error('Function must be defined in the concrete implementation of this class.');\r\n };\r\n\r\n PageBase.prototype.OnBeforeDestroy = function () { };\r\n\r\n PageBase.prototype.Destroy = function () {\r\n this.OnBeforeDestroy();\r\n this.Tabs.forEach(function (tab) {\r\n if (tab.Destroy instanceof Function) {\r\n tab.Destroy();\r\n }\r\n });\r\n };\r\n\r\n function onAfterEntitySaved() {\r\n content.properties.setChanged(false);\r\n Commit.setChanged(true);\r\n Center.ResetSearch();\r\n\r\n $('#center-tree')\r\n .tree(\r\n 'set-node-text',\r\n CurrentEntity,\r\n Tools.escapeHtml(CurrentEntity[this.Options.TreeTextProperty])\r\n );\r\n }\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n global.Base.Page = PageBase;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","(function (global) {\r\n var PageTab = function (id, propertyGroups) {\r\n if (!(propertyGroups || []).length) {\r\n return;\r\n }\r\n\r\n this.ID = id;\r\n this.PropertyGroups = propertyGroups;\r\n this.PropertyMap = {};\r\n\r\n var me = this;\r\n\r\n propertyGroups.forEach(function (group) {\r\n (group.Properties || []).forEach(function (prop) {\r\n me.PropertyMap[prop.ID] = prop;\r\n });\r\n });\r\n };\r\n\r\n PageTab.prototype.RenderProperties = function () {\r\n if (!(this.PropertyGroups || []).length) {\r\n throw new Error('No properties have been defined.');\r\n }\r\n\r\n content.properties.hideAllProperties();\r\n\r\n var $container = $('#properties');\r\n var renderedProperties = this.PropertyGroups.map(renderPropertyGroup).join('');\r\n var html = '
    ' + renderedProperties + '
    ';\r\n\r\n $container\r\n .find('.dynamic-properties')\r\n .replaceWith(html);\r\n\r\n this.PropertyGroups.forEach(function (group) {\r\n (group.Properties || []).forEach(function (prop) {\r\n if (prop.OnAfterRendered instanceof Function) {\r\n prop.OnAfterRendered();\r\n }\r\n });\r\n });\r\n };\r\n\r\n PageTab.prototype.ValidateProperties = function () {\r\n if (!(this.PropertyGroups || []).length) {\r\n throw new Error('No properties have been defined.');\r\n }\r\n\r\n var settingsAreValid = true;\r\n\r\n this.PropertyGroups.forEach(function (group) {\r\n (group.Properties || []).forEach(function (prop) {\r\n if (!(prop.Validate instanceof Function)) {\r\n return;\r\n }\r\n\r\n var $prop = $('#' + prop.ID);\r\n\r\n if (prop.Validate()) {\r\n $prop.removeClass('validation-error');\r\n return;\r\n }\r\n\r\n $prop.addClass('validation-error');\r\n\r\n settingsAreValid = false;\r\n });\r\n });\r\n\r\n return settingsAreValid;\r\n };\r\n\r\n PageTab.prototype.ApplyValues = function () {\r\n if (!(this.PropertyGroups || []).length) {\r\n throw new Error('No properties have been defined.');\r\n }\r\n\r\n this.PropertyGroups.forEach(function (group) {\r\n (group.Properties || []).forEach(function (prop) {\r\n if (!(prop.ApplyValue instanceof Function)) {\r\n return;\r\n }\r\n\r\n prop.ApplyValue();\r\n\r\n if (CurrentEntity[prop.MappedProperty] === '' ||\r\n CurrentEntity[prop.MappedProperty] == null) {\r\n delete CurrentEntity[prop.MappedProperty];\r\n }\r\n });\r\n });\r\n };\r\n\r\n PageTab.prototype.Destroy = function () {\r\n this.PropertyGroups.forEach(function (group) {\r\n $('#' + group.ID).remove();\r\n });\r\n }\r\n\r\n PageTab.prototype.MarkAsModified = function () {\r\n content.properties.setChanged(true);\r\n };\r\n\r\n function renderPropertyGroup(group) {\r\n if (!group || !group.Type === global.PropertyTypes.Group) {\r\n return null;\r\n }\r\n\r\n return group.Render();\r\n }\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n global.Base.PageTab = PageTab;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ../_base/page.js\r\n * @require ../_base/page-tab.js\r\n */\r\n(function (global) {\r\n var ClientSettingsView = function () {\r\n var availableTabs = getAvailableTabs.call(this);\r\n\r\n global.Base.Page.call(this, availableTabs);\r\n };\r\n\r\n ClientSettingsView.prototype = Object.create(global.Base.Page.prototype, {\r\n constructor: ClientSettingsView\r\n });\r\n\r\n ClientSettingsView.prototype.SaveEntity = function () {\r\n return putClient(changemode.Client);\r\n };\r\n\r\n function getAvailableTabs() {\r\n return [\r\n new global.Base.PageTab(\r\n 'properties', getAvailableProperties.call(this)\r\n )\r\n ];\r\n }\r\n\r\n function getAvailableProperties() {\r\n return [\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-qr-code',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.serviceQRCode'),\r\n Description: i18next.t('changeMode.panels.properties.serviceQRCodeDescription'),\r\n ID: 'service-qr-code',\r\n Buttons: [{\r\n ID: 'show-service-qr-code',\r\n Caption: i18next.t('changeMode.panels.properties.show'),\r\n OnClick: $.proxy(showServiceQrCode, this)\r\n }]\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-time',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.NumberProperty({\r\n Caption: i18next.t('changeMode.panels.properties.timeForReminder'),\r\n Description: i18next.t('changeMode.panels.properties.timeForReminderDescription'),\r\n ID: 'time-for-reminder',\r\n MappedProperty: 'TicketWarningOffset',\r\n ConversionFactor: 60,\r\n IsRequired: true\r\n }),\r\n new global.Base.Properties.NumberProperty({\r\n Caption: i18next.t('changeMode.panels.properties.expirationTime'),\r\n Description: i18next.t('changeMode.panels.properties.expirationTimeDescription'),\r\n ID: 'expiration-time',\r\n MappedProperty: 'TicketDeadlineOffset',\r\n ConversionFactor: 60,\r\n IsRequired: true\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-properties',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.Label({\r\n Caption: i18next.t('changeMode.panels.properties.issues.defaultStatus.caption'),\r\n Description: i18next.t('changeMode.panels.properties.issues.defaultStatus.description')\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultTaskStatus'),\r\n ID: 'default-task-status',\r\n MappedProperty: 'TicketOpened',\r\n Buttons: [{\r\n ID: 'select-default-task-status',\r\n Caption: i18next.t('changeMode.panels.properties.selectStatus'),\r\n OnClick: $.proxy(onBtnDefaultTaskStatusClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultFormStatus'),\r\n ID: 'default-form-status',\r\n MappedProperty: 'FormOpened',\r\n Buttons: [{\r\n ID: 'select-default-form-status',\r\n Caption: i18next.t('changeMode.panels.properties.selectStatus'),\r\n OnClick: $.proxy(onBtnDefaultFormStatusClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultInspectionStatus'),\r\n ID: 'default-inspection-status',\r\n MappedProperty: 'InspectionOpened',\r\n Buttons: [{\r\n ID: 'select-default-inspection-status',\r\n Caption: i18next.t('changeMode.panels.properties.selectStatus'),\r\n OnClick: $.proxy(onBtnDefaultInspectionStatusClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultDisturbanceStatus'),\r\n ID: 'default-disturbance-status',\r\n MappedProperty: 'DisturbanceOpened',\r\n Buttons: [{\r\n ID: 'select-default-disturbance-status',\r\n Caption: i18next.t('changeMode.panels.properties.selectStatus'),\r\n OnClick: $.proxy(onBtnDefaultDisturbanceStatusClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n new global.Base.Properties.Label({\r\n Caption: i18next.t('changeMode.panels.properties.issues.statusAfterProcessing.caption')\r\n }),\r\n new global.Base.Properties.ResettableButtonProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultSyncBackFromExternalProcessingStatus'),\r\n Description: i18next.t('changeMode.panels.properties.defaultSyncBackFromExternalProcessingStatusDescription'),\r\n ID: 'status-after-external-processing',\r\n MappedProperty: 'StatusAfterExternalProcessing',\r\n OnSelectClick: $.proxy(onBtnSelectStatusAfterExternalProcessingClick, this),\r\n OnResetClick: $.proxy(onResetSelectStatusAfterExternalProcessing, this),\r\n ValueFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.taskCompletedStatus'),\r\n ID: 'task-completed-status',\r\n MappedProperty: 'TicketCompleted',\r\n Buttons: [{\r\n ID: 'select-task-completed-status',\r\n Caption: i18next.t('changeMode.panels.properties.selectStatus'),\r\n OnClick: $.proxy(onBtnTaskCompletedStatusClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n new global.Base.Properties.Label({\r\n Caption: i18next.t('changeMode.panels.properties.issues.misc.caption')\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultPriority'),\r\n ID: 'ticket-opened-priority',\r\n MappedProperty: 'TicketOpenedPriority',\r\n Buttons: [{\r\n ID: 'select-ticket-opened-priority',\r\n Caption: i18next.t('changeMode.panels.properties.selectStatus'),\r\n OnClick: $.proxy(onBtnDefaultTaskPriorityClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultCategory'),\r\n Description: i18next.t('changeMode.panels.properties.defaultCategoryDescription'),\r\n ID: 'default-deviation-category',\r\n MappedProperty: 'ExpiredResubitemCat',\r\n Buttons: [{\r\n ID: 'select-default-deviation-category',\r\n Caption: i18next.t('changeMode.panels.properties.selectValueCategory'),\r\n OnClick: $.proxy(onBtnDefaultDeviationCategoryClick, this),\r\n CaptionFormatter: $.proxy(formatPropertyButtonCaption, this)\r\n }]\r\n }),\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-notifications',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.NumberProperty({\r\n Caption: i18next.t('changeMode.panels.properties.overdueNotificationInterval'),\r\n Description: i18next.t('changeMode.panels.properties.overdueNotificationIntervalDescription'),\r\n ID: 'minimum-overdue-notification-interval',\r\n MappedProperty: 'OverdueWaitingTime',\r\n IsRequired: true,\r\n Minimum: 5\r\n }),\r\n new global.Base.Properties.TimeProperty({\r\n Caption: i18next.t('changeMode.panels.properties.dailyReportTime'),\r\n ID: 'daily-report-time',\r\n MappedProperty: 'DailyReportTime'\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-print-options',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.defaultPrintOptions'),\r\n Description: i18next.t('changeMode.panels.properties.defaultPrintOptionsDescription'),\r\n ID: 'default-print-options',\r\n MappedProperty: 'DefaultPrintOptions',\r\n Buttons: [{\r\n ID: 'select-default-print-options',\r\n Caption: i18next.t('changeMode.panels.properties.defaultPrintOptionsButton'),\r\n OnClick: $.proxy(onBtnDefaultPrintOptionsButtonClick, this)\r\n }]\r\n }),\r\n new global.Base.Properties.CheckboxProperty({\r\n Caption: i18next.t('changeMode.panels.properties.showPdfPreview'),\r\n Description: i18next.t('changeMode.panels.properties.showPdfPreviewDescription'),\r\n ID: 'show-pdf-preview',\r\n MappedProperty: 'EnablePreviewChangemode'\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-min-app-version',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.ResettableButtonProperty({\r\n Caption: i18next.t('changeMode.panels.properties.minAppVersion.android'),\r\n ID: 'min-app-version-android',\r\n MappedProperty: 'MinAppVersionAndroid',\r\n OnSelectClick: $.proxy(onBtnSelectMinimumAndroidAppVersionClick, this),\r\n OnResetClick: $.proxy(onResetMinimumAndroidAppVersion, this),\r\n ValueFormatter: $.proxy(formatMinimumAppVersionValue, this)\r\n }),\r\n new global.Base.Properties.ResettableButtonProperty({\r\n Caption: i18next.t('changeMode.panels.properties.minAppVersion.iOS'),\r\n ID: 'min-app-version-ios',\r\n MappedProperty: 'MinAppVersionIOS',\r\n OnSelectClick: $.proxy(onBtnSelectMinimumIOSAppVersionClick, this),\r\n OnResetClick: $.proxy(onResetMinimumIOSAppVersion, this),\r\n CaptionFormatter: $.proxy(formatMinimumAppVersionValue, this)\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-sync-options',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.CheckboxProperty({\r\n Caption: i18next.t('changeMode.panels.properties.syncOpenSurveys'),\r\n Description: i18next.t('changeMode.panels.properties.syncOpenSurveysDescription'),\r\n ID: 'sync-open-surveys',\r\n MappedProperty: 'SyncOpenSurveys'\r\n }),\r\n new global.Base.Properties.CheckboxProperty({\r\n Caption: i18next.t('changeMode.panels.properties.syncOpenInvestigations'),\r\n Description: i18next.t('changeMode.panels.properties.syncOpenInvestigationsDescription'),\r\n ID: 'sync-open-investigations',\r\n MappedProperty: 'SyncOpenInvestigations'\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'client-settings-misc',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.CheckboxProperty({\r\n Caption: i18next.t('changeMode.panels.properties.inheritAssignedTeams'),\r\n Description: i18next.t('changeMode.panels.properties.inheritAssignedTeamsDescription'),\r\n ID: 'inherit-assigned-teams',\r\n MappedProperty: 'TakeOverAssignedTeams'\r\n }),\r\n new global.Base.Properties.CheckboxProperty({\r\n Caption: i18next.t('changeMode.panels.properties.askForFormCoding'),\r\n Description: i18next.t('changeMode.panels.properties.askForFormCodingDescription'),\r\n ID: 'ask-for-form-coding',\r\n MappedProperty: 'AskForFormCoding'\r\n }),\r\n new global.Base.Properties.CheckboxProperty({\r\n Caption: i18next.t('changeMode.panels.properties.disableActionAutoDescription.title'),\r\n Description: i18next.t('changeMode.panels.properties.disableActionAutoDescription.description'),\r\n ID: 'disable-action-auto-description',\r\n MappedProperty: 'DisableActionAutoDescription'\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n Caption: i18next.t('changeMode.panels.properties.estimatedEffortEditor.title'),\r\n Description: i18next.t('changeMode.panels.properties.estimatedEffortEditor.description'),\r\n ID: 'estimated-effort-settings',\r\n MappedProperty: 'EstimatedEffortSettings',\r\n Buttons: [{\r\n ID: 'defined-estimated-effort-presets',\r\n Caption: i18next.t('changeMode.panels.properties.show'),\r\n OnClick: $.proxy(onDefineEstimatedEffortPresets, this)\r\n }]\r\n })\r\n ]\r\n }),\r\n ];\r\n }\r\n\r\n function showServiceQrCode() {\r\n Tools.QRCode.Show(\r\n Client.Settings.ServiceURI,\r\n 'awenko:360 - ' + i18next.t('changeMode.panels.properties.serviceAddress')\r\n );\r\n }\r\n\r\n function formatPropertyButtonCaption(propertyIdentifier) {\r\n if (!propertyIdentifier) {\r\n return null;\r\n }\r\n\r\n var property = changemode.Properties[propertyIdentifier];\r\n\r\n if (!property || property.ModificationType === Enums.ModificationType.Deleted) {\r\n return null;\r\n }\r\n\r\n return [\r\n '',\r\n property.Title\r\n ].join('');\r\n }\r\n\r\n function onBtnDefaultTaskPriorityClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['ticket-opened-priority'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Priority);\r\n }\r\n\r\n function onBtnDefaultTaskStatusClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['default-task-status'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Status, function (status) {\r\n return !status.SetStateOnlyIfAllRequiredCollected;\r\n });\r\n }\r\n\r\n function onBtnDefaultFormStatusClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['default-form-status'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Status, function (status) {\r\n return !status.SetStateOnlyIfAllRequiredCollected;\r\n });\r\n }\r\n\r\n function onBtnDefaultInspectionStatusClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['default-inspection-status'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Status, function (status) {\r\n return !status.SetStateOnlyIfAllRequiredCollected;\r\n });\r\n }\r\n\r\n function onBtnDefaultDisturbanceStatusClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['default-disturbance-status'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Status);\r\n }\r\n\r\n function onBtnTaskCompletedStatusClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['task-completed-status'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Status);\r\n }\r\n\r\n function onBtnSelectStatusAfterExternalProcessingClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['status-after-external-processing'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.Status);\r\n }\r\n\r\n function onResetSelectStatusAfterExternalProcessing(evt) {\r\n var viewProperty = this.CurrentTab.PropertyMap['status-after-external-processing'];\r\n\r\n viewProperty.SetValue(null);\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n function onBtnDefaultDeviationCategoryClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var viewProperty = this.CurrentTab.PropertyMap['default-deviation-category'];\r\n\r\n propertyClickListener($btn, viewProperty, Enums.propertyType.ValueCategory);\r\n }\r\n\r\n function propertyClickListener($btn, viewProperty, type, isPropertySelectable) {\r\n var propertyOID = viewProperty.GetValue();\r\n\r\n isPropertySelectable = isPropertySelectable || function () { return true; };\r\n\r\n var options = {\r\n title: i18next.t('explorer.issues.teamFilter.title'),\r\n selectMultiple: false,\r\n onSelect: function (propertyOID) {\r\n var caption = formatPropertyButtonCaption(propertyOID);\r\n\r\n $btn.html(caption);\r\n\r\n viewProperty.SetValue(propertyOID);\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n },\r\n treeOptions: {\r\n schema: function (property) {\r\n var isSelectable = isPropertySelectable(property);\r\n var classes = isSelectable ?\r\n (propertyOID !== property.OID ? '' : 'default-fade-out') :\r\n 'jquery-tree-node-disabled';\r\n\r\n return {\r\n id: property.OID,\r\n children: property.Children,\r\n text: property.Title,\r\n color: property.Color,\r\n selectable: isSelectable,\r\n classes: classes\r\n };\r\n },\r\n opened: true,\r\n selectable: true,\r\n selected: propertyOID,\r\n filter: function (property) { return property.ModificationType !== Enums.ModificationType.Deleted; }\r\n }\r\n };\r\n\r\n var entities;\r\n\r\n switch (type) {\r\n case Enums.propertyType.Status:\r\n entities = changemode.Status;\r\n options.title = i18next.t('changeMode.panels.properties.selectStatus');\r\n break;\r\n case Enums.propertyType.Priority:\r\n entities = changemode.Priorities;\r\n options.title = i18next.t('changeMode.panels.properties.selectPriority');\r\n break;\r\n case Enums.propertyType.ValueCategory:\r\n entities = changemode.Categories;\r\n options.title = i18next.t('changeMode.panels.properties.selectValueCategory');\r\n break;\r\n }\r\n\r\n TreePicker.Show(entities, options);\r\n }\r\n\r\n function onBtnDefaultPrintOptionsButtonClick() {\r\n var $printOptionsPicker = $('#printOptionsPicker');\r\n var $overflow = $('#overflow');\r\n var viewProperty = this.CurrentTab.PropertyMap['default-print-options'];\r\n\r\n var settings = {\r\n Wrapper: $printOptionsPicker.find('.printOptionsWrapper'),\r\n ApplyButton: $printOptionsPicker.find('.btn-apply'),\r\n AbortButton: $printOptionsPicker.find('.top .close, .btn-abort'),\r\n Searchbox: $printOptionsPicker.find('.searchbox'),\r\n PrintType: 'Issue',\r\n OnSave: function(anyChanged) {\r\n if (!anyChanged) {\r\n return;\r\n }\r\n\r\n var value = JSON.stringify(PrintOptionsPicker.GetPrintOptions());\r\n\r\n viewProperty.SetValue(value);\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n },\r\n OnHide: function() {\r\n $printOptionsPicker.addClass('hide');\r\n $overflow.addClass('hide');\r\n }\r\n };\r\n\r\n var printOptions = viewProperty.GetValue();\r\n\r\n if (printOptions) {\r\n while (typeof printOptions === 'string') {\r\n printOptions = JSON.parse(printOptions);\r\n }\r\n\r\n settings.PrintOptions = printOptions;\r\n }\r\n\r\n $('#printOptionsPicker .top .title').text(i18next.t('printOptionsPicker.title'));\r\n $('#printOptionsPicker .bottom .btn-abort').text(i18next.t('printOptionsPicker.abort'));\r\n $('#printOptionsPicker .bottom .btn-apply').text(i18next.t('printOptionsPicker.apply'));\r\n\r\n PrintOptionsPicker.Create(settings);\r\n\r\n $overflow.removeClass('hide');\r\n $printOptionsPicker.removeClass('hide');\r\n }\r\n\r\n function formatMinimumAppVersionValue(value) {\r\n return value === 'none' ?\r\n i18next.t('misc.none') :\r\n value;\r\n }\r\n\r\n function onBtnSelectMinimumAndroidAppVersionClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var availableVersions = AppVersions.filter(function (version) {\r\n return version.Android;\r\n });\r\n\r\n var popupHeading = i18next.t('changeMode.panels.properties.minAppVersion.android');\r\n var viewProperty = this.CurrentTab.PropertyMap['min-app-version-android'];\r\n\r\n onOpenAppVersionSelection($btn, availableVersions, popupHeading, viewProperty);\r\n }\r\n\r\n function onBtnSelectMinimumIOSAppVersionClick(evt) {\r\n var $btn = $(evt.currentTarget);\r\n var availableVersions = AppVersions.filter(function (version) {\r\n return version.IOS;\r\n });\r\n\r\n var popupHeading = i18next.t('changeMode.panels.properties.minAppVersion.iOS');\r\n var viewProperty = this.CurrentTab.PropertyMap['min-app-version-ios'];\r\n\r\n onOpenAppVersionSelection($btn, availableVersions, popupHeading, viewProperty);\r\n }\r\n\r\n function onOpenAppVersionSelection($btn, availableVersions, popupHeading, viewProperty) {\r\n var options = {\r\n title: popupHeading,\r\n selectMultiple: false,\r\n onSelect: function (value) {\r\n onSelectMinimumAppVersion($btn, viewProperty, value);\r\n },\r\n treeOptions: {\r\n schema: function (property) {\r\n return {\r\n id: property.Version,\r\n text: property.Version\r\n };\r\n },\r\n opened: true,\r\n selectable: true,\r\n selected: viewProperty.GetValue()\r\n }\r\n };\r\n\r\n TreePicker.Show(availableVersions, options);\r\n }\r\n\r\n function onSelectMinimumAppVersion($btn, viewProperty, version) {\r\n $btn.html(version);\r\n viewProperty.SetValue(version);\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n function onResetMinimumAndroidAppVersion(evt) {\r\n var viewProperty = this.CurrentTab.PropertyMap['min-app-version-android'];\r\n var $btn = $(evt.currentTarget);\r\n var $selectBtn = $btn.siblings('.select');\r\n\r\n onSelectMinimumAppVersion($selectBtn, viewProperty, null);\r\n }\r\n\r\n function onResetMinimumIOSAppVersion(evt) {\r\n var viewProperty = this.CurrentTab.PropertyMap['min-app-version-ios'];\r\n var $btn = $(evt.currentTarget);\r\n var $selectBtn = $btn.siblings('.select');\r\n\r\n onSelectMinimumAppVersion($selectBtn, viewProperty, null);\r\n }\r\n\r\n function onDefineEstimatedEffortPresets() {\r\n var viewProperty = this.CurrentTab.PropertyMap['estimated-effort-settings'];\r\n var presets = viewProperty.GetValue();\r\n\r\n if (typeof presets === 'string') {\r\n presets = JSON.parse(presets);\r\n }\r\n\r\n var settings = {\r\n onApply: function () {\r\n var value = JSON.stringify(Tools.EstimatedEffortEditor.GetCustomEstimatedEffort());\r\n\r\n viewProperty.SetValue(value);\r\n Tools.EstimatedEffortEditor.Hide();\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n },\r\n estimatedEffortSettings: presets || null\r\n };\r\n\r\n Tools.EstimatedEffortEditor.Show(settings);\r\n }\r\n\r\n if (!global.System) {\r\n global.System = {};\r\n }\r\n\r\n global.System.ClientSettings = ClientSettingsView;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ../_base/page.js\r\n * @require ../_base/page-tab.js\r\n */\r\n(function (global) {\r\n var ElementCodingsView = function () {\r\n var availableTabs = getAvailableTabs.call(this);\r\n var options = getPageOptions.call(this);\r\n\r\n global.Base.Page.call(this, availableTabs, options);\r\n };\r\n\r\n ElementCodingsView.prototype = Object.create(global.Base.Page.prototype, {\r\n constructor: ElementCodingsView\r\n });\r\n\r\n ElementCodingsView.prototype.SaveEntity = function () {\r\n return ElementCodings.Save(CurrentEntity);\r\n };\r\n\r\n function getAvailableTabs() {\r\n return [\r\n new global.Base.PageTab(\r\n 'properties', getAvailableProperties.call(this)\r\n )\r\n ];\r\n }\r\n\r\n function getAvailableProperties() {\r\n return [\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'element-codings-misc',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.TextLineProperty({\r\n Caption: i18next.t('changeMode.panels.properties.prefix'),\r\n ID: 'element-coding-prefix',\r\n MaxLength: 10,\r\n MappedProperty: 'Prefix',\r\n IsRequired: true\r\n }),\r\n new global.Base.Properties.TextMemoProperty({\r\n Caption: i18next.t('changeMode.panels.properties.description'),\r\n ID: 'element-coding-description',\r\n Rows: 3,\r\n MaxLength: 200,\r\n MappedProperty: 'Description'\r\n })\r\n ]\r\n })\r\n ];\r\n }\r\n\r\n function getPageOptions() {\r\n return {\r\n TreeTextProperty: 'Prefix'\r\n }\r\n }\r\n\r\n if (!global.System) {\r\n global.System = {};\r\n }\r\n\r\n global.System.ElementCodings = ElementCodingsView;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","/**\r\n * @require ../_base/page.js\r\n * @require ../_base/page-tab.js\r\n */\r\n(function (global) {\r\n var cpRegex = /{{CP_([0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12})}}/ig;\r\n var issueRegex = /{{([A-Z]\\w+)}}/ig;\r\n\r\n var MailTemplatesView = function () {\r\n var availableTabs = getAvailableTabs.call(this);\r\n\r\n global.Base.Page.call(this, availableTabs);\r\n };\r\n\r\n MailTemplatesView.prototype = Object.create(global.Base.Page.prototype, {\r\n constructor: MailTemplatesView\r\n });\r\n\r\n MailTemplatesView.prototype.SaveEntity = function () {\r\n return MailTemplates.Save(CurrentEntity);\r\n };\r\n\r\n MailTemplatesView.prototype.OnBeforeDestroy = function () {\r\n if (this.PlaceholdersWindow) {\r\n this.PlaceholdersWindow.Close();\r\n }\r\n };\r\n\r\n function getAvailableTabs() {\r\n return [\r\n new global.Base.PageTab(\r\n 'properties', getAvailableProperties.call(this)\r\n )\r\n ];\r\n }\r\n\r\n function getAvailableProperties() {\r\n return [\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'mail-templates-group-1',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.TextLineProperty({\r\n Caption: i18next.t('changeMode.panels.properties.title'),\r\n ID: 'mail-templates-template-title',\r\n MaxLength: 100,\r\n MappedProperty: 'Title',\r\n IsRequired: true\r\n }),\r\n new global.Base.Properties.TextMemoProperty({\r\n Caption: i18next.t('changeMode.panels.properties.description'),\r\n ID: 'mail-templates-template-description',\r\n Rows: 3,\r\n MaxLength: 200,\r\n MappedProperty: 'Description'\r\n })\r\n ]\r\n }),\r\n new global.Base.Properties.PropertyGroup({\r\n ID: 'mail-templates-group-2',\r\n Type: global.PropertyTypes.Group,\r\n Properties: [\r\n new global.Base.Properties.ResettableButtonProperty({\r\n Caption: i18next.t('changeMode.panels.properties.mailTemplates.form.propertyCaption'),\r\n ID: 'mail-templates-select-form',\r\n Source: changemode.Forms,\r\n MappedProperty: 'FormOID',\r\n OnSelectClick: $.proxy(onBtnSelectFormClick, this),\r\n OnResetClick: $.proxy(onBtnResetFormClick, this),\r\n ValueFormatter: formatFormValue\r\n }),\r\n new global.Base.Properties.ButtonRowProperty({\r\n ID: 'mail-templates-toolbar',\r\n Buttons: [{\r\n ID: 'show-placeholders',\r\n Caption: i18next.t('changeMode.panels.properties.mailTemplates.openPlaceholdersWindow'),\r\n Icon: './img/brackets.svg',\r\n OnClick: $.proxy(onBtnOpenPlaceholdersWindowsClick, this)\r\n }, {\r\n ID: 'show-preview',\r\n Caption: i18next.t('changeMode.panels.properties.mailTemplates.showPreview'),\r\n Icon: './img/eye.svg',\r\n OnClick: $.proxy(onBtnShowMailTemplatePreview, this)\r\n }]\r\n }),\r\n new global.Base.Properties.TextLineProperty({\r\n Caption: i18next.t('changeMode.panels.properties.mailTemplates.subject.propertyCaption'),\r\n ID: 'mail-templates-mail-subject',\r\n MappedProperty: 'Subject'\r\n }),\r\n new global.Base.Properties.RichTextProperty({\r\n Caption: i18next.t('changeMode.panels.properties.mailTemplates.body'),\r\n ID: 'mail-templates-mail-body',\r\n Rows: 10,\r\n MappedProperty: 'Body'\r\n }),\r\n new global.Base.Properties.TableProperty({\r\n Caption: i18next.t('changeMode.panels.properties.mailTemplates.attachmentFiles'),\r\n ID: 'mail-templates-select-attachment-files',\r\n MappedProperty: 'AttachmentFiles',\r\n OnSelectClick: $.proxy(onBtnSelectAttachmentFilesClick, this),\r\n OnRemoveClick: $.proxy(onBtnRemoveFileClick, this),\r\n GetActionDropdownItems: $.proxy(getAttachmentFilesActionDropdownItems, this)\r\n }),\r\n ]\r\n })\r\n ];\r\n }\r\n\r\n function onBtnSelectFormClick(evt) {\r\n var $button = $(evt.currentTarget);\r\n var me = this;\r\n\r\n var formProperty = this.CurrentTab.PropertyMap['mail-templates-select-form'];\r\n var options = {\r\n title: i18next.t('elementTypes.form_plural'),\r\n selectMultiple: false,\r\n onSelect: function (formIdentifier) { onSelectForm.call(me, $button, formIdentifier); },\r\n treeOptions: {\r\n schema: function (form) {\r\n return {\r\n id: form.OID,\r\n text: form.Title,\r\n color: form.Color,\r\n children: form.Children\r\n };\r\n },\r\n opened: true,\r\n selectable: true,\r\n selected: formProperty.GetValue(),\r\n filter: function (form) {\r\n return form.ModificationType !== Enums.ModificationType.Deleted;\r\n }\r\n }\r\n };\r\n\r\n if (this.PlaceholdersWindow) {\r\n this.PlaceholdersWindow.Close();\r\n }\r\n\r\n TreePicker.Show(changemode.Forms, options);\r\n }\r\n\r\n function onSelectForm($button, formIdentifier) {\r\n var form = changemode.Elements[formIdentifier];\r\n var buttonText = i18next.t('misc.noSelection');\r\n\r\n var formProperty = this.CurrentTab.PropertyMap['mail-templates-select-form'];\r\n var subjectProperty = this.CurrentTab.PropertyMap['mail-templates-mail-subject'];\r\n var bodyProperty = this.CurrentTab.PropertyMap['mail-templates-mail-body'];\r\n\r\n var previousFormIdentifier = formProperty.GetValue();\r\n var subject = subjectProperty.GetValue();\r\n var body = bodyProperty.GetValue();\r\n\r\n function applyChanges() {\r\n var $selection = $button.parents('.clearable-button-selection');\r\n\r\n $selection\r\n .attr('data-value', formIdentifier)\r\n .data('value', formIdentifier);\r\n\r\n $button.html(buttonText);\r\n\r\n subject = removeConflictedPlaceholdersFromText(subject, formIdentifier);\r\n body = removeConflictedPlaceholdersFromText(body, formIdentifier);\r\n\r\n subjectProperty.SetValue(subject);\r\n bodyProperty.SetValue(body);\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n if (form) {\r\n if (!!form.Color) {\r\n buttonText = ' '\r\n .format(form.Color);\r\n }\r\n\r\n if (!!form.Title) {\r\n buttonText += ' ' + form.Title;\r\n }\r\n }\r\n\r\n if (previousFormIdentifier === formIdentifier) {\r\n return;\r\n }\r\n\r\n var isConflicted = getHasCheckpointPlaceholderConflicts(subject, formIdentifier) ||\r\n getHasCheckpointPlaceholderConflicts(body, formIdentifier);\r\n\r\n if (isConflicted) {\r\n showCheckpointPlaceholderConflicts(\r\n subject,\r\n body,\r\n previousFormIdentifier,\r\n formIdentifier,\r\n applyChanges\r\n );\r\n return;\r\n }\r\n\r\n applyChanges();\r\n }\r\n\r\n function showCheckpointPlaceholderConflicts(subject, body, currentFormIdentifier, newFormIdentifier, applyChanges) {\r\n if (!subject && !body) {\r\n return;\r\n }\r\n\r\n var subjectWithConflicts = getTextWithHighlightedConflictedPlaceholders(subject, newFormIdentifier, true);\r\n var bodyWithConflicts = getTextWithHighlightedConflictedPlaceholders(body, newFormIdentifier, true);\r\n\r\n var currentForm = changemode.Elements[currentFormIdentifier];\r\n var newForm = changemode.Elements[newFormIdentifier];\r\n\r\n new Modifications.Popups.MailTemplatePreview({\r\n Title: i18next.t('changeMode.mailTemplates.conflictsWindow.title'),\r\n IntroductionText: i18next.t('changeMode.mailTemplates.conflictsWindow.introduction'),\r\n Subject: subjectWithConflicts,\r\n Body: bodyWithConflicts,\r\n CurrentForm: currentForm,\r\n NewForm: newForm,\r\n Buttons: {\r\n No: {\r\n Caption: i18next.t('misc.abort')\r\n },\r\n Yes: {\r\n Caption: i18next.t('misc.apply'),\r\n OnClick: applyChanges\r\n }\r\n }\r\n }).Show();\r\n }\r\n\r\n function formatFormValue(formIdentifier) {\r\n if (!formIdentifier) {\r\n return null;\r\n }\r\n\r\n var form = changemode.Elements[formIdentifier];\r\n\r\n if (!form || form.ModificationType === Enums.ModificationType.Deleted) {\r\n return null;\r\n }\r\n\r\n return [\r\n '',\r\n form.Title\r\n ].join('');\r\n }\r\n\r\n function onBtnResetFormClick() {\r\n if (this.PlaceholdersWindow) {\r\n this.PlaceholdersWindow.Close();\r\n }\r\n\r\n var $btn = $('#mail-templates-select-form .select');\r\n\r\n onSelectForm.call(this, $btn, null);\r\n }\r\n\r\n function onBtnSelectAttachmentFilesClick() {\r\n if (this.PlaceholdersWindow) {\r\n this.PlaceholdersWindow.Close();\r\n }\r\n\r\n var me = this;\r\n\r\n ChangeMode.FilePicker.Show({\r\n onPick: function (file) {\r\n onSelectAttachmentFiles.call(me, file.OID);\r\n },\r\n filterTypes: [Enums.FileType.File]\r\n });\r\n }\r\n\r\n function onBtnRemoveFileClick() {\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n function onSelectAttachmentFiles(fileIdentifier) {\r\n if (!fileIdentifier) {\r\n return;\r\n }\r\n\r\n var property = this.CurrentTab.PropertyMap['mail-templates-select-attachment-files'];\r\n var currentlySelectedFiles = property.GetValue();\r\n\r\n currentlySelectedFiles = currentlySelectedFiles || [];\r\n currentlySelectedFiles = Tools.addUnique(currentlySelectedFiles, fileIdentifier)\r\n .filter(function (identifier) {\r\n var file = changemode.Files[identifier];\r\n\r\n return file && file.ModificationType !== Enums.ModificationType.Deleted;\r\n });\r\n\r\n property.SetValue(currentlySelectedFiles);\r\n property.AddFileToTable(fileIdentifier);\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n }\r\n\r\n function getAttachmentFilesActionDropdownItems() {\r\n return [{\r\n Caption: i18next.t('misc.fileTable.actionDropdown.addFileFromCatalog'),\r\n ID: 'add-file-from-catalog',\r\n OnClick: $.proxy(onBtnSelectAttachmentFilesClick, this),\r\n Icon: './img/datei-aus-katalog.svg'\r\n }, {\r\n Caption: i18next.t('misc.fileTable.actionDropdown.uploadFile'),\r\n ID: 'upload-new-file',\r\n Icon: './img/datei.svg',\r\n FileInput: {\r\n InitUpload: initAttachmentFileUpload,\r\n Accept: '*/*',\r\n Multiple: true\r\n }\r\n }];\r\n }\r\n\r\n function initAttachmentFileUpload($container) {\r\n var options = {\r\n url: Config.BaseUri + 'files',\r\n params: function (fileData) {\r\n var filename = fileData.name.split('\\\\').pop();\r\n\r\n return {\r\n FolderOID: changemode.RootFolder.Children[0].OID,\r\n Title: filename,\r\n IsAvailableOffline: true\r\n };\r\n }\r\n };\r\n\r\n var $fileUpload = $container.find('.file-upload');\r\n var uploadedFiles = [];\r\n var prop = this;\r\n\r\n $fileUpload.upload(options);\r\n $fileUpload\r\n .on('start.upload', Tools.Spinner.show)\r\n .on('uploaded.upload', function (_event, data) {\r\n var file = JSON.parse(data.response);\r\n\r\n if (Tools.Files.isImage(file.MimeType)) {\r\n file.Metrics = {\r\n s: { width: 0, height: 0 },\r\n m: { width: 0, height: 0 },\r\n l: { width: 0, height: 0 },\r\n o: { width: 0, height: 0 }\r\n };\r\n\r\n var tmp;\r\n\r\n if ((tmp = (file.SizeS || '').split('x')).length === 2) {\r\n file.Metrics.s.width = parseInt(tmp[0], 10) || 0;\r\n file.Metrics.s.height = parseInt(tmp[1], 10) || 0;\r\n }\r\n\r\n if ((tmp = (file.SizeM || '').split('x')).length === 2) {\r\n file.Metrics.m.width = parseInt(tmp[0], 10) || 0;\r\n file.Metrics.m.height = parseInt(tmp[1], 10) || 0;\r\n }\r\n\r\n if ((tmp = (file.SizeL || '').split('x')).length === 2) {\r\n file.Metrics.l.width = parseInt(tmp[0], 10) || 0;\r\n file.Metrics.l.height = parseInt(tmp[1], 10) || 0;\r\n }\r\n\r\n if ((tmp = (file.SizeOriginal || '').split('x')).length === 2) {\r\n file.Metrics.o.width = parseInt(tmp[0], 10) || 0;\r\n file.Metrics.o.height = parseInt(tmp[1], 10) || 0;\r\n }\r\n\r\n changemode.Files[file.OID] = file;\r\n }\r\n\r\n changemode.Files = changemode.Files || {};\r\n changemode.Files[file.OID] = file;\r\n\r\n var folder = changemode.Folders[file.FolderOID];\r\n folder.Files = folder.Files || [];\r\n folder.Files.push(file);\r\n\r\n uploadedFiles.push(file.OID);\r\n\r\n if (data.numberOfFilesHandled !== data.numberOfFiles) {\r\n return;\r\n }\r\n\r\n var currentlySelectedFiles = prop.GetValue() || [];\r\n currentlySelectedFiles = currentlySelectedFiles.concat(uploadedFiles);\r\n\r\n prop.SetValue(currentlySelectedFiles);\r\n uploadedFiles.forEach(function (fileIdentifier) {\r\n prop.AddFileToTable(fileIdentifier);\r\n });\r\n\r\n uploadedFiles = [];\r\n\r\n changemode.CurrentPage.CurrentTab.MarkAsModified();\r\n Tools.Spinner.hide();\r\n })\r\n .on('error.upload', function (event, context) {\r\n if (context.data.numberOfFilesHandled === context.data.numberOfFiles) {\r\n Tools.Spinner.hide();\r\n }\r\n\r\n Tools.OnUploadError(event, context);\r\n });\r\n }\r\n\r\n function onBtnOpenPlaceholdersWindowsClick() {\r\n var selectedFormOID = $('#mail-templates-select-form-value').data('value');\r\n var selectedForm = !!selectedFormOID ? changemode.Elements[selectedFormOID] : null;\r\n\r\n this.PlaceholdersWindow = new Modifications.Popups.System.MailTemplatePlaceholdersWindow(\r\n 'mail-template-placeholders',\r\n '#mail-templates-mail-subject-value, #mail-templates-mail-body',\r\n selectedForm && selectedForm.ModificationType !== Enums.ModificationType.Deleted ? selectedForm : null\r\n ).Show();\r\n }\r\n\r\n function onBtnShowMailTemplatePreview() {\r\n var subjectProperty = this.CurrentTab.PropertyMap['mail-templates-mail-subject'];\r\n var bodyProperty = this.CurrentTab.PropertyMap['mail-templates-mail-body'];\r\n\r\n var subject = parseTextWithPlaceholders(subjectProperty.GetValue());\r\n var body = parseTextWithPlaceholders(bodyProperty.GetValue());\r\n\r\n new Modifications.Popups.MailTemplatePreview({\r\n Subject: subject,\r\n Body: body\r\n }).Show();\r\n }\r\n\r\n function getHasCheckpointPlaceholderConflicts(text, newFormIdentifier) {\r\n if (!text) {\r\n return false;\r\n }\r\n\r\n cpRegex.lastIndex = -1;\r\n\r\n var match;\r\n\r\n if (cpRegex.test(text)) {\r\n cpRegex.lastIndex = -1;\r\n\r\n while (match = cpRegex.exec(text)) {\r\n var cpIdentifier = match[1];\r\n var checkpoint = changemode.Elements[cpIdentifier];\r\n\r\n if (checkpoint &&\r\n checkpoint.Parent &&\r\n checkpoint.Parent.ParentOID !== newFormIdentifier) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function getTextWithHighlightedConflictedPlaceholders(text, newFormIdentifier, returnOnlyIfMatchesFound) {\r\n if (!text) {\r\n return null;\r\n }\r\n\r\n cpRegex.lastIndex = -1;\r\n\r\n text = replaceCheckpointPlaceholders(text, function (text, match) {\r\n var cpIdentifier = match[1];\r\n var checkpoint = changemode.Elements[cpIdentifier];\r\n var group = checkpoint.Parent;\r\n\r\n if (checkpoint &&\r\n group &&\r\n group.ParentOID !== newFormIdentifier) {\r\n var checkpointText = '(' + (group ? group.Title : '') + ' > ' + (checkpoint ? checkpoint.Title : '') + ')';\r\n\r\n return text.replace(match[0], checkpointText);\r\n }\r\n\r\n return text;\r\n }, returnOnlyIfMatchesFound);\r\n\r\n text = replaceIssuePlaceholders(text, returnOnlyIfMatchesFound);\r\n\r\n return text;\r\n }\r\n\r\n function removeConflictedPlaceholdersFromText(text, newFormIdentifier) {\r\n if (!text) {\r\n return null;\r\n }\r\n\r\n text = replaceCheckpointPlaceholders(text, function (text, match) {\r\n var cpIdentifier = match[1];\r\n var checkpoint = changemode.Elements[cpIdentifier];\r\n var group = checkpoint.Parent;\r\n\r\n if (checkpoint &&\r\n group &&\r\n group.ParentOID !== newFormIdentifier) {\r\n return text.replace(match[0], '');\r\n }\r\n\r\n return text;\r\n });\r\n\r\n return text;\r\n }\r\n\r\n function parseTextWithPlaceholders(text) {\r\n if (!text) {\r\n return null;\r\n }\r\n\r\n text = replaceCheckpointPlaceholders(text);\r\n text = replaceIssuePlaceholders(text);\r\n\r\n return text;\r\n }\r\n\r\n function replaceCheckpointPlaceholders(text, replaceFunction, returnOnlyIfMatchesFound) {\r\n cpRegex.lastIndex = -1;\r\n\r\n if (!(replaceFunction instanceof Function)) {\r\n replaceFunction = function (text, match) {\r\n var cpIdentifier = match[1];\r\n var checkpoint = changemode.Elements[cpIdentifier];\r\n\r\n if (checkpoint) {\r\n var group = checkpoint.Parent;\r\n var checkpointText = '(' + (group ? group.Title : '') + ' > ' + (checkpoint ? checkpoint.Title : '') + ')';\r\n\r\n return text.replace(match[0], checkpointText);\r\n }\r\n\r\n return text.replace(match[0], '');\r\n };\r\n }\r\n\r\n returnOnlyIfMatchesFound = returnOnlyIfMatchesFound || false;\r\n\r\n var match;\r\n var matchesFound = false;\r\n\r\n if (cpRegex.test(text)) {\r\n cpRegex.lastIndex = -1;\r\n\r\n while (match = cpRegex.exec(text)) {\r\n matchesFound = true;\r\n text = replaceFunction(text, match);\r\n\r\n cpRegex.lastIndex = -1;\r\n }\r\n }\r\n\r\n return returnOnlyIfMatchesFound && !matchesFound ? null : text;\r\n }\r\n\r\n function replaceIssuePlaceholders(text, replaceFunction, returnOnlyIfMatchesFound) {\r\n issueRegex.lastIndex = -1;\r\n\r\n if (!(replaceFunction instanceof Function)) {\r\n replaceFunction = function (text, match) {\r\n var placeholder = match[1];\r\n var placeholderText = '(' + getIssuePlaceholderText(placeholder) + ')';\r\n\r\n return text.replace(match[0], placeholderText);\r\n };\r\n }\r\n\r\n returnOnlyIfMatchesFound = returnOnlyIfMatchesFound || false;\r\n\r\n var match;\r\n var matchesFound = false;\r\n\r\n if (issueRegex.test(text)) {\r\n issueRegex.lastIndex = -1;\r\n\r\n while (match = issueRegex.exec(text)) {\r\n matchesFound = true;\r\n text = replaceFunction(text, match);\r\n\r\n issueRegex.lastIndex = -1;\r\n }\r\n }\r\n\r\n return returnOnlyIfMatchesFound && !matchesFound ? null : text;\r\n }\r\n\r\n function getIssuePlaceholderText(placeholder) {\r\n if (!placeholder) {\r\n return null;\r\n }\r\n\r\n placeholder = placeholder[0].toLowerCase() + placeholder.substr(1);\r\n\r\n return i18next.t('changeMode.mailTemplates.placeholdersWindow.placeholders.' + placeholder + '.title');\r\n }\r\n\r\n if (!global.System) {\r\n global.System = {};\r\n }\r\n\r\n global.System.MailTemplates = MailTemplatesView;\r\n})(Modifications.Pages || (Modifications.Pages = {}));","(function (global) {\r\n var FileTableProperty = function (definition) {\r\n if (!definition) {\r\n throw new Error('Property definition not given');\r\n }\r\n\r\n definition.Type = global.PropertyTypes.FileTable;\r\n\r\n global.Base.Properties.Base.call(this, definition);\r\n };\r\n\r\n FileTableProperty.prototype = Object.create(global.Base.Properties.Base.prototype, {\r\n constructor: FileTableProperty\r\n });\r\n\r\n FileTableProperty.prototype.RenderInput = function () {\r\n var unformattedValue = CurrentEntity[this.MappedProperty];\r\n var files = (unformattedValue || [])\r\n .map(function (identifier) { return changemode.Files[identifier]; })\r\n .filter(function (file) { return file != null; })\r\n .sort(Tools.SortByTitle);\r\n\r\n var html = [\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '+',\r\n '
    ',\r\n '
    ',\r\n Tools.Files.renderFilesTable(files),\r\n '
    ',\r\n '
    '\r\n ];\r\n\r\n return html.join('');\r\n };\r\n\r\n\r\n FileTableProperty.prototype.AddFileToTable = function (fileIdentifier) {\r\n if (!fileIdentifier) {\r\n return;\r\n }\r\n\r\n var file = changemode.Files[fileIdentifier];\r\n\r\n if (!file) {\r\n return;\r\n }\r\n\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n var newFileRow = Tools.Files.renderFilesTableBodyRow(file);\r\n\r\n if ($prop.find('.no-data-available').length) {\r\n $prop.find('.no-data-available').remove();\r\n }\r\n\r\n $prop.find('tbody').append(newFileRow);\r\n\r\n this.BindEvents();\r\n };\r\n\r\n FileTableProperty.prototype.OnAfterRendered = function () {\r\n this.BindEvents.call(this);\r\n\r\n var value = CurrentEntity[this.MappedProperty];\r\n\r\n this.SetValue(value);\r\n };\r\n\r\n FileTableProperty.prototype.UnbindEvents = function () {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n $prop.find('.action-dropdown-button').off('click');\r\n $prop.find('.title').off('click');\r\n $prop.find('.btn-remove').off('click');\r\n };\r\n\r\n FileTableProperty.prototype.BindEvents = function () {\r\n var $prop = $('#' + this.ID);\r\n\r\n if (!$prop.length) {\r\n return;\r\n }\r\n\r\n this.UnbindEvents();\r\n\r\n $prop.find('.action-dropdown-button').on('click', $.proxy(onActionDropdownButtonClick, this));\r\n $prop.find('.title').on('click', $.proxy(onFileClick, this));\r\n $prop.find('.btn-remove').on('click', $.proxy(onBtnRemoveFileClick, this));\r\n };\r\n\r\n FileTableProperty.prototype.SetValue = function (value) {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n if (value instanceof Array) {\r\n value = value.join('|');\r\n } else {\r\n value = null;\r\n }\r\n\r\n $prop\r\n .data('value', value)\r\n .attr('data-value', value);\r\n };\r\n\r\n FileTableProperty.prototype.GetValue = function () {\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n if (!$prop.length) {\r\n return null;\r\n }\r\n\r\n var value = $prop.data('value') || '';\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n var identifiers = value\r\n .split('|')\r\n .filter(Tools.IsValidGuid);\r\n\r\n return identifiers.length ? identifiers : null;\r\n };\r\n\r\n FileTableProperty.prototype.ApplyValue = function () {\r\n CurrentEntity[this.MappedProperty] = this.GetValue();\r\n };\r\n\r\n function onActionDropdownButtonClick(evt) {\r\n evt.stopPropagation();\r\n\r\n var $this = $(evt.currentTarget);\r\n\r\n $this.toggleClass('active');\r\n\r\n if ($this.hasClass('active')) {\r\n if (this.GetActionDropdownItems instanceof Function) {\r\n var items = this.GetActionDropdownItems();\r\n\r\n Tools.createActionDropdown(items, $this);\r\n\r\n var prop = this;\r\n\r\n if (items instanceof Array) {\r\n items.forEach(function (item) {\r\n if (item.FileInput && item.FileInput.InitUpload instanceof Function) {\r\n var $item = $this.find('[data-id=\"' + item.ID + '\"]');\r\n\r\n item.FileInput.InitUpload.call(prop, $item);\r\n }\r\n });\r\n }\r\n }\r\n\r\n $('body').on('click.closeRoomFilesActionWindow', function () {\r\n $this.removeClass('active');\r\n $this.find('.action-dropdown').removeClass('is-visible').css('max-height', 0);\r\n });\r\n } else {\r\n $this.find('.action-dropdown').removeClass('is-visible').css('max-height', 0);\r\n }\r\n }\r\n\r\n function onFileClick(evt) {\r\n var $this = $(evt.currentTarget);\r\n var $row = $this.closest('tr');\r\n var oid = $row.data('oid');\r\n var file = changemode.Files[oid];\r\n\r\n if (!file) {\r\n return;\r\n }\r\n\r\n FileWindow.Show(file, $.proxy(updateFileInformation, this));\r\n }\r\n\r\n function updateFileInformation(file) {\r\n if (!file) {\r\n return;\r\n }\r\n\r\n var $prop = $('#' + this.ID + '-value');\r\n\r\n var $fileRow = $prop.find('[data-oid=\"' + file.OID + '\"]');\r\n\r\n if (!$fileRow.length) {\r\n return;\r\n }\r\n\r\n $fileRow.find('.title').text(file.Title);\r\n $fileRow.find('td:nth-child(4)').text(file.IsAvailableOffline ? i18next.t('misc.no') : i18next.t('misc.yes'));\r\n }\r\n\r\n function onBtnRemoveFileClick(evt) {\r\n var $this = $(evt.currentTarget);\r\n var $tbody = $this.closest('tbody');\r\n var $row = $this.closest('tr');\r\n var value = this.GetValue();\r\n\r\n Tools.remove(value, $row.data('oid'));\r\n\r\n this.SetValue(value);\r\n\r\n $row.remove();\r\n\r\n if ($tbody.find('tr').length === 0) {\r\n $tbody.html(Tools.Files.renderFilesTableBody())\r\n }\r\n\r\n if (this.OnRemoveClick instanceof Function) {\r\n this.OnRemoveClick();\r\n }\r\n }\r\n\r\n if (!global.Base) {\r\n global.Base = {};\r\n }\r\n\r\n if (!global.Base.Properties) {\r\n global.Base.Properties = {};\r\n }\r\n\r\n global.Base.Properties.TableProperty = FileTableProperty;\r\n})(Modifications.Pages || (Modifications.Pages = {}));"],"sourceRoot":"js/modifications"}