Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Roundcube webmail functions for the Elastic skin
- *
- * Copyright (c) The Roundcube Dev Team
- *
- * The contents are subject to the Creative Commons Attribution-ShareAlike
- * License. It is allowed to copy, distribute, transmit and to adapt the work
- * by keeping credits to the original autors in the README file.
- * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
- *
- * @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt CC0-1.0
- */
- /*
- magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt CC0-1.0
- */
- function rcube_elastic_ui() {
- function n(a, b, c) {
- (a = w(a)) && rcmail.register_button(a.command, b, a.data.type, c, a.data.sel)
- }
- function t(a, b, c, d) {
- var e = !0
- , g = $("<a>")
- , l = a.attr("id") || (new Date).getTime()
- , k = l + "-clone";
- c = a[0].className + (c ? " " + c : "");
- if (!b)
- c = $.trim(c.replace("btn-primary", "primary").replace(/(btn[a-z-]*|button|disabled)/g, "")),
- c += " button" + (d ? "" : " disabled");
- else if (d = a.data("popup"))
- g.data({
- popup: d,
- "toggle-button": a.data("toggle-button")
- }),
- D(g[0]),
- e = !1,
- rcmail.register_menu_button(g[0], d);
- g.attr({
- id: k,
- href: "#",
- "class": c
- }).append($('<span class="inner">').text(a.text()));
- if (e)
- g.on("click", function(b) {
- a.click()
- });
- p && !b ? (g.data("target", a),
- T.push($.extend({
- button_id: k
- }, w(a[0].id)))) : n(l, k, c.replace(" disabled", ""));
- return g
- }
- function w(a) {
- var b, c;
- for (c in rcmail.buttons)
- for (b = 0; b < rcmail.buttons[c].length; b++) {
- var d = rcmail.buttons[c][b];
- if (d.id == a)
- return {
- command: c,
- index: b,
- data: d
- }
- }
- }
- function A() {
- $("[data-list]").filter("ul,table").each(function() {
- var a, b = $(this), d = b.data("list");
- if (rcmail[d] && rcmail[d].multiselect) {
- var c = b.parents("layout-sidebar,#layout-list,#layout-content").last();
- var e = c.find(".header");
- var h = e.find("ul");
- if (!h.length)
- h = e;
- else if (a = h.find("a.select").data("toggle-button"))
- a = $("#" + a);
- rcmail[d].enable_checkbox_selection();
- a || (a = $("<a>").attr({
- "class": "button selection disabled",
- role: "button",
- title: rcmail.gettext("select")
- }).on("click", function() {
- $(this).is(".active") && b.toggleClass("withselection")
- }).append($('<span class="inner">').text(rcmail.gettext("select"))),
- h.is(".menu") ? (a.prependTo(h).wrap('<li role="menuitem">'),
- f.content && (c = t(a, !0, "hidden-big hidden-large"),
- $('<li role="menuitem">').append(c).appendTo("#toolbar-menu"),
- a = a.add(c))) : (e = b.data("list-select-replace")) ? $(e).replaceWith(a) : (a.appendTo(h).addClass("icon"),
- c.is("#layout-sidebar") || a.addClass("toolbar-button")));
- rcmail.addEventListener("listupdate", function(b) {
- b.list && b.list == rcmail[d] && (b.rowcount ? a.addClass("active").removeClass("disabled").attr("tabindex", 0) : a.removeClass("active").addClass("disabled").attr("tabindex", -1))
- })
- }
- J && rcmail[d] && ("function" == typeof rcmail[d].draggable ? rcmail[d].draggable("destroy") : "boolean" == typeof rcmail[d].draggable && (rcmail[d].draggable = !1))
- });
- window.MutationObserver && $("[data-label-msg]").filter("ul,table").each(function() {
- var a = $('<div class="listing-info hidden">').insertAfter(this)
- , b = $(this);
- var d = function() {
- var d = b.data("label-msg");
- var c = b.is("ul") ? b : b.children("tbody");
- if (rcmail.env.search_request || rcmail.env.qsearch || !d || c.children(":visible").length)
- a.addClass("hidden");
- else {
- c = b.data("label-ext");
- var g = b.data("create-command");
- !c || g && !rcmail.commands[g] || (d += " " + c);
- a.text(d).removeClass("hidden")
- }
- };
- var c = function() {
- if (rcmail.busy || !b.is(":visible"))
- return setTimeout(c, 250);
- clearTimeout(h.list_timer);
- h.list_timer = setTimeout(d, 50)
- };
- (new MutationObserver(c)).observe(b[0], {
- childList: !0,
- subtree: !0,
- attributes: !0,
- attributeFilter: ["style"]
- });
- c()
- });
- "print" != rcmail.env.action && $("#attachment-list > li").each(function() {
- U(this)
- });
- var a = function(a) {
- "phone" == q && rcmail.display_message(rcmail.gettext(a), "confirmation")
- };
- rcmail.addEventListener("fileappended", function(b) {
- b.attachment.complete && (U(b.item),
- "text/vcard" == b.attachment.mimetype && rcmail.commands["attach-vcard"] && a("vcard_attachments.vcardattached"))
- }).addEventListener("managesieve.insertrow", function(a) {
- u(a.obj)
- }).addEventListener("add-recipient", function() {
- a("recipientsadded")
- });
- rcmail.init_pagejumper(".pagenav > input");
- if ("mail" == rcmail.task) {
- if ("compose" == rcmail.env.action && (rcmail.addEventListener("compose-encrypted", function(a) {
- $("a.mode-html, button.attach").prop("disabled", a.active);
- $("a.attach, a.responses:not(.edit)")[a.active ? "addClass" : "removeClass"]("disabled")
- }),
- $("#layout-sidebar > .footer:not(.pagenav) > a.button").click(function() {
- $(this).is(".disabled") && rcmail.display_message(rcmail.gettext("nocontactselected"), "warning")
- }),
- window.MutationObserver)) {
- var b = $("#attachment-list")
- , c = function() {
- V("attach", 0 < b.children().length)
- };
- (new MutationObserver(c)).observe(b[0], {
- childList: !0
- });
- c()
- }
- rcmail.env.extwin || "compose" != rcmail.env.action && "show" != rcmail.env.action || $("a.mail", f.menu).attr("onclick", "return rcmail.command('list','',this,event)");
- "preview" != rcmail.env.action && "show" != rcmail.env.action || $("a").filter('[href^="mailto:"]').each(function() {
- ia(this)
- })
- } else
- "settings" == rcmail.task && (rcmail.addEventListener("identity-encryption-show", function(a) {
- u(a.container)
- }),
- rcmail.addEventListener("identity-encryption-update", function(a) {
- u(a.container)
- }));
- rcmail.set_env({
- thread_padding: "1.5rem",
- popup_width_small: 1025,
- popup_width: 1200
- });
- rcmail.env.devel_mode && window.less ? less.pageLoadFinished.then(function() {
- E();
- rcmail.env.compose_focus_elem && $(rcmail.env.compose_focus_elem).focus()
- }) : E();
- var d = rcmail.env.date_format_localized;
- if (d) {
- var e = function(a) {
- $(a).filter(".datepicker").attr("placeholder", d);
- $(a).parent().find("select").each(function() {
- K(this)
- })
- };
- $("input.datepicker").each(function() {
- e(this)
- });
- rcmail.addEventListener("insert-edit-field", e)
- }
- }
- function u(a) {
- a || (a = document);
- $("input.button,button", a).not(".btn").addClass("btn").not(".btn-primary,.primary,.mainaction").addClass("btn-secondary");
- $("input.button.mainaction,button.primary,button.mainaction", a).addClass("btn-primary");
- $("button.btn.delete,button.btn.discard", a).addClass("btn-danger");
- $.each(["warning", "error", "information", "confirmation"], function() {
- var b = this;
- $(".box" + b + ":not(.ui.alert)", a).each(function() {
- L(this, b, !0)
- })
- });
- if (a != document && 1 == $(".popup", a).children().length) {
- var b = $(".popup", a).children().first();
- if (b.is("img"))
- $(".popup", a).addClass("justified");
- else if (b.is("label")) {
- var c = b.find("input").detach();
- b = b.detach();
- var d = c.attr("id");
- d || c.attr("id", d = "dialog-input-elastic");
- $(".popup", a).addClass("formcontent").append($('<div class="form-group row">').append(b.attr("for", d).addClass("col-sm-2 col-form-label")).append($('<div class="col-sm-10">').append(c)));
- c.focus()
- }
- }
- $("input:not(.button,.no-bs,[type=button],[type=radio],[type=checkbox]),textarea", $(".propform", a)).addClass("form-control");
- $("[type=checkbox]", $(".propform", a)).addClass("form-check-input");
- $("select", a).addClass("form-control custom-select");
- a != document && $("input:not(.button,.no-bs,[type=button],[type=radio],[type=checkbox]),textarea", a).addClass("form-control");
- $("table.propform", a).each(function() {
- var a = 0
- , b = 0
- , d = ["sm", 4, 8];
- $(this).attr("class").match(/cols-([a-z]+)-(\d)-(\d)/) && (d = [RegExp.$1, RegExp.$2, RegExp.$3]);
- $(this).find("> tbody > tr, > tr").each(function() {
- var c = $(this)
- , g = ["form-group", "row"];
- var e = c.children("td");
- if (2 == e.length) {
- var l = e.first();
- e = e.last();
- $("label", l).addClass("col-form-label");
- l.addClass("col-" + d[0] + "-" + d[1]);
- e.addClass("col-" + d[0] + "-" + d[2]);
- 1 != e.find("[type=checkbox]").length || e.find(".proplist").length ? e.find("input:not([type=hidden]),textarea,radio,select").length ? b++ : (e.addClass("form-control-plaintext"),
- a++) : (g.push("form-check"),
- e.find("a").length && g.push("with-link"),
- b++);
- e.children(".datepicker") && 2 == e.children("input").length && e.addClass("datetime")
- } else
- 1 == e.length && e.css("width", "100%");
- c.addClass(g.join(" "))
- });
- a > b && $(this).addClass("text-only")
- });
- $("td.input-group", a).each(function() {
- $(this).children().slice(1).addClass("input-group-append")
- });
- $("fieldset.propform:not(.groupped) div.row", a).each(function() {
- var a = 0 < $("input:not([type=hidden]),select,textarea", this).length;
- a && $("input:not(.button,.no-bs,[type=button],[type=radio],[type=checkbox]),textarea", this).addClass("form-control");
- $(this).children().last().addClass("col-sm-8" + (a ? "" : " form-control-plaintext"));
- $(this).children().first().addClass("col-sm-4 col-form-label");
- $(this).addClass("form-group")
- });
- $("fieldset.propform.groupped fieldset", a).each(function() {
- $(".row", this).each(function() {
- var a = 0 < $("input,select,textarea", this).length
- , b = $(this).children();
- a && $("input:not(.button,.no-bs,[type=button],[type=radio],[type=checkbox]),textarea", this).addClass("form-control");
- if (!(2 > b.length)) {
- var d = b.first();
- d.is("select") ? d.addClass("input-group-prepend") : d.wrap('<span class="input-group-prepend">').addClass("input-group-text");
- a || b.last().addClass("form-control-plaintext");
- $(".content", this).addClass("input-group-prepend input-group-append input-group-text");
- $("a.deletebutton", this).addClass("input-group-text icon delete").wrap('<span class="input-group-append">');
- $(this).addClass("input-group")
- }
- })
- });
- $("fieldset.advanced", a).each(function() {
- var a = $(this).children(".propform").first();
- a.wrap($("<div>").addClass("collapse"));
- $(this).children("legend").first().addClass("closed").on("click", function() {
- a.parent().collapse("toggle");
- $(this).toggleClass("closed")
- })
- });
- $(".propform > .prop.block:not(.row)", a).each(function() {
- $(this).addClass("form-group row").each(function() {
- $("label", this).addClass("col-form-label").wrap($('<div class="col-sm-4">'));
- $("input,select,textarea", this).wrap($('<div class="col-sm-8">'));
- $("input:not(.button,.no-bs,[type=button],[type=radio],[type=checkbox]),textarea", this).addClass("form-control")
- })
- });
- $("td.rowbuttons > a", a).addClass("btn");
- $("form.tabbed,div.tabbed", a).each(function(a, b) {
- var d = []
- , c = $("<ul>").attr({
- "class": "nav nav-tabs",
- role: "tablist"
- });
- $(this).addClass("tab-content").children("fieldset").each(function(b, c) {
- b = c.id || "tab" + a + "-" + b;
- var e = $(c).data("navlink-class");
- $(c).addClass("tab-pane").attr({
- id: b,
- role: "tabpanel"
- });
- b = $("<li>").addClass("nav-item").append($("<a>").addClass("nav-link" + (e ? " " + e : "")).attr({
- role: "tab",
- href: "#" + b
- }).text($("legend", c).first().text()).click(function(a) {
- $(this).tab("show");
- x(a);
- return !1
- }));
- $("legend", c).first().hide();
- d.push(b)
- });
- c.append(d).insertBefore(b);
- $("a.nav-link", c).first().click()
- });
- $("input[type=file]:not(.custom-file-input)", a).each(function() {
- var a = rcmail.gettext("choosefile" + (this.multiple ? "s" : ""))
- , b = $("<label>").attr({
- "class": "custom-file-label",
- "data-browse": rcmail.gettext("browse")
- }).text(a);
- $(this).addClass("custom-file-input").wrap('<div class="custom-file">');
- $(this).on("change", function() {
- var b = a;
- this.files.length && (b = this.files[0].name,
- 1 < this.files.length && (b += ", ..."));
- $(this).next().text(b)
- }).parent().append(b)
- });
- $("table:not(.table,.compact-table,.propform,.listing,.ui-datepicker-calendar)", a).filter(function() {
- return !$(this).parent().is(".propform") && !$(this).parents(".message-htmlpart,.message-partheaders,.boxinformation,.raw-tables").length
- }).each(function() {
- var a = $(this).addClass("table");
- a.parent().addClass("table-responsive-sm");
- a.find("thead").addClass("thead-default")
- });
- $("input.pretty-checkbox, .propform input[type=checkbox], .form-check input, .popupmenu.form input[type=checkbox], .menu input[type=checkbox]", a).each(function() {
- F(this)
- });
- $(a).is(".actionrow") && $("input[type=checkbox]", a).each(function() {
- F(this)
- });
- $(".input-group-combo > select", a).first().on("change", function() {
- var a = $(this)
- , b = function() {
- a[a.next().is(":visible") ? "removeClass" : "addClass"]("alone")
- };
- setTimeout(b, 50);
- setTimeout(b, 2E3)
- }).trigger("change");
- $("#message-objects", a).children(":not(.ui.alert)").add(".part-notice").each(function() {
- var a = $(this).removeClass("notice part-notice").attr("class").split(/\s/)[0] || "warning";
- L(this, a);
- $(this).addClass("box" + a);
- $("a", this).addClass("btn btn-primary btn-sm")
- });
- $(".error", a).addClass("is-invalid");
- "login" == rcmail.env.task && a == document && ($("#rcmloginsubmit").addClass("btn-lg text-uppercase w-100"),
- $("#login-form table tr").each(function() {
- var a = $("input,select", this)
- , b = $("label", this)
- , d = a.data("icon")
- , c = $("<i>").attr("class", "input-group-text icon " + a.attr("name").replace("_", ""));
- d && c.addClass(d);
- $(this).addClass("form-group row");
- b.parent().css("display", "none");
- a.addClass(a.is("select") ? "custom-select" : "form-control").attr("placeholder", b.text()).before($('<span class="input-group-prepend">').append(c)).parent().addClass("input-group input-group-lg")
- }));
- $("select:not([multiple])", a).each(function() {
- K(this)
- })
- }
- function ja(a) {
- if ($(a).is(".mce-window")) {
- var b = $(a).find(".mce-window-body")
- , c = $(a).find(".mce-foot > .mce-container-body");
- b.length && u(b[0]);
- b.find("button").filter(function() {
- return 0 < $(this).parent(".mce-btn").length
- }).removeClass("btn btn-secondary");
- 5 === c.children(".mce-widget").length && c.addClass("mce-search-foot");
- $(a).find(".mce-charmap").parent().parent().addClass("mce-charmap-dialog");
- $(a).find(".mce-combobox").each(function() {
- $(this).children(".mce-btn").length || $(this).addClass("mce-combobox-fake")
- });
- $(a).find(".mce-form > .mce-container-body").each(function() {
- 4 < $(this).children(".mce-formitem").length && $(this).addClass("mce-form-split")
- });
- $(a).find(".mce-form").next(":not(.mce-formitem)").addClass("mce-form");
- if (!r()) {
- var d = 0;
- c = b.height();
- $(a).find(".mce-form").each(function() {
- d = Math.max(d, $(this).height())
- });
- c < d && (d += (b.find(".mce-tabs").height() || 0) + 25,
- b.height(d),
- $(a).height($(a).height() + (d - c)),
- $(a).css("top", ($(window).height() - $(a).height()) / 2 + "px"))
- }
- } else
- $(a).is(".mce-menu") && ($(a).prepend($('<h3 class="popover-header">').append($('<a class="button icon "cancel">').text(rcmail.gettext("close")).on("click", function() {
- $(document.body).click()
- }))),
- window.MutationObserver && (new MutationObserver(function() {
- "phone" == q && ($(".mce-menu:visible").length ? $("div.mce-overlay").length || $("<div>").attr("class", "popover-overlay mce-overlay").appendTo("body").click(function() {
- $(this).remove()
- }) : $("div.mce-overlay").click())
- }
- )).observe(a, {
- attributes: !0
- }))
- }
- function ka(a, b) {
- if (a.match(/_action=(create|add)/) || a.match(/_nav=hide/))
- $(h.frame_nav).addClass("hide-nav-buttons");
- else {
- var c, d, e;
- if ((a = $("[data-list]", f.list).data("list")) && (e = rcmail[a])) {
- $(h.frame_nav).removeClass("hide-nav-buttons hidden");
- if (d = e.get_single_selection())
- e.rows && e.rows[d] && !e.rows[d].expanded ? e.expand_row(b, d) : e.get_node && (c = e.get_node(d)) && c.collapsed && e.expand(d);
- var g, l, k = $("#" + rcmail.env.contentframe);
- b = $("a.button.next", h.frame_nav).off("click").addClass("disabled");
- c = $("a.button.prev", h.frame_nav).off("click").addClass("disabled");
- if ((l = e.get_next()) || rcmail.env.current_page < rcmail.env.pagecount)
- b.removeClass("disabled").on("click", function() {
- h.content_lock = !0;
- G(k);
- l ? e.select(l) : (rcmail.env.list_uid = "FIRST",
- rcmail.command("nextpage"))
- });
- if ((g = e.get_prev()) && ("*" != g || "subscription_list" != a) || 1 < rcmail.env.current_page)
- c.removeClass("disabled").on("click", function() {
- h.content_lock = !0;
- G(k);
- g ? e.select(g) : (rcmail.env.list_uid = "LAST",
- rcmail.command("previouspage"))
- })
- } else
- $(h.frame_nav).is(".hide-nav-buttons") && !$(".buttons", h.frame_nav).children().length && $(h.frame_nav).addClass("hidden")
- }
- }
- function la(a) {
- var b = []
- , c = $("#" + a.id).is("[data-html-editor]");
- a.config.plugins += " autoresize";
- H().touch && (a.config.toolbar_items_size = null,
- a.config.toolbar = "undo redo | insert | styleselect",
- a.config.plugins.match(/emoticons/) && (a.config.toolbar += " emoticons"));
- if ("mail" == rcmail.task && "compose" == rcmail.env.action) {
- var d = $("#compose-content > form")
- , e = function(a) {
- "Tab" == a.key && a.shiftKey && $("#compose-content > form").scrollTop(0)
- };
- b.push(function(a) {
- a.on("keypress", e)
- });
- $("#composebody").on("keypress", e);
- d.on("scroll", function() {
- var a = $(".mce-container-body", d)
- , b = $(".mce-top-part", a)
- , c = a.offset()
- , e = d.offset().top;
- c && 0 > c.top - e ? b.css({
- position: "fixed",
- top: e + "px",
- width: a.width() + "px"
- }) : b.css({
- position: "relative",
- top: 0,
- width: "auto"
- })
- });
- $(window).resize(function() {
- d.trigger("scroll")
- })
- }
- c && (a.config.toolbar = "plaintext | " + a.config.toolbar,
- a.config.setup_callback = function(a) {
- a.addButton("plaintext", {
- tooltip: rcmail.gettext("plaintoggle"),
- icon: "plaintext",
- onclick: function(b) {
- rcmail.command("toggle-editor", {
- id: a.id,
- html: !1
- }, "", b.originalEvent) && $("#" + a.id).parent().removeClass("ishtml")
- }
- })
- }
- );
- rcmail.addEventListener("editor-load", function(a) {
- $.each(b, function() {
- this(a.ref.editor)
- })
- })
- }
- function W(a) {
- $("ul", a.obj).addClass("menu listing iconized");
- $(a.obj).addClass("popupmenu popover");
- u(a.obj);
- $("input", a.obj).addClass("form-control");
- if (r() && $(a.obj).is(".googie_window")) {
- var b = rcmail.gettext("close");
- b = $("<a>").attr("class", "button icon cancel").text(b).click(function(b) {
- b.stopPropagation();
- $(".popover-overlay").remove();
- $(a.obj).hide()
- });
- $('<h3 class="popover-header">').append(b).prependTo(a.obj);
- $(".popover-overlay").length || $("<div>").attr("class", "popover-overlay").appendTo("body").click(function() {
- $(this).remove()
- });
- $("ul,button", a.obj).click(function(a) {
- $(a.target).is("input") || $(".popover-overlay").remove()
- })
- }
- }
- function ma(a) {
- p && $.each(T, function(b, d) {
- if (a.command == d.command)
- parent.$("#" + d.button_id)[a.status ? "removeClass" : "addClass"]("disabled")
- });
- if ("mail" == rcmail.task)
- switch (a.command) {
- case "reply-list":
- if (1 == rcmail.env.reply_all_mode) {
- var b = rcmail.gettext(a.status ? "replylist" : "replyall");
- $(".toolbar a.reply-all").attr("title", b).find(".inner").text(b)
- }
- break;
- case "compose-encrypted":
- a.status && $(".toolbar a.encrypt").parent().show();
- break;
- case "compose-encrypted-signed":
- $("#encryption-menu-button").show()
- }
- }
- function X() {
- var a = $(window).width();
- J = 1024 >= a;
- q = 480 >= a ? "phone" : 1200 < a ? "large" : 768 < a ? "normal" : "small"
- }
- function E() {
- var a;
- X();
- M();
- na();
- (a = r()) ? (rcmail.set_env(h.small_screen_config),
- rcmail.enable_command("extwin", !1)) : (rcmail.set_env(h.config),
- rcmail.enable_command("extwin", !0));
- $.each(N, function() {
- $(this)[a ? "hide" : "show"]()
- })
- }
- function M() {
- if (!p || f.sidebar.length || f.list.length) {
- switch (q) {
- case "phone":
- Y();
- y(!1);
- break;
- case "small":
- Y();
- y(!0);
- break;
- case "normal":
- oa();
- break;
- case "large":
- pa()
- }
- "phone" == q && $("#logo").data("src-small") ? $("#logo").attr("src", $("#logo").data("src-small")) : $("#logo").attr("src", $("#logo").data("src-default"));
- B();
- bw.webkit && bw.ipad && bw.agent.match(/OS 9/) && $(".iframe-wrapper").each(function() {
- var a = $(this).height();
- a && $(this).children("iframe").height(a)
- })
- } else
- B()
- }
- function na() {
- var a = H()
- , b = $(document.documentElement);
- b[0].className.match(/layout-([a-z]+)/) ? RegExp.$1 != a.mode && b.removeClass("layout-" + RegExp.$1).addClass("layout-" + a.mode) : b.addClass("layout-" + a.mode);
- a.touch && !b.is(".touch") ? b.addClass("touch") : !a.touch && b.is(".touch") && b.removeClass("touch")
- }
- function B() {
- $("#layout > div > .header").each(function() {
- var a, b = 0, c = 0, d = {
- left: 0,
- right: 0
- };
- $(this).children(":visible:not(.position-absolute)").each(function() {
- !a && $(this).is(".header-title") ? a = $(this) : d[a ? "right" : "left"] += this.offsetWidth
- });
- 0 + d.right >= d.left ? (b = 0,
- c = d.right + 0 - d.left) : (c = 0,
- b = d.left - (0 + d.right));
- $(a).css({
- "margin-right": b + "px",
- "margin-left": c + "px",
- "padding-right": "0px"
- })
- })
- }
- function oa() {
- if (f.list.length) {
- var a = f.list.is(h.last_selected) || !f.sidebar.is(h.last_selected) && !f.sidebar.is(".layout-sticky");
- f.list[a ? "removeClass" : "addClass"]("hidden")
- }
- f.sidebar.length && (a = !f.list.length || f.sidebar.is(h.last_selected) || f.sidebar.is(".layout-sticky"),
- f.sidebar[a ? "removeClass" : "addClass"]("hidden"));
- f.content.removeClass("hidden");
- y(!0);
- Z();
- f.list.length && $(".header > ul.menu", f.list).addClass("popupmenu")
- }
- function pa() {
- $.each(f, function(a, b) {
- b.removeClass("hidden")
- });
- Z();
- f.list && $(".header > ul.menu.popupmenu", f.list).removeClass("popupmenu")
- }
- function Y() {
- var a = !1;
- if (f.content.length) {
- var b = a = f.content.is(h.last_selected);
- f.content[b ? "removeClass" : "addClass"]("hidden");
- $(".header > ul.menu", f.content).addClass("popupmenu")
- }
- f.list.length && (b = !a && f.list.is(h.last_selected),
- f.list[b ? "removeClass" : "addClass"]("hidden"),
- $(".header > ul.menu", f.list).addClass("popupmenu"));
- f.sidebar.length && (b = !a && (f.sidebar.is(h.last_selected) || !f.list.length),
- f.sidebar[b ? "removeClass" : "addClass"]("hidden"));
- a && z.back_list.show()
- }
- function Z() {
- z.back_list.filter(function() {
- return 0 == $(this).parents("#layout-sidebar").length
- }).hide();
- $("ul.menu.popupmenu").removeClass("popupmenu")
- }
- function O(a) {
- f.list.addClass("hidden");
- f.sidebar.removeClass("hidden");
- a && f.sidebar.addClass("layout-sticky");
- "small" != q && "phone" != q || f.content.addClass("hidden");
- B();
- h.last_selected = f.sidebar[0]
- }
- function P(a) {
- f.list.length || f.sidebar.length ? (f.sidebar.addClass("hidden").removeClass("layout-sticky"),
- f.list.removeClass("hidden"),
- "small" != q && "phone" != q || qa(),
- a && f.list.children(".scroller").scrollTop(0),
- h.last_selected = f.list[0]) : history.back();
- B()
- }
- function qa() {
- h.last_selected = f.list[0] || f.sidebar[0];
- M();
- rcmail.show_contentframe(!1);
- $("[data-list]", f.list).each(function() {
- var a = $(this).data("list");
- rcmail[a] && (rcmail[a].clear_selection ? rcmail[a].clear_selection() : rcmail[a].select && rcmail[a].select())
- })
- }
- function y(a) {
- a ? ("phone" == q && ($('<div id="menu-overlay" class="popover-overlay">').on("click", function() {
- y(!1)
- }).appendTo("body"),
- h.menu_initialized || (h.menu_initialized = !0,
- $("a", f.menu).on("click", function(a) {
- "phone" == q && y()
- })),
- f.menu.addClass("popover")),
- f.menu.removeClass("hidden")) : ($("#menu-overlay").remove(),
- f.menu.addClass("hidden").removeClass("popover"))
- }
- function ra(a) {
- "loading" == a.type && $(".iframe-loader:visible").length ? rcmail.hide_message(a.object) : (L(a.object, a.type, !0),
- $(a.object).attr("role", "alert"))
- }
- function L(a, b, c) {
- var d = "ui alert"
- , e = !$(a).is(".noicon");
- c && e && !$(a).is(".aligned-buttons") && $(a).html($("<span>").html($(a).html()));
- b = b.split(" ")[0];
- if (b = {
- information: "alert-info",
- notice: "alert-info",
- confirmation: "alert-success",
- warning: "alert-warning",
- error: "alert-danger",
- loading: "alert-info loading",
- uploading: "alert-info loading",
- vcardattachment: "alert-info"
- }[b])
- d += " " + b,
- e && $("<i>").attr("class", "icon").prependTo(a);
- $(a).addClass(d)
- }
- function aa(a) {
- var b = $()
- , c = $("a.button.options", a)
- , d = $("input:not([type=hidden])", a)
- , e = d.attr("placeholder");
- $("form", a);
- var g = function() {
- if (d.val() || "mail" == rcmail.task && $("#s_interval").val() || rcmail.gui_objects.search_filter && "ALL" != $(rcmail.gui_objects.search_filter).val() || rcmail.gui_objects.foldersfilter && "---" != $(rcmail.gui_objects.foldersfilter).val())
- return !0
- }
- , l = function() {
- $(a).is(".open") && c.click()
- }
- , k = function() {
- $(a)[g() ? "addClass" : "removeClass"]("active");
- b[rcmail.gui_objects.search_filter && "UNSEEN" == $(rcmail.gui_objects.search_filter).val() ? "addClass" : "removeClass"]("selected")
- };
- d.is("#mailsearchform") && (b = $("<a>").attr({
- "class": "button unread",
- href: "#",
- role: "button",
- title: rcmail.gettext("showunread")
- }).on("click", function(a) {
- $(rcmail.gui_objects.search_filter).val($(a.target).is(".selected") ? "ALL" : "UNSEEN");
- rcmail.command("search")
- }).insertBefore(c));
- c.on("click", function(b) {
- var d = $(this).data("target")
- , e = $("#" + d)
- , g = e.is(":visible");
- if (e.length) {
- if (!g)
- if (C[d])
- C[d](e.get(0), this, b);
- else if ("function" == typeof window[d])
- window[d](e.get(0), this, b);
- e.next()[g ? "show" : "hide"]();
- e.toggleClass("hidden");
- $(".floating-action-buttons").toggleClass("hidden");
- $(a).toggleClass("open");
- $("button.search", e).off("click.search").on("click.search", function() {
- c.trigger("click");
- k()
- })
- }
- });
- d.on("input change", k).on("focus blur", function(a) {
- d.attr("placeholder", "blur" == a.type ? e : "")
- });
- $("a.reset", a).on("click", function(b) {
- d.val("").change().trigger("keyup.treelist", {
- keyCode: 27
- });
- $(a).is(".open") && c.click();
- rcmail.gui_objects.search_filter && $(rcmail.gui_objects.search_filter).val("ALL");
- rcmail.gui_objects.foldersfilter && ($(rcmail.gui_objects.foldersfilter).val("---").change(),
- rcmail.folder_filter("---"));
- k()
- });
- rcmail.addEventListener("init", k).addEventListener("responsebeforesearch", k).addEventListener("beforelist", l).addEventListener("afterlist", k).addEventListener("beforesearch", l)
- }
- function D(a, b) {
- if (p && r())
- return parent.UI.popup_init(a, b || window);
- b || (b = window);
- var c, d = $(a).data("popup"), e = $(b.$("#" + d).get(0)), g = e, l = $(a).attr("title");
- $(a).attr({
- "aria-haspopup": "true",
- "aria-expanded": "false",
- "aria-owns": d
- }).popover({
- content: function() {
- b != window && (e = g.clone(!0, !0),
- e.attr("id", d + "-clone").appendTo(document.body).find("li > a").attr("onclick", "").off("click").on("click", function(d) {
- $(this).is(".disabled") || ($(a).popover("hide"),
- b.$("#" + $(this).attr("id")).click());
- return !1
- }));
- return e.get(0)
- },
- trigger: $(a).data("popup-trigger") || "click",
- placement: $(a).data("popup-pos") || "bottom",
- animation: !0,
- boundary: "window",
- html: !0
- }).on("show.bs.popover", function(g) {
- var k = e.data("popup-init");
- d && m[d] && (m[d].transitioning = !0);
- if (k && C[k])
- C[k](e.get(0), a, g);
- else if (k && b[k])
- b[k](e.get(0), a, g);
- c = $("div.popover:visible").length + 1;
- e.removeClass("hidden").attr("aria-hidden", !1).find('[aria-haspopup="true"]').data("level", c + 1).off("click.popup").on("click.popup", function(a) {
- a.stopPropagation()
- });
- r() || e.css("max-height", Math.min(539, $(window).height() - 30))
- }).on("shown.bs.popover", function(b) {
- b = r();
- var e = $("#" + $(a).attr("aria-describedby"));
- c = $(a).data("level") || 1;
- if (b) {
- var g = 1 < c ? "back" : "close"
- , k = rcmail.gettext(g);
- g = "button icon " + ("back" == g ? "back" : "cancel");
- $(".popover-header", e).empty().append($("<a>").attr("class", g).text(k).on("click", function(b) {
- $(a).popover("hide");
- 1 < c && b.stopPropagation()
- }).on("mousedown", function(a) {
- a.stopPropagation()
- }))
- }
- $.each(m, function(a, b) {
- $(b.target).data("level") == c && a != d && I(a)
- });
- "key" == $(a).data("event") && (e.off("keydown.popup").on("keydown.popup", "a.active", function(b) {
- var d, c = "next";
- switch (b.which) {
- case 27:
- case 9:
- return $(a).popover("toggle").focus(),
- !1;
- case 38:
- case 63232:
- c = "previous";
- case 40:
- case 63233:
- for (b = b.target.parentNode; b = b[c + "Sibling"]; )
- if (d = $(b).children(".active")[0]) {
- d.focus();
- break
- }
- return !1
- }
- }),
- e.find("a.active").first().focus());
- d && m[d] && (m[d].transitioning = !1);
- b && !$(".popover-overlay").length && $("<div>").attr("class", "popover-overlay").appendTo("body").click(function() {
- $(this).remove()
- });
- $(".popover-body", e).addClass("webkit-scroller")
- }).on("hide.bs.popover", function() {
- 1 == c && $(".popover-overlay").remove();
- d && m[d] && e.is(":visible") && (m[d].transitioning = !0)
- }).on("hidden.bs.popover", function() {
- /-clone$/.test(e.attr("id")) ? e.remove() : e.attr("aria-hidden", !0).addClass("hidden").appendTo(e.data("popup-parent") || document.body);
- $(".popover-body:empty").each(function() {
- $(this).parent().remove()
- });
- d && m[d] && delete m[d]
- }).on("click", function() {
- $(this).data("event", "mouse")
- }).on("keydown", function(a) {
- if (a.originalEvent)
- switch (a.originalEvent.which) {
- case 13:
- case 32:
- a.preventDefault();
- $(this).data("event", "key").popover("toggle");
- break;
- case 27:
- $(this).popover("hide")
- }
- });
- l && $(a).attr("title", l);
- e.attr("aria-hidden", "true").data("button", a);
- if (e.data("editable"))
- e.on("click mousedown", function(a) {
- a.stopPropagation()
- })
- }
- function x(a) {
- Q && Q > (new Date).getTime() - 250 || $(".popover.show").each(function() {
- var b = $(".popover-body", this).children().first().data("button");
- b && a.target != b && !$(b).find(a.target).length && "string" !== typeof b && $(b).popover("hide");
- b || $(this).remove()
- })
- }
- function R(a) {
- if (a && a.name && (!a.props || !1 !== a.props.skinable)) {
- if (p && r())
- return a.win || (a.win = window),
- parent.UI.menu_toggle(a);
- if ("messagelistmenu" == a.name)
- sa(a);
- else if ("menu-open" == a.event) {
- var b = $("ul", a.obj).first()
- , c = a.props && a.props.link ? a.props.link : a.originalEvent.target;
- $(c).is("span") && (c = $(c).parents("a,li")[0]);
- if (a.name.match(/^drag/)) {
- var d = rcube_event.get_mouse_pos(a.originalEvent);
- c = $("<a>").css({
- position: "absolute",
- left: d.x,
- top: d.y,
- height: "1px",
- width: "1px",
- visibility: "hidden"
- }).appendTo(document.body).get(0)
- }
- d = $(c).data("popup-pos") || "right";
- "folder-selector" == a.name ? b.addClass("listing folderlist") : "addressbook-selector" == a.name || "contactgroup-selector" == a.name ? b.addClass("listing contactlist") : b.hasClass("menu") && b.addClass("listing");
- "pagejump-selector" == a.name && (b.addClass("simplelist"),
- a.obj.addClass("simplelist"),
- d = "top");
- m[a.name] && I(a.name, a.originalEvent);
- var e = function() {
- if (m[a.name] && m[a.name].transitioning)
- return setTimeout(e, 50);
- $(c).data("popup") || ($(c).data({
- event: rcube_event.is_keyboard(a.originalEvent) ? "key" : "mouse",
- popup: a.name,
- "popup-pos": d,
- "popup-trigger": "manual"
- }),
- D(c, a.win));
- m[a.name] = {
- target: c
- };
- $(c).popover("show")
- };
- e()
- } else
- I(a.name, a.originalEvent);
- a.originalEvent.stopPropagation()
- }
- }
- function I(a, b) {
- var c = a;
- if (m[c])
- var d = m[c].target;
- else
- d = $("#" + c).data("button"),
- d || (c.match(/(?!-)menu$/) && (c = c.substr(0, c.length - 4)),
- d = $("#" + c + "-menu").data("button"));
- c = d;
- a.match(/^drag/) ? $(c).popover("dispose").remove() : ($(c).popover("hide"),
- "forwardmenu" == a && x(b))
- }
- function sa(a) {
- a = $("#listoptions-menu");
- a.width();
- var b = a.clone(!0);
- $('select[name="sort_col"]', b).val(rcmail.env.sort_col || "");
- $('select[name="sort_ord"]', b).val(rcmail.env.sort_order || "ASC");
- $('select[name="mode"]', b).val(rcmail.env.threading ? "threads" : "list");
- $("select", b).each(function() {
- this.id += "-clone"
- });
- $("label", b).each(function() {
- $(this).attr("for", $(this).attr("for") + "-clone")
- });
- b = rcmail.simple_dialog(b, rcmail.gettext("listoptionstitle"), function(a) {
- rcube_event.is_keyboard(a.originalEvent) && $("#listmenulink").focus();
- a = $('select[name="sort_col"]', b).val();
- var d = $('select[name="sort_ord"]', b).val()
- , c = $('select[name="mode"]', b).val();
- rcmail.set_list_options([], a, d, "threads" == c ? 1 : 0);
- return !0
- }, {
- closeOnEscape: !0,
- minWidth: 400
- })
- }
- function ba(a, b) {
- var c = rcmail.env.task;
- var d = rcmail.env.search_mods
- , e = rcmail.env.mailbox
- , g = $("#s_scope", a).val()
- , l = $("#s_interval", a).val();
- "all" == g && (e = "*");
- d || (d = {});
- if ("mail" == c) {
- d[e] || (d[e] = rcube_clone_object(d["*"]));
- var k = d[e];
- c = "text";
- rcmail.env.search_scope = g;
- rcmail.env.search_interval = l
- } else
- k = d,
- c = "*";
- b && (b.checked ? k[b.value] = 1 : delete k[b.value],
- b.value == c && $('input[name="s_mods[]"]', a).map(function() {
- this != b && (this.checked = !0,
- b.checked ? (this.disabled = !0,
- delete k[this.value]) : (this.disabled = !1,
- k[this.value] = 1))
- }),
- rcmail.set_searchmods(k))
- }
- function V(a, b) {
- var c = $("#composestatusbar")
- , d = c.find("a.button.icon." + a);
- b ? d.length || $("<a>").attr("class", "button icon " + a).on("click", function() {
- O()
- }).appendTo(c) : d.remove()
- }
- function ca(a, b, c) {
- var d = $(b).parent().attr("id").replace(/^attach/, "");
- $.each(["open", "download", "rename"], function() {
- var b = this;
- $("#attachmenu" + b, a).off("click").attr("onclick", "").click(function(a) {
- return rcmail.command(b + "-attachment", d, this, a.originalEvent)
- })
- });
- return rcmail.command("menu-open", {
- menu: "attachmentmenu",
- id: d
- }, a, c)
- }
- function U(a) {
- a = $(a);
- if (!a.is(".no-menu") && !a.children(".dropdown").length) {
- var b = rcmail.gettext("options")
- , c = a.find("a.filename")
- , d = $("<a>").attr({
- href: "#",
- tabindex: c.attr("tabindex") || 0,
- title: b,
- "class": "button icon dropdown skip-content"
- }).on("click", function(a) {
- return ca($("#attachmentmenu"), d, a)
- }).append($("<span>").attr("class", "inner").text(b));
- c.length ? d.insertAfter(c) : d.appendTo(a)
- }
- }
- function da(a, b, c, d) {
- var e = $(b).attr("href").replace(/^mailto:/, "");
- if (0 > e.indexOf("@"))
- return !0;
- a.find("a").off("click").removeClass("active");
- if (rcmail.env.has_writeable_addressbook)
- $(".addressbook", a).addClass("active").on("click", function(a) {
- var d = e
- , c = $(b).filter(".rcmContactAddress").text();
- d = d.split("?")[0].split(",")[0].replace(/(^<|>$)/g, "");
- c && (c = c.replace("<" + d + ">", ""),
- d = '"' + $.trim(c) + '" <' + d + ">");
- return rcmail.command("add-contact", d, this, a.originalEvent)
- });
- $(".compose", a).addClass("active").on("click", function(a) {
- d ? (b.onclick = d,
- $(b).trigger("click", [!0]),
- b.onclick = null) : rcmail.command("compose", e, this, a.originalEvent);
- return !1
- });
- return rcmail.command("menu-open", {
- menu: "mailto-menu",
- link: b
- }, b, c.originalEvent)
- }
- function ia(a) {
- var b = a.onclick;
- a.onclick = null;
- $(a).on("click", function(c, d) {
- return d || da($("#mailto-menu"), a, c, b)
- })
- }
- function ta(a) {
- var b = $("#quotadisplay")
- , c = b.find(".bar")
- , d = a.total ? a.percent : 0;
- c.length || (c = $('<span class="bar"><span class="value"></span></span>').appendTo(b));
- 0 < d && 10 > d && (d = 10);
- c.find(".value").css("width", d + "%")[90 <= d ? "addClass" : "removeClass"]("warning");
- b.attr({
- "data-original-title": "",
- title: b.find(".count").attr("title")
- });
- if (a.table)
- b.css("cursor", "pointer").data("popup-pos", "top").off("click").on("click", function(b) {
- rcmail.simple_dialog(a.table, "quota", null, {
- cancel_button: "close"
- })
- });
- else
- b.tooltip("dispose").tooltip({
- trigger: r() ? "click" : "hover"
- })
- }
- function ua(a) {
- var b = function() {
- g.css("width", Math.max(40, 15 * g.val().length + 25))
- }
- , c = function() {
- $(a).val(f.text() + g.val())
- }
- , d = function(a, b, e) {
- var k = $('<li class="recipient">')
- , f = $('<span class="name">').html(va(a || b)).on("dblclick", function(a) {
- wa(a, d)
- })
- , l = $('<span class="email">')
- , h = $("<a>").attr({
- "class": "button icon remove"
- }).click(function() {
- k.remove();
- c();
- g.focus();
- return !1
- });
- a && (b = " <" + b + ">");
- l.text((a ? b : "") + ",");
- k.attr("title", a ? a + b : null).append([f, l, h]);
- e ? e.replaceWith(k) : k.insertBefore(g.parent());
- c()
- }
- , e = function(a) {
- a = (a || g.val()).replace(/[,;\s]+$/, "");
- a = ea(a);
- $.each(a.recipients, function() {
- d(this.name, this.email)
- });
- g.val(a.text);
- c();
- b();
- return 0 < a.recipients.length
- };
- var g = $("<input>").attr({
- type: "text",
- tabindex: $(a).attr("tabindex")
- }).on("paste change", function(a) {
- var b = this.value;
- if ("paste" == a.type) {
- var d = (a.originalEvent.clipboardData || window.clipboardData).getData("text") || "";
- b = b.substring(0, this.selectionStart) + d + b.substring(this.selectionEnd);
- a.preventDefault()
- }
- e(b)
- }).on("input", b).on("click", function(a) {
- if (8 == a.keyCode && !g.val().length)
- return f.children("li.recipient").last().remove(),
- c(),
- !1;
- // if (("," == a.key || ";" == a.key || "Enter" == a.key && !rcmail.ksearch_visible()) && e())
- // return !1;
- // b()
- while(true)
- {
- // if (("," == a.key || 13 == a.keyCode || "Enter" == a.key && !rcmail.ksearch_visible()) && e())
- a = 1;
- if(a==1)
- {
- e();
- console.log("funct");
- return !1;
- b();
- }
- }
- }).on("blur", function() {
- f.removeClass("focus")
- }).on("focus mousedown", function() {
- f.addClass("focus")
- });
- var f = $("<ul>").addClass("form-control recipient-input ac-input rounded-left").append($("<li>").append(g)).on("click", function() {
- g.focus()
- });
- $(a).css({
- position: "absolute",
- opacity: 0,
- left: "-5000px",
- width: "10px"
- }).attr("tabindex", -1).after(f).on("focus", function(a) {
- g.focus();
- a.preventDefault()
- }).on("change", function() {
- $("li.recipient", f).remove();
- g.val(this.value).change()
- }).change();
- rcmail.init_address_input_events(g)
- }
- function ea(a) {
- a = $.trim(a.replace(/[,;\s]*[\r\n]+/g, ","));
- var b = []
- , c = /(<(\S+|("[^"]+"))@\S+>)/
- , d = /((\S+|("[^"]+"))@\S+)/
- , e = a.match(/(?=\S)[^",;]*(?:"[^\\"]*(?:\\[,;\S][^\\"]*)*"[^",;]*)*/g);
- $.each(e || [], function() {
- if (this.length && (c.test(this) || d.test(this))) {
- var e = RegExp.$1
- , f = $.trim(this.replace(e, ""));
- b.push({
- name: f,
- email: e.replace(/(^<|>$)/g, ""),
- text: this
- });
- a = a.replace(this, "")
- }
- });
- a = a.replace(/[,;]+/, ",").replace(/^[,;\s]+/, "");
- return {
- recipients: b,
- text: a
- }
- }
- function va(a) {
- var b, c = "", d = a.length;
- '"' != a.charAt(0) && -1 < a.indexOf('"') && (a = '"' + a.replace("\\", "\\\\").replace('"', '\\"') + '"');
- for (b = 0; b < d; b++) {
- var e = a.charAt(b);
- switch (e) {
- case '"':
- if (0 < b && b < d - 1) {
- c += '"';
- break
- }
- c += '<span class="quotes">' + e + "</span>";
- break;
- case "\\":
- c += '<span class="quotes">' + e + "</span>";
- "\\" == a.charAt(b + 1) && (c += e,
- b++);
- break;
- case "<":
- c += "<";
- break;
- case ">":
- c += ">";
- break;
- default:
- c += e
- }
- }
- return c
- }
- function wa(a, b) {
- var c = $(a.target).parents(".recipient")
- , d = c.text().replace(/,+$/, "")
- , e = $("<input>").attr({
- type: "text",
- size: 50
- }).val(d);
- a = $("<label>").text(rcmail.gettext("recipient")).append(e);
- rcmail.simple_dialog(a, "recipientedit", function() {
- var a;
- if (a = e.val()) {
- if (a != d) {
- a = ea(a);
- if (1 != a.recipients.length)
- return !1;
- b(a.recipients[0].name, a.recipients[0].email, c)
- }
- return !0
- }
- })
- }
- function xa(a) {
- var b = $("<a>").attr({
- "class": "icon button delete",
- href: "#"
- }).click(function(a) {
- rcmail.command("delete-photo", "", this, a);
- return !1
- })
- , c = $(a).find("img")[0]
- , d = function() {
- var b = -1 != (c.currentSrc || c.src).indexOf(rcmail.env.photo_placeholder);
- $(a)[b ? "removeClass" : "addClass"]("changed")
- };
- $(a).append(b).click(function() {
- rcmail.upload_input("upload-form")
- });
- d();
- $(c).on("load", d)
- }
- function G(a) {
- a = $(a);
- if (a.length) {
- var b = $('<div class="iframe-loader">').append($('<div class="spinner spinner-border" role="status">').append($('<span class="sr-only">').text(rcmail.gettext("loading"))));
- a.on("load error loaded", function() {
- setTimeout(function() {
- b.remove()
- }, 500)
- }).parent().append(b);
- fa && a.parent().addClass("ios-scroll")
- }
- }
- function F(a) {
- var b;
- a = $(a);
- if (!a.is(".custom-control-input")) {
- (b = a.attr("id")) || (b = "icochk" + ++h.checkboxes,
- a.attr("id", b));
- if (a.parent().is("label")) {
- var c = a.parent();
- a = a.detach();
- c.before(a)
- } else
- c = $("<label>");
- c.attr({
- "for": b,
- "class": "custom-control-label",
- title: a.attr("title") || ""
- }).on("click", function(a) {
- a.stopPropagation()
- });
- a.addClass("form-check-input custom-control-input").wrap('<div class="custom-control custom-switch">').parent().append(c)
- }
- }
- function K(a) {
- if (!bw.iphone && !bw.ipad && (a = $(a),
- !a.is(".pretty-select"))) {
- var b = "select" + a.attr("id") + a.attr("name")
- , c = function() {
- if (a[0].ownerDocument.defaultView.$(".select-menu .listing").data("ident") == b)
- return !0
- }
- , d = function() {
- var b = c();
- a.popover("dispose").focus();
- return !b
- }
- , e = function(c) {
- var e = []
- , g = a.closest(".ui-dialog")[0]
- , f = (document.documentElement.clientHeight || $(document.body).height()) - 75
- , h = $(document.body).width() - 20
- , n = Math.min(a.outerWidth(), h)
- , p = a.val();
- r() || (f *= .5);
- x(c);
- $("option", a).each(function() {
- var a = $(this).text()
- , b = $('<a href="#">').data("value", this.value).addClass(this.disabled ? "disabled" : "active" + (this.value == p ? " selected" : ""));
- a.length ? b.text(a) : b.html(" ");
- e.push($("<li>").append(b))
- });
- var m = $('<ul class="listing selectable iconized">').attr("data-ident", b).data("button", a[0]).append(e).on("click", "a.active", function() {
- var b = $(this).data("value")
- , c = d();
- a.val(b).change();
- return c
- }).on("keydown", "a.active", function(a) {
- var b, c = "next";
- switch (a.which) {
- case 27:
- case 9:
- return d();
- case 13:
- case 32:
- return $(this).click(),
- !1;
- case 38:
- case 63232:
- c = "previous";
- case 40:
- case 63233:
- for (a = a.target.parentNode; a = a[c + "Sibling"]; )
- if (b = $(a).children(".active")[0]) {
- b.focus();
- break
- }
- return !1
- }
- });
- a.popover("dispose").popover({
- container: g || document.body,
- content: m[0],
- placement: "bottom",
- trigger: "manual",
- boundary: "viewport",
- html: !0,
- offset: "0,2",
- sanitize: !1,
- template: '<div class="popover select-menu" style="min-width: ' + n + "px; max-width: " + h + 'px"><div class="popover-header"></div><div class="popover-body" style="max-height: ' + f + 'px"></div></div>'
- }).on("shown.bs.popover", function() {
- a.focus();
- m.parent().prev().empty().append($('<a class="button icon cancel">').text(rcmail.gettext("close")).on("click", function(a) {
- a.stopPropagation();
- return d()
- }));
- rcube_event.is_keyboard(c) && m.find("a.active").first().focus();
- m.on("mousedown", function(a) {
- a.stopPropagation()
- })
- }).popover("show")
- };
- a.addClass("pretty-select custom-select form-control").on("mousedown keydown", function(b) {
- a = $(b.target);
- if (!a.prop("disabled")) {
- if (9 == b.which)
- return d(),
- !0;
- if (27 == b.which || "mousedown" == b.type && c())
- return d();
- a.focus();
- a.prop("disabled", !0);
- setTimeout(function() {
- a.prop("disabled", !1)
- }, 0);
- b.stopPropagation();
- if ("mousedown" == b.type || 13 == b.which || 32 == b.which || 40 == b.which || 63233 == b.which)
- return e(b),
- Q = (new Date).getTime(),
- !1
- }
- })
- }
- }
- function ya(a) {
- var b = !1
- , c = $(a)
- , d = c.parent()
- , e = $('<a class="mce-i-html" href="#" tabindex="-1"></a>').attr("title", rcmail.gettext("htmltoggle")).on("click", function(a) {
- rcmail.command("toggle-editor", {
- id: c.attr("id"),
- html: !0
- }, "", a.originalEvent) && d.addClass("ishtml")
- }).on("keydown", function(a) {
- if (9 == a.which)
- return c.focus(),
- !1
- })
- , g = $('<div class="editor-toolbar">').append(e);
- d.is("td") ? (a = $('input[type="checkbox"]', d.parent().next()),
- b = !0) : a = $('[name="editorSelector"]', a.form);
- 1 == a.length && (d.addClass("html-editor"),
- c.after(g).data("control", a).on("keydown", function(a) {
- a.altKey && 121 == a.which && e.focus()
- }),
- b && (a.parents("tr").first().hide(),
- d.prev().hide(),
- d.addClass("col-sm-12")),
- za(c))
- }
- function za(a) {
- $(a).css("overflow-y", "hidden").on("input", function(a) {
- clearTimeout(h.textarea_timer);
- h.textarea_timer = setTimeout(function() {
- var b = $(a.target)
- , d = b.data("initial-height")
- , e = b[0].scrollHeight;
- e && (d || b.data("initial-height", d = e),
- 2 == b.outerHeight() - e && (e -= 19),
- b.outerHeight(Math.max(d, e)))
- }, 10)
- }).trigger("input");
- setInterval(function() {
- $(a).trigger("input")
- }, 1E3)
- }
- function S(a, b, c, d, e, g) {
- d = $('<div class="input-group"><input type="text" class="form-control"><span class="input-group-append"><a class="icon reset input-group-text" href="#"></a></span></div>');
- b = {
- value: b,
- name: c + "[]"
- };
- e && (b.size = e);
- $("input", d).attr(b).keydown(function(b) {
- var d = $(this);
- if (13 == b.which) {
- b = d.attr("name").replace(/\[\]$/, "");
- var c = (new Date).getTime();
- d = S(a, "", b, c, e, d.parent());
- $("input", d).focus()
- } else if ((8 == b.which || 46 == b.which) && "" == d.val() && (d = d.parent(),
- 1 < a.children().length))
- return d.prev().length ? d.prev().children("input").focus() : d.next().children("input").focus(),
- d.remove(),
- !1
- });
- $("a.reset", d).click(function() {
- var b = $(this.parentNode.parentNode);
- 1 < a.children().length ? ($("input", b.next().length ? b.next() : b.prev()).focus(),
- b.remove()) : $("input", b).val("").focus()
- });
- $(d).find("input,a").on("focus", function() {
- a.addClass("focused")
- }).on("blur", function() {
- a.removeClass("focused")
- });
- g ? g.after(d) : d.appendTo(a);
- return d
- }
- function ha(a) {
- var b = a.find(".scroller .listing").first().attr("id")
- , c = rcmail.env.task + "." + (b || rcmail.env.action + "." + a.attr("id"));
- b = Aa(c);
- var d = a.is(".sidebar-right")
- , e = function(b) {
- a.css({
- width: Math.max(100, b),
- flex: "none"
- })
- };
- a[d ? "prev" : "next"]().length && ($('<div class="column-resizer">').appendTo(a).on("mousedown", function(b) {
- var g, f = $(this), h = a.position().left;
- f.width(1E4).css(d ? "left" : "right", -5E3);
- document.body.style.userSelect = "none";
- $(document).on("mousemove.resizer", function(b) {
- clearTimeout(g);
- g = setTimeout(function() {
- d && (h = a.position().left);
- var c = rcube_event.get_mouse_pos(b).x;
- c = d ? a.width() + (h - c) : c - h;
- e(c)
- }, 5)
- }).on("mouseup.resizer", function() {
- $(document).off(".resizer");
- $("iframe").off(".resizer");
- document.body.style.userSelect = "auto";
- f.width(6).css(d ? "left" : "right", -3);
- var b = a.width();
- v[c] = b;
- if (!rcmail.local_storage_set_item("prefs.elastic", v)) {
- var e = new Date;
- e.setYear(e.getFullYear() + 1);
- rcmail.set_cookie(c, b, e)
- }
- })
- }),
- b && e(b))
- }
- function Ba(a) {
- if (!r() || !0 === arguments[3])
- return h.open_window.apply(rcmail, arguments);
- a = rcmail.add_url(a, "_framed", 1);
- a = rcmail.add_url(a, "_extwin", 1);
- var b, c = "", d = {
- cancel_button: "close",
- width: 768,
- height: 768
- }, e = $("<iframe>").attr({
- id: "windowframe",
- src: a
- });
- /_action=([a-z_]+)/.test(a) && (b = rcmail.labels[RegExp.$1]) && (c = b);
- /_frame=1/.test(a) && (d.dialogClass = "no-titlebar");
- rcmail.simple_dialog(e, c, null, d);
- return !0
- }
- function H() {
- if (p) {
- var a = $(parent.document.documentElement);
- return {
- mode: a[0].className.match(/layout-([a-z]+)/) ? RegExp.$1 : q,
- touch: a.is(".touch")
- }
- }
- return {
- mode: q,
- touch: J
- }
- }
- function r() {
- var a = H();
- return "phone" == a.mode || "small" == a.mode
- }
- function Aa(a) {
- v || (v = rcmail.local_storage_get_item("prefs.elastic", {}));
- if (null == v[a]) {
- var b = rcmail.get_cookie(a);
- null != b && (v[a] = b,
- rcmail.local_storage_set_item("prefs.elastic", v) && rcmail.set_cookie(a, b, new Date))
- }
- return v[a]
- }
- var v, C = this, q = "normal", J = !1, fa = !1, Q, p = rcmail.is_framed(), h = {
- config: {
- standard_windows: rcmail.env.standard_windows,
- message_extwin: rcmail.env.message_extwin,
- compose_extwin: rcmail.env.compose_extwin,
- help_open_extwin: rcmail.env.help_open_extwin
- },
- checkboxes: 0,
- small_screen_config: {
- standard_windows: !0,
- message_extwin: !1,
- compose_extwin: !1,
- help_open_extwin: !1
- }
- }, m = {}, N = [], T = [], f = {
- menu: $("#layout-menu"),
- sidebar: $("#layout-sidebar"),
- list: $("#layout-list"),
- content: $("#layout-content")
- }, z = {
- menu: $("a.task-menu-button"),
- back_sidebar: $("a.back-sidebar-button"),
- back_list: $("a.back-list-button"),
- back_content: $("a.back-content-button")
- };
- this.register_content_buttons = function(a) {
- if (h.frame_nav && a && a.length) {
- var b = h.frame_nav.children(".buttons");
- N = [];
- $.each(a, function() {
- this.data("target") && N.push(this.data("target"))
- });
- b.html("").append(a)
- }
- }
- ;
- this.menu_hide = I;
- this.menu_toggle = R;
- this.menu_destroy = function(a) {
- $("[aria-owns=" + a + "]").popover("dispose").data("popup", null)
- }
- ;
- this.popup_init = D;
- this.about_dialog = function(a) {
- var b, c = !1, d = $("<iframe>").attr({
- id: "aboutframe",
- src: rcmail.url("settings/about", {
- _framed: 1
- })
- }), e = $("#supportlink");
- if (e.length && (b = e.attr("href"))) {
- c = e.text();
- var g = function(a) {
- 0 > b.indexOf("mailto:") ? window.open(b) : location.href = b
- }
- }
- rcmail.simple_dialog(d, $(a).text(), g, {
- button: c,
- button_class: "help",
- cancel_button: "close",
- height: 400
- })
- }
- ;
- this.headers_dialog = function() {
- var a = {
- _uid: rcmail.env.uid,
- _mbox: rcmail.env.mailbox,
- _framed: 1
- };
- a = $("<iframe>").attr({
- id: "headersframe",
- src: rcmail.url("headers", a)
- });
- rcmail.simple_dialog(a, rcmail.gettext("arialabelmessageheaders"), null, {
- cancel_button: "close",
- height: 400
- })
- }
- ;
- this.import_dialog = function() {
- if (rcmail.commands["import-messages"]) {
- var a = $("#uploadform").clone(!0);
- rcmail.simple_dialog(a, rcmail.gettext("importmessages"), function(b) {
- return rcmail.command("import-messages", $(a.find("form")[0]))
- }, {
- button: "import",
- closeOnEscape: !0,
- minWidth: 400
- })
- }
- }
- ;
- this.headers_show = function(a) {
- a = $(a).parent().prev();
- a[a.is(".hidden") ? "removeClass" : "addClass"]("hidden")
- }
- ;
- this.spellmenu = function(a) {
- var b, c = [], d = rcmail.spellcheck_lang(), e = $("ul", a);
- if (!e.length) {
- e = $('<ul class="selectable listing iconized" role="menu">');
- for (b in rcmail.env.spell_langs) {
- var g = $('<li role="menuitem">');
- var f = $('<a href="#' + b + '" tabindex="0"></a>').text(rcmail.env.spell_langs[b]).addClass("active").data("lang", b).on("click keypress", function(a) {
- if ("keypress" != a.type || 13 == rcube_event.get_keycode(a))
- return rcmail.spellcheck_lang_set($(this).data("lang")),
- rcmail.hide_menu("spell-menu", a),
- !1
- });
- f.appendTo(g);
- c.push(g)
- }
- e.append(c).appendTo(a)
- }
- $("li", e).each(function() {
- var a = $("a", this);
- a.data("lang") == d ? a.addClass("selected").attr("aria-selected", "true") : a.hasClass("selected") && a.removeClass("selected").removeAttr("aria-selected")
- })
- }
- ;
- this.searchmenu = function(a) {
- var b, c = $('input[name="s_mods[]"]', a), d = $("#s_scope", a), e = rcmail.env.mailbox, g = rcmail.env.search_mods, f = rcmail.env.search_scope || "base";
- $(a).data("initialized") || ($(a).data("initialized", !0),
- c.length && (c.on("change", function() {
- ba(a, this)
- }),
- rcmail.addEventListener("beforesearch", function() {
- ba(a)
- })));
- if (rcmail.env.search_mods) {
- if ("mail" == rcmail.env.task) {
- "all" == f && (e = "*");
- g = g[e] ? g[e] : g["*"];
- var h = "text";
- d.val(f)
- } else
- h = "*";
- if (g[h])
- c.map(function() {
- this.checked = !0;
- this.disabled = this.value != h
- });
- else
- for (b in c.prop("disabled", !1).prop("checked", !1),
- g)
- c.filter('[value="' + b + '"]').prop("checked", !0)
- }
- }
- ;
- this.headersmenu = function(a, b, c) {
- $("li > a", a).each(function() {
- var a = $(this)
- , b = "#compose_" + a.data("target");
- a[$(b).is(":visible") ? "removeClass" : "addClass"]("active").off().on("click", function() {
- $(b).removeClass("hidden").find(".recipient-input input").focus();
- a.removeClass("active");
- rcmail.set_menu_buttons()
- })
- })
- }
- ;
- this.header_reset = function(a) {
- $("#" + a).val("").change().closest(".form-group").nextAll(":not(.hidden)").first().find("input").focus();
- $("a[data-target=" + a.replace(/^_/, "") + "]").addClass("active");
- rcmail.set_menu_buttons()
- }
- ;
- this.compose_status = V;
- this.attachmentmenu = ca;
- this.mailtomenu = da;
- this.recipient_selector = function(a, b) {
- b || (b = {});
- var c = rcmail.gettext(b.title || "insertcontact")
- , d = $("#recipient-dialog")
- , e = d.parent()
- , g = function() {
- d.is(":visible") && rcmail.env.recipient_dialog.dialog("close")
- };
- rcmail.env.recipient_selector_initialized || (rcmail.addEventListener("add-recipient", g),
- rcmail.env.recipient_selector_initialized = !0);
- a && (rcmail.env.focused_field = "#_" + a);
- rcmail.contact_list.clear_selection();
- rcmail.contact_list.multiselect = "multiselect"in b ? b.multiselect : !0;
- rcmail.env.recipient_dialog = rcmail.simple_dialog(d, c, function() {
- b.action ? (b.action(),
- g()) : rcmail.command("add-recipient")
- }, {
- button: rcmail.gettext(b.button || "insert"),
- button_class: b.button_class || "insert recipient",
- height: 600,
- classes: {
- "ui-dialog-content": "p-0"
- },
- open: function() {
- $("#directorylist a").first().focus()
- },
- close: function() {
- d.appendTo(e);
- $(this).remove();
- $(b.focus || rcmail.env.focused_field).focus()
- }
- })
- }
- ;
- this.show_list = P;
- this.show_sidebar = O;
- this.smart_field_init = function(a) {
- var b = a.id + "_list"
- , c = $('<div class="multi-input"><div class="content"></div><div class="invalid-feedback"></div></div>')
- , d = a.value ? a.value.split("\n") : [""];
- $("#" + b).length || ($.each(d, function(b, d) {
- S($(".content", c), d, a.name, b, $(a).data("size"))
- }),
- c.attr("id", b),
- a = $(a),
- a.attr("disabled") ? c.hide() : a.prop("disabled", !0),
- a.data("hidden") && c.hide(),
- a.after(c),
- a.hasClass("is-invalid") && (c.addClass("is-invalid"),
- $(".invalid-feedback", c).text(a.data("error-msg"))))
- }
- ;
- this.smart_field_reset = function(a, b) {
- b = b.length ? b : [""];
- var c = $("#" + (a.id + "_list")).children(".content");
- c.empty();
- $.each(b, function(b, e) {
- S(c, e, a.name, b, $(a).data("size"))
- })
- }
- ;
- this.form_errors = function(a) {
- $.each(a, function() {
- var a = $("#" + this[0]).addClass("is-invalid");
- "list" == a.data("type") ? (a.data("error-msg", this[2]),
- $("#" + this[0] + "_list > .invalid-feedback").text(this[2])) : a.after($('<span class="invalid-feedback">').text(this[2]))
- })
- }
- ;
- this.switch_nav_list = function(a) {
- var b = $("a", a)
- , c = $(a).next();
- if (c.height())
- c.animate({
- height: "0"
- }, 250),
- b.addClass("expand").removeClass("collapse"),
- $(a).removeClass("expanded");
- else {
- var d = $("tr,li", c).filter(function() {
- return "none" != this.style.display
- });
- var e = $(d[0]).height() || 50;
- c.animate({
- height: Math.min(5, d.length) * e + 1 + "px"
- }, 250);
- b.addClass("collapse").removeClass("expand");
- $(a).addClass("expanded")
- }
- }
- ;
- this.searchbar_init = aa;
- this.pretty_checkbox = F;
- this.pretty_select = K;
- this.datepicker_init = function(a) {
- window.MutationObserver && $(a).not("[data-observed]").each(function() {
- var a, c = !0, d = p ? parent : window;
- $(this).attr("data-observed", "1");
- p && ($(this).detach().appendTo(parent.document.body),
- $('<div id="ui-datepicker-div" class="hidden">').appendTo(document.body));
- (new MutationObserver(function(b) {
- $.each(b, function(b, e) {
- "attributes" == e.type ? (b = "true" == $(e.target).attr("aria-hidden"),
- b != c && (b ? a && a.remove() : a = $("<div>").attr("class", "ui-widget-overlay datepicker").appendTo(d.document.body).click(function(a) {
- $(this).remove();
- p && $.datepicker._hideDatepicker()
- }),
- c = b)) : e.addedNodes.length && (d.UI.bootstrap_style(e.target),
- p && (d.$("select.ui-datepicker-month", e.target).on("change", function() {
- $.datepicker._selectMonthYear($.datepicker._lastInput, this, "M")
- }),
- d.$("select.ui-datepicker-year", e.target).on("change", function() {
- $.datepicker._selectMonthYear($.datepicker._lastInput, this, "Y")
- })))
- })
- }
- )).observe(this, {
- childList: !0,
- subtree: !1,
- attributes: !0,
- attributeFilter: ["aria-hidden"]
- })
- })
- }
- ;
- this.bootstrap_style = u;
- X();
- (function() {
- h.last_selected = $("#layout > div.selected")[0];
- !h.last_selected && f.content.length && $.each(["sidebar", "list", "content"], function() {
- if (f[this].length)
- return h.last_selected = f[this][0],
- f[this].addClass("selected"),
- !1
- });
- $(window).on("resize", function() {
- clearTimeout(h.resize_timeout);
- h.resize_timeout = setTimeout(function() {
- E()
- }, 25)
- });
- h.open_window = rcmail.open_window;
- rcmail.open_window = Ba;
- rcmail.addEventListener("message", ra).addEventListener("menu-open", R).addEventListener("menu-close", R).addEventListener("editor-init", la).addEventListener("autocomplete_create", W).addEventListener("googiespell_create", W).addEventListener("setquota", ta).addEventListener("enable-command", ma).addEventListener("init", A);
- window.MutationObserver && window.tinymce && (new MutationObserver(function(a) {
- $.each(a, function() {
- $.each(this.addedNodes, function() {
- ja(this)
- })
- })
- }
- )).observe(document.body, {
- childList: !0
- });
- if ((f.list.length || f.content.length) && r()) {
- var a = [];
- $("[data-fab]").each(function() {
- var b = $(this)
- , c = b.data("fab-task") || "*"
- , d = b.data("fab-action") || "*";
- "*" != c && c != rcmail.env.task || "*" != d && d != rcmail.env.action && ("none" != d || rcmail.env.action) || a.push(t(b, !1, !1, !0))
- });
- a.length && $('<div class="floating-action-buttons">').append(a).appendTo(f.list.length ? f.list : f.content)
- }
- f.sidebar.length && ha(f.sidebar);
- f.list.length && ha(f.list)
- }
- )();
- u();
- (function() {
- if (!h.got_smart_toolbar) {
- h.got_smart_toolbar = !0;
- var a, b = [], c = [], d = H(), e = function(a, b, d) {
- var c = $('<li role="menuitem">');
- a = d ? t($(a), !0, "hidden-big hidden-large") : $(a).detach();
- a.contents().filter(function() {
- 3 != this.nodeType || $.trim(this.nodeValue).length || $(this).remove()
- });
- a.is(".spacer") ? c.addClass("spacer") : c.append(a);
- b.push(c)
- };
- f.content.find(".header > .menu").each(function() {
- var a = $(this);
- a.children().each(function() {
- e(this, b)
- });
- a.remove()
- });
- f.list.find(".header > .menu").each(function() {
- var g = $(this);
- a = g.next();
- g.children().each(function() {
- "large" != d.mode && $(this).data("popup-pos", "right");
- e(this, b, !0);
- e(this, c)
- });
- g.remove()
- });
- $('ul[data-menu="toolbar-small"] > li > a').each(function() {
- var a = $(this).clone();
- a.attr("id", this.id + "_clone");
- b.push($('<li role="menuitem">').addClass("hidden-big").append(a))
- });
- if (c.length) {
- var g = f.list.children(".header")
- , l = {
- "class": "menu toolbar popupmenu listing iconized",
- id: "toolbar-list-menu"
- }
- , k = $('<a class="button icon toolbar-list-button" href="#list-menu">').attr({
- "data-popup": "toolbar-list-menu"
- });
- l = $("<ul>").attr(l).data("popup-parent", g).append(c);
- a.length ? l.insertBefore(a) : g.append(l);
- g.append(k)
- }
- b.length && (g = f.content.children(".header"),
- l = {
- "class": "menu toolbar popupmenu listing iconized",
- id: "toolbar-menu"
- },
- k = $('<a class="button icon toolbar-menu-button" href="#menu">').attr({
- "data-popup": "toolbar-menu"
- }),
- g.append($("<ul>").attr(l).data("popup-parent", g).append(b)).append(k),
- f.list.find("a.toolbar-menu-button").click(function(a) {
- a.stopPropagation();
- k.click()
- }))
- }
- }
- )();
- (function() {
- var a = h.last_selected
- , b = function(a) {
- "string" === typeof a && a.length || (a = $("h1.voice").text() || $("title").text() || "");
- f.content.find(".header > .header-title").text(a)
- }
- , c = function(d, c, e, m) {
- r() && h.frame_nav && ka(c, d);
- e && !f.content.is(":visible") ? h.last_selected = f.content[0] : e || h.last_selected == a || h.content_lock || (h.last_selected = a);
- M();
- b(m && e ? m : null);
- h.content_lock = !1
- }
- , d = function(a) {
- "large" != q && !h.content_lock && a.force && P();
- h.content_lock = !1;
- a.title && $(".header > .header-title", f.list).text(a.title)
- }
- , e = function(a) {
- var b = {};
- if ("addressbook" == rcmail.env.task || "mail" == rcmail.env.task)
- b.force = !0;
- "mail" != rcmail.env.task || rcmail.env.action || (a = "string" == $.type(a) ? a : rcmail.env.mailbox,
- a = rcmail.env.mailboxes[a],
- b.title = a ? a.name : "");
- d(b)
- };
- f.content.find("iframe").on("load", function(a) {
- var d = ""
- , e = !0;
- $(this).parent(".iframe-wrapper").scrollTop(0);
- try {
- d = a.target.contentWindow.location.href,
- e = !d.endsWith(rcmail.env.blankpage),
- $(a.target.contentWindow).on("unload", b)
- } catch (Ca) {}
- c(a, d, e)
- });
- rcmail.addEventListener("afterlist", e).addEventListener("afterlistgroup", e).addEventListener("afterlistsearch", e).addEventListener("show-list", function(a) {
- a.force = !0;
- d(a)
- }).addEventListener("show-content", function(a) {
- a.obj && !$(a.obj).is("iframe") && ($(a.scrollElement || a.obj).scrollTop(0),
- r() && G(a.obj));
- c(a.event || new Event, "_action=" + (a.mode || "edit"), !0, a.title)
- })
- }
- )();
- (function() {
- $("[data-popup]").each(function() {
- D(this)
- });
- $(document).on("click", x);
- rcube_webmail.set_iframe_events({
- mousedown: x,
- touchstart: x
- })
- }
- )();
- (function() {
- var a, b, c = [];
- $.ui && $.widget("ui.dialog", $.ui.dialog, {
- open: function() {
- $(this.element).is(".iframe") && (this.options.width = Math.max(576, this.options.width));
- this._super();
- var a = $(this.uiDialog)
- , b = a.width()
- , c = a.height()
- , f = $(window).width()
- , h = $(window).height();
- 480 >= f ? a.css({
- width: "100%",
- height: "100%"
- }) : (c > h && a.css("height", "100%"),
- b > f && a.css("width", "100%"));
- $(document).click();
- G($("div.popup > iframe", a));
- u(this.uiDialog);
- return this
- },
- close: function() {
- this._super();
- $(".select-menu:visible").remove();
- return this
- }
- });
- z.menu.on("click", function() {
- y(!0);
- return !1
- });
- z.back_sidebar.on("click", function() {
- O();
- return !1
- });
- z.back_list.on("click", function() {
- P();
- return !1
- });
- z.back_content.on("click", function() {
- f.list.addClass("hidden");
- f.sidebar.addClass("hidden");
- f.content.removeClass("hidden");
- f.sidebar.removeClass("layout-sticky");
- B();
- h.last_selected = f.content[0];
- return !1
- });
- $(".searchbar").each(function() {
- aa(this)
- });
- !p || rcmail.env.extwin || parent.$(".ui-dialog:visible").length ? p || ((a = f.content.find(".boxtitle").first().detach().text()) || (a = $("h1.voice").first().text()),
- a && f.content.find(".header > .header-title").text(a)) : (a = $("h1.voice").first().text()) && parent.$("#layout-content > .header > .header-title:not(.constant)").text(a);
- p || !f.content.length || f.content.is(".no-navbar") || f.content.children(".frame-content").length || (h.frame_nav = $('<div class="footer menu toolbar content-frame-navigation hide-nav-buttons">').append($('<a class="button prev">').append($('<span class="inner"></span>').text(rcmail.gettext("previous")))).append($('<span class="buttons">')).append($('<a class="button next">').append($('<span class="inner"></span>').text(rcmail.gettext("next")))).appendTo(f.content));
- $("a[data-content-button]").each(function() {
- c.push(t($(this)))
- });
- $(".formbuttons").filter(function() {
- return !$(this).parent(".searchoptions").length
- }).children().each(function() {
- var a = $(this);
- if (p || a.parents("#layout-content").length)
- a.is(".cancel") ? a.addClass("hidden") : c.push(t(a))
- });
- (p ? parent.UI : C).register_content_buttons(c);
- if (b = rcmail.gui_objects.messageform)
- b = $('form[name="' + b + '"]'),
- $("#_cc, #_bcc, #_replyto, #_followupto", $(".compose-headers")).each(function() {
- $(this).on("change", function() {
- $("#compose" + $(this).attr("id"))[this.value ? "removeClass" : "addClass"]("hidden")
- })
- }),
- $("#compose-options").find("textarea,input,select").each(function() {
- var a = $("<input>").attr({
- type: "hidden",
- name: $(this).attr("name")
- }).appendTo(b);
- $(this).attr("tabindex", 2).on("change", function() {
- a.val("checkbox" != this.type || this.checked ? $(this).val() : "")
- }).change()
- });
- $("[data-recipient-input]").each(function() {
- ua(this)
- });
- $(".image-upload").each(function() {
- xa(this)
- });
- $("textarea[data-html-editor]").each(function() {
- ya(this)
- });
- $("#dragmessage-menu,#dragcontact-menu").each(function() {
- rcmail.gui_object("dragmenu", this.id)
- });
- $("#taskmenu > a").each(function() {
- if (/button-([a-z]+)/.test(this.className)) {
- var a, b = RegExp.$1, c = w(this.id);
- c && (a = c.data) && (a.sel && (a.sel = a.sel.replace("button-selected", "selected") + " " + b),
- a.act && (a.act += " " + b),
- rcmail.buttons[c.command][c.index] = a,
- rcmail.init_button(c.command, a));
- $(this).addClass(b);
- $(".button-inner", this).addClass("inner")
- }
- $(this).on("mouseover", function() {
- rcube_webmail.long_subject_title(this, 0, $("span.inner", this))
- })
- });
- $(".listbutton").each(function() {
- var a = w(this.id);
- $(this).addClass("button").removeClass("listbutton");
- a.data.sel && (a.data.sel = a.data.sel.replace("listbutton", "button"));
- a.data.act && (a.data.act = a.data.act.replace("listbutton", "button"));
- rcmail.buttons[a.command][a.index] = a.data;
- rcmail.init_button(a.command, a.data)
- });
- $("[data-hidden]").each(function() {
- for (var a, b = $(this).data("hidden"), c = $(this).parent("li"), f = /(large|big|small|phone|lbs)/g; a = f.exec(b); )
- $(c.length ? c : this).addClass("hidden-" + a[1])
- });
- $("[data-list]").each(function() {
- $("input[type=checkbox]", this).each(function() {
- F(this)
- })
- });
- p && $(".formcontent").each(function() {
- $(this).next(".formbuttons").length && $(this).parent().addClass("formcontainer")
- });
- $("#attachment-list + a.zipdownload").appendTo(".header-links");
- (fa = $("html").is(".ipad,.iphone")) && $(".iframe-wrapper, .scroller").addClass("ios-scroll");
- $("html").filter(".ipad,.iphone,.webkit.mobile,.webkit.tablet").addClass("webkit-scroller").length && $(f.menu).addClass("webkit-scroller");
- $(".treelist").each(function() {
- var a = this
- , b = function() {
- $(a)[0 < $(".treetoggle", a).length ? "removeClass" : "addClass"]("notree")
- };
- window.MutationObserver && (new MutationObserver(b)).observe(a, {
- childList: !0,
- subtree: !0
- });
- b();
- $("li.mailbox > a").on("mouseover", function() {
- rcube_webmail.long_subject_title_ex(this)
- })
- });
- $("#logo").data("src-default") || $("#logo").data("src-default", $("#logo").attr("src"))
- }
- )();
- E()
- }
- if (window.rcmail)
- rcmail.show_menu = function(n, t, w) {
- var A = "object" == typeof n ? n.menu : n
- , u = $("#" + A);
- "string" == typeof n && (n = {
- menu: A
- });
- return rcmail.triggerEvent(!1 === t ? "menu-close" : "menu-open", {
- name: A,
- obj: u,
- props: n,
- originalEvent: w
- })
- }
- ,
- rcmail.hide_menu = function(n, t) {
- return rcmail.triggerEvent("menu-close", {
- name: n,
- props: {
- menu: n
- },
- originalEvent: t
- })
- }
- ;
- else
- var rcmail = parent.rcmail
- , rcube_webmail = parent.rcube_webmail
- , bw = {};
- var UI = new rcube_elastic_ui;
- if ($ && $.datepicker) {
- var __newInst = $.datepicker._newInst;
- $.extend($.datepicker, {
- _newInst: function(n, t) {
- n = __newInst.call(this, n, t);
- n.inline || UI.datepicker_init(n.dpDiv);
- return n
- }
- })
- }
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement