{"version":3,"file":"base-page.js","sourceRoot":"","sources":["../../../Scripts/commons/base-page.ts"],"names":[],"mappings":"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","sourcesContent":["namespace Seac.Commons {\r\n\t/** Configurazione della pagina prima di un cambio di visualizzazione */\r\n\texport class PreChangePageConfiguration {\r\n\t\tprivate _leftMenuOpened:\tboolean;\r\n\t\tprivate _hidObjects: JQuery;\r\n\t\tprivate _showedObjects:\tJQuery;\r\n\r\n\t\tpublic get leftMenuOpened(): boolean {\r\n\t\t\treturn this._leftMenuOpened;\r\n\t\t}\r\n\t\tpublic get hidObjects(): JQuery {\r\n\t\t\treturn this._hidObjects;\r\n\t\t}\r\n\t\tpublic get showedObjects(): JQuery {\r\n\t\t\treturn this._showedObjects;\r\n\t\t}\r\n\r\n\t\tconstructor(leftMenuOpen: boolean, hidObjects: JQuery, showedObjects: JQuery) {\r\n\t\t\tthis._leftMenuOpened\t= leftMenuOpen;\r\n\t\t\tthis._hidObjects\t\t= hidObjects;\r\n\t\t\tthis._showedObjects\t\t= showedObjects;\r\n\t\t}\r\n\t}\r\n\t/** Delegato per il callback dell'invio dei dati */\r\n\texport interface SendFormCallback {\r\n\t\t(data: any, status: JQuery.Ajax.SuccessTextStatus, xhr: JQuery.jqXHR): void;\r\n\t}\r\n \r\n\texport abstract class BasePage {\r\n\t\tpublic abstract pageConfiguration: TPageConfiguration;\r\n\t\tprivate _minVisibleWidth\t\t\t\t: number;\r\n\t\tprivate _skipActionFormInAjax\t\t\t: boolean = false;\r\n\t\tprivate _enableOnAjaxSubmit\t\t\t\t: boolean = false;\r\n\t\tprivate _enableOnAjaxSubmitIdentifier\t: string;\r\n\r\n\t\tpublic init(): void {\r\n\t\t\tif (this._minVisibleWidth && Seac.Pages.PageUtility.isMobileDevice) {\r\n\t\t\t\t// Se è settata una dimensione minima per la pagina, e mi trovo su un dispositivo mobile\r\n\t\t\t\t// richiamo il metodo che verifica che la risoluzione sia supportata,\r\n\t\t\t\t// eseguo anche il binding all'evento `orientationchange` del dispositivo per verificare che la \"nuova\" risoluzione sia compatibile con la pagina\r\n\t\t\t\tthis.checkResolutionForPage();\r\n\r\n\t\t\t\t$(window).on(Seac.Commons.Constants.orientationChangeEvent, ()=> {\r\n\t\t\t\t\tthis.checkResolutionForPage();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/** Controllo se la risoluzione è supportata per la pagina corrente, e visualizzo o nascondo il relativo overlay */\r\n\t\tprivate checkResolutionForPage(): void {\r\n\t\t\tlet width: number;\r\n\t\t\tlet height: number;\r\n\r\n\t\t\t// Se il dispositivo è in verticale larghezza e altezza sono corrette, altrimenti vanno invertite\r\n\t\t\tif (window.orientation == 0) {\r\n\t\t\t\twidth = screen.availWidth;\r\n\t\t\t\theight = screen.availHeight;\r\n\t\t\t}else {\r\n\t\t\t\t// Sembra che i vari dispositivi restituiscano larghezza o altezza invertite, quindi prendo sempre per larghezza la dimensione maggiore\r\n\t\t\t\twidth = screen.availHeight > screen.availWidth ? screen.availHeight : screen.availWidth;\r\n\t\t\t\theight = screen.availHeight > screen.availWidth ? screen.availWidth : screen.availHeight;\r\n\t\t\t}\r\n\t\t\tif (width < this._minVisibleWidth && height < this._minVisibleWidth) {\r\n\t\t\t\t// Se sono in questo caso significa che la risoluzione è troppo bassa per visualizzare la pagina\r\n\t\t\t\t// quindi mostro l'overlay con il messaggio che la pagina non è visibile su questo dispositivo\r\n\t\t\t\tSeac.Pages.PageUtility.showResolutionOverlay(Seac.Pages.ResolutionOverlayType.NotSupported);\r\n\t\t\t}else if (width < this._minVisibleWidth && height >= this._minVisibleWidth) {\r\n\t\t\t\t// Se l'altezza è maggiore della larghezza e sono su un dispositovo mobile, probabilmente l'utente può ruotare lo schermo\r\n\t\t\t\t// quindi mostro l'overlay con il messaggio di ruotare lo schermo\r\n\t\t\t\tSeac.Pages.PageUtility.showResolutionOverlay(Seac.Pages.ResolutionOverlayType.RotateDevice);\r\n\t\t\t}else {\r\n\t\t\t\tSeac.Pages.PageUtility.removeResolutionOverlay();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Richiama un'azione disabilitando i pulsanti e li riattiva al termine dell'operazione\r\n\t\t * @param action Azione da eseguire\r\n\t\t * @param disableIdentifierArray Array di classi che devono essere disabilitate\r\n\t\t */\r\n\t\tprotected callActionDisableButtons(action: JQuery.Promise & JQueryPromise, ...disableIdentifierArray: Array): JQuery.Promise & JQueryPromise {\r\n\t\t\tconst disableIdentifier: string = Seac.Commons.FormUtility.disableAndMarkDescendantButtons($(Seac.Commons.Constants.body), ...disableIdentifierArray);\r\n\t\t\treturn action.always((enableButtons: boolean | null | void) => {\r\n\t\t\t\tif (enableButtons !== false) {\r\n\t\t\t\t\tSeac.Commons.FormUtility.reEnableButtons($(Seac.Commons.Constants.body), disableIdentifier);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/** Imposta l'azione della form in ajax e non in nativo */\r\n\t\tprotected actionFormInAjax(successCallback?: SendFormCallback, redirectCallback?: SendFormCallback, errorCallback?: SendFormCallback) {\r\n\t\t\t$('form').each((_, formElement: HTMLFormElement) => {\r\n\t\t\t\t$(formElement).on(Seac.Commons.Constants.submitEvent, (event: JQuery.SubmitEvent) => {\r\n\t\t\t\t\t// Controllo se effettuare l'action della form in ajax\r\n\t\t\t\t\tif (this._skipActionFormInAjax) {\r\n\t\t\t\t\t\treturn ;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Prima di inviare i dati, verifico che l'impresa sia coerente\r\n\t\t\t\t\tif (Seac.Pages.sessionStateUtility.checkImpresaOnPost()) {\r\n\t\t\t\t\t\t// Serializzo la form per l'invio dei dati\r\n\t\t\t\t\t\tconst serializedForm = this.serializeFormToFormData(\r\n\t\t\t\t\t\t\t>$(formElement)\t\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tconst formAjaxService: FormAjaxService = new FormAjaxService();\r\n\t\t\t\t\t\t// Effettuo la post della form\r\n\t\t\t\t\t\tformAjaxService.sendForm(\r\n\t\t\t\t\t\t\tformElement.method,\r\n\t\t\t\t\t\t\tserializedForm,\r\n\t\t\t\t\t\t\tformElement.action\r\n\t\t\t\t\t\t).then((data: any, status: JQuery.Ajax.SuccessTextStatus, xhr: JQuery.jqXHR) => {\r\n\t\t\t\t\t\t\t// Controllo quale evento di callback richiamare\r\n\t\t\t\t\t\t\tif (successCallback && (xhr.status >= Seac.Commons.HttpStatusCodes.OK_RANGE.from) && (xhr.status <= Seac.Commons.HttpStatusCodes.OK_RANGE.to)) {\r\n\t\t\t\t\t\t\t\tsuccessCallback(data, status, xhr);\r\n\t\t\t\t\t\t\t}else if (redirectCallback && (xhr.status >= Seac.Commons.HttpStatusCodes.REDIRECT_RANGE.from) && (xhr.status <= Seac.Commons.HttpStatusCodes.REDIRECT_RANGE.to)) {\r\n\t\t\t\t\t\t\t\tredirectCallback(data, status, xhr);\r\n\t\t\t\t\t\t\t}else if (errorCallback &&\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t(xhr.status >= Seac.Commons.HttpStatusCodes.WARNING_RANGE.from) && (xhr.status <= Seac.Commons.HttpStatusCodes.WARNING_RANGE.to) ||\r\n\t\t\t\t\t\t\t\t\t(xhr.status >= Seac.Commons.HttpStatusCodes.ERROR_RANGE.from) && (xhr.status <= Seac.Commons.HttpStatusCodes.ERROR_RANGE.to)\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\terrorCallback(data, status, xhr);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.always(() => {\r\n\t\t\t\t\t\t\t// Controllo se abilitare i pulsanti submit\r\n\t\t\t\t\t\t\tthis.submitEnableButtons();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/** Abilita la gestione dell'action della form in ajax */\r\n\t\tprotected enableActionFormInAjax(): void {\r\n\t\t\tthis._skipActionFormInAjax = false;\r\n\t\t}\r\n\r\n\t\t/** Disabilita la gestione dell'action della form in ajax */\r\n\t\tprotected disableActionFormInAjax(): void {\r\n\t\t\tthis._skipActionFormInAjax = true;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Serializza gli input presenti nella form, aggiunge gli eventuali file e restituisce il FormData\r\n\t\t * @param formInstance Form da serializzare\r\n\t\t */\r\n\t\tprotected serializeFormToFormData(formInstance: JQuery): FormData {\r\n\t\t\t// Rimuovo le vecchie validazioni\r\n\t\t\tSeac.Commons.validationDisplay.cleanValidations();\r\n\t\t\t// Abilito tutti i field in modo che vengano serializzati correttamente\r\n\t\t\tconst enableIdentifier: string = Seac.Commons.FormUtility.enableAndMarkDescendantInputFields(formInstance);\r\n\r\n\t\t\tconst formData: FormData = new FormData();\r\n\t\t\tconst formParams: Array = formInstance.serializeArray();\r\n\t\t\t// Converte i dati della form in form data\r\n\t\t\t$.each(formParams, (_, nameValuePair: JQuery.NameValuePair) => {\r\n\t\t\t\tformData.append(nameValuePair.name, nameValuePair.value);\r\n\t\t\t});\r\n\r\n\t\t\t// Aggiunge gli eventuali allegati al form data\r\n\t\t\t$.each(formInstance.find('input[type=\"file\"]'), (_, inputFileElement: HTMLElement) => {\r\n\t\t\t\t$.each((inputFileElement).files, (_, fileElement) => {\r\n\t\t\t\t\tformData.append((inputFileElement).name, fileElement);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// Reimposto lo stato dei field ripristinando la situazione precedente all'abilitazione massiva\t\t\t\r\n\t\t\tSeac.Commons.FormUtility.reDisableFormFields(formInstance, enableIdentifier);\r\n\r\n\t\t\treturn formData;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Serializza gli input presenti nella form, restituendo un oggetto contenente i dati\r\n\t\t * @param formInstance Form da serializzare\r\n\t\t */\r\n\t\tprotected serializeFormToObject(formInstance: JQuery): T {\r\n\t\t\t// Abilito tutti i field in modo che vengano serializzati correttamente\r\n\t\t\tconst enableIdentifier: string = Seac.Commons.FormUtility.enableAndMarkDescendantInputFields(formInstance);\r\n\r\n\t\t\tconst serializedData: T = formInstance.serializeJSON({useIntKeysAsArrayIndex: true, checkboxUncheckedValue: 'false', parseNumbers: false, parseBooleans: true, parseWithFunction: (val: any, inputName: string) => this.customFieldsSerializer(val, inputName) })\r\n\r\n\t\t\t// Reimposto lo stato dei field ripristinando la situazione precedente all'abilitazione massiva\t\t\t\r\n\t\t\tSeac.Commons.FormUtility.reDisableFormFields(formInstance, enableIdentifier);\r\n\r\n\t\t\treturn serializedData;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo che permette la serializzazione custom degli input se necessario\r\n\t\t * @param value Valore dell'input\r\n\t\t * @param inputName Nome dell'input\r\n\t\t */\r\n\t\tprotected customFieldsSerializer(value: any, inputName: string): any {\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tpublic setMinVisibleWidth(width: number): void {\r\n\t\t\tthis._minVisibleWidth = width;\r\n\t\t}\r\n\r\n\t\t/** Disabilita tutti i pulsanti submit al submit di una form */\r\n\t\tprotected submitDisableButtonsOnEvent(enableOnAjaxSubmit?: boolean): void {\r\n\t\t\tthis._enableOnAjaxSubmit = !!enableOnAjaxSubmit;\r\n\r\n\t\t\t$('form').on(Seac.Commons.Constants.submitEvent, (event: JQuery.SubmitEvent) => {\r\n\t\t\t\t// Salvo l'identificatore di disabilitazione\r\n\t\t\t\tthis._enableOnAjaxSubmitIdentifier = Seac.Commons.FormUtility.disableAndMarkElement($(':submit'));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/** Abilita i pulsanti submit immediatamente */\r\n\t\tprotected submitEnableButtons(): void {\r\n\t\t\t// Solo se abilitato alla riabilitazione in form in ajax abilito gli elementi disabilitati\r\n\t\t\tif (!this._enableOnAjaxSubmit || !this._enableOnAjaxSubmitIdentifier) {\r\n\t\t\t\treturn ;\r\n\t\t\t}\r\n\t\t\tSeac.Commons.FormUtility.reEnableElement($(':submit'), this._enableOnAjaxSubmitIdentifier);\r\n\t\t}\r\n\t}\r\n}\r\n"]}