22 Commits
Author SHA1 Message Date
Jaime Pillora 64dda76979 Revert "Make a nice top/bottom center global position" 2016-06-09 03:58:15 +10:00
Jaime Pillora 8ba7204c0d Merge pull request #57 from leoding86/master
Make a nice top/bottom center global position
2016-06-09 03:43:22 +10:00
Jaime Pillora 6a2024b997 Merge pull request #54 from tinbka/master
Fixed anchors cache
2016-06-09 03:41:50 +10:00
Jaime Pillora 119d4b2f44 Merge pull request #67 from spartaMatt/master
Introducing 'removeStyle' method
2016-06-09 03:38:37 +10:00
matt dd5adda0bd Introducing 'removeStyle' method 2016-06-08 07:21:22 -04:00
Jaime Pillora 9e61e5418d 0.4.2 2016-04-03 00:59:57 +11:00
Jaime Pillora 67dda7928d Merge pull request #60 from Kreozot/patch-1
jquery peerDep changes to 1.x version minimum
2016-04-01 11:08:32 +11:00
Sergey Sharov f1e11bcf21 jquery peerDep changes to 1.x version minimum
It prevents errors with npm install when using jquery 1.x version in project.
2016-03-31 16:25:25 +03:00
Leo Ding 4bc2d70f4c Make a nice top/bottom center global position
The example is in 'examples/position.html'
2016-02-16 11:55:18 +08:00
Sergey ac9bb74367 Fixed anchors cache
Fixed anchors cache for compatibility with Turbolinks.
"Anchor" element must not be used if it occasionally is out of DOM.
2016-02-05 03:26:48 +03:00
Jaime Pillora b99c2ae69c Bump to 0.4.1, see description
* IE9 fix
* code cleanup
* publish to npm (closes #31)
* jquery is now a peerDep (closes #53)
* improve positioning documentation
* dont reuse element notifications, always recreate (closes #43)
2015-12-06 00:53:19 +11:00
Jaime Pillora 7b0164fc63 Merge pull request #50 from herong/master
Compatible  ie9 and below
2015-11-19 22:33:18 +11:00
herong e621c2643d Merge branch 'master' of https://github.com/herong/notifyjs 2015-11-19 15:07:22 +08:00
herong a4d7da2ee2 Compatible ie9 and above 2015-11-19 15:03:00 +08:00
herong a721573076 Compatible ie9 and below 2015-11-19 14:35:45 +08:00
Evan Carroll 302b39f587 slightly awkward positioning beforehand 2015-11-03 16:21:12 -06:00
Evan Carroll 97c2fd11e2 added a README 2015-11-03 16:17:14 -06:00
Evan Carroll 3b6b214eb8 minor changes
* jshintrc: let's stick to defaults.
	* updated package.json to reflect suggestions on plugins.jquery.com
2015-11-03 15:17:08 -06:00
Evan Carroll 4f88f06677 fixed bug in UMD code 2015-11-03 10:33:50 -06:00
Jaime Pillora b724df3b02 cleanup more generated javascript code 2015-11-03 17:20:36 +11:00
Jaime Pillora 521514180d remove ugly coffeescript variable hoisting, fix indexOf polyfill 2015-11-03 14:43:27 +11:00
Evan Carroll 904d09251b readded UMD stuff, and package.json tests 2015-11-02 18:18:18 -06:00
6 changed files with 629 additions and 593 deletions
+2 -5
View File
@@ -1,7 +1,4 @@
2015-10-20 v0.3.3 2015-10-20 v0.4
@EvanCarroll - Updated to remove Grunt, and coffeescript stuff.
2015-11-01 v0.3.4
@EvanCarroll - Updated to remove Grunt, and coffeescript stuff, changed to use UMD.
@jpillora - Remove deprecated grunt file, there is now a single `notify.js` file @jpillora - Remove deprecated grunt file, there is now a single `notify.js` file
+4 -21
View File
@@ -5,27 +5,10 @@ Notify.js
See demos and full documentation at: See demos and full documentation at:
## http://notifyjs.com/ ## https://notifyjs.com/
#### MIT License ----
Copyright © 2015 Jaime Pillora <dev@jpillora.com> Notify.js is released under the [MIT License](https://opensource.org/licenses/MIT).
Permission is hereby granted, free of charge, to any person obtaining Copyright © Jaime Pillora <dev@jpillora.com>
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "notifyjs", "name": "notifyjs",
"version": "0.3.4", "version": "0.4.1",
"homepage": "http://notifyjs.com/", "homepage": "http://notifyjs.com/",
"authors": [ "authors": [
"Jaime Pillora <dev@jpillora.com>" "Jaime Pillora <dev@jpillora.com>"
+70 -31
View File
@@ -1,6 +1,33 @@
/* Notify.js - http://notifyjs.com/ Copyright (c) 2015 MIT */ /* Notify.js - http://notifyjs.com/ Copyright (c) 2015 MIT */
(function(window, document, $, undefined) { (function (factory) {
"use strict"; // UMD start
// https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof module === 'object' && module.exports) {
// Node/CommonJS
module.exports = function( root, jQuery ) {
if ( jQuery === undefined ) {
// require('jQuery') returns a factory that requires window to
// build a jQuery instance, we normalize how we use modules
// that require this pattern but the window provided is a noop
// if it's defined (how jquery works)
if ( typeof window !== 'undefined' ) {
jQuery = require('jquery');
}
else {
jQuery = require('jquery')(root);
}
}
factory(jQuery);
return jQuery;
};
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
//IE8 indexOf polyfill //IE8 indexOf polyfill
var indexOf = [].indexOf || function(item) { var indexOf = [].indexOf || function(item) {
for (var i = 0, l = this.length; i < l; i++) { for (var i = 0, l = this.length; i < l; i++) {
@@ -64,8 +91,16 @@
return styles[name]; return styles[name];
}; };
var removeStyle = function(name) {
if (!name) {
throw "Missing Style name";
}
if (styles[name]) {
delete styles[name];
}
};
var addStyle = function(name, def) { var addStyle = function(name, def) {
var cssText, elem, fields, ref;
if (!name) { if (!name) {
throw "Missing Style name"; throw "Missing Style name";
} }
@@ -75,7 +110,9 @@
if (!def.html) { if (!def.html) {
throw "Missing Style HTML"; throw "Missing Style HTML";
} }
if ((ref = styles[name]) != null ? ref.cssElem : void 0) { //remove existing style
var existing = styles[name];
if (existing && existing.cssElem) {
if (window.console) { if (window.console) {
console.warn(pluginName + ": overwriting style '" + name + "'"); console.warn(pluginName + ": overwriting style '" + name + "'");
} }
@@ -83,7 +120,7 @@
} }
def.name = name; def.name = name;
styles[name] = def; styles[name] = def;
cssText = ""; var cssText = "";
if (def.classes) { if (def.classes) {
$.each(def.classes, function(className, props) { $.each(def.classes, function(className, props) {
cssText += "." + pluginClassName + "-" + def.name + "-" + className + " {\n"; cssText += "." + pluginClassName + "-" + def.name + "-" + className + " {\n";
@@ -105,11 +142,11 @@
def.cssElem = insertCSS(cssText); def.cssElem = insertCSS(cssText);
def.cssElem.attr("id", "notify-" + def.name); def.cssElem.attr("id", "notify-" + def.name);
} }
fields = {}; var fields = {};
elem = $(def.html); var elem = $(def.html);
findFields("html", elem, fields); findFields("html", elem, fields);
findFields("text", elem, fields); findFields("text", elem, fields);
return def.fields = fields; def.fields = fields;
}; };
var insertCSS = function(cssText) { var insertCSS = function(cssText) {
@@ -119,8 +156,7 @@
$("head").append(elem); $("head").append(elem);
try { try {
elem.html(cssText); elem.html(cssText);
} catch (error) { } catch (_) {
e = error;
elem[0].styleSheet.cssText = cssText; elem[0].styleSheet.cssText = cssText;
} }
return elem; return elem;
@@ -138,7 +174,7 @@
if (!name) { if (!name) {
name = blankFieldName; name = blankFieldName;
} }
return fields[name] = type; fields[name] = type;
}); });
}; };
@@ -303,15 +339,16 @@
}; };
Notification.prototype.setGlobalPosition = function() { Notification.prototype.setGlobalPosition = function() {
var align, anchor, css, key, main, pAlign, pMain, ref; var p = this.getPosition();
ref = this.getPosition(), pMain = ref[0], pAlign = ref[1]; var pMain = p[0];
main = positions[pMain]; var pAlign = p[1];
align = positions[pAlign]; var main = positions[pMain];
key = pMain + "|" + pAlign; var align = positions[pAlign];
anchor = globalAnchors[key]; var key = pMain + "|" + pAlign;
if (!anchor) { var anchor = globalAnchors[key];
if (!anchor || !document.contains(anchor[0])) {
anchor = globalAnchors[key] = createElem("div"); anchor = globalAnchors[key] = createElem("div");
css = {}; var css = {};
css[main] = 0; css[main] = 0;
if (align === "middle") { if (align === "middle") {
css.top = '45%'; css.top = '45%';
@@ -329,7 +366,9 @@
Notification.prototype.setElementPosition = function() { Notification.prototype.setElementPosition = function() {
var arrowColor, arrowCss, arrowSize, color, contH, contW, css, elemH, elemIH, elemIW, elemPos, elemW, gap, j, k, len, len1, mainFull, margin, opp, oppFull, pAlign, pArrow, pMain, pos, posFull, position, ref, wrapPos; var arrowColor, arrowCss, arrowSize, color, contH, contW, css, elemH, elemIH, elemIW, elemPos, elemW, gap, j, k, len, len1, mainFull, margin, opp, oppFull, pAlign, pArrow, pMain, pos, posFull, position, ref, wrapPos;
position = this.getPosition(); position = this.getPosition();
pMain = position[0], pAlign = position[1], pArrow = position[2]; pMain = position[0];
pAlign = position[1];
pArrow = position[2];
elemPos = this.elem.position(); elemPos = this.elem.position();
elemH = this.elem.outerHeight(); elemH = this.elem.outerHeight();
elemW = this.elem.outerWidth(); elemW = this.elem.outerWidth();
@@ -360,7 +399,7 @@
} else { } else {
arrowSize = this.options.arrowSize; arrowSize = this.options.arrowSize;
arrowCss = $.extend({}, css); arrowCss = $.extend({}, css);
arrowColor = this.userContainer.css("border-color") || this.userContainer.css("background-color") || "white"; arrowColor = this.userContainer.css("border-color") || this.userContainer.css("border-top-color") || this.userContainer.css("background-color") || "white";
for (k = 0, len1 = mainPositions.length; k < len1; k++) { for (k = 0, len1 = mainPositions.length; k < len1; k++) {
pos = mainPositions[k]; pos = mainPositions[k];
posFull = positions[pos]; posFull = positions[pos];
@@ -492,7 +531,8 @@
}; };
Notification.prototype.destroy = function() { Notification.prototype.destroy = function() {
return this.wrapper.remove(); this.wrapper.data(pluginClassName, null);
this.wrapper.remove();
}; };
$[pluginName] = function(elem, data, options) { $[pluginName] = function(elem, data, options) {
@@ -508,13 +548,11 @@
$.fn[pluginName] = function(data, options) { $.fn[pluginName] = function(data, options) {
$(this).each(function() { $(this).each(function() {
var inst; var prev = getAnchorElement($(this)).data(pluginClassName);
inst = getAnchorElement($(this)).data(pluginClassName); if (prev) {
if (inst) { prev.destroy();
return inst.run(data, options);
} else {
return new Notification($(this), data, options);
} }
var curr = new Notification($(this), data, options);
}); });
return this; return this;
}; };
@@ -522,6 +560,7 @@
$.extend($[pluginName], { $.extend($[pluginName], {
defaults: defaults, defaults: defaults,
addStyle: addStyle, addStyle: addStyle,
removeStyle: removeStyle,
pluginOptions: pluginOptions, pluginOptions: pluginOptions,
getStyle: getStyle, getStyle: getStyle,
insertCSS: insertCSS insertCSS: insertCSS
@@ -573,9 +612,9 @@
$(function() { $(function() {
insertCSS(coreStyle.css).attr("id", "core-notify"); insertCSS(coreStyle.css).attr("id", "core-notify");
$(document).on("click", "." + pluginClassName + "-hidable", function(e) { $(document).on("click", "." + pluginClassName + "-hidable", function(e) {
return $(this).trigger("notify-hide"); $(this).trigger("notify-hide");
}); });
return $(document).on("notify-hide", "." + pluginClassName + "-wrapper", function(e) { $(document).on("notify-hide", "." + pluginClassName + "-wrapper", function(e) {
var elem = $(this).data(pluginClassName); var elem = $(this).data(pluginClassName);
if(elem) { if(elem) {
elem.show(false); elem.show(false);
@@ -583,4 +622,4 @@
}); });
}); });
}).call(this, window, document, jQuery); }));
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "notify", "name": "notify",
"version": "0.3.4", "version": "0.4.1",
"title": "notify", "title": "notify",
"description": "A robust, customizable notification library", "description": "A robust, customizable notification library",
"bugs": "https://github.com/jpillora/notifyjs/issues", "bugs": "https://github.com/jpillora/notifyjs/issues",
+20 -3
View File
@@ -1,7 +1,7 @@
{ {
"title": "Notify.js", "title": "Notify.js",
"name": "notify", "name": "notifyjs-browser",
"version": "0.3.4", "version": "0.4.2",
"author": { "author": {
"name": "Jaime Pillora" "name": "Jaime Pillora"
}, },
@@ -14,5 +14,22 @@
], ],
"homepage": "http://notifyjs.com/", "homepage": "http://notifyjs.com/",
"license": "MIT", "license": "MIT",
"main": "dist/notify.js" "main": "dist/notify.js",
"scripts": {
"test": "npm run lint",
"lint": "jshint ./dist/*.js"
},
"peerDependencies": {
"jquery": ">=1.11.0"
},
"devDependencies": {
"jshint": "^2.8.0"
},
"keywords": [
"notify",
"notification",
"prompt",
"popup",
"jquery-plugin"
]
} }