Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/js/authentication_dialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/system/js/authentication_dialog.js')
-rw-r--r--apps/system/js/authentication_dialog.js178
1 files changed, 0 insertions, 178 deletions
diff --git a/apps/system/js/authentication_dialog.js b/apps/system/js/authentication_dialog.js
deleted file mode 100644
index 3a893ee..0000000
--- a/apps/system/js/authentication_dialog.js
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
-/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
-
-'use strict';
-
-// This module listens to mozbrowserusernameandpasswordrequired event.
-// It's for http authentication only.
-// XXX: ftp authentication will be implemented here but not supported yet.
-
-var AuthenticationDialog = {
- // Used for element id access.
- // e.g., 'authentication-dialog-alert-ok'
- prefix: 'authentication-dialog-',
-
- // DOM
- elements: {},
-
- // Get all elements when inited.
- getAllElements: function ad_getAllElements() {
- var elementsID = [
- 'http-authentication', 'http-username-input', 'http-password-input',
- 'http-authentication-message', 'http-authentication-ok',
- 'http-authentication-cancel', 'title'
- ];
-
- var toCamelCase = function toCamelCase(str) {
- return str.replace(/\-(.)/g, function replacer(str, p1) {
- return p1.toUpperCase();
- });
- };
-
- elementsID.forEach(function createElementRef(name) {
- this.elements[toCamelCase(name)] =
- document.getElementById(this.prefix + name);
- }, this);
-
- this.screen = document.getElementById('screen');
- this.overlay = document.getElementById('dialog-overlay');
- },
-
- // Save the events returned by
- // mozbrowserusernameandpasswordrequired for later use.
- // The events are stored according to webapp origin
- // e.g., 'http://uitest.gaiamobile.org': evt
- currentEvents: {},
-
- init: function ad_init() {
- // Get all elements initially.
- this.getAllElements();
- var elements = this.elements;
-
- // Bind events
- window.addEventListener('mozbrowserusernameandpasswordrequired', this);
- window.addEventListener('appopen', this);
- window.addEventListener('appwillclose', this);
- window.addEventListener('appterminated', this);
- window.addEventListener('resize', this);
- window.addEventListener('keyboardchange', this);
- window.addEventListener('keyboardhide', this);
-
- for (var id in elements) {
- if (elements[id].tagName.toLowerCase() == 'button') {
- elements[id].addEventListener('click', this);
- }
- }
- },
-
- // Default event handler
- handleEvent: function ad_handleEvent(evt) {
- var elements = this.elements;
- switch (evt.type) {
- case 'mozbrowserusernameandpasswordrequired':
- if (evt.target.dataset.frameType != 'window')
- return;
-
- evt.preventDefault();
- var origin = evt.target.dataset.frameOrigin;
- this.currentEvents[origin] = evt;
-
- if (origin == WindowManager.getDisplayedApp())
- this.show(origin);
- break;
-
- case 'click':
- if (evt.currentTarget === elements.httpAuthenticationCancel) {
- this.cancelHandler();
- } else {
- this.confirmHandler();
- }
- break;
-
- case 'appopen':
- if (this.currentEvents[evt.detail.origin])
- this.show(evt.detail.origin);
- break;
-
- case 'appwillclose':
- // Do nothing if the app is closed at background.
- if (evt.detail.origin !== this.currentOrigin)
- return;
-
- // Reset currentOrigin
- this.hide();
- break;
-
- case 'appterminated':
- if (this.currentEvents[evt.detail.origin])
- delete this.currentEvents[evt.detail.origin];
-
- break;
-
- case 'resize':
- case 'keyboardhide':
- if (!this.currentOrigin)
- return;
-
- this.setHeight(window.innerHeight - StatusBar.height);
- break;
-
- case 'keyboardchange':
- this.setHeight(window.innerHeight -
- evt.detail.height - StatusBar.height);
- break;
- }
- },
-
- setHeight: function ad_setHeight(height) {
- if (this.isVisible())
- this.overlay.style.height = height + 'px';
- },
-
- show: function ad_show(origin) {
- this.currentOrigin = origin;
- var evt = this.currentEvents[origin];
- var elements = this.elements;
- this.screen.classList.add('authentication-dialog');
- elements.httpAuthentication.classList.add('visible');
- elements.title.textContent = evt.detail.host;
- elements.httpAuthenticationMessage.textContent = evt.detail.realm;
- elements.httpUsernameInput.value = '';
- elements.httpPasswordInput.value = '';
-
- this.setHeight(window.innerHeight - StatusBar.height);
- },
-
- hide: function ad_hide() {
- this.elements.httpUsernameInput.blur();
- this.elements.httpPasswordInput.blur();
- this.currentOrigin = null;
- this.elements.httpAuthentication.classList.remove('visible');
- this.screen.classList.remove('authentication-dialog');
- },
-
- confirmHandler: function ad_confirmHandler() {
- var elements = this.elements;
- var evt = this.currentEvents[this.currentOrigin];
- evt.detail.authenticate(elements.httpUsernameInput.value,
- elements.httpPasswordInput.value);
- elements.httpAuthentication.classList.remove('visible');
- delete this.currentEvents[this.currentOrigin];
- this.screen.classList.remove('authentication-dialog');
- },
-
- cancelHandler: function ad_cancelHandler() {
- var evt = this.currentEvents[this.currentOrigin];
- var elements = this.elements;
- evt.detail.cancel();
- elements.httpAuthentication.classList.remove('visible');
- delete this.currentEvents[this.currentOrigin];
- this.screen.classList.remove('authentication-dialog');
- },
-
- isVisible: function ad_isVisible() {
- return this.screen.classList.contains('authentication-dialog');
- }
-};
-
-AuthenticationDialog.init();