| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | 
							- /* global APP */
 - 
 - import UIUtil from '../util/UIUtil';
 - 
 - /**
 -  * Show dialog which asks for required conference password.
 -  * @returns {Promise<string>} password or nothing if user canceled
 -  */
 - export default class RequirePasswordDialog {
 -     constructor() {
 -         this.titleKey = 'dialog.passwordRequired';
 -         this.labelKey = 'dialog.passwordLabel';
 -         this.errorKey = 'dialog.incorrectPassword';
 -         this.errorId = 'passwordRequiredError';
 -         this.inputId = 'passwordRequiredInput';
 -         this.inputErrorClass = 'error';
 -         this.isOpened = false;
 -     }
 - 
 -     /**
 -      * Registering dialog listeners
 -      * @private
 -      */
 -     _registerListeners() {
 -         let el = document.getElementById(this.inputId);
 -         el.addEventListener('keypress', this._hideError.bind(this));
 -     }
 - 
 -     /**
 -      * Helper method returning dialog body
 -      * @returns {string}
 -      * @private
 -      */
 -     _getBodyMessage() {
 -         return (
 -             `<div class="form-control">
 -                 <label class="input-control__label"
 -                        data-i18n="${this.labelKey}"></label>
 -                 <input class="input-control__input input-control"
 -                        name="lockKey" type="text"
 -                    data-i18n="[placeholder]dialog.password"
 -                    autofocus id="${this.inputId}">
 -                 <p class="form-control__hint form-control__hint_error hide"
 -                    id="${this.errorId}"
 -                    data-i18n="${this.errorKey}"></p>
 -             </div>`
 -         );
 -     }
 - 
 -     /**
 -      * Asking for a password
 -      * @returns {Promise}
 -      */
 -     askForPassword() {
 -         if (!this.isOpened) {
 -             return this.open();
 -         }
 - 
 -         return new Promise((resolve, reject) => {
 -             this.resolve = resolve;
 -             this.reject = reject;
 -             this._showError();
 -         });
 -     }
 - 
 -     /**
 -      * Opens the dialog
 -      * @returns {Promise}
 -      */
 -     open() {
 -         let { titleKey } = this;
 -         let msgString = this._getBodyMessage();
 - 
 -         return new Promise((resolve, reject) => {
 -             this.resolve = resolve;
 -             this.reject = reject;
 -             let submitFunction = this._submitFunction.bind(this);
 -             let closeFunction = this._closeFunction.bind(this);
 - 
 -             this._dialog = APP.UI.messageHandler.openTwoButtonDialog({
 -                 titleKey,
 -                 msgString,
 -                 leftButtonKey: "dialog.Ok",
 -                 submitFunction,
 -                 closeFunction,
 -                 focus: ':input:first'
 -             });
 - 
 -             this._registerListeners();
 -             this.isOpened = true;
 -         });
 -     }
 - 
 -     /**
 -      * Submit dialog callback
 -      * @param e - event
 -      * @param v - value
 -      * @param m - message
 -      * @param f - form
 -      * @private
 -      */
 -     _submitFunction(e, v, m, f) {
 -         e.preventDefault();
 -         this._processInput(v, f);
 -     }
 - 
 -     /**
 -      * Processing input in dialog
 -      * @param v - value
 -      * @param f - form
 -      * @private
 -      */
 -     _processInput(v, f) {
 -         if (v && f.lockKey) {
 -             this.resolve(UIUtil.escapeHtml(f.lockKey));
 -         } else {
 -             this.reject(APP.UI.messageHandler.CANCEL);
 -         }
 -     }
 - 
 -     /**
 -      * Close dialog callback
 -      * @private
 -      */
 -     _closeFunction(e, v, m, f) {
 -         this._processInput(v, f);
 -         this._hideError();
 -         this.close();
 -     }
 - 
 -     /**
 -      * Method showing error hint
 -      * @private
 -      */
 -     _showError() {
 -         let className = this.inputErrorClass;
 -         let input = document.getElementById(this.inputId);
 -         document.getElementById(this.errorId).classList.remove('hide');
 -         input.classList.add(className);
 -         input.select();
 -     }
 - 
 -     /**
 -      * Method hiding error hint
 -      * @private
 -      */
 -     _hideError() {
 -         let className = this.inputErrorClass;
 -         document.getElementById(this.errorId).classList.add('hide');
 -         document.getElementById(this.inputId).classList.remove(className);
 -     }
 - 
 -     /**
 -      * Close the dialog
 -      */
 -     close() {
 -         if (this._dialog) {
 -             this._dialog.close();
 -         }
 -         this.isOpened = false;
 -     }
 - }
 
 
  |