fixed ninjet's race condition
added notification js (not functional)
This commit is contained in:
parent
30d38eead6
commit
eaca7543cd
|
@ -202,7 +202,8 @@
|
||||||
<Content Include="Scripts\2010.2.825\telerik.textbox.min.js" />
|
<Content Include="Scripts\2010.2.825\telerik.textbox.min.js" />
|
||||||
<Content Include="Scripts\2010.2.825\telerik.treeview.min.js" />
|
<Content Include="Scripts\2010.2.825\telerik.treeview.min.js" />
|
||||||
<Content Include="Scripts\2010.2.825\telerik.window.min.js" />
|
<Content Include="Scripts\2010.2.825\telerik.window.min.js" />
|
||||||
<Content Include="Scripts\jquery.msg.js" />
|
<Content Include="Scripts\jquery.notify.js" />
|
||||||
|
<Content Include="Scripts\jquery.notify.min.js" />
|
||||||
<Content Include="Scripts\Notifications.js" />
|
<Content Include="Scripts\Notifications.js" />
|
||||||
<Content Include="Views\Series\Details.aspx" />
|
<Content Include="Views\Series\Details.aspx" />
|
||||||
<Content Include="Views\Series\index.aspx" />
|
<Content Include="Views\Series\index.aspx" />
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
/// <reference path="jquery-1.4.1-vsdoc.js" />
|
/// <reference path="jquery-1.4.1-vsdoc.js" />
|
||||||
$(function () {
|
$(function () {
|
||||||
alert("Notification");
|
|
||||||
|
|
||||||
var container = $("#container-bottom").notify({ stack: 'above' });
|
|
||||||
container.notify("create", {
|
|
||||||
title: 'Look ma, two containers!',
|
|
||||||
text: 'This container is positioned on the bottom of the screen. Notifications will stack on top of each other with the <code>position</code> attribute set to <code>above</code>.'
|
|
||||||
}, { expires: false });
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,97 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright (c) 2010 Diego Uría Martínez
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a message to the body.
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* $('a').click(function() {
|
|
||||||
* $.fn.jQueryMsg({
|
|
||||||
* msg: 'Hello world!!'
|
|
||||||
* });
|
|
||||||
* });
|
|
||||||
*
|
|
||||||
* TODO:
|
|
||||||
* - don't set 'speed' too high, it may loose some events
|
|
||||||
* - option: message tag
|
|
||||||
* - option: content tag
|
|
||||||
*/
|
|
||||||
(function($,undefined){
|
|
||||||
var name = 'jQueryMsg';
|
|
||||||
var timeout;
|
|
||||||
|
|
||||||
$.fn.jQueryMsg = function(params)
|
|
||||||
{
|
|
||||||
var settings = $.extend(
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
msgClass : 'jquerymsgclass', //container class
|
|
||||||
speed : 0, //effects' speed
|
|
||||||
delay: 100, //delay between messages
|
|
||||||
timeout: 3000, //maximum time the message is shown on the screen. 0 for permanent
|
|
||||||
fx: 'none' //effect: set it to none, fade or slide
|
|
||||||
},
|
|
||||||
params);
|
|
||||||
|
|
||||||
if(typeof(settings.msg) === 'string')
|
|
||||||
{
|
|
||||||
var show = {width: 'show', height: 'show'};
|
|
||||||
var hide = {width: 'hide', height: 'hide'};
|
|
||||||
switch(settings.fx) {
|
|
||||||
case 'fade':
|
|
||||||
show = {opacity: 'show'};
|
|
||||||
hide = {opacity: 'hide'};
|
|
||||||
break;
|
|
||||||
case 'slide':
|
|
||||||
show = {height: 'show'};
|
|
||||||
hide = {height: 'hide'};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var msg;
|
|
||||||
if($('p.'+name).size() > 0) {
|
|
||||||
msg = $('p.'+name);
|
|
||||||
msg.click().delay(settings.delay);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
msg = $('<p class="'+name+'"></p>');
|
|
||||||
msg.hide().appendTo('body');
|
|
||||||
}
|
|
||||||
|
|
||||||
clearTimeout(timeout);
|
|
||||||
|
|
||||||
msg.one('click',function() {
|
|
||||||
msg.animate(hide, settings.speed, function() {
|
|
||||||
msg.removeClass().addClass(name);
|
|
||||||
});
|
|
||||||
}).queue(function() {
|
|
||||||
msg.html(settings.msg).addClass(settings.msgClass).animate(show, settings.speed).dequeue();
|
|
||||||
|
|
||||||
if(settings.timeout > 0) {
|
|
||||||
timeout = setTimeout(function() {
|
|
||||||
msg.click();
|
|
||||||
}, settings.timeout);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})(jQuery);
|
|
|
@ -0,0 +1,140 @@
|
||||||
|
/*
|
||||||
|
* jQuery Notify UI Widget 1.4
|
||||||
|
* Copyright (c) 2010 Eric Hynds
|
||||||
|
*
|
||||||
|
* http://www.erichynds.com/jquery/a-jquery-ui-growl-ubuntu-notification-widget/
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* - jQuery 1.4
|
||||||
|
* - jQuery UI 1.8 widget factory
|
||||||
|
*
|
||||||
|
* Dual licensed under the MIT and GPL licenses:
|
||||||
|
* http://www.opensource.org/licenses/mit-license.php
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
(function($){
|
||||||
|
|
||||||
|
$.widget("ech.notify", {
|
||||||
|
options: {
|
||||||
|
speed: 500,
|
||||||
|
expires: 5000,
|
||||||
|
stack: 'below',
|
||||||
|
custom: false
|
||||||
|
},
|
||||||
|
_create: function(){
|
||||||
|
var self = this;
|
||||||
|
this.templates = {};
|
||||||
|
this.keys = [];
|
||||||
|
|
||||||
|
// build and save templates
|
||||||
|
this.element.addClass("ui-notify").children().addClass("ui-notify-message ui-notify-message-style").each(function(i){
|
||||||
|
var key = this.id || i;
|
||||||
|
self.keys.push(key);
|
||||||
|
self.templates[key] = $(this).removeAttr("id").wrap("<div></div>").parent().html(); // because $(this).andSelf().html() no workie
|
||||||
|
}).end().empty().show();
|
||||||
|
},
|
||||||
|
create: function(template, msg, opts){
|
||||||
|
if(typeof template === "object"){
|
||||||
|
opts = msg;
|
||||||
|
msg = template;
|
||||||
|
template = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tpl = this.templates[ template || this.keys[0]];
|
||||||
|
|
||||||
|
// remove default styling class if rolling w/ custom classes
|
||||||
|
if(opts && opts.custom){
|
||||||
|
tpl = $(tpl).removeClass("ui-notify-message-style").wrap("<div></div>").parent().html();
|
||||||
|
}
|
||||||
|
|
||||||
|
// return a new notification instance
|
||||||
|
return new $.ech.notify.instance(this)._create(msg, $.extend({}, this.options, opts), tpl);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// instance constructor
|
||||||
|
$.extend($.ech.notify, {
|
||||||
|
instance: function(widget){
|
||||||
|
this.parent = widget;
|
||||||
|
this.isOpen = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// instance methods
|
||||||
|
$.extend($.ech.notify.instance.prototype, {
|
||||||
|
_create: function(params, options, template){
|
||||||
|
this.options = options;
|
||||||
|
|
||||||
|
var self = this,
|
||||||
|
|
||||||
|
// build html template
|
||||||
|
html = template.replace(/#(?:\{|%7B)(.*?)(?:\}|%7D)/g, function($1, $2){
|
||||||
|
return ($2 in params) ? params[$2] : '';
|
||||||
|
}),
|
||||||
|
|
||||||
|
// the actual message
|
||||||
|
m = (this.element = $(html)),
|
||||||
|
|
||||||
|
// close link
|
||||||
|
closelink = m.find(".ui-notify-close");
|
||||||
|
|
||||||
|
// clickable?
|
||||||
|
if(typeof this.options.click === "function"){
|
||||||
|
m.addClass("ui-notify-click").bind("click", function(e){
|
||||||
|
self._trigger("click", e, self);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// show close link?
|
||||||
|
if(closelink.length){
|
||||||
|
closelink.bind("click", function(){
|
||||||
|
self.close();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this.open();
|
||||||
|
|
||||||
|
// auto expire?
|
||||||
|
if(typeof options.expires === "number"){
|
||||||
|
window.setTimeout(function(){
|
||||||
|
self.close();
|
||||||
|
}, options.expires);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
close: function(){
|
||||||
|
var self = this, speed = this.options.speed;
|
||||||
|
|
||||||
|
this.element.fadeTo(speed, 0).slideUp(speed, function(){
|
||||||
|
self._trigger("close");
|
||||||
|
self.isOpen = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
open: function(){
|
||||||
|
if(this.isOpen || this._trigger("beforeopen") === false){
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
this.element[this.options.stack === 'above' ? 'prependTo' : 'appendTo'](this.parent.element).css({ display:"none", opacity:"" }).fadeIn(this.options.speed, function(){
|
||||||
|
self._trigger("open");
|
||||||
|
self.isOpen = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
widget: function(){
|
||||||
|
return this.element;
|
||||||
|
},
|
||||||
|
_trigger: function(type, e, instance){
|
||||||
|
return this.parent._trigger.call( this, type, e, instance );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
})(jQuery);
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* jQuery Notify UI Widget 1.4
|
||||||
|
* Copyright (c) 2010 Eric Hynds
|
||||||
|
*
|
||||||
|
* http://www.erichynds.com/jquery/a-jquery-ui-growl-ubuntu-notification-widget/
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* - jQuery 1.4
|
||||||
|
* - jQuery UI 1.8 widget factory
|
||||||
|
*
|
||||||
|
* Dual licensed under the MIT and GPL licenses:
|
||||||
|
* http://www.opensource.org/licenses/mit-license.php
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
(function(d){d.widget("ech.notify",{options:{speed:500,expires:5E3,stack:"below",custom:false},_create:function(){var a=this;this.templates={};this.keys=[];this.element.addClass("ui-notify").children().addClass("ui-notify-message ui-notify-message-style").each(function(b){b=this.id||b;a.keys.push(b);a.templates[b]=d(this).removeAttr("id").wrap("<div></div>").parent().html()}).end().empty().show()},create:function(a,b,c){if(typeof a==="object"){c=b;b=a;a=null}a=this.templates[a||this.keys[0]];if(c&&c.custom)a=d(a).removeClass("ui-notify-message-style").wrap("<div></div>").parent().html();return(new d.ech.notify.instance(this))._create(b,d.extend({},this.options,c),a)}});d.extend(d.ech.notify,{instance:function(a){this.parent=a;this.isOpen=false}});d.extend(d.ech.notify.instance.prototype,{_create:function(a,b,c){this.options=b;var e=this;c=c.replace(/#(?:\{|%7B)(.*?)(?:\}|%7D)/g,function(f,g){return g in a?a[g]:""});c=this.element=d(c);var h=c.find(".ui-notify-close");typeof this.options.click==="function"&&c.addClass("ui-notify-click").bind("click",function(f){e._trigger("click",f,e)});h.length&&h.bind("click",function(){e.close();return false});this.open();typeof b.expires==="number"&&window.setTimeout(function(){e.close()},b.expires);return this},close:function(){var a=this,b=this.options.speed;this.isOpen=false;this.element.fadeTo(b,0).slideUp(b,function(){a._trigger("close")});return this},open:function(){if(this.isOpen||this._trigger("beforeopen")===false)return this;var a=this;this.isOpen=true;this.element[this.options.stack==="above"?"prependTo":"appendTo"](this.parent.element).css({display:"none",opacity:""}).fadeIn(this.options.speed,function(){a._trigger("open")});return this},widget:function(){return this.element},_trigger:function(a,b,c){return this.parent._trigger.call(this,a,b,c)}})})(jQuery);
|
|
@ -2,45 +2,6 @@
|
||||||
|
|
||||||
<%@ Import Namespace="Telerik.Web.Mvc.UI" %>
|
<%@ Import Namespace="Telerik.Web.Mvc.UI" %>
|
||||||
|
|
||||||
<asp:Content ID="Content3" ContentPlaceHolderID="JavascriptContent" runat="server">
|
|
||||||
$(document).ready(function () {
|
|
||||||
$("#Mediabox").bind("click", MediaBoxClick);
|
|
||||||
setTimeout('MediaDetect();', 5000);
|
|
||||||
});
|
|
||||||
var Discovered = false;
|
|
||||||
|
|
||||||
function MediaDetect() {
|
|
||||||
$.ajax({
|
|
||||||
url: 'Series/MediaDetect',
|
|
||||||
success: MediaDetectCallback
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
function MediaDetectCallback(data) {
|
|
||||||
Discovered=data.Discovered;
|
|
||||||
if(!Discovered)
|
|
||||||
setTimeout('MediaDetect();', 10000);
|
|
||||||
else
|
|
||||||
LightUpMedia(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
function LightUpMedia(data) {
|
|
||||||
$.ajax({
|
|
||||||
url: 'Series/LightUpMedia',
|
|
||||||
success: LightUpMediaSuccess
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function LightUpMediaSuccess(data) {
|
|
||||||
$("#Mediabox").html(data.HTML);
|
|
||||||
}
|
|
||||||
function MediaBoxClick(args) {
|
|
||||||
$.ajax({
|
|
||||||
url: 'Series/ControlMedia',
|
|
||||||
data: "Action=" + args.target.className
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</asp:Content>
|
|
||||||
|
|
||||||
|
|
||||||
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
|
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
|
||||||
Series
|
Series
|
||||||
|
|
|
@ -22,12 +22,46 @@ Released : 20100727
|
||||||
Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.sitefinity.css")).Render();
|
Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.sitefinity.css")).Render();
|
||||||
%>
|
%>
|
||||||
<link href="../../Content/ui.notify.css" rel="stylesheet" type="text/css" />
|
<link href="../../Content/ui.notify.css" rel="stylesheet" type="text/css" />
|
||||||
<script src="../../Scripts/jquery.msg.js" type="text/javascript"></script>
|
|
||||||
<link href="../../Content/style.css" rel="stylesheet" type="text/css" media="screen" />
|
<link href="../../Content/style.css" rel="stylesheet" type="text/css" media="screen" />
|
||||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
|
<link type="text/css" rel="stylesheet" href="http://www.erichynds.com/examples/style.css" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/redmond/jquery-ui.css" />
|
||||||
|
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js" type="text/javascript"></script>
|
||||||
|
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.js" type="text/javascript"></script>
|
||||||
|
<script src="../../Scripts/jquery.notify.min.js" type="text/javascript"></script>
|
||||||
<script src="../../Scripts/Notifications.js" type="text/javascript"></script>
|
<script src="../../Scripts/Notifications.js" type="text/javascript"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
<asp:ContentPlaceHolder ID="JavascriptContent" runat="server" />
|
|
||||||
|
|
||||||
|
function create(template, vars, opts) {
|
||||||
|
return $container.notify("create", template, vars, opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
|
||||||
|
// initialize widget on a container, passing in all the defaults.
|
||||||
|
// the defaults will apply to any notification created within this
|
||||||
|
// container, but can be overwritten on notification-by-notification
|
||||||
|
// basis.
|
||||||
|
$container = $("#konfused").notify();
|
||||||
|
|
||||||
|
|
||||||
|
// create two when the pg loads
|
||||||
|
var tttt = create("default", { title: '*********Default Notification', text: 'Example of a default notification. I will fade out after 5 seconds' });
|
||||||
|
create("sticky", { title: 'Sticky Notification', text: 'Example of a "sticky" notification. Click on the X above to close me.' }, { expires: false });
|
||||||
|
|
||||||
|
// second
|
||||||
|
var container = $("#container-bottom").notify({ stack: 'above' });
|
||||||
|
container.notify("create", {
|
||||||
|
title: 'Look ma, two containers!',
|
||||||
|
text: 'This container is positioned on the bottom of the screen. Notifications will stack on top of each other with the <code>position</code> attribute set to <code>above</code>.'
|
||||||
|
}, { expires: false });
|
||||||
|
|
||||||
|
container.notify("widget").find("input").bind("click", function () {
|
||||||
|
container.notify("create", 1, { title: 'Another Notification!', text: 'The quick brown fox jumped over the lazy dog.' });
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -58,8 +92,55 @@ Released : 20100727
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="container-bottom" style="display: none; top: auto; right: 0; padding: 10px;
|
<div id="konfused" style="display: none">
|
||||||
bottom: 0; margin: 0 0 10px 10px">
|
<div id="default">
|
||||||
|
<h1>
|
||||||
|
#{title}</h1>
|
||||||
|
<h2>
|
||||||
|
<div class="defText">
|
||||||
|
#{text}
|
||||||
|
</div>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div id="sticky">
|
||||||
|
<h1>
|
||||||
|
#{title}</h1>
|
||||||
|
<p>
|
||||||
|
#{text}</p>
|
||||||
|
</div>
|
||||||
|
<div id="themeroller" class="ui-state-error" style="padding: 10px; -moz-box-shadow: 0 0 6px #980000;
|
||||||
|
-webkit-box-shadow: 0 0 6px #980000; box-shadow: 0 0 6px #980000;">
|
||||||
|
<a class="ui-notify-close" href="#"><span class="ui-icon ui-icon-close" style="float: right">
|
||||||
|
</span></a><span style="float: left; margin: 0 5px 0 0;" class="ui-icon ui-icon-alert">
|
||||||
|
</span>
|
||||||
|
<h1>
|
||||||
|
#{title}</h1>
|
||||||
|
<p>
|
||||||
|
#{text}</p>
|
||||||
|
<p style="text-align: center">
|
||||||
|
<a class="ui-notify-close" href="#">Close Me</a></p>
|
||||||
|
</div>
|
||||||
|
<div id="withIcon">
|
||||||
|
<a class="ui-notify-close ui-notify-cross" href="#">x</a>
|
||||||
|
<div style="float: left; margin: 0 10px 0 0">
|
||||||
|
<img src="#{icon}" alt="warning" /></div>
|
||||||
|
<h1>
|
||||||
|
#{title}</h1>
|
||||||
|
<p>
|
||||||
|
#{text}</p>
|
||||||
|
</div>
|
||||||
|
<div id="buttons">
|
||||||
|
<h1>
|
||||||
|
#{title}</h1>
|
||||||
|
<p>
|
||||||
|
#{text}</p>
|
||||||
|
<p style="margin-top: 10px; text-align: center">
|
||||||
|
<input type="button" class="confirm" value="Close Dialog" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="container-bottom" style="top: auto; right: 0; padding: 10px; bottom: 0;
|
||||||
|
margin: 0 0 10px 10px">
|
||||||
<div>
|
<div>
|
||||||
<h1>
|
<h1>
|
||||||
#{title}</h1>
|
#{title}</h1>
|
||||||
|
|
Loading…
Reference in New Issue