UNPKG

@drozdik.m/common-dialog-window

Version:

Nice and easy-to-use list of common info dialog windows

378 lines (329 loc) 15.8 kB
import { DialogWindow } from "@drozdik.m/dialog-window"; //-------------------------------------------------- //----------COMMON DIALOG WINDOW PROPERTIES--------- //-------------------------------------------------- abstract class DialogWindowProperties { id: string; buttonClass: string; constructor(id: string, buttonClass: string) { this.id = id; this.buttonClass = buttonClass; } /** * Returns generated dialog window HTML */ abstract GenerateDialogWindowHTML(): string; } class CommonDialogWindowProperties extends DialogWindowProperties { GenerateDialogWindowHTML(): string { return `<div id="${this.id}" class="commonDialogWindowContent"> \ <p class="dialogWindowHeading"></p> \ <p class="message"></p> \ <div class="commonButtonWrapper"> \ <button class="commonButton ${this.buttonClass} dialogClose"></button> \ </div> \ </div>`; } } class CommonDialogWindowProperties_Green extends CommonDialogWindowProperties { constructor(id: string) { super(id, "commonButtonGreen") } } class CommonDialogWindowProperties_Yellow extends CommonDialogWindowProperties { constructor(id: string) { super(id, "commonButtonYellow") } } class CommonDialogWindowProperties_Red extends CommonDialogWindowProperties { constructor(id: string) { super(id, "commonButtonRed") } } class CommonDialogWindowProperties_Grey extends CommonDialogWindowProperties { constructor(id: string) { super(id, "commonButtonGrey") } } //-------------------------------------------------- //----------CONFIRMATION DIALOG WINDOW PROPERTIES--- //-------------------------------------------------- class ConfirmationDialogWindowProperties extends DialogWindowProperties { cancelButtonClass: string; constructor(id: string, confirmButtonClass: string, cancelButtonClass: string) { super(id, confirmButtonClass); this.cancelButtonClass = cancelButtonClass; } GenerateDialogWindowHTML(): string { return `<div id="${this.id}" class="commonDialogWindowContent"> \ <p class="dialogWindowHeading">Potvrzení</p> \ <p class="message"></p> \ <div class="commonButtonWrapper"> \ <button class="commonButton confirmButton ${this.buttonClass} dialogClose">Potvrdit</button> \ <button class="commonButton closeButton ${this.cancelButtonClass} dialogClose">Zrušit</button> \ </div> \ </div>`; } } class ConfirmationDialogWindowProperties_Green extends ConfirmationDialogWindowProperties { constructor(id: string) { super(id, "commonButtonGreen", "commonButtonGrey"); } } class ConfirmationDialogWindowProperties_Yellow extends ConfirmationDialogWindowProperties { constructor(id: string) { super(id, "commonButtonYellow", "commonButtonGrey"); } } class ConfirmationDialogWindowProperties_Red extends ConfirmationDialogWindowProperties { constructor(id: string) { super(id, "commonButtonRed", "commonButtonGrey"); } } class ConfirmationDialogWindowProperties_Grey extends ConfirmationDialogWindowProperties { constructor(id: string) { super(id, "commonButtonGrey", "commonButtonGrey"); } } //-------------------------------------------------- //----------COMMON DIALOG WINDOWS------------------- //-------------------------------------------------- export class CommonDialogWindow { //-------------------------------------------------- //----------VARIABLES------------------------------- //-------------------------------------------------- //Dialog windows private static SuccessDialogWindow: DialogWindow = null; private static WarningDialogWindow: DialogWindow = null; private static ErrorDialogWindow: DialogWindow = null; private static InfoDialogWindow: DialogWindow = null; //Information dialog settings private static SuccessDialogSettings: CommonDialogWindowProperties = new CommonDialogWindowProperties_Green("dialogSuccess"); private static WarningDialogSettings: CommonDialogWindowProperties = new CommonDialogWindowProperties_Yellow("dialogWarning"); private static ErrorDialogSettings: CommonDialogWindowProperties = new CommonDialogWindowProperties_Red("dialogError"); private static InfoDialogSettings: CommonDialogWindowProperties = new CommonDialogWindowProperties_Grey("dialogInfo"); //Confirmation dialog settings private static GreenConfirmationDialogWindow: DialogWindow = null; private static YellowConfirmationDialogWindow: DialogWindow = null; private static RedConfirmationDialogWindow: DialogWindow = null; private static GreyConfirmationDialogWindow: DialogWindow = null; //Confirmation dialog settings private static GreenConfirmationDialogSettings: ConfirmationDialogWindowProperties = new ConfirmationDialogWindowProperties_Green("dialogGreenConfirmation"); private static YellowConfirmationDialogSettings: ConfirmationDialogWindowProperties = new ConfirmationDialogWindowProperties_Yellow("dialogYellowConfirmation"); private static RedConfirmationDialogSettings: ConfirmationDialogWindowProperties = new ConfirmationDialogWindowProperties_Red("dialogRedConfirmation"); private static GreyConfirmationDialogSettings: ConfirmationDialogWindowProperties = new ConfirmationDialogWindowProperties_Grey("dialogGreyConfirmation"); //-------------------------------------------------- //---------CONSTRUCTOR------------------------------ //-------------------------------------------------- constructor() { } //-------------------------------------------------- //----------METHODS--------------------------------- //-------------------------------------------------- /** * Handles existance of the dialog window * @param dialogWindow Dialog window * @param dialogWindowProperties Dialog window properties */ private static HandleDialogWindowExistance(dialogWindow: DialogWindow, dialogWindowProperties: DialogWindowProperties): DialogWindow { //Window already exists if (dialogWindow !== null) return dialogWindow; //Append the window document.body.insertAdjacentHTML("beforeend", dialogWindowProperties.GenerateDialogWindowHTML()); //Create dialog class return new DialogWindow(dialogWindowProperties.id); } //-------------------------------------------------- //----------COMMON DIALOG WINDOWS------------------- //-------------------------------------------------- /** * Shows success dialog window * @param message Message * @param heading Heading * @param confirmButton Confirm button text */ static Success(message: string, heading: string = "Úspěch", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.SuccessDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.SuccessDialogWindow, CommonDialogWindow.SuccessDialogSettings); //Change content CommonDialogWindow.FillCommonDialogWindow(CommonDialogWindow.SuccessDialogSettings.id, message, heading, confirmButton); //Open dialog window CommonDialogWindow.SuccessDialogWindow.Open(); } /** * Shows warning dialog window * @param message Message * @param heading Heading * @param confirmButton Confirm button text */ static Warning(message: string, heading: string = "Varování", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.WarningDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.WarningDialogWindow, CommonDialogWindow.WarningDialogSettings); //Change content CommonDialogWindow.FillCommonDialogWindow(CommonDialogWindow.WarningDialogSettings.id, message, heading, confirmButton); //Open dialog window CommonDialogWindow.WarningDialogWindow.Open(); } /** * Shows error dialog window * @param message Message * @param heading Heading * @param confirmButton Confirm button text */ static Error(message: string, heading: string = "Error", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.ErrorDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.ErrorDialogWindow, CommonDialogWindow.ErrorDialogSettings); //Change content CommonDialogWindow.FillCommonDialogWindow(CommonDialogWindow.ErrorDialogSettings.id, message, heading, confirmButton); //Open dialog window CommonDialogWindow.ErrorDialogWindow.Open(); } /** * Shows information dialog window * @param message Message * @param heading Heading * @param confirmButton Confirm button text */ static Info(message: string, heading: string = "Informace", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.InfoDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.InfoDialogWindow, CommonDialogWindow.InfoDialogSettings); //Change content CommonDialogWindow.FillCommonDialogWindow(CommonDialogWindow.InfoDialogSettings.id, message, heading, confirmButton); //Open dialog window CommonDialogWindow.InfoDialogWindow.Open(); } /** * Updates common dialog window content * @param dialogId Dialog window ID * @param message Message * @param heading Heading * @param confirmButton Confirm button text */ private static FillCommonDialogWindow(dialogId: string, message: string, heading: string, confirmButton: string) { let dialog = document.getElementById(dialogId); dialog.querySelector(".message").innerHTML = message; dialog.querySelector(".dialogWindowHeading").innerHTML = heading; dialog.querySelector(".commonButton").innerHTML = confirmButton; } //-------------------------------------------------- //----------CONFIRMATION DIALOG WINDOWS------------- //-------------------------------------------------- /** * Pops green confirmation dialog window. If confirmed, confirm action is called * @param message Message * @param confirmAction Function called on confirmation * @param heading Heading * @param closeButton Close button text * @param confirmButton Confirm button text */ static GreenConfirm(message: string, confirmAction: Function, heading: string = "Potvrzení", closeButton: string = "Zavřít", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.GreenConfirmationDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.GreenConfirmationDialogWindow, CommonDialogWindow.GreenConfirmationDialogSettings); //Change content CommonDialogWindow.FillConfirmDialogWindow(CommonDialogWindow.GreenConfirmationDialogSettings.id, confirmAction, message, heading, closeButton, confirmButton); //Open dialog window CommonDialogWindow.GreenConfirmationDialogWindow.Open(); } /** * Pops yellow confirmation dialog window. If confirmed, confirm action is called * @param message Message * @param confirmAction Function called on confirmation * @param heading Heading * @param closeButton Close button text * @param confirmButton Confirm button text */ static YellowConfirm(message: string, confirmAction: Function, heading: string = "Potvrzení", closeButton: string = "Zavřít", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.YellowConfirmationDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.YellowConfirmationDialogWindow, CommonDialogWindow.YellowConfirmationDialogSettings); //Change content CommonDialogWindow.FillConfirmDialogWindow(CommonDialogWindow.YellowConfirmationDialogSettings.id, confirmAction, message, heading, closeButton, confirmButton); //Open dialog window CommonDialogWindow.YellowConfirmationDialogWindow.Open(); } /** * Pops red confirmation dialog window. If confirmed, confirm action is called * @param message Message * @param confirmAction Function called on confirmation * @param heading Heading * @param closeButton Close button text * @param confirmButton Confirm button text */ static RedConfirm(message: string, confirmAction: Function, heading: string = "Potvrzení", closeButton: string = "Zavřít", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.RedConfirmationDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.RedConfirmationDialogWindow, CommonDialogWindow.RedConfirmationDialogSettings); //Change content CommonDialogWindow.FillConfirmDialogWindow(CommonDialogWindow.RedConfirmationDialogSettings.id, confirmAction, message, heading, closeButton, confirmButton); //Open dialog window CommonDialogWindow.RedConfirmationDialogWindow.Open(); } /** * Pops black confirmation dialog window. If confirmed, confirm action is called * @param message Message * @param confirmAction Function called on confirmation * @param heading Heading * @param closeButton Close button text * @param confirmButton Confirm button text */ static BlackConfirm(message: string, confirmAction: Function, heading: string = "Potvrzení", closeButton: string = "Zavřít", confirmButton: string = "Potvrdit") { //Handle dialog window CommonDialogWindow.GreyConfirmationDialogWindow = CommonDialogWindow.HandleDialogWindowExistance(CommonDialogWindow.GreyConfirmationDialogWindow, CommonDialogWindow.GreyConfirmationDialogSettings); //Change content CommonDialogWindow.FillConfirmDialogWindow(CommonDialogWindow.GreyConfirmationDialogSettings.id, confirmAction, message, heading, closeButton, confirmButton); //Open dialog window CommonDialogWindow.GreyConfirmationDialogWindow.Open(); } /** * Updates confirm dialog window content * @param dialogId Dialog window ID * @param message Message * @param heading Heading * @param closeButton Close button text * @param confirmButton Confirm button text */ private static FillConfirmDialogWindow(dialogId: string, confirmAction: Function, message: string, heading: string, closeButton: string, confirmButton: string) { let dialog = document.getElementById(dialogId); dialog.querySelector(".message").innerHTML = message; dialog.querySelector(".dialogWindowHeading").innerHTML = heading; dialog.querySelector(".closeButton").innerHTML = closeButton; let confirmButtonEl = dialog.querySelector(".confirmButton"); confirmButtonEl.innerHTML = confirmButton; (confirmButtonEl as any).onclick = confirmAction; } }