mirror of
https://github.com/zulip/zulip.git
synced 2025-11-10 00:46:03 +00:00
In-Browser Notifications
Some browsers don't support desktop notifications. Some people haven't allowed permissions for humbug to have desktop notifications. This is a poor man's attempt at desktop notifications. We are adding the bootstrap-notify package (http://nijikokun.github.io/bootstrap-notify/) Resolves Trac #1336. (imported from commit 6a54f7d1875e765dabd32d94ada8ebe4474a3d71)
This commit is contained in:
@@ -259,6 +259,7 @@ PIPELINE_CSS = {
|
|||||||
},
|
},
|
||||||
'app': {
|
'app': {
|
||||||
'source_filenames': (
|
'source_filenames': (
|
||||||
|
'third/bootstrap-notify/css/bootstrap-notify.css',
|
||||||
'third/spectrum/spectrum.css',
|
'third/spectrum/spectrum.css',
|
||||||
'styles/zephyr.css',
|
'styles/zephyr.css',
|
||||||
'styles/pygments.css',
|
'styles/pygments.css',
|
||||||
@@ -309,6 +310,7 @@ PIPELINE_JS = {
|
|||||||
},
|
},
|
||||||
'app': {
|
'app': {
|
||||||
'source_filenames': [
|
'source_filenames': [
|
||||||
|
'third/bootstrap-notify/js/bootstrap-notify.js',
|
||||||
'third/jquery-validate/jquery.validate.js',
|
'third/jquery-validate/jquery.validate.js',
|
||||||
'third/jquery-form/jquery.form.js',
|
'third/jquery-form/jquery.form.js',
|
||||||
'third/jquery-highlight/jquery.highlight.js',
|
'third/jquery-highlight/jquery.highlight.js',
|
||||||
|
|||||||
@@ -59,5 +59,6 @@ var page_params = {{ page_params }};
|
|||||||
{% include "zephyr/invite_user.html" %}
|
{% include "zephyr/invite_user.html" %}
|
||||||
{% include "zephyr/bankruptcy.html" %}
|
{% include "zephyr/bankruptcy.html" %}
|
||||||
{% include "zephyr/logout.html" %}
|
{% include "zephyr/logout.html" %}
|
||||||
|
<div class='notifications top-right'></div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -113,8 +113,9 @@ exports.window_has_focus = function () {
|
|||||||
return window_has_focus;
|
return window_has_focus;
|
||||||
};
|
};
|
||||||
|
|
||||||
function process_desktop_notification(message) {
|
function process_notification(notification) {
|
||||||
var i, notification_object, key;
|
var i, notification_object, key;
|
||||||
|
var message = notification.message;
|
||||||
var title = message.sender_full_name;
|
var title = message.sender_full_name;
|
||||||
var content = $('<div/>').html(message.content).text();
|
var content = $('<div/>').html(message.content).text();
|
||||||
var other_recipients;
|
var other_recipients;
|
||||||
@@ -166,7 +167,7 @@ function process_desktop_notification(message) {
|
|||||||
title += " (to " + message.stream + " > " + message.subject + ")";
|
title += " (to " + message.stream + " > " + message.subject + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.bridge === undefined) {
|
if (window.bridge === undefined && notification.in_browser === undefined) {
|
||||||
var icon_url = ui.small_avatar_url(message);
|
var icon_url = ui.small_avatar_url(message);
|
||||||
notice_memory[key] = {
|
notice_memory[key] = {
|
||||||
obj: window.webkitNotifications.createNotification(
|
obj: window.webkitNotifications.createNotification(
|
||||||
@@ -182,6 +183,14 @@ function process_desktop_notification(message) {
|
|||||||
delete notice_memory[key];
|
delete notice_memory[key];
|
||||||
};
|
};
|
||||||
notification_object.show();
|
notification_object.show();
|
||||||
|
} else if (notification.in_browser === true) {
|
||||||
|
var notification_html = $(templates.render('notification', {gravatar_url: ui.small_avatar_url(message),
|
||||||
|
sender_fullname: message.sender_full_name,
|
||||||
|
content: content}));
|
||||||
|
$('.top-right').notify({
|
||||||
|
message: { html: notification_html },
|
||||||
|
fadeOut: {enabled:true, delay: 4000}
|
||||||
|
}).show();
|
||||||
} else {
|
} else {
|
||||||
// Shunt the message along to the desktop client
|
// Shunt the message along to the desktop client
|
||||||
window.bridge.desktopNotification(title, content);
|
window.bridge.desktopNotification(title, content);
|
||||||
@@ -218,7 +227,10 @@ exports.received_messages = function (messages) {
|
|||||||
}
|
}
|
||||||
if (page_params.desktop_notifications_enabled &&
|
if (page_params.desktop_notifications_enabled &&
|
||||||
browser_desktop_notifications_on()) {
|
browser_desktop_notifications_on()) {
|
||||||
process_desktop_notification(message);
|
process_notification({message: message});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
process_notification({message: message, in_browser: true});
|
||||||
}
|
}
|
||||||
if (page_params.sounds_enabled && supports_sound) {
|
if (page_params.sounds_enabled && supports_sound) {
|
||||||
if (window.bridge !== undefined) {
|
if (window.bridge !== undefined) {
|
||||||
|
|||||||
14
zephyr/static/templates/notification.handlebars
Normal file
14
zephyr/static/templates/notification.handlebars
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{{! Content of in-browser notifications }}
|
||||||
|
<div>
|
||||||
|
<div class="notifications-gravatar">
|
||||||
|
<img src="{{gravatar_url}}" />
|
||||||
|
</div>
|
||||||
|
<div class="notifications-content">
|
||||||
|
<strong>
|
||||||
|
{{sender_fullname}}:
|
||||||
|
</strong>
|
||||||
|
<br />
|
||||||
|
{{content}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
172
zephyr/static/third/bootstrap-notify/css/bootstrap-notify.css
vendored
Normal file
172
zephyr/static/third/bootstrap-notify/css/bootstrap-notify.css
vendored
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
/*!
|
||||||
|
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:200px;}
|
||||||
|
.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;}
|
||||||
|
.fade.alert-success{color:#000;background-color:#FFF;border-color:green;}
|
||||||
251
zephyr/static/third/bootstrap-notify/js/bootstrap-notify.js
vendored
Normal file
251
zephyr/static/third/bootstrap-notify/js/bootstrap-notify.js
vendored
Normal file
@@ -0,0 +1,251 @@
|
|||||||
|
/** @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 <nijikokun@gmail.com>
|
||||||
|
* 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 = $('<div class="alert"></div>');
|
||||||
|
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 = $('<a class="close pull-right">×</a>'),
|
||||||
|
$(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);
|
||||||
Reference in New Issue
Block a user