diff options
Diffstat (limited to 'app/javascripts/options.js')
-rw-r--r-- | app/javascripts/options.js | 1008 |
1 files changed, 0 insertions, 1008 deletions
diff --git a/app/javascripts/options.js b/app/javascripts/options.js deleted file mode 100644 index 190c5b62..00000000 --- a/app/javascripts/options.js +++ /dev/null @@ -1,1008 +0,0 @@ -/* - -Jappix - An open social platform -These are the options JS scripts for Jappix - -------------------------------------------------- - -License: AGPL -Author: ValĂ©rian Saliou, Maranda - -*/ - -// Bundle -var Options = (function () { - - /** - * Alias of this - * @private - */ - var self = {}; - - - /** - * Opens the options popup - * @public - * @return {boolean} - */ - self.open = function() { - - try { - // Popup HTML content - var html = - '<div class="top">' + Common._e("Edit options") + '</div>' + - - '<div class="tab">' + - '<a href="#" class="tab-general tab-active" data-key="1">' + Common._e("General") + '</a>' + - '<a href="#" class="tab-channel pubsub-hidable pubsub-hidable-cn" data-key="2">' + Common._e("Channel") + '</a>' + - '<a href="#" class="tab-account" data-key="3">' + Common._e("Account") + '</a>' + - '</div>' + - - '<div class="content">' + - '<div id="conf1" class="lap-active one-lap forms">' + - '<fieldset class="privacy">' + - '<legend>' + Common._e("Privacy") + '</legend>' + - - '<div class="geolocation">' + - '<label for="geolocation" class="pep-hidable">' + Common._e("Geolocation") + '</label>' + - '<input id="geolocation" type="checkbox" class="pep-hidable" />' + - '</div>' + - - '<div class="archiving">' + - '<label for="archiving" class="mam-hidable">' + Common._e("Message archiving") + '</label>' + - '<select id="archiving" class="mam-hidable">' + - '<option value="never">' + Common._e("Disabled") + '</option>' + - '<option value="roster">' + Common._e("Store friend chats") + '</option>' + - '<option value="always">' + Common._e("Store all chats") + '</option>' + - '</select>' + - '<a href="#" class="linked empty-archives mam-purge-hidable">' + Common._e("Remove all archives") + '</a>' + - '</div>' + - '</fieldset>' + - - '<fieldset class="application">' + - '<legend>' + Common._e("Application") + '</legend>' + - - '<div class="sounds">' + - '<label for="sounds">' + Common._e("Sounds") + '</label>' + - '<input id="sounds" type="checkbox" />' + - '</div>' + - - '<div class="showall">' + - '<label for="showall">' + Common._e("Show all friends") + '</label>' + - '<input id="showall" type="checkbox" />' + - '</div>' + - - '<div class="groupchatpresence">' + - '<label for="groupchatpresence">' + Common._e("Groupchat presence messages") + '</label>' + - '<input id="groupchatpresence" type="checkbox" />' + - '</div>' + - - '<div class="noxhtmlimg">' + - '<label for="noxhtmlimg">' + Common._e("No chat images auto-load") + '</label>' + - '<input id="noxhtmlimg" type="checkbox" />' + - '</div>' + - - '<div class="integratemedias">' + - '<label for="integratemedias">' + Common._e("Media integration") + '</label>' + - '<input id="integratemedias" type="checkbox" />' + - '</div>' + - - '<div class="localarchives mam-showable">' + - '<label for="localarchives">' + Common._e("Keep local chat archives") + '</label>' + - '<input id="localarchives" type="checkbox" />' + - '</div>' + - - '<div class="xmpplinks">' + - '<label class="xmpplinks-hidable">' + Common._e("XMPP links") + '</label>' + - '<a href="#" class="linked xmpp-links xmpplinks-hidable">' + Common._e("Open XMPP links with Jappix") + '</a>' + - '</div>' + - '</fieldset>' + - - '<div class="sub-ask sub-ask-mam sub-ask-element">' + - '<div class="sub-ask-top">' + - '<div class="sub-ask-title">' + Common._e("Remove all archives") + '</div>' + - '<a href="#" class="sub-ask-close">X</a>' + - '</div>' + - - '<div class="sub-ask-content">' + - '<label>' + Common._e("Password") + '</label>' + - '<input type="password" class="purge-archives check-mam" required="" />' + - '</div>' + - - '<a href="#" class="sub-ask-bottom">' + Common._e("Remove") + ' »</a>' + - '</div>' + - '</div>' + - - '<div id="conf2" class="one-lap forms">' + - '<fieldset class="channel">' + - '<legend>' + Common._e("Channel") + '</legend>' + - - '<div class="empty-channel">' + - '<label>' + Common._e("Empty") + '</label>' + - '<a href="#" class="linked empty-channel">' + Common._e("Empty channel") + '</a>' + - '</div>' + - - '<div class="persistent">' + - '<label>' + Common._e("Persistent") + '</label>' + - '<input id="persistent" type="checkbox" />' + - '</div>' + - - '<div class="maxnotices">' + - '<label>' + Common._e("Maximum notices") + '</label>' + - '<select id="maxnotices">' + - '<option value="1">1</option>' + - '<option value="100">100</option>' + - '<option value="1000">1000</option>' + - '<option value="10000">10000</option>' + - '<option value="100000">100000</option>' + - '<option value="1000000">1000000</option>' + - '</select>' + - '</div>' + - - '</fieldset>' + - - '<div class="sub-ask sub-ask-empty sub-ask-element">' + - '<div class="sub-ask-top">' + - '<div class="sub-ask-title">' + Common._e("Empty channel") + '</div>' + - '<a href="#" class="sub-ask-close">X</a>' + - '</div>' + - - '<div class="sub-ask-content">' + - '<label>' + Common._e("Password") + '</label>' + - '<input type="password" class="purge-microblog check-empty" required="" />' + - '</div>' + - - '<a href="#" class="sub-ask-bottom">' + Common._e("Empty") + ' »</a>' + - '</div>' + - '</div>' + - - '<div id="conf3" class="one-lap forms">' + - '<fieldset>' + - '<legend>' + Common._e("Account") + '</legend>' + - - '<label>' + Common._e("Password") + '</label>' + - '<a href="#" class="linked change-password">' + Common._e("Change password") + '</a>' + - - '<label>' + Common._e("Delete") + '</label>' + - '<a href="#" class="linked delete-account">' + Common._e("Delete account") + '</a>' + - '</fieldset>' + - - '<div class="sub-ask sub-ask-pass sub-ask-element">' + - '<div class="sub-ask-top">' + - '<div class="sub-ask-title">' + Common._e("Change password") + '</div>' + - '<a href="#" class="sub-ask-close">X</a>' + - '</div>' + - - '<div class="sub-ask-content">' + - '<label>' + Common._e("Old") + '</label>' + - '<input type="password" class="password-change old" required="" />' + - - '<label>' + Common._e("New (2 times)") + '</label>' + - '<input type="password" class="password-change new1" required="" />' + - '<input type="password" class="password-change new2" required="" />' + - '</div>' + - - '<a href="#" class="sub-ask-bottom">' + Common._e("Continue") + ' »</a>' + - '</div>' + - - '<div class="sub-ask sub-ask-delete sub-ask-element">' + - '<div class="sub-ask-top">' + - '<div class="sub-ask-title">' + Common._e("Delete account") + '</div>' + - '<a href="#" class="sub-ask-close">X</a>' + - '</div>' + - - '<div class="sub-ask-content">' + - '<label>' + Common._e("Password") + '</label>' + - '<input type="password" class="delete-account check-password" required="" />' + - '</div>' + - - '<a href="#" class="sub-ask-bottom">' + Common._e("Delete") + ' »</a>' + - '</div>' + - '</div>' + - '</div>' + - - '<div class="bottom">' + - '<div class="wait wait-medium"></div>' + - - '<a href="#" class="finish save">' + Common._e("Save") + '</a>' + - '<a href="#" class="finish cancel">' + Common._e("Cancel") + '</a>' + - '</div>'; - - // Create the popup - Popup.create('options', html); - - // Apply the features - Features.apply('options'); - - // Associate the events - self.instance(); - } catch(e) { - Console.error('Options.open', e); - } finally { - return false; - } - - }; - - - /** - * Closes the options popup - * @public - * @return {boolean} - */ - self.close = function() { - - try { - // Destroy the popup - Popup.destroy('options'); - } catch(e) { - Console.error('Options.close', e); - } finally { - return false; - } - - }; - - - /** - * Checks whether the options are loaded or not - * @public - * @return {boolean} - */ - self.loaded = function() { - - is_loaded = false; - - try { - if($('.options-hidable').is(':visible')) { - is_loaded = true; - } - } catch(e) { - Console.error('Options.loaded', e); - } finally { - return is_loaded; - } - - }; - - - /** - * Switches between the options tabs - * @public - * @param {string} id - * @return {boolean} - */ - self.switchTab = function(id) { - - try { - var options_sel = $('#options'); - - options_sel.find('.one-lap').hide(); - options_sel.find('#conf' + id).show(); - options_sel.find('.tab a').removeClass('tab-active'); - options_sel.find('.tab a[data-key="' + id + '"]').addClass('tab-active'); - options_sel.find('.sub-ask .sub-ask-close').click(); - } catch(e) { - Console.error('Options.switchTab', e); - } finally { - return false; - } - - }; - - - /** - * Manages the options wait item - * @public - * @param {string} id - * @return {undefined} - */ - self.wait = function(id) { - - try { - var options_sel = $('#options'); - var content_sel = options_sel.find('.content'); - - // Remove the current item class - content_sel.removeClass(id); - - // Hide the waiting items if all was received - if(!content_sel.hasClass('microblog') && !content_sel.hasClass('mam')) { - options_sel.find('.wait').hide(); - options_sel.find('.finish:first').removeClass('disabled'); - } - } catch(e) { - Console.error('Options.wait', e); - } - - }; - - - /** - * Sends the options to the XMPP server - * @public - * @return {undefined} - */ - self.store = function() { - - try { - // Get the values - var sounds = DataStore.getDB(Connection.desktop_hash, 'options', 'sounds'); - var geolocation = DataStore.getDB(Connection.desktop_hash, 'options', 'geolocation'); - var showall = DataStore.getDB(Connection.desktop_hash, 'options', 'roster-showall'); - var noxhtmlimg = DataStore.getDB(Connection.desktop_hash, 'options', 'no-xhtml-images'); - var groupchatpresence = DataStore.getDB(Connection.desktop_hash, 'options', 'groupchatpresence'); - var integratemedias = DataStore.getDB(Connection.desktop_hash, 'options', 'integratemedias'); - var localarchives = DataStore.getDB(Connection.desktop_hash, 'options', 'localarchives'); - var status = DataStore.getDB(Connection.desktop_hash, 'options', 'presence-status'); - - // Create an array to be looped - var oType = ['sounds', 'geolocation', 'roster-showall', 'no-xhtml-images', 'groupchatpresence', 'integratemedias', 'localarchives', 'presence-status']; - var oContent = [sounds, geolocation, showall, noxhtmlimg, groupchatpresence, integratemedias, localarchives, status]; - - // New IQ - var iq = new JSJaCIQ(); - iq.setType('set'); - - var query = iq.setQuery(NS_PRIVATE); - var storage = query.appendChild(iq.buildNode('storage', {'xmlns': NS_OPTIONS})); - - // Loop the array - for(var i in oType) { - storage.appendChild(iq.buildNode('option', {'type': oType[i], 'xmlns': NS_OPTIONS}, oContent[i])); - } - - con.send(iq, self.handleStore); - - Console.info('Storing options...'); - } catch(e) { - Console.error('Options.store', e); - } - - }; - - - /** - * Handles the option storing - * @public - * @param {object} iq - * @return {undefined} - */ - self.handleStore = function(iq) { - - try { - if(!iq || (iq.getType() != 'result')) { - Console.warn('Options not stored.'); - } else { - Console.info('Options stored.'); - } - } catch(e) { - Console.error('Options.handleStore', e); - } - - }; - - - /** - * Saves the user options - * @public - * @return {boolean} - */ - self.save = function() { - - try { - // We apply the sounds - var sounds = '0'; - - if($('#sounds').filter(':checked').size()) { - sounds = '1'; - } - - DataStore.setDB(Connection.desktop_hash, 'options', 'sounds', sounds); - - // We apply the geolocation - if($('#geolocation').filter(':checked').size()) { - DataStore.setDB(Connection.desktop_hash, 'options', 'geolocation', '1'); - - // We geolocate the user on the go - PEP.geolocate(); - } else { - DataStore.setDB(Connection.desktop_hash, 'options', 'geolocation', '0'); - - // We delete the geolocation informations - PEP.sendPosition(); - DataStore.removeDB(Connection.desktop_hash, 'geolocation', 'now'); - } - - // We apply the roster show all - if($('#showall').filter(':checked').size()) { - DataStore.setDB(Connection.desktop_hash, 'options', 'roster-showall', '1'); - Interface.showAllBuddies('options'); - } else { - DataStore.setDB(Connection.desktop_hash, 'options', 'roster-showall', '0'); - Interface.showOnlineBuddies('options'); - } - - // We apply the XHTML-IM images filter - var noxhtmlimg = '1' ? $('#noxhtmlimg').filter(':checked').size() : '0'; - DataStore.setDB(Connection.desktop_hash, 'options', 'no-xhtml-images', noxhtmlimg); - - // We apply the groupchat presence messages configuration - var groupchatpresence = '1' ? $('#groupchatpresence').filter(':checked').size() : '0'; - DataStore.setDB(Connection.desktop_hash, 'options', 'groupchatpresence', groupchatpresence); - - // We apply the media integration - var integratemedias = '1' ? $('#integratemedias').filter(':checked').size() : '0'; - DataStore.setDB(Connection.desktop_hash, 'options', 'integratemedias', integratemedias); - - // We apply the local archiving - var localarchives = '1' ? $('#localarchives').filter(':checked').size() : '0'; - DataStore.setDB(Connection.desktop_hash, 'options', 'localarchives', localarchives); - - // Flush local archives? - if(localarchives === '0') { - Message.flushLocalArchive(); - } - - // We apply the message archiving - if(Features.enabledMAM()) { - MAM.setConfig($('#archiving').val() || 'never'); - } - - // We apply the microblog configuration - var persist = '1' ? $('#persist').filter(':checked').size() : '0'; - var maximum = $('#maxnotices').val(); - - if(Features.enabledPEP() && (Features.enabledPubSub() || Features.enabledPubSubCN())) { - Pubsub.setup('', NS_URN_MBLOG, persist, maximum, '', '', false); - } - - // We send the options to the database - self.store(); - - // Close the options - self.close(); - } catch(e) { - Console.error('Options.save', e); - } finally { - return false; - } - - }; - - - /** - * Handles the password changing - * @public - * @param {string} iq - * @return {undefined} - */ - self.handlePwdChange = function(iq) { - - try { - // Remove the general wait item - Interface.removeGeneralWait(); - - // If no errors - if(!Errors.handleReply(iq)) { - Connection.clearLastSession(); - Connection.quit(); - Board.openThisInfo(1); - - Console.info('Password changed.'); - } else { - Console.warn('Password not changed.'); - } - } catch(e) { - Console.error('Options.handlePwdChange', e); - } - - }; - - - /** - * Sends the new account password - * @public - * @return {boolean} - */ - self.sendNewPassword = function() { - - /* REF: http://xmpp.org/extensions/xep-0077.html#usecases-changepw */ - - try { - var password0 = $('#options .old').val(); - var password1 = $('#options .new1').val(); - var password2 = $('#options .new2').val(); - - if ((password1 == password2) && (password0 == Utils.getPassword())) { - // We show the waiting image - Interface.showGeneralWait(); - - // We send the IQ - var iq = new JSJaCIQ(); - - iq.setTo(Utils.getServer()); - iq.setType('set'); - - var iqQuery = iq.setQuery(NS_REGISTER); - - iqQuery.appendChild(iq.buildNode('username', {'xmlns': NS_REGISTER}, con.username)); - iqQuery.appendChild(iq.buildNode('password', {'xmlns': NS_REGISTER}, password1)); - - con.send(iq, self.handlePwdChange); - - Console.info('Password change sent.'); - } else { - $('.sub-ask-pass input').each(function() { - var select = $(this); - - if(!select.val()) { - $(document).oneTime(10, function() { - select.addClass('please-complete').focus(); - }); - } else { - select.removeClass('please-complete'); - } - }); - - if(password0 != Utils.getPassword()) { - $(document).oneTime(10, function() { - $('#options .old').addClass('please-complete').focus(); - }); - } - - if(password1 != password2) { - $(document).oneTime(10, function() { - $('#options .new1, #options .new2').addClass('please-complete').focus(); - }); - } - } - } catch(e) { - Console.error('Options.sendNewPassword', e); - } finally { - return false; - } - - }; - - - /** - * Handles the account deletion request - * @public - * @param {object} iq - * @return {undefined} - */ - self.handleAccDeletion = function(iq) { - - try { - // Remove the general wait item - Interface.removeGeneralWait(); - - // If no errors - if(!Errors.handleReply(iq)) { - Connection.clearLastSession(); - Talk.destroy(); - Board.openThisInfo(2); - Connection.logout(); - - Console.info('Account deleted.'); - } else { - Console.warn('Account not deleted.'); - } - } catch(e) { - Console.error('Options.handleAccDeletion', e); - } - - }; - - - /** - * Purge the user's archives (MAM) - * @public - * @return {boolean} - */ - self.purgeMyArchives = function() { - - try { - var pwd_input_sel = $('#options .check-mam'); - var password = pwd_input_sel.val(); - - if(password == Utils.getPassword()) { - MAM.purgeArchives(); - - // Clear archives in UI - $('.page-engine-chan[data-type="chat"] .tools-clear').click(); - - // Hide the tool - pwd_input_sel.val(''); - $('#options .sub-ask-mam .sub-ask-close').click(); - } else { - var selector = $('#options .check-mam'); - - if(password != Utils.getPassword()) { - $(document).oneTime(10, function() { - selector.addClass('please-complete').focus(); - }); - } else { - selector.removeClass('please-complete'); - } - } - } catch(e) { - Console.error('Options.purgeMyArchives', e); - } finally { - return false; - } - - }; - - - /** - * Purge the user's microblog items - * @public - * @return {boolean} - */ - self.purgeMyMicroblog = function() { - - /* REF: http://xmpp.org/extensions/xep-0060.html#owner-purge */ - - try { - var pwd_input_sel = $('#options .check-empty'); - var password = pwd_input_sel.val(); - - if(password == Utils.getPassword()) { - // Send the IQ to remove the item (and get eventual error callback) - var iq = new JSJaCIQ(); - iq.setType('set'); - - var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB_OWNER}); - pubsub.appendChild(iq.buildNode('purge', {'node': NS_URN_MBLOG, 'xmlns': NS_PUBSUB_OWNER})); - - con.send(iq, self.handleMicroblogPurge); - - // Hide the tool - pwd_input_sel.val(''); - $('#options .sub-ask-empty .sub-ask-close').click(); - - Console.info('Microblog purge sent.'); - } else { - var selector = $('#options .check-empty'); - - if(password != Utils.getPassword()) { - $(document).oneTime(10, function() { - selector.addClass('please-complete').focus(); - }); - } else { - selector.removeClass('please-complete'); - } - } - } catch(e) { - Console.error('Options.purgeMyMicroblog', e); - } finally { - return false; - } - - }; - - - /** - * Handles the microblog purge - * @public - * @param {object} iq - * @return {undefined} - */ - self.handleMicroblogPurge = function(iq) { - - try { - // If no errors - if(!Errors.handleReply(iq)) { - // Remove the microblog items - $('.one-update.update_' + hex_md5(Common.getXID())).remove(); - - Console.info('Microblog purged.'); - } else { - Console.warn('Microblog not purged.'); - } - } catch(e) { - Console.error('Options.handleMicroblogPurge', e); - } - - }; - - - /** - * Deletes the user's account - * @public - * @return {boolean} - */ - self.deleteMyAccount = function() { - - /* REF: http://xmpp.org/extensions/xep-0077.html#usecases-cancel */ - - try { - var password = $('#options .check-password').val(); - - if(password == Utils.getPassword()) { - // We show the waiting image - Interface.showGeneralWait(); - - // We send the IQ - var iq = new JSJaCIQ(); - iq.setType('set'); - - var iqQuery = iq.setQuery(NS_REGISTER); - iqQuery.appendChild(iq.buildNode('remove', {'xmlns': NS_REGISTER})); - - con.send(iq, self.handleAccDeletion); - - Console.info('Delete account sent.'); - } else { - var selector = $('#options .check-password'); - - if(password != Utils.getPassword()) { - $(document).oneTime(10, function() { - selector.addClass('please-complete').focus(); - }); - } else { - selector.removeClass('please-complete'); - } - } - } catch(e) { - Console.error('Options.deleteMyAccount', e); - } finally { - return false; - } - - }; - - - /** - * Loads the user options - * @public - * @return {undefined} - */ - self.load = function() { - - try { - // Process the good stuffs, depending of the server features - var enabled_mam = Features.enabledMAM(); - var enabled_pubsub = Features.enabledPubSub(); - var enabled_pubsub_cn = Features.enabledPubSubCN(); - var enabled_pep = Features.enabledPEP(); - var sWait = $('#options .content'); - - // Show the waiting items if necessary - if(enabled_mam || (enabled_pep && (enabled_pubsub || enabled_pubsub_cn))) { - $('#options .wait').show(); - $('#options .finish:first').addClass('disabled'); - } - - // We get the archiving configuration - if(enabled_mam) { - sWait.addClass('mam'); - MAM.getConfig(); - } - - // We get the microblog configuration - if((enabled_pubsub || enabled_pubsub_cn) && enabled_pep) { - sWait.addClass('microblog'); - Microblog.getConfig(); - } - - // We show the "privacy" form if something is visible into it - if(enabled_mam || enabled_pep) { - $('#options fieldset.privacy').show(); - } - - // We get the values of the forms for the sounds - if(DataStore.getDB(Connection.desktop_hash, 'options', 'sounds') == '0') { - $('#sounds').attr('checked', false); - } else { - $('#sounds').attr('checked', true); - } - - // We get the values of the forms for the geolocation - if(DataStore.getDB(Connection.desktop_hash, 'options', 'geolocation') == '1') { - $('#geolocation').attr('checked', true); - } else { - $('#geolocation').attr('checked', false); - } - - // We get the values of the forms for the roster show all - if(DataStore.getDB(Connection.desktop_hash, 'options', 'roster-showall') == '1') { - $('#showall').attr('checked', true); - } else { - $('#showall').attr('checked', false); - } - - // We get the values of the forms for the XHTML-IM images filter - if(DataStore.getDB(Connection.desktop_hash, 'options', 'no-xhtml-images') == '1') { - $('#noxhtmlimg').attr('checked', true); - } else { - $('#noxhtmlimg').attr('checked', false); - } - - // We get the values of the forms for the integratemedias - if(DataStore.getDB(Connection.desktop_hash, 'options', 'integratemedias') == '0') { - $('#integratemedias').attr('checked', false); - } else { - $('#integratemedias').attr('checked', true); - } - - // We get the values of the forms for the groupchatpresence - if(DataStore.getDB(Connection.desktop_hash, 'options', 'groupchatpresence') == '0') { - $('#groupchatpresence').attr('checked', false); - } else { - $('#groupchatpresence').attr('checked', true); - } - - // We get the values of the forms for the localarchives - if(DataStore.getDB(Connection.desktop_hash, 'options', 'localarchives') == '0') { - $('#localarchives').attr('checked', false); - } else { - $('#localarchives').attr('checked', true); - } - } catch(e) { - Console.error('Options.load', e); - } - - }; - - - /** - * Plugin launcher - * @public - * @return {undefined} - */ - self.instance = function() { - - try { - // Click events - $('#options .tab a').click(function() { - // Yet active? - if($(this).hasClass('tab-active')) - return false; - - // Switch to the good tab - var key = parseInt($(this).attr('data-key')); - - return self.switchTab(key); - }); - - $('#options .linked').click(function() { - $('#options .sub-ask').hide(); - $('#options .forms').removeClass('in_background'); - }); - - $('#options .xmpp-links').click(function() { - Utils.xmppLinksHandler(); - - return false; - }); - - $('#options .empty-archives').click(function() { - var selector = '#options .sub-ask-mam'; - - $(selector).show(); - $('#options .forms').addClass('in_background'); - - $(document).oneTime(10, function() { - $(selector + ' input').focus(); - }); - - return false; - }); - - $('#options .empty-channel').click(function() { - var selector = '#options .sub-ask-empty'; - - $(selector).show(); - $('#options .forms').addClass('in_background'); - - $(document).oneTime(10, function() { - $(selector + ' input').focus(); - }); - - return false; - }); - - $('#options .change-password').click(function() { - var selector = '#options .sub-ask-pass'; - - $(selector).show(); - $('#options .forms').addClass('in_background'); - - $(document).oneTime(10, function() { - $(selector + ' input:first').focus(); - }); - - return false; - }); - - $('#options .delete-account').click(function() { - var selector = '#options .sub-ask-delete'; - - $(selector).show(); - $('#options .forms').addClass('in_background'); - - $(document).oneTime(10, function() { - $(selector + ' input').focus(); - }); - - return false; - }); - - $('#options .sub-ask-pass .sub-ask-bottom').click(function() { - return self.sendNewPassword(); - }); - - $('#options .sub-ask-mam .sub-ask-bottom').click(function() { - return self.purgeMyArchives(); - }); - - $('#options .sub-ask-empty .sub-ask-bottom').click(function() { - return self.purgeMyMicroblog(); - }); - - $('#options .sub-ask-delete .sub-ask-bottom').click(function() { - return self.deleteMyAccount(); - }); - - $('#options .sub-ask-close').click(function() { - $('#options .sub-ask').hide(); - $('#options .forms').removeClass('in_background'); - - return false; - }); - - $('#options .bottom .finish').click(function() { - if($(this).is('.save') && !$(this).hasClass('disabled')) { - return self.save(); - } - - if($(this).is('.cancel')) { - return self.close(); - } - - return false; - }); - - // The keyup events - $('#options .sub-ask input').keyup(function(e) { - if(e.keyCode == 13) { - // Archives purge - if($(this).is('.purge-archives')) { - return self.purgeMyArchives(); - } - - // Microblog purge - else if($(this).is('.purge-microblog')) { - return self.purgeMyMicroblog(); - } - - // Password change - else if($(this).is('.password-change')) { - return self.sendNewPassword(); - } - - // Account deletion - else if($(this).is('.delete-account')) { - return self.deleteMyAccount(); - } - } - }); - - // Load the options - self.load(); - } catch(e) { - Console.error('Options.instance', e); - } - - }; - - - /** - * Return class scope - */ - return self; - -})();
\ No newline at end of file |