From d22a61443e31147daffc33426258c271e54f1957 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Mon, 22 Mar 2021 19:06:36 -0700 Subject: [PATCH] notifications: Remove in_browser_notify and bootstrap-notify. Follow up to #14768. This feature was already non-functional due to .alert-display { display: none; }, and if we want to reimplement it, we should do it using a modern library. Signed-off-by: Anders Kaseorg --- docs/THIRDPARTY | 7 - static/js/bundles/app.js | 2 - static/js/click_handlers.js | 8 - static/js/notifications.js | 41 --- static/styles/zulip.css | 11 - static/templates/notification.hbs | 10 - .../bootstrap-notify/css/bootstrap-notify.css | 182 ------------- .../bootstrap-notify/js/bootstrap-notify.js | 251 ------------------ templates/zerver/app/compose.html | 2 - templates/zerver/app/index.html | 1 - 10 files changed, 515 deletions(-) delete mode 100644 static/templates/notification.hbs delete mode 100644 static/third/bootstrap-notify/css/bootstrap-notify.css delete mode 100644 static/third/bootstrap-notify/js/bootstrap-notify.js diff --git a/docs/THIRDPARTY b/docs/THIRDPARTY index 5d08efd3f9..6ff3f8ca4d 100644 --- a/docs/THIRDPARTY +++ b/docs/THIRDPARTY @@ -96,13 +96,6 @@ Copyright: 2012 Twitter, Inc License: Apache-2.0 Comment: Bootstrap tooltip and bootstrap popover. The software has been modified. -Files: static/third/bootstrap-notify/* -Copyright: 2013 Nijiko Yonskai - 2012 Goodybag, Inc. - 2012 Twitter, Inc -License: Apache-2.0 -Comment: The software has been modified. - Files: static/generated/emoji/images/emoji/unicode/* Copyright: Google, Inc. License: Apache-2.0 diff --git a/static/js/bundles/app.js b/static/js/bundles/app.js index 09125ca4a3..1522c7cbdd 100644 --- a/static/js/bundles/app.js +++ b/static/js/bundles/app.js @@ -1,7 +1,6 @@ import "./common"; // Import third party libraries -import "../../third/bootstrap-notify/js/bootstrap-notify"; import "../../third/bootstrap-typeahead/typeahead"; import "../../third/bootstrap-tooltip/tooltip"; import "../../third/bootstrap-tooltip/tooltip.css"; @@ -30,7 +29,6 @@ import "../zulip_test"; // Import styles -import "../../third/bootstrap-notify/css/bootstrap-notify.css"; import "spectrum-colorpicker/spectrum.css"; import "katex/dist/katex.css"; import "flatpickr/dist/flatpickr.css"; diff --git a/static/js/click_handlers.js b/static/js/click_handlers.js index 15889f9839..1278ad8269 100644 --- a/static/js/click_handlers.js +++ b/static/js/click_handlers.js @@ -298,14 +298,6 @@ export function initialize() { user_status_ui.update_button(); }); - // NOTIFICATION CLICK - - $("body").on("click", ".notification", function () { - const payload = $(this).data("narrow"); - ui_util.change_tab_to("#message_feed_container"); - narrow.activate(payload.raw_operators, payload.opts_notif); - }); - // MESSAGE EDITING $("body").on("click", ".edit_content_button", function (e) { diff --git a/static/js/notifications.js b/static/js/notifications.js index 95eab73889..0e5cd27949 100644 --- a/static/js/notifications.js +++ b/static/js/notifications.js @@ -2,7 +2,6 @@ import $ from "jquery"; import _ from "lodash"; import render_compose_notification from "../templates/compose_notification.hbs"; -import render_notification from "../templates/notification.hbs"; import * as alert_words from "./alert_words"; import * as blueslip from "./blueslip"; @@ -149,36 +148,6 @@ export function is_window_focused() { return window_focused; } -function in_browser_notify(message, title, content, raw_operators, opts) { - const notification_html = $( - render_notification({ - gravatar_url: people.small_avatar_url(message), - title, - content, - message_id: message.id, - }), - ); - - $(".top-right") - .notify({ - message: { - html: notification_html, - }, - fadeOut: { - enabled: true, - delay: 4000, - }, - }) - .show(); - - $(`.notification[data-message-id='${CSS.escape(message.id)}']`) - .expectOne() - .data("narrow", { - raw_operators, - opts_notif: opts, - }); -} - export function notify_above_composebox(note, link_class, link_msg_id, link_text) { const notification_html = $( render_compose_notification({ @@ -245,8 +214,6 @@ export function process_notification(notification) { let title = message.sender_full_name; let msg_count = 1; let notification_source; - let raw_operators = []; - const opts = {trigger: "notification click"}; // Convert the content to plain text, replacing emoji with their alt text content = $("
").html(message.content); ui.replace_emoji_with_text(content); @@ -315,16 +282,10 @@ export function process_notification(notification) { } else { title += " (to you)"; } - - raw_operators = [{operand: message.reply_to, operator: "pm-with"}]; } if (message.type === "stream") { title += " (to " + message.stream + " > " + topic + ")"; - raw_operators = [ - {operator: "stream", operand: message.stream}, - {operator: "topic", operand: topic}, - ]; } if (notification.desktop_notify) { @@ -356,8 +317,6 @@ export function process_notification(notification) { notice_memory.delete(key); }); } - } else { - in_browser_notify(message, title, content, raw_operators, opts); } } diff --git a/static/styles/zulip.css b/static/styles/zulip.css index 2ad330607a..d32f6ca6df 100644 --- a/static/styles/zulip.css +++ b/static/styles/zulip.css @@ -2365,23 +2365,12 @@ div.topic_edit_spinner .loading_indicator_spinner { top: 1px; } -.notifications-gravatar img { - max-width: 25px; - max-height: 25px; - padding-left: 4px; - padding-top: 4px; -} - .empty_feed_notice { padding: 3em 1em; display: none; text-align: center; } -.notification { - cursor: pointer; -} - .message-fade, .user_sidebar_entry.user-fade { opacity: 0.4; diff --git a/static/templates/notification.hbs b/static/templates/notification.hbs deleted file mode 100644 index 51c56fabc7..0000000000 --- a/static/templates/notification.hbs +++ /dev/null @@ -1,10 +0,0 @@ -{{! Content of in-browser notifications }} -
-
- -
-
-
{{title}}
- {{content}} -
-
diff --git a/static/third/bootstrap-notify/css/bootstrap-notify.css b/static/third/bootstrap-notify/css/bootstrap-notify.css deleted file mode 100644 index 8daded88a9..0000000000 --- a/static/third/bootstrap-notify/css/bootstrap-notify.css +++ /dev/null @@ -1,182 +0,0 @@ -/*! - The "bootstrap-notify" Software from "Goodybag, Inc." is: - Copyright 2013 Nijiko Yonskai @nijikokun - Copyright 2012 Goodybag, Inc. - and is provided - under the following license (the bootstrap-notify software has been modified): - - Software from "Bootstrap" is Copyright (c) 2012 Twitter, Inc. and is provided - under the following license (the Bootstrap software has been modified): - -- - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by the copyright - owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all other entities - that control, are controlled by, or are under common control with that - entity. For the purposes of this definition, "control" means (i) the power, - direct or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or - more of the outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity exercising - permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, including - but not limited to software source code, documentation source, and - configuration files. - - "Object" form shall mean any form resulting from mechanical transformation or - translation of a Source form, including but not limited to compiled object - code, generated documentation, and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that is - included in or attached to the work (an example is provided in the Appendix - below). - - "Derivative Works" shall mean any work, whether in Source or Object form, that - is based on (or derived from) the Work and for which the editorial revisions, - annotations, elaborations, or other modifications represent, as a whole, an - original work of authorship. For the purposes of this License, Derivative Works - shall not include works that remain separable from, or merely link (or bind by - name) to the interfaces of, the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the purposes - of this definition, "submitted" means any form of electronic, verbal, or - written communication sent to the Licensor or its representatives, including - but not limited to communication on electronic mailing lists, source code - control systems, and issue tracking systems that are managed by, or on behalf - of, the Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise designated in - writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity on behalf - of whom a Contribution has been received by Licensor and subsequently - incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of this - License, each Contributor hereby grants to You a perpetual, worldwide, - non-exclusive, no-charge, royalty-free, irrevocable copyright license to - reproduce, prepare Derivative Works of, publicly display, publicly perform, - sublicense, and distribute the Work and such Derivative Works in Source or - Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of this - License, each Contributor hereby grants to You a perpetual, worldwide, - non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this - section) patent license to make, have made, use, offer to sell, sell, import, - and otherwise transfer the Work, where such license applies only to those - patent claims licensable by such Contributor that are necessarily infringed by - their Contribution(s) alone or by combination of their Contribution(s) with the - Work to which such Contribution(s) was submitted. If You institute patent - litigation against any entity (including a cross-claim or counterclaim in a - lawsuit) alleging that the Work or a Contribution incorporated within the Work - constitutes direct or contributory patent infringement, then any patent - licenses granted to You under this License for that Work shall terminate as of - the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the Work or - Derivative Works thereof in any medium, with or without modifications, and in - Source or Object form, provided that You meet the following conditions: - - You must give any other recipients of the Work or Derivative Works a copy of - this License; and You must cause any modified files to carry prominent notices - stating that You changed the files; and You must retain, in the Source form of - any Derivative Works that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, excluding those notices - that do not pertain to any part of the Derivative Works; and If the Work - includes a "NOTICE" text file as part of its distribution, then any Derivative - Works that You distribute must include a readable copy of the attribution - notices contained within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one of the following - places: within a NOTICE text file distributed as part of the Derivative Works; - within the Source form or documentation, if provided along with the Derivative - Works; or, within a display generated by the Derivative Works, if and wherever - such third-party notices normally appear. The contents of the NOTICE file are - for informational purposes only and do not modify the License. You may add Your - own attribution notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided that such - additional attribution notices cannot be construed as modifying the License. - - You may add Your own copyright statement to Your modifications and may provide - additional or different license terms and conditions for use, reproduction, or - distribution of Your modifications, or for any such Derivative Works as a - whole, provided Your use, reproduction, and distribution of the Work otherwise - complies with the conditions stated in this License. 5. Submission of - Contributions. Unless You explicitly state otherwise, any Contribution - intentionally submitted for inclusion in the Work by You to the Licensor shall - be under the terms and conditions of this License, without any additional terms - or conditions. Notwithstanding the above, nothing herein shall supersede or - modify the terms of any separate license agreement you may have executed with - Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade names, - trademarks, service marks, or product names of the Licensor, except as required - for reasonable and customary use in describing the origin of the Work and - reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in - writing, Licensor provides the Work (and each Contributor provides its - Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied, including, without limitation, any warranties - or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any risks - associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, whether in - tort (including negligence), contract, or otherwise, unless required by - applicable law (such as deliberate and grossly negligent acts) or agreed to in - writing, shall any Contributor be liable to You for damages, including any - direct, indirect, special, incidental, or consequential damages of any - character arising as a result of this License or out of the use or inability to - use the Work (including but not limited to damages for loss of goodwill, work - stoppage, computer failure or malfunction, or any and all other commercial - damages or losses), even if such Contributor has been advised of the - possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing the Work or - Derivative Works thereof, You may choose to offer, and charge a fee for, - acceptance of support, warranty, indemnity, or other liability obligations - and/or rights consistent with this License. However, in accepting such - obligations, You may act only on Your own behalf and on Your sole - responsibility, not on behalf of any other Contributor, and only if You agree - to indemnify, defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason of your - accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - -- -*/ - - -.notifications{position:fixed;}.notifications.top-right{right:25px;top:60px;z-index:9980;width:300px;} -.notifications.above-composebox{max-width:800px;margin:auto;bottom:10px;position:relative;} -.notifications.top-left{left:10px;top:25px;} -.notifications.bottom-left{left:10px;bottom:25px;} -.notifications.bottom-right{right:10px;bottom:25px;} -.notifications>div{position:relative;z-index:9999;margin:5px 0px;} -.notifications.center{top:48%;left:0;width:100%;}.notifications.center>div{margin:5px auto;width:20%;text-align:center;} -.notifications-gravatar{display:inline-block;position:absolute;top:10px;left:10px} -.notifications-content{margin-left:40px;} -.notifications-content,.compose-notifications-content .title { - font-weight: bold; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.fade.alert-success{color:#000;background-color:#FFF;border-color:green;} -.above-composebox .alert{width:200px; margin-left:auto; margin-right:0px} -.compose-notifications-content{margin-left:0px;} - diff --git a/static/third/bootstrap-notify/js/bootstrap-notify.js b/static/third/bootstrap-notify/js/bootstrap-notify.js deleted file mode 100644 index 00d70b39d9..0000000000 --- a/static/third/bootstrap-notify/js/bootstrap-notify.js +++ /dev/null @@ -1,251 +0,0 @@ -/** @preserve - The "bootstrap-notify" Software from "Goodybag, Inc." is: - Copyright 2013 Nijiko Yonskai @nijikokun - Copyright 2012 Goodybag, Inc. - and is provided - under the following license (the bootstrap-notify software has been modified): - -- - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, and - distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by the copyright - owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all other entities - that control, are controlled by, or are under common control with that - entity. For the purposes of this definition, "control" means (i) the power, - direct or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or - more of the outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity exercising - permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, including - but not limited to software source code, documentation source, and - configuration files. - - "Object" form shall mean any form resulting from mechanical transformation or - translation of a Source form, including but not limited to compiled object - code, generated documentation, and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or Object form, - made available under the License, as indicated by a copyright notice that is - included in or attached to the work (an example is provided in the Appendix - below). - - "Derivative Works" shall mean any work, whether in Source or Object form, that - is based on (or derived from) the Work and for which the editorial revisions, - annotations, elaborations, or other modifications represent, as a whole, an - original work of authorship. For the purposes of this License, Derivative Works - shall not include works that remain separable from, or merely link (or bind by - name) to the interfaces of, the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including the original - version of the Work and any modifications or additions to that Work or - Derivative Works thereof, that is intentionally submitted to Licensor for - inclusion in the Work by the copyright owner or by an individual or Legal - Entity authorized to submit on behalf of the copyright owner. For the purposes - of this definition, "submitted" means any form of electronic, verbal, or - written communication sent to the Licensor or its representatives, including - but not limited to communication on electronic mailing lists, source code - control systems, and issue tracking systems that are managed by, or on behalf - of, the Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise designated in - writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity on behalf - of whom a Contribution has been received by Licensor and subsequently - incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of this - License, each Contributor hereby grants to You a perpetual, worldwide, - non-exclusive, no-charge, royalty-free, irrevocable copyright license to - reproduce, prepare Derivative Works of, publicly display, publicly perform, - sublicense, and distribute the Work and such Derivative Works in Source or - Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of this - License, each Contributor hereby grants to You a perpetual, worldwide, - non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this - section) patent license to make, have made, use, offer to sell, sell, import, - and otherwise transfer the Work, where such license applies only to those - patent claims licensable by such Contributor that are necessarily infringed by - their Contribution(s) alone or by combination of their Contribution(s) with the - Work to which such Contribution(s) was submitted. If You institute patent - litigation against any entity (including a cross-claim or counterclaim in a - lawsuit) alleging that the Work or a Contribution incorporated within the Work - constitutes direct or contributory patent infringement, then any patent - licenses granted to You under this License for that Work shall terminate as of - the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the Work or - Derivative Works thereof in any medium, with or without modifications, and in - Source or Object form, provided that You meet the following conditions: - - You must give any other recipients of the Work or Derivative Works a copy of - this License; and You must cause any modified files to carry prominent notices - stating that You changed the files; and You must retain, in the Source form of - any Derivative Works that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, excluding those notices - that do not pertain to any part of the Derivative Works; and If the Work - includes a "NOTICE" text file as part of its distribution, then any Derivative - Works that You distribute must include a readable copy of the attribution - notices contained within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one of the following - places: within a NOTICE text file distributed as part of the Derivative Works; - within the Source form or documentation, if provided along with the Derivative - Works; or, within a display generated by the Derivative Works, if and wherever - such third-party notices normally appear. The contents of the NOTICE file are - for informational purposes only and do not modify the License. You may add Your - own attribution notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided that such - additional attribution notices cannot be construed as modifying the License. - - You may add Your own copyright statement to Your modifications and may provide - additional or different license terms and conditions for use, reproduction, or - distribution of Your modifications, or for any such Derivative Works as a - whole, provided Your use, reproduction, and distribution of the Work otherwise - complies with the conditions stated in this License. 5. Submission of - Contributions. Unless You explicitly state otherwise, any Contribution - intentionally submitted for inclusion in the Work by You to the Licensor shall - be under the terms and conditions of this License, without any additional terms - or conditions. Notwithstanding the above, nothing herein shall supersede or - modify the terms of any separate license agreement you may have executed with - Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade names, - trademarks, service marks, or product names of the Licensor, except as required - for reasonable and customary use in describing the origin of the Work and - reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in - writing, Licensor provides the Work (and each Contributor provides its - Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied, including, without limitation, any warranties - or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any risks - associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, whether in - tort (including negligence), contract, or otherwise, unless required by - applicable law (such as deliberate and grossly negligent acts) or agreed to in - writing, shall any Contributor be liable to You for damages, including any - direct, indirect, special, incidental, or consequential damages of any - character arising as a result of this License or out of the use or inability to - use the Work (including but not limited to damages for loss of goodwill, work - stoppage, computer failure or malfunction, or any and all other commercial - damages or losses), even if such Contributor has been advised of the - possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing the Work or - Derivative Works thereof, You may choose to offer, and charge a fee for, - acceptance of support, warranty, indemnity, or other liability obligations - and/or rights consistent with this License. However, in accepting such - obligations, You may act only on Your own behalf and on Your sole - responsibility, not on behalf of any other Contributor, and only if You agree - to indemnify, defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason of your - accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - -- -*/ - -/** - * bootstrap-notify.js v1.0.0 - * -- - * Copyright 2012 Nijiko Yonskai - * Copyright 2012 Goodybag, Inc. - * -- - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -(function ($) { - var Notification = function (element, options) { - // Element collection - this.$element = $(element); - this.$note = $('
'); - this.options = $.extend(true, {}, $.fn.notify.defaults, options); - this._link = null; - - // Setup from options - if (this.options.transition) - if (this.options.transition === 'fade') - this.$note.addClass('in').addClass(this.options.transition); - else this.$note.addClass(this.options.transition); - else this.$note.addClass('fade').addClass('in'); - - if (this.options.type) - this.$note.addClass('alert-' + this.options.type); - else this.$note.addClass('alert-success'); - - if (this.options.message) - if (typeof this.options.message === 'string') - this.$note.html(this.options.message); - else if (typeof this.options.message === 'object') - if (this.options.message.html) - this.$note.html(this.options.message.html); - else if (this.options.message.text) - this.$note.text(this.options.message.text); - - if (this.options.closable) - this._link = $('×'), - $(this._link).on('click', $.proxy(Notification.onClose, this)), - this.$note.prepend(this._link); - - return this; - }; - - Notification.onClose = function () { - this.options.onClose(); - $(this.$note).remove(); - this.options.onClosed(); - }; - - Notification.prototype.show = function () { - if (this.options.fadeOut.enabled) - this.$note.delay(this.options.fadeOut.delay || 3000).fadeOut('slow', $.proxy(Notification.onClose, this)); - - this.$element.append(this.$note); - this.$note.alert(); - }; - - Notification.prototype.hide = function () { - if (this.options.fadeOut.enabled) - this.$note.delay(this.options.fadeOut.delay || 3000).fadeOut('slow', $.proxy(Notification.onClose, this)); - else Notification.onClose.call(this); - }; - - $.fn.notify = function (options) { - return new Notification(this, options); - }; - - $.fn.notify.defaults = { - type: 'success', - closable: true, - transition: 'fade', - fadeOut: { - enabled: true, - delay: 3000 - }, - message: null, - onClose: function () {}, - onClosed: function () {} - } -})(window.jQuery); diff --git a/templates/zerver/app/compose.html b/templates/zerver/app/compose.html index 1483d0d514..0af92dff58 100644 --- a/templates/zerver/app/compose.html +++ b/templates/zerver/app/compose.html @@ -1,6 +1,4 @@
-
-
diff --git a/templates/zerver/app/index.html b/templates/zerver/app/index.html index 72fcae11ad..6337ba6bc1 100644 --- a/templates/zerver/app/index.html +++ b/templates/zerver/app/index.html @@ -174,7 +174,6 @@ {% include "zerver/app/logout.html" %} {% include "zerver/app/deprecation_notice.html" %}
-