Ticket #5712: trac_5712-interrupt-notification.5.patch

File trac_5712-interrupt-notification.5.patch, 89.0 KB (added by mpatel, 9 years ago)

Periodically re-attempt to interrupt. Replaces previous.

  • new file sagenb/data/jquery/plugins/achtung/AUTHORS.txt

    # HG changeset patch
    # User Tim Dumol <tim@timdumol.com>
    # Date 1263989333 -28800
    # Node ID 800601ae443ef90f352eba75f222b69ef429e2e7
    # Parent  c1dc9b67d27ad1074b53d6ebd059b5e4d6e97363
    #5712 Get rid of the stupid "unable to immediately interrupt computation" alert that drives me nuts
    
    diff --git a/sagenb/data/jquery/plugins/achtung/AUTHORS.txt b/sagenb/data/jquery/plugins/achtung/AUTHORS.txt
    new file mode 100644
    - +  
     1achtung 0.3.0
     2
     3Josh Varner
     4http://achtung-ui.googlecode.com/
     5
     6===============================================================================
     7For portions from jQuery UI:
     8===============================================================================
     9
     10jQuery UI Authors (http://ui.jquery.com/about)
     11
     12This software consists of voluntary contributions made by many
     13individuals. For exact contribution history, see the revision history
     14and logs, available at http://jquery-ui.googlecode.com/svn/
     15
     16Brandon Aaron
     17Paul Bakaus (paulbakaus.com)
     18David Bolter
     19Rich Caloggero
     20Chi Cheng (cloudream@gmail.com)
     21Colin Clark (http://colin.atrc.utoronto.ca/)
     22Michelle D'Souza
     23Aaron Eisenberger (aaronchi@gmail.com)
     24Ariel Flesler
     25Bohdan Ganicky
     26Scott González
     27Marc Grabanski (m@marcgrabanski.com)
     28Klaus Hartl (stilbuero.de)
     29Scott Jehl
     30Cody Lindley
     31Eduardo Lundgren (eduardolundgren@gmail.com)
     32Todd Parker
     33John Resig
     34Patty Toland
     35Ca-Phun Ung (yelotofu.com)
     36Keith Wood (kbwood@virginbroadband.com.au)
     37Maggie Costello Wachs
     38Richard D. Worth (rdworth.org)
     39Jörn Zaefferer (bassistance.de)
  • new file sagenb/data/jquery/plugins/achtung/LICENSE.txt

    diff --git a/sagenb/data/jquery/plugins/achtung/LICENSE.txt b/sagenb/data/jquery/plugins/achtung/LICENSE.txt
    new file mode 100644
    - +  
     1achtung 0.3.0
     2Copyright (c) 2009 Josh Varner, http://achtung-ui.googlecode.com/
     3
     4Permission is hereby granted, free of charge, to any person obtaining
     5a copy of this software and associated documentation files (the
     6"Software"), to deal in the Software without restriction, including
     7without limitation the rights to use, copy, modify, merge, publish,
     8distribute, sublicense, and/or sell copies of the Software, and to
     9permit persons to whom the Software is furnished to do so, subject to
     10the following conditions:
     11
     12The above copyright notice and this permission notice shall be
     13included in all copies or substantial portions of the Software.
     14
     15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     16EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     17MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     18NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
     19LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
     20OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
     21WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • new file sagenb/data/jquery/plugins/achtung/ui.achtung-min.css

    diff --git a/sagenb/data/jquery/plugins/achtung/ui.achtung-min.css b/sagenb/data/jquery/plugins/achtung/ui.achtung-min.css
    new file mode 100644
    - +  
     1* html #achtung-overlay{position:absolute;}* html .achtung{width:280px;}#achtung-overlay{overflow:hidden;position:fixed;top:15px;right:15px;width:280px;z-index:50;}.achtung{display:none;margin-bottom:8px;padding:15px 15px;background-color:#000;color:white;width:250px;font-weight:bold;position:relative;overflow:hidden;-moz-box-shadow:#aaa 1px 1px 2px;-webkit-box-shadow:#aaa 1px 1px 2px;box-shadow:#aaa 1px 1px 2px;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;opacity:.85;filter:Alpha(Opacity=85);}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.achtung .achtung-message-icon{margin-top:0;margin-left:-.5em;margin-right:.5em;float:left;zoom:1;}.achtung .ui-icon.achtung-close-button{overflow:hidden;float:right;position:relative;top:-8px;right:-8px;cursor:pointer;background-image:url(images/ui-icons_cccccc_256x240.png);}.achtung .ui-icon.achtung-close-button-hover{background-image:url(images/ui-icons_ffffff_256x240.png);}.achtungSuccess,.achtungFail,.achtungWait{opacity:.93;filter:Alpha(Opacity=93);}.achtungSuccess{background-color:#4DB559;}.achtungFail{background-color:#D64450;}.achtungWait{background-color:#658093;}.achtungSuccess .ui-icon.achtung-close-button,.achtungFail .ui-icon.achtung-close-button{background-image:url(images/ui-icons_444444_256x240.png);}.achtungSuccess .ui-icon.achtung-close-button-hover,.achtungFail .ui-icon.achtung-close-button-hover{background-image:url(images/ui-icons_000000_256x240.png);}.achtung .wait-icon{background-image:url('images/wait.gif');}.achtung .achtung-message{display:inline;}
     2 No newline at end of file
  • new file sagenb/data/jquery/plugins/achtung/ui.achtung-min.js

    diff --git a/sagenb/data/jquery/plugins/achtung/ui.achtung-min.js b/sagenb/data/jquery/plugins/achtung/ui.achtung-min.js
    new file mode 100644
    - +  
     1(function(a){a.fn.achtung=function(e){var b=(typeof e==="string"),d=Array.prototype.slice.call(arguments,0),c="achtung";return this.each(function(){var f=a.data(this,c);if(b&&e.substring(0,1)==="_"){return this}(!f&&!b&&a.data(this,c,new a.achtung(this))._init(d));(f&&b&&a.isFunction(f[e])&&f[e].apply(f,d.slice(1)))})};a.achtung=function(d){var b=Array.prototype.slice.call(arguments,0),c;if(!d||!d.nodeType){c=a("<div />");return c.achtung.apply(c,b)}this.$container=a(d)};a.extend(a.achtung,{version:"0.3.0",$overlay:false,defaults:{timeout:10,disableClose:false,icon:false,className:"",animateClassSwitch:false,showEffects:{opacity:"toggle",height:"toggle"},hideEffects:{opacity:"toggle",height:"toggle"},showEffectDuration:500,hideEffectDuration:700}});a.extend(a.achtung.prototype,{$container:false,closeTimer:false,options:{},_init:function(c){var d,b=this;c=a.isArray(c)?c:[];c.unshift(a.achtung.defaults);c.unshift({});d=this.options=a.extend.apply(a,c);if(!a.achtung.$overlay){a.achtung.$overlay=a('<div id="achtung-overlay"></div>').appendTo(document.body)}if(!d.disableClose){a('<span class="achtung-close-button ui-icon ui-icon-close" />').click(function(){b.close()}).hover(function(){a(this).addClass("achtung-close-button-hover")},function(){a(this).removeClass("achtung-close-button-hover")}).prependTo(this.$container)}this.changeIcon(d.icon,true);if(d.message){this.$container.append(a('<span class="achtung-message">'+d.message+"</span>"))}(d.className&&this.$container.addClass(d.className));(d.css&&this.$container.css(d.css));this.$container.addClass("achtung").appendTo(a.achtung.$overlay);if(d.showEffects){this.$container.animate(d.showEffects,d.showEffectDuration)}else{this.$container.show()}if(d.timeout>0){this.timeout(d.timeout)}},timeout:function(c){var b=this;if(this.closeTimer){clearTimeout(this.closeTimer)}this.closeTimer=setTimeout(function(){b.close()},c*1000);this.options.timeout=c},changeClass:function(c){var b=this;if(this.options.className===c){return}this.$container.queue(function(){if(!b.options.animateClassSwitch||/webkit/.test(navigator.userAgent.toLowerCase())||!a.isFunction(a.fn.switchClass)){b.$container.removeClass(b.options.className);b.$container.addClass(c)}else{b.$container.switchClass(b.options.className,c,500)}b.options.className=c;b.$container.dequeue()})},changeIcon:function(c,d){var b=this;if((d!==true||c===false)&&this.options.icon===c){return}if(d||this.options.icon===false){this.$container.prepend(a('<span class="achtung-message-icon ui-icon '+c+'" />'));this.options.icon=c;return}else{if(c===false){this.$container.find(".achtung-message-icon").remove();this.options.icon=false;return}}this.$container.queue(function(){var e=a(".achtung-message-icon",b.$container);if(!b.options.animateClassSwitch||/webkit/.test(navigator.userAgent.toLowerCase())||!a.isFunction(a.fn.switchClass)){e.removeClass(b.options.icon);e.addClass(c)}else{e.switchClass(b.options.icon,c,500)}b.options.icon=c;b.$container.dequeue()})},changeMessage:function(b){this.$container.queue(function(){a(".achtung-message",a(this)).html(b);a(this).dequeue()})},update:function(b){(b.className&&this.changeClass(b.className));(b.css&&this.$container.css(b.css));(typeof(b.icon)!=="undefined"&&this.changeIcon(b.icon));(b.message&&this.changeMessage(b.message));(b.timeout&&this.timeout(b.timeout))},close:function(){var c=this.options,b=this.$container;if(c.hideEffects){this.$container.animate(c.hideEffects,c.hideEffectDuration)}else{this.$container.hide()}b.queue(function(){b.removeData("achtung");b.remove();if(a.achtung.$overlay&&a.achtung.$overlay.is(":empty")){a.achtung.$overlay.remove();a.achtung.$overlay=false}b.dequeue()})}})})(jQuery);
     2 No newline at end of file
  • new file sagenb/data/jquery/plugins/achtung/ui.achtung-mod.js

    diff --git a/sagenb/data/jquery/plugins/achtung/ui.achtung-mod.js b/sagenb/data/jquery/plugins/achtung/ui.achtung-mod.js
    new file mode 100644
    - +  
     1// This modified version adds optional callbacks at the end of a
     2// timeout (in lieu of close) and when a user clicks on the close
     3// button (just before close).
     4
     5/**
     6 * achtung 0.3.0
     7 *
     8 * Growl-like notifications for jQuery
     9 *
     10 * Copyright (c) 2009 Josh Varner <josh@voxwerk.com>
     11 *
     12 * Permission is hereby granted, free of charge, to any person obtaining a copy
     13 * of this software and associated documentation files (the "Software"), to deal
     14 * in the Software without restriction, including without limitation the rights
     15 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     16 * copies of the Software, and to permit persons to whom the Software is
     17 * furnished to do so, subject to the following conditions:
     18 *
     19 * The above copyright notice and this permission notice shall be included in
     20 * all copies or substantial portions of the Software.
     21 *
     22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     23 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     25 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     26 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     27 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     28 * THE SOFTWARE.
     29 *
     30 * @license http://www.opensource.org/licenses/mit-license.php
     31 * @author Josh Varner <josh@voxwerk.com>
     32 */
     33
     34/*globals jQuery,clearTimeout,document,navigator,setTimeout
     35*/
     36(function($) {
     37
     38/**
     39 * This is based on the jQuery UI $.widget code. I would have just made this
     40 * a $.widget but I didn't want the jQuery UI dependency.
     41 */
     42$.fn.achtung = function(options)
     43{
     44        var isMethodCall = (typeof options === 'string'),
     45                args = Array.prototype.slice.call(arguments, 0),
     46                name = 'achtung';
     47
     48        // handle initialization and non-getter methods
     49        return this.each(function() {
     50                var instance = $.data(this, name);
     51
     52                // prevent calls to internal methods
     53                if (isMethodCall && options.substring(0, 1) === '_') {
     54                        return this;
     55                }
     56
     57                // constructor
     58                (!instance && !isMethodCall &&
     59                        $.data(this, name, new $.achtung(this))._init(args));
     60
     61                // method call
     62                (instance && isMethodCall && $.isFunction(instance[options]) &&
     63                        instance[options].apply(instance, args.slice(1)));
     64        });
     65};
     66
     67$.achtung = function(element)
     68{
     69    var args = Array.prototype.slice.call(arguments, 0), $el;
     70
     71    if (!element || !element.nodeType) {
     72        $el = $('<div />');
     73        return $el.achtung.apply($el, args);
     74    }
     75   
     76    this.$container = $(element);
     77};
     78
     79
     80/**
     81 * Static members
     82 **/
     83$.extend($.achtung, {
     84    version: '0.3.0',
     85    $overlay: false,
     86    defaults: {
     87        timeout: 10,
     88        // Called at end of a timeout *instead* of close.  Inside the
     89        // callback, close explicitly with this.close().
     90        onTimeout: null,
     91        // Called on clicking the close button but before close.
     92        onCloseButton: null,
     93        disableClose: false,
     94        icon: false,
     95        className: '',
     96        animateClassSwitch: false,
     97        showEffects: {'opacity':'toggle','height':'toggle'},
     98        hideEffects: {'opacity':'toggle','height':'toggle'},
     99        showEffectDuration: 500,
     100        hideEffectDuration: 700
     101    }
     102});
     103
     104/**
     105 * Non-static members
     106 **/
     107$.extend($.achtung.prototype, {
     108    $container: false,
     109    closeTimer: false,
     110    options: {},
     111   
     112    _init: function(args)
     113    {
     114        var o, self = this;
     115
     116        args = $.isArray(args) ? args : [];
     117
     118       
     119        args.unshift($.achtung.defaults);
     120        args.unshift({});
     121
     122        o = this.options = $.extend.apply($, args);
     123
     124        if (!$.achtung.$overlay) {
     125            $.achtung.$overlay = $('<div id="achtung-overlay"></div>').appendTo(document.body);
     126        }
     127
     128        if (!o.disableClose) {
     129            $('<span class="achtung-close-button ui-icon ui-icon-close" />')
     130                .click(function () {
     131                    if ($.isFunction(o.onCloseButton)) {
     132                        o.onCloseButton.call(self);
     133                    }
     134                    self.close();
     135                })
     136                .hover(function () { $(this).addClass('achtung-close-button-hover'); },
     137                       function () { $(this).removeClass('achtung-close-button-hover'); })
     138                .prependTo(this.$container);
     139        }
     140
     141        this.changeIcon(o.icon, true);
     142
     143        if (o.message) {
     144            this.$container.append($('<span class="achtung-message">' + o.message + '</span>'));
     145        }
     146
     147        (o.className && this.$container.addClass(o.className));
     148        (o.css && this.$container.css(o.css));
     149
     150        this.$container
     151            .addClass('achtung')
     152            .appendTo($.achtung.$overlay);
     153
     154        if (o.showEffects) {
     155            this.$container.animate(o.showEffects, o.showEffectDuration);
     156        } else {
     157            this.$container.show();
     158        }
     159
     160        if (o.timeout > 0) {
     161            this.timeout(o.timeout);
     162        }
     163    },
     164   
     165    timeout: function(timeout)
     166    {
     167        var self = this;
     168
     169        if (this.closeTimer) {
     170            clearTimeout(this.closeTimer);
     171        }
     172
     173        this.closeTimer = setTimeout(function() {
     174            if ($.isFunction(self.options.onTimeout)) {
     175                self.options.onTimeout.call(self);
     176            } else {
     177                self.close();
     178            }
     179        }, timeout * 1000);
     180        this.options.timeout = timeout;
     181    },
     182
     183    /**
     184     * Change the CSS class associated with this message, using
     185     * a transition if available (not availble in Safari/Webkit).
     186     * If no transition is available, the switch is immediate.
     187     *
     188     * #LATER Check if this has been corrected in Webkit or jQuery UI
     189     * #TODO Make transition time configurable
     190     * @param newClass string Name of new class to associate
     191     */
     192    changeClass: function(newClass)
     193    {
     194        var self = this;
     195
     196        if (this.options.className === newClass) {
     197            return;
     198        }
     199
     200        this.$container.queue(function() {
     201            if (!self.options.animateClassSwitch ||
     202                /webkit/.test(navigator.userAgent.toLowerCase()) ||
     203                !$.isFunction($.fn.switchClass)) {
     204                self.$container.removeClass(self.options.className);
     205                self.$container.addClass(newClass);
     206            } else {
     207                self.$container.switchClass(self.options.className, newClass, 500);
     208            }
     209
     210            self.options.className = newClass;
     211            self.$container.dequeue();
     212        });
     213    },
     214
     215    changeIcon: function(newIcon, force)
     216    {
     217        var self = this;
     218
     219        if ((force !== true || newIcon === false) && this.options.icon === newIcon) {
     220            return;
     221        }
     222
     223        if (force || this.options.icon === false) {
     224            this.$container.prepend($('<span class="achtung-message-icon ui-icon ' + newIcon + '" />'));
     225            this.options.icon = newIcon;
     226            return;
     227        } else if (newIcon === false) {
     228            this.$container.find('.achtung-message-icon').remove();
     229            this.options.icon = false;
     230            return;
     231        }
     232
     233        this.$container.queue(function() {
     234            var $span = $('.achtung-message-icon', self.$container);
     235
     236            if (!self.options.animateClassSwitch ||
     237                /webkit/.test(navigator.userAgent.toLowerCase()) ||
     238                !$.isFunction($.fn.switchClass)) {
     239                $span.removeClass(self.options.icon);
     240                $span.addClass(newIcon);
     241            } else {
     242                $span.switchClass(self.options.icon, newIcon, 500);
     243            }
     244
     245            self.options.icon = newIcon;
     246            self.$container.dequeue();
     247        });
     248    },
     249
     250
     251    changeMessage: function(newMessage)
     252    {
     253        this.$container.queue(function() {
     254            $('.achtung-message', $(this)).html(newMessage);
     255            $(this).dequeue();
     256        });
     257    },
     258
     259
     260    update: function(options)
     261    {
     262        (options.className && this.changeClass(options.className));
     263        (options.css && this.$container.css(options.css));
     264        (typeof(options.icon) !== 'undefined' && this.changeIcon(options.icon));
     265        (options.message && this.changeMessage(options.message));
     266        (options.timeout && this.timeout(options.timeout));
     267    },
     268
     269    close: function()
     270    {
     271        var o = this.options, $container = this.$container;
     272
     273        if (this.closeTimer) {
     274            clearTimeout(this.closeTimer);
     275        }
     276
     277        if (o.hideEffects) {
     278            this.$container.animate(o.hideEffects, o.hideEffectDuration);
     279        } else {
     280            this.$container.hide();
     281        }
     282
     283        $container.queue(function() {
     284            $container.removeData('achtung');
     285            $container.remove();
     286           
     287            if ($.achtung.$overlay && $.achtung.$overlay.is(':empty')) {
     288                $.achtung.$overlay.remove();
     289                $.achtung.$overlay = false;
     290            }
     291           
     292            $container.dequeue();
     293        });
     294    }
     295});
     296
     297})(jQuery);
  • new file sagenb/data/jquery/plugins/achtung/ui.achtung-mod.min.js

    diff --git a/sagenb/data/jquery/plugins/achtung/ui.achtung-mod.min.js b/sagenb/data/jquery/plugins/achtung/ui.achtung-mod.min.js
    new file mode 100644
    - +  
     1(function(a){a.fn.achtung=function(e){var b=(typeof e==="string"),d=Array.prototype.slice.call(arguments,0),c="achtung";return this.each(function(){var f=a.data(this,c);if(b&&e.substring(0,1)==="_"){return this}(!f&&!b&&a.data(this,c,new a.achtung(this))._init(d));(f&&b&&a.isFunction(f[e])&&f[e].apply(f,d.slice(1)))})};a.achtung=function(d){var b=Array.prototype.slice.call(arguments,0),c;if(!d||!d.nodeType){c=a("<div />");return c.achtung.apply(c,b)}this.$container=a(d)};a.extend(a.achtung,{version:"0.3.0",$overlay:false,defaults:{timeout:10,onTimeout:null,onCloseButton:null,disableClose:false,icon:false,className:"",animateClassSwitch:false,showEffects:{opacity:"toggle",height:"toggle"},hideEffects:{opacity:"toggle",height:"toggle"},showEffectDuration:500,hideEffectDuration:700}});a.extend(a.achtung.prototype,{$container:false,closeTimer:false,options:{},_init:function(c){var d,b=this;c=a.isArray(c)?c:[];c.unshift(a.achtung.defaults);c.unshift({});d=this.options=a.extend.apply(a,c);if(!a.achtung.$overlay){a.achtung.$overlay=a('<div id="achtung-overlay"></div>').appendTo(document.body)}if(!d.disableClose){a('<span class="achtung-close-button ui-icon ui-icon-close" />').click(function(){if(a.isFunction(d.onCloseButton)){d.onCloseButton.call(b)}b.close()}).hover(function(){a(this).addClass("achtung-close-button-hover")},function(){a(this).removeClass("achtung-close-button-hover")}).prependTo(this.$container)}this.changeIcon(d.icon,true);if(d.message){this.$container.append(a('<span class="achtung-message">'+d.message+"</span>"))}(d.className&&this.$container.addClass(d.className));(d.css&&this.$container.css(d.css));this.$container.addClass("achtung").appendTo(a.achtung.$overlay);if(d.showEffects){this.$container.animate(d.showEffects,d.showEffectDuration)}else{this.$container.show()}if(d.timeout>0){this.timeout(d.timeout)}},timeout:function(c){var b=this;if(this.closeTimer){clearTimeout(this.closeTimer)}this.closeTimer=setTimeout(function(){if(a.isFunction(b.options.onTimeout)){b.options.onTimeout.call(b)}else{b.close()}},c*1000);this.options.timeout=c},changeClass:function(c){var b=this;if(this.options.className===c){return}this.$container.queue(function(){if(!b.options.animateClassSwitch||/webkit/.test(navigator.userAgent.toLowerCase())||!a.isFunction(a.fn.switchClass)){b.$container.removeClass(b.options.className);b.$container.addClass(c)}else{b.$container.switchClass(b.options.className,c,500)}b.options.className=c;b.$container.dequeue()})},changeIcon:function(c,d){var b=this;if((d!==true||c===false)&&this.options.icon===c){return}if(d||this.options.icon===false){this.$container.prepend(a('<span class="achtung-message-icon ui-icon '+c+'" />'));this.options.icon=c;return}else{if(c===false){this.$container.find(".achtung-message-icon").remove();this.options.icon=false;return}}this.$container.queue(function(){var e=a(".achtung-message-icon",b.$container);if(!b.options.animateClassSwitch||/webkit/.test(navigator.userAgent.toLowerCase())||!a.isFunction(a.fn.switchClass)){e.removeClass(b.options.icon);e.addClass(c)}else{e.switchClass(b.options.icon,c,500)}b.options.icon=c;b.$container.dequeue()})},changeMessage:function(b){this.$container.queue(function(){a(".achtung-message",a(this)).html(b);a(this).dequeue()})},update:function(b){(b.className&&this.changeClass(b.className));(b.css&&this.$container.css(b.css));(typeof(b.icon)!=="undefined"&&this.changeIcon(b.icon));(b.message&&this.changeMessage(b.message));(b.timeout&&this.timeout(b.timeout))},close:function(){var c=this.options,b=this.$container;if(this.closeTimer){clearTimeout(this.closeTimer)}if(c.hideEffects){this.$container.animate(c.hideEffects,c.hideEffectDuration)}else{this.$container.hide()}b.queue(function(){b.removeData("achtung");b.remove();if(a.achtung.$overlay&&a.achtung.$overlay.is(":empty")){a.achtung.$overlay.remove();a.achtung.$overlay=false}b.dequeue()})}})})(jQuery);
     2 No newline at end of file
  • new file sagenb/data/jquery/plugins/achtung/ui.achtung.css

    diff --git a/sagenb/data/jquery/plugins/achtung/ui.achtung.css b/sagenb/data/jquery/plugins/achtung/ui.achtung.css
    new file mode 100644
    - +  
     1/**
     2 * achtung 0.3.0
     3 *
     4 * Growl-like notifications for jQuery
     5 *
     6 * Copyright (c) 2009 Josh Varner <josh@voxwerk.com>
     7 *
     8 * Permission is hereby granted, free of charge, to any person obtaining a copy
     9 * of this software and associated documentation files (the "Software"), to deal
     10 * in the Software without restriction, including without limitation the rights
     11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     12 * copies of the Software, and to permit persons to whom the Software is
     13 * furnished to do so, subject to the following conditions:
     14 *
     15 * The above copyright notice and this permission notice shall be included in
     16 * all copies or substantial portions of the Software.
     17 *
     18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     24 * THE SOFTWARE.
     25 *
     26 * Portions of this file are from the jQuery UI CSS framework.
     27 *
     28 * @license http://www.opensource.org/licenses/mit-license.php
     29 * @author Josh Varner <josh@voxwerk.com>
     30 */
     31
     32/* IE 6 doesn't support position: fixed */
     33* html #achtung-overlay {
     34        position:absolute;
     35}
     36
     37/* IE6 includes padding in width */
     38* html .achtung {
     39    width: 280px;
     40}
     41
     42#achtung-overlay {
     43    overflow: hidden;
     44    position: fixed;
     45    top: 15px;
     46    right: 15px;
     47    width: 280px;
     48    z-index:50;
     49}
     50
     51.achtung {
     52    display:none;
     53    margin-bottom: 8px;
     54        padding: 15px 15px;
     55        background-color: #000;
     56        color: white;
     57        width: 250px;
     58        font-weight: bold;
     59        position:relative;
     60        overflow: hidden;
     61    -moz-box-shadow: #aaa 1px 1px 2px;
     62    -webkit-box-shadow: #aaa 1px 1px 2px;
     63    box-shadow: #aaa 1px 1px 2px; 
     64    -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px;
     65    /* Note that if using show/hide animations, IE will lose
     66       this setting */
     67    opacity: .85;
     68    filter:Alpha(Opacity=85);
     69}
     70
     71/**
     72 * This section from jQuery UI CSS framework
     73 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
     74 * Can (and should) be removed if you are already loading the jQuery UI CSS
     75 * to reduce payload size.
     76 */
     77.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
     78.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
     79.ui-icon-carat-1-n { background-position: 0 0; }
     80.ui-icon-carat-1-ne { background-position: -16px 0; }
     81.ui-icon-carat-1-e { background-position: -32px 0; }
     82.ui-icon-carat-1-se { background-position: -48px 0; }
     83.ui-icon-carat-1-s { background-position: -64px 0; }
     84.ui-icon-carat-1-sw { background-position: -80px 0; }
     85.ui-icon-carat-1-w { background-position: -96px 0; }
     86.ui-icon-carat-1-nw { background-position: -112px 0; }
     87.ui-icon-carat-2-n-s { background-position: -128px 0; }
     88.ui-icon-carat-2-e-w { background-position: -144px 0; }
     89.ui-icon-triangle-1-n { background-position: 0 -16px; }
     90.ui-icon-triangle-1-ne { background-position: -16px -16px; }
     91.ui-icon-triangle-1-e { background-position: -32px -16px; }
     92.ui-icon-triangle-1-se { background-position: -48px -16px; }
     93.ui-icon-triangle-1-s { background-position: -64px -16px; }
     94.ui-icon-triangle-1-sw { background-position: -80px -16px; }
     95.ui-icon-triangle-1-w { background-position: -96px -16px; }
     96.ui-icon-triangle-1-nw { background-position: -112px -16px; }
     97.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
     98.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
     99.ui-icon-arrow-1-n { background-position: 0 -32px; }
     100.ui-icon-arrow-1-ne { background-position: -16px -32px; }
     101.ui-icon-arrow-1-e { background-position: -32px -32px; }
     102.ui-icon-arrow-1-se { background-position: -48px -32px; }
     103.ui-icon-arrow-1-s { background-position: -64px -32px; }
     104.ui-icon-arrow-1-sw { background-position: -80px -32px; }
     105.ui-icon-arrow-1-w { background-position: -96px -32px; }
     106.ui-icon-arrow-1-nw { background-position: -112px -32px; }
     107.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
     108.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
     109.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
     110.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
     111.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
     112.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
     113.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
     114.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
     115.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
     116.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
     117.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
     118.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
     119.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
     120.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
     121.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
     122.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
     123.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
     124.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
     125.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
     126.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
     127.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
     128.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
     129.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
     130.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
     131.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
     132.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
     133.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
     134.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
     135.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
     136.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
     137.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
     138.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
     139.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
     140.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
     141.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
     142.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
     143.ui-icon-arrow-4 { background-position: 0 -80px; }
     144.ui-icon-arrow-4-diag { background-position: -16px -80px; }
     145.ui-icon-extlink { background-position: -32px -80px; }
     146.ui-icon-newwin { background-position: -48px -80px; }
     147.ui-icon-refresh { background-position: -64px -80px; }
     148.ui-icon-shuffle { background-position: -80px -80px; }
     149.ui-icon-transfer-e-w { background-position: -96px -80px; }
     150.ui-icon-transferthick-e-w { background-position: -112px -80px; }
     151.ui-icon-folder-collapsed { background-position: 0 -96px; }
     152.ui-icon-folder-open { background-position: -16px -96px; }
     153.ui-icon-document { background-position: -32px -96px; }
     154.ui-icon-document-b { background-position: -48px -96px; }
     155.ui-icon-note { background-position: -64px -96px; }
     156.ui-icon-mail-closed { background-position: -80px -96px; }
     157.ui-icon-mail-open { background-position: -96px -96px; }
     158.ui-icon-suitcase { background-position: -112px -96px; }
     159.ui-icon-comment { background-position: -128px -96px; }
     160.ui-icon-person { background-position: -144px -96px; }
     161.ui-icon-print { background-position: -160px -96px; }
     162.ui-icon-trash { background-position: -176px -96px; }
     163.ui-icon-locked { background-position: -192px -96px; }
     164.ui-icon-unlocked { background-position: -208px -96px; }
     165.ui-icon-bookmark { background-position: -224px -96px; }
     166.ui-icon-tag { background-position: -240px -96px; }
     167.ui-icon-home { background-position: 0 -112px; }
     168.ui-icon-flag { background-position: -16px -112px; }
     169.ui-icon-calendar { background-position: -32px -112px; }
     170.ui-icon-cart { background-position: -48px -112px; }
     171.ui-icon-pencil { background-position: -64px -112px; }
     172.ui-icon-clock { background-position: -80px -112px; }
     173.ui-icon-disk { background-position: -96px -112px; }
     174.ui-icon-calculator { background-position: -112px -112px; }
     175.ui-icon-zoomin { background-position: -128px -112px; }
     176.ui-icon-zoomout { background-position: -144px -112px; }
     177.ui-icon-search { background-position: -160px -112px; }
     178.ui-icon-wrench { background-position: -176px -112px; }
     179.ui-icon-gear { background-position: -192px -112px; }
     180.ui-icon-heart { background-position: -208px -112px; }
     181.ui-icon-star { background-position: -224px -112px; }
     182.ui-icon-link { background-position: -240px -112px; }
     183.ui-icon-cancel { background-position: 0 -128px; }
     184.ui-icon-plus { background-position: -16px -128px; }
     185.ui-icon-plusthick { background-position: -32px -128px; }
     186.ui-icon-minus { background-position: -48px -128px; }
     187.ui-icon-minusthick { background-position: -64px -128px; }
     188.ui-icon-close { background-position: -80px -128px; }
     189.ui-icon-closethick { background-position: -96px -128px; }
     190.ui-icon-key { background-position: -112px -128px; }
     191.ui-icon-lightbulb { background-position: -128px -128px; }
     192.ui-icon-scissors { background-position: -144px -128px; }
     193.ui-icon-clipboard { background-position: -160px -128px; }
     194.ui-icon-copy { background-position: -176px -128px; }
     195.ui-icon-contact { background-position: -192px -128px; }
     196.ui-icon-image { background-position: -208px -128px; }
     197.ui-icon-video { background-position: -224px -128px; }
     198.ui-icon-script { background-position: -240px -128px; }
     199.ui-icon-alert { background-position: 0 -144px; }
     200.ui-icon-info { background-position: -16px -144px; }
     201.ui-icon-notice { background-position: -32px -144px; }
     202.ui-icon-help { background-position: -48px -144px; }
     203.ui-icon-check { background-position: -64px -144px; }
     204.ui-icon-bullet { background-position: -80px -144px; }
     205.ui-icon-radio-off { background-position: -96px -144px; }
     206.ui-icon-radio-on { background-position: -112px -144px; }
     207.ui-icon-pin-w { background-position: -128px -144px; }
     208.ui-icon-pin-s { background-position: -144px -144px; }
     209.ui-icon-play { background-position: 0 -160px; }
     210.ui-icon-pause { background-position: -16px -160px; }
     211.ui-icon-seek-next { background-position: -32px -160px; }
     212.ui-icon-seek-prev { background-position: -48px -160px; }
     213.ui-icon-seek-end { background-position: -64px -160px; }
     214.ui-icon-seek-first { background-position: -80px -160px; }
     215.ui-icon-stop { background-position: -96px -160px; }
     216.ui-icon-eject { background-position: -112px -160px; }
     217.ui-icon-volume-off { background-position: -128px -160px; }
     218.ui-icon-volume-on { background-position: -144px -160px; }
     219.ui-icon-power { background-position: 0 -176px; }
     220.ui-icon-signal-diag { background-position: -16px -176px; }
     221.ui-icon-signal { background-position: -32px -176px; }
     222.ui-icon-battery-0 { background-position: -48px -176px; }
     223.ui-icon-battery-1 { background-position: -64px -176px; }
     224.ui-icon-battery-2 { background-position: -80px -176px; }
     225.ui-icon-battery-3 { background-position: -96px -176px; }
     226.ui-icon-circle-plus { background-position: 0 -192px; }
     227.ui-icon-circle-minus { background-position: -16px -192px; }
     228.ui-icon-circle-close { background-position: -32px -192px; }
     229.ui-icon-circle-triangle-e { background-position: -48px -192px; }
     230.ui-icon-circle-triangle-s { background-position: -64px -192px; }
     231.ui-icon-circle-triangle-w { background-position: -80px -192px; }
     232.ui-icon-circle-triangle-n { background-position: -96px -192px; }
     233.ui-icon-circle-arrow-e { background-position: -112px -192px; }
     234.ui-icon-circle-arrow-s { background-position: -128px -192px; }
     235.ui-icon-circle-arrow-w { background-position: -144px -192px; }
     236.ui-icon-circle-arrow-n { background-position: -160px -192px; }
     237.ui-icon-circle-zoomin { background-position: -176px -192px; }
     238.ui-icon-circle-zoomout { background-position: -192px -192px; }
     239.ui-icon-circle-check { background-position: -208px -192px; }
     240.ui-icon-circlesmall-plus { background-position: 0 -208px; }
     241.ui-icon-circlesmall-minus { background-position: -16px -208px; }
     242.ui-icon-circlesmall-close { background-position: -32px -208px; }
     243.ui-icon-squaresmall-plus { background-position: -48px -208px; }
     244.ui-icon-squaresmall-minus { background-position: -64px -208px; }
     245.ui-icon-squaresmall-close { background-position: -80px -208px; }
     246.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
     247.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
     248.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
     249.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
     250.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
     251.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
     252
     253.achtung .achtung-message-icon {
     254        margin-top: 0px;
     255        margin-left: -.5em;
     256        margin-right: .5em;
     257    float: left;
     258        zoom: 1;
     259}
     260
     261.achtung .ui-icon.achtung-close-button {
     262    overflow: hidden;
     263    float: right;
     264    position: relative;
     265    top: -8px;
     266    right: -8px;
     267    cursor: pointer;
     268    background-image: url(images/ui-icons_cccccc_256x240.png);
     269}
     270
     271.achtung .ui-icon.achtung-close-button-hover {
     272    background-image: url(images/ui-icons_ffffff_256x240.png);
     273}
     274
     275/* Slightly darker for these colors (readability) */
     276.achtungSuccess, .achtungFail, .achtungWait {
     277    /* Note that if using show/hide animations, IE will lose
     278       this setting */
     279    opacity: .93; filter:Alpha(Opacity=93);
     280}
     281
     282.achtungSuccess {
     283        background-color: #4DB559;
     284}
     285
     286.achtungFail {
     287        background-color: #D64450;
     288}
     289
     290.achtungWait {
     291        background-color: #658093;
     292}
     293
     294.achtungSuccess .ui-icon.achtung-close-button,
     295.achtungFail .ui-icon.achtung-close-button {
     296    background-image: url(images/ui-icons_444444_256x240.png);
     297}
     298
     299.achtungSuccess .ui-icon.achtung-close-button-hover,
     300.achtungFail .ui-icon.achtung-close-button-hover {
     301    background-image: url(images/ui-icons_000000_256x240.png);
     302}
     303
     304.achtung .wait-icon {
     305    background-image: url('images/wait.gif');
     306}
     307
     308.achtung .achtung-message {
     309    display: inline;
     310}
  • new file sagenb/data/jquery/plugins/achtung/ui.achtung.js

    diff --git a/sagenb/data/jquery/plugins/achtung/ui.achtung.js b/sagenb/data/jquery/plugins/achtung/ui.achtung.js
    new file mode 100644
    - +  
     1/**
     2 * achtung 0.3.0
     3 *
     4 * Growl-like notifications for jQuery
     5 *
     6 * Copyright (c) 2009 Josh Varner <josh@voxwerk.com>
     7 *
     8 * Permission is hereby granted, free of charge, to any person obtaining a copy
     9 * of this software and associated documentation files (the "Software"), to deal
     10 * in the Software without restriction, including without limitation the rights
     11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     12 * copies of the Software, and to permit persons to whom the Software is
     13 * furnished to do so, subject to the following conditions:
     14 *
     15 * The above copyright notice and this permission notice shall be included in
     16 * all copies or substantial portions of the Software.
     17 *
     18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     24 * THE SOFTWARE.
     25 *
     26 * @license http://www.opensource.org/licenses/mit-license.php
     27 * @author Josh Varner <josh@voxwerk.com>
     28 */
     29
     30/*globals jQuery,clearTimeout,document,navigator,setTimeout
     31*/
     32(function($) {
     33
     34/**
     35 * This is based on the jQuery UI $.widget code. I would have just made this
     36 * a $.widget but I didn't want the jQuery UI dependency.
     37 */
     38$.fn.achtung = function(options)
     39{
     40        var isMethodCall = (typeof options === 'string'),
     41                args = Array.prototype.slice.call(arguments, 0),
     42                name = 'achtung';
     43
     44        // handle initialization and non-getter methods
     45        return this.each(function() {
     46                var instance = $.data(this, name);
     47
     48                // prevent calls to internal methods
     49                if (isMethodCall && options.substring(0, 1) === '_') {
     50                        return this;
     51                }
     52
     53                // constructor
     54                (!instance && !isMethodCall &&
     55                        $.data(this, name, new $.achtung(this))._init(args));
     56
     57                // method call
     58                (instance && isMethodCall && $.isFunction(instance[options]) &&
     59                        instance[options].apply(instance, args.slice(1)));
     60        });
     61};
     62
     63$.achtung = function(element)
     64{
     65    var args = Array.prototype.slice.call(arguments, 0), $el;
     66
     67    if (!element || !element.nodeType) {
     68        $el = $('<div />');
     69        return $el.achtung.apply($el, args);
     70    }
     71   
     72    this.$container = $(element);
     73};
     74
     75
     76/**
     77 * Static members
     78 **/
     79$.extend($.achtung, {
     80    version: '0.3.0',
     81    $overlay: false,
     82    defaults: {
     83        timeout: 10,
     84        disableClose: false,
     85        icon: false,
     86        className: '',
     87        animateClassSwitch: false,
     88        showEffects: {'opacity':'toggle','height':'toggle'},
     89        hideEffects: {'opacity':'toggle','height':'toggle'},
     90        showEffectDuration: 500,
     91        hideEffectDuration: 700
     92    }
     93});
     94
     95/**
     96 * Non-static members
     97 **/
     98$.extend($.achtung.prototype, {
     99    $container: false,
     100    closeTimer: false,
     101    options: {},
     102   
     103    _init: function(args)
     104    {
     105        var o, self = this;
     106
     107        args = $.isArray(args) ? args : [];
     108
     109       
     110        args.unshift($.achtung.defaults);
     111        args.unshift({});
     112
     113        o = this.options = $.extend.apply($, args);
     114
     115        if (!$.achtung.$overlay) {
     116            $.achtung.$overlay = $('<div id="achtung-overlay"></div>').appendTo(document.body);
     117        }
     118
     119        if (!o.disableClose) {
     120            $('<span class="achtung-close-button ui-icon ui-icon-close" />')
     121                .click(function () {  self.close();  })
     122                .hover(function () { $(this).addClass('achtung-close-button-hover'); },
     123                       function () { $(this).removeClass('achtung-close-button-hover'); })
     124                .prependTo(this.$container);
     125        }
     126
     127        this.changeIcon(o.icon, true);
     128
     129        if (o.message) {
     130            this.$container.append($('<span class="achtung-message">' + o.message + '</span>'));
     131        }
     132
     133        (o.className && this.$container.addClass(o.className));
     134        (o.css && this.$container.css(o.css));
     135
     136        this.$container
     137            .addClass('achtung')
     138            .appendTo($.achtung.$overlay);
     139
     140        if (o.showEffects) {
     141            this.$container.animate(o.showEffects, o.showEffectDuration);
     142        } else {
     143            this.$container.show();
     144        }
     145
     146        if (o.timeout > 0) {
     147            this.timeout(o.timeout);
     148        }
     149    },
     150   
     151    timeout: function(timeout)
     152    {
     153        var self = this;
     154
     155        if (this.closeTimer) {
     156            clearTimeout(this.closeTimer);
     157        }
     158
     159        this.closeTimer = setTimeout(function() { self.close(); }, timeout * 1000);
     160        this.options.timeout = timeout;
     161    },
     162
     163    /**
     164     * Change the CSS class associated with this message, using
     165     * a transition if available (not availble in Safari/Webkit).
     166     * If no transition is available, the switch is immediate.
     167     *
     168     * #LATER Check if this has been corrected in Webkit or jQuery UI
     169     * #TODO Make transition time configurable
     170     * @param newClass string Name of new class to associate
     171     */
     172    changeClass: function(newClass)
     173    {
     174        var self = this;
     175
     176        if (this.options.className === newClass) {
     177            return;
     178        }
     179
     180        this.$container.queue(function() {
     181            if (!self.options.animateClassSwitch ||
     182                /webkit/.test(navigator.userAgent.toLowerCase()) ||
     183                !$.isFunction($.fn.switchClass)) {
     184                self.$container.removeClass(self.options.className);
     185                self.$container.addClass(newClass);
     186            } else {
     187                self.$container.switchClass(self.options.className, newClass, 500);
     188            }
     189
     190            self.options.className = newClass;
     191            self.$container.dequeue();
     192        });
     193    },
     194
     195    changeIcon: function(newIcon, force)
     196    {
     197        var self = this;
     198
     199        if ((force !== true || newIcon === false) && this.options.icon === newIcon) {
     200            return;
     201        }
     202
     203        if (force || this.options.icon === false) {
     204            this.$container.prepend($('<span class="achtung-message-icon ui-icon ' + newIcon + '" />'));
     205            this.options.icon = newIcon;
     206            return;
     207        } else if (newIcon === false) {
     208            this.$container.find('.achtung-message-icon').remove();
     209            this.options.icon = false;
     210            return;
     211        }
     212
     213        this.$container.queue(function() {
     214            var $span = $('.achtung-message-icon', self.$container);
     215
     216            if (!self.options.animateClassSwitch ||
     217                /webkit/.test(navigator.userAgent.toLowerCase()) ||
     218                !$.isFunction($.fn.switchClass)) {
     219                $span.removeClass(self.options.icon);
     220                $span.addClass(newIcon);
     221            } else {
     222                $span.switchClass(self.options.icon, newIcon, 500);
     223            }
     224
     225            self.options.icon = newIcon;
     226            self.$container.dequeue();
     227        });
     228    },
     229
     230
     231    changeMessage: function(newMessage)
     232    {
     233        this.$container.queue(function() {
     234            $('.achtung-message', $(this)).html(newMessage);
     235            $(this).dequeue();
     236        });
     237    },
     238
     239
     240    update: function(options)
     241    {
     242        (options.className && this.changeClass(options.className));
     243        (options.css && this.$container.css(options.css));
     244        (typeof(options.icon) !== 'undefined' && this.changeIcon(options.icon));
     245        (options.message && this.changeMessage(options.message));
     246        (options.timeout && this.timeout(options.timeout));
     247    },
     248
     249    close: function()
     250    {
     251        var o = this.options, $container = this.$container;
     252
     253        if (o.hideEffects) {
     254            this.$container.animate(o.hideEffects, o.hideEffectDuration);
     255        } else {
     256            this.$container.hide();
     257        }
     258
     259        $container.queue(function() {
     260            $container.removeData('achtung');
     261            $container.remove();
     262           
     263            if ($.achtung.$overlay && $.achtung.$overlay.is(':empty')) {
     264                $.achtung.$overlay.remove();
     265                $.achtung.$overlay = false;
     266            }
     267           
     268            $container.dequeue();
     269        });
     270    }
     271});
     272
     273})(jQuery);
     274 No newline at end of file
  • new file sagenb/data/jquery/plugins/achtung/version.txt

    diff --git a/sagenb/data/jquery/plugins/achtung/version.txt b/sagenb/data/jquery/plugins/achtung/version.txt
    new file mode 100644
    - +  
     10.3.0
     2 No newline at end of file
  • sagenb/data/sage/css/main.css

    diff --git a/sagenb/data/sage/css/main.css b/sagenb/data/sage/css/main.css
    a b div.docstring-introspection-dialog { fon 
    143143.docstring .click-message { font-size: 0.75em; float: right; clear: both; }
    144144.docstring .unprinted-note { float: right; clear: both; font-size: 0.6em; }
    145145
     146.worksheet-online .interrupt-fail-notification { background-color: #B22222; }
     147
    146148span.pane div.worksheets_topbar { color: black; height: 3ex; top: 0ex; background: url('/images/corner.png') no-repeat top left; background-color: #ccc; text-decoration: none; font-size: 15px; padding-left: 10px; padding-top: 10px; width: 174px; }
    147149
    148150a.left_panel_hide { position: relative; top: 0px; right: -1px; text-align: right; color: blue; font-weight: normal; font-size: 12px; }
    span.pingdown { font-family: sans-serif; 
    575577.vc, .vg, .vi { color: #bb60d5; }
    576578
    577579.il { color: #208050; }
     580
     581* html #achtung-overlay { position: absolute; }
     582* html .achtung { width: 280px; }
     583
     584#achtung-overlay { overflow: hidden; position: fixed; top: 15px; right: 15px; width: 280px; z-index: 50; }
     585
     586.achtung { display: none; margin-bottom: 8px; padding: 15px 15px; background-color: #000; color: white; width: 250px; font-weight: bold; position: relative; overflow: hidden; -moz-box-shadow: #aaa 1px 1px 2px; -webkit-box-shadow: #aaa 1px 1px 2px; box-shadow: #aaa 1px 1px 2px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; opacity: .85; filter: Alpha(Opacity=85); }
     587
     588.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; width: 16px; height: 16px; background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_222222_256x240.png); }
     589
     590.ui-icon-carat-1-n { background-position: 0 0; }
     591
     592.ui-icon-carat-1-ne { background-position: -16px 0; }
     593
     594.ui-icon-carat-1-e { background-position: -32px 0; }
     595
     596.ui-icon-carat-1-se { background-position: -48px 0; }
     597
     598.ui-icon-carat-1-s { background-position: -64px 0; }
     599
     600.ui-icon-carat-1-sw { background-position: -80px 0; }
     601
     602.ui-icon-carat-1-w { background-position: -96px 0; }
     603
     604.ui-icon-carat-1-nw { background-position: -112px 0; }
     605
     606.ui-icon-carat-2-n-s { background-position: -128px 0; }
     607
     608.ui-icon-carat-2-e-w { background-position: -144px 0; }
     609
     610.ui-icon-triangle-1-n { background-position: 0 -16px; }
     611
     612.ui-icon-triangle-1-ne { background-position: -16px -16px; }
     613
     614.ui-icon-triangle-1-e { background-position: -32px -16px; }
     615
     616.ui-icon-triangle-1-se { background-position: -48px -16px; }
     617
     618.ui-icon-triangle-1-s { background-position: -64px -16px; }
     619
     620.ui-icon-triangle-1-sw { background-position: -80px -16px; }
     621
     622.ui-icon-triangle-1-w { background-position: -96px -16px; }
     623
     624.ui-icon-triangle-1-nw { background-position: -112px -16px; }
     625
     626.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
     627
     628.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
     629
     630.ui-icon-arrow-1-n { background-position: 0 -32px; }
     631
     632.ui-icon-arrow-1-ne { background-position: -16px -32px; }
     633
     634.ui-icon-arrow-1-e { background-position: -32px -32px; }
     635
     636.ui-icon-arrow-1-se { background-position: -48px -32px; }
     637
     638.ui-icon-arrow-1-s { background-position: -64px -32px; }
     639
     640.ui-icon-arrow-1-sw { background-position: -80px -32px; }
     641
     642.ui-icon-arrow-1-w { background-position: -96px -32px; }
     643
     644.ui-icon-arrow-1-nw { background-position: -112px -32px; }
     645
     646.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
     647
     648.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
     649
     650.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
     651
     652.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
     653
     654.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
     655
     656.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
     657
     658.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
     659
     660.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
     661
     662.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
     663
     664.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
     665
     666.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
     667
     668.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
     669
     670.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
     671
     672.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
     673
     674.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
     675
     676.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
     677
     678.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
     679
     680.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
     681
     682.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
     683
     684.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
     685
     686.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
     687
     688.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
     689
     690.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
     691
     692.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
     693
     694.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
     695
     696.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
     697
     698.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
     699
     700.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
     701
     702.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
     703
     704.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
     705
     706.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
     707
     708.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
     709
     710.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
     711
     712.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
     713
     714.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
     715
     716.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
     717
     718.ui-icon-arrow-4 { background-position: 0 -80px; }
     719
     720.ui-icon-arrow-4-diag { background-position: -16px -80px; }
     721
     722.ui-icon-extlink { background-position: -32px -80px; }
     723
     724.ui-icon-newwin { background-position: -48px -80px; }
     725
     726.ui-icon-refresh { background-position: -64px -80px; }
     727
     728.ui-icon-shuffle { background-position: -80px -80px; }
     729
     730.ui-icon-transfer-e-w { background-position: -96px -80px; }
     731
     732.ui-icon-transferthick-e-w { background-position: -112px -80px; }
     733
     734.ui-icon-folder-collapsed { background-position: 0 -96px; }
     735
     736.ui-icon-folder-open { background-position: -16px -96px; }
     737
     738.ui-icon-document { background-position: -32px -96px; }
     739
     740.ui-icon-document-b { background-position: -48px -96px; }
     741
     742.ui-icon-note { background-position: -64px -96px; }
     743
     744.ui-icon-mail-closed { background-position: -80px -96px; }
     745
     746.ui-icon-mail-open { background-position: -96px -96px; }
     747
     748.ui-icon-suitcase { background-position: -112px -96px; }
     749
     750.ui-icon-comment { background-position: -128px -96px; }
     751
     752.ui-icon-person { background-position: -144px -96px; }
     753
     754.ui-icon-print { background-position: -160px -96px; }
     755
     756.ui-icon-trash { background-position: -176px -96px; }
     757
     758.ui-icon-locked { background-position: -192px -96px; }
     759
     760.ui-icon-unlocked { background-position: -208px -96px; }
     761
     762.ui-icon-bookmark { background-position: -224px -96px; }
     763
     764.ui-icon-tag { background-position: -240px -96px; }
     765
     766.ui-icon-home { background-position: 0 -112px; }
     767
     768.ui-icon-flag { background-position: -16px -112px; }
     769
     770.ui-icon-calendar { background-position: -32px -112px; }
     771
     772.ui-icon-cart { background-position: -48px -112px; }
     773
     774.ui-icon-pencil { background-position: -64px -112px; }
     775
     776.ui-icon-clock { background-position: -80px -112px; }
     777
     778.ui-icon-disk { background-position: -96px -112px; }
     779
     780.ui-icon-calculator { background-position: -112px -112px; }
     781
     782.ui-icon-zoomin { background-position: -128px -112px; }
     783
     784.ui-icon-zoomout { background-position: -144px -112px; }
     785
     786.ui-icon-search { background-position: -160px -112px; }
     787
     788.ui-icon-wrench { background-position: -176px -112px; }
     789
     790.ui-icon-gear { background-position: -192px -112px; }
     791
     792.ui-icon-heart { background-position: -208px -112px; }
     793
     794.ui-icon-star { background-position: -224px -112px; }
     795
     796.ui-icon-link { background-position: -240px -112px; }
     797
     798.ui-icon-cancel { background-position: 0 -128px; }
     799
     800.ui-icon-plus { background-position: -16px -128px; }
     801
     802.ui-icon-plusthick { background-position: -32px -128px; }
     803
     804.ui-icon-minus { background-position: -48px -128px; }
     805
     806.ui-icon-minusthick { background-position: -64px -128px; }
     807
     808.ui-icon-close { background-position: -80px -128px; }
     809
     810.ui-icon-closethick { background-position: -96px -128px; }
     811
     812.ui-icon-key { background-position: -112px -128px; }
     813
     814.ui-icon-lightbulb { background-position: -128px -128px; }
     815
     816.ui-icon-scissors { background-position: -144px -128px; }
     817
     818.ui-icon-clipboard { background-position: -160px -128px; }
     819
     820.ui-icon-copy { background-position: -176px -128px; }
     821
     822.ui-icon-contact { background-position: -192px -128px; }
     823
     824.ui-icon-image { background-position: -208px -128px; }
     825
     826.ui-icon-video { background-position: -224px -128px; }
     827
     828.ui-icon-script { background-position: -240px -128px; }
     829
     830.ui-icon-alert { background-position: 0 -144px; }
     831
     832.ui-icon-info { background-position: -16px -144px; }
     833
     834.ui-icon-notice { background-position: -32px -144px; }
     835
     836.ui-icon-help { background-position: -48px -144px; }
     837
     838.ui-icon-check { background-position: -64px -144px; }
     839
     840.ui-icon-bullet { background-position: -80px -144px; }
     841
     842.ui-icon-radio-off { background-position: -96px -144px; }
     843
     844.ui-icon-radio-on { background-position: -112px -144px; }
     845
     846.ui-icon-pin-w { background-position: -128px -144px; }
     847
     848.ui-icon-pin-s { background-position: -144px -144px; }
     849
     850.ui-icon-play { background-position: 0 -160px; }
     851
     852.ui-icon-pause { background-position: -16px -160px; }
     853
     854.ui-icon-seek-next { background-position: -32px -160px; }
     855
     856.ui-icon-seek-prev { background-position: -48px -160px; }
     857
     858.ui-icon-seek-end { background-position: -64px -160px; }
     859
     860.ui-icon-seek-first { background-position: -80px -160px; }
     861
     862.ui-icon-stop { background-position: -96px -160px; }
     863
     864.ui-icon-eject { background-position: -112px -160px; }
     865
     866.ui-icon-volume-off { background-position: -128px -160px; }
     867
     868.ui-icon-volume-on { background-position: -144px -160px; }
     869
     870.ui-icon-power { background-position: 0 -176px; }
     871
     872.ui-icon-signal-diag { background-position: -16px -176px; }
     873
     874.ui-icon-signal { background-position: -32px -176px; }
     875
     876.ui-icon-battery-0 { background-position: -48px -176px; }
     877
     878.ui-icon-battery-1 { background-position: -64px -176px; }
     879
     880.ui-icon-battery-2 { background-position: -80px -176px; }
     881
     882.ui-icon-battery-3 { background-position: -96px -176px; }
     883
     884.ui-icon-circle-plus { background-position: 0 -192px; }
     885
     886.ui-icon-circle-minus { background-position: -16px -192px; }
     887
     888.ui-icon-circle-close { background-position: -32px -192px; }
     889
     890.ui-icon-circle-triangle-e { background-position: -48px -192px; }
     891
     892.ui-icon-circle-triangle-s { background-position: -64px -192px; }
     893
     894.ui-icon-circle-triangle-w { background-position: -80px -192px; }
     895
     896.ui-icon-circle-triangle-n { background-position: -96px -192px; }
     897
     898.ui-icon-circle-arrow-e { background-position: -112px -192px; }
     899
     900.ui-icon-circle-arrow-s { background-position: -128px -192px; }
     901
     902.ui-icon-circle-arrow-w { background-position: -144px -192px; }
     903
     904.ui-icon-circle-arrow-n { background-position: -160px -192px; }
     905
     906.ui-icon-circle-zoomin { background-position: -176px -192px; }
     907
     908.ui-icon-circle-zoomout { background-position: -192px -192px; }
     909
     910.ui-icon-circle-check { background-position: -208px -192px; }
     911
     912.ui-icon-circlesmall-plus { background-position: 0 -208px; }
     913
     914.ui-icon-circlesmall-minus { background-position: -16px -208px; }
     915
     916.ui-icon-circlesmall-close { background-position: -32px -208px; }
     917
     918.ui-icon-squaresmall-plus { background-position: -48px -208px; }
     919
     920.ui-icon-squaresmall-minus { background-position: -64px -208px; }
     921
     922.ui-icon-squaresmall-close { background-position: -80px -208px; }
     923
     924.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
     925
     926.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
     927
     928.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
     929
     930.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
     931
     932.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
     933
     934.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
     935
     936.achtung .achtung-message-icon { margin-top: 0; margin-left: -.5em; margin-right: .5em; float: left; zoom: 1; }
     937.achtung .ui-icon.achtung-close-button { overflow: hidden; float: right; position: relative; top: -8px; right: -8px; cursor: pointer; background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_888888_256x240.png); }
     938.achtung .ui-icon.achtung-close-button-hover { background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_ffffff_256x240.png); }
     939
     940.achtungSuccess, .achtungFail, .achtungWait { opacity: .93; filter: Alpha(Opacity=93); }
     941
     942.achtungSuccess { background-color: #4DB559; }
     943
     944.achtungFail { background-color: #D64450; }
     945
     946.achtungWait { background-color: #658093; }
     947
     948.achtungSuccess .ui-icon.achtung-close-button, .achtungFail .ui-icon.achtung-close-button { background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_2e83ff_256x240.png); }
     949
     950.achtungSuccess .ui-icon.achtung-close-button-hover, .achtungFail .ui-icon.achtung-close-button-hover { background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_222222_256x240.png); }
     951
     952.achtung .wait-icon { background-image: url(/javascript/jqueryui/css/sage/images/wait.gif); }
     953.achtung .achtung-message { display: inline; }
  • sagenb/data/sage/html/notebook/base.html

    diff --git a/sagenb/data/sage/html/notebook/base.html b/sagenb/data/sage/html/notebook/base.html
    a b INPUT: 
    1818<link rel="stylesheet" href="/javascript/jqueryui/css/sage/jquery-ui-1.7.2.custom.css" />
    1919<script type="text/javascript" src="/javascript/jqueryui/js/jquery-ui-1.7.2.custom.min.js"></script>
    2020
    21 <!-- jQuery plugins - color pickers, shift-click, AJAX forms, IE fixes -->
     21<!-- jQuery plugins - color pickers, shift-click, AJAX forms, IE fixes, notifications -->
    2222<link rel="stylesheet" href="/javascript/jquery/plugins/farbtastic/farbtastic.css" type="text/css" />
    2323<script type="text/javascript" src="/javascript/jquery/plugins/farbtastic/farbtastic.min.js"></script>
    2424<script type="text/javascript" src="/javascript/jquery/plugins/extendedclick/jquery.event.extendedclick.min.js"></script>
    INPUT: 
    2828<script type="text/javascript" src="/javascript/jquery/plugins/jpicker/jpicker-1.0.11.min.js"></script>
    2929<link rel="stylesheet" media="screen" type="text/css" href="/javascript/jquery/plugins/colorpicker/css/colorpicker.css" />
    3030<script type="text/javascript" src="/javascript/jquery/plugins/colorpicker/js/colorpicker.min.js"></script>
     31<script type="text/javascript" src="/javascript/jquery/plugins/achtung/ui.achtung-mod.min.js"></script>
    3132
    3233<script type="text/javascript" src="/javascript/sage/main.js"></script>
    3334
  • sagenb/data/sage/js/notebook_lib.js

    diff --git a/sagenb/data/sage/js/notebook_lib.js b/sagenb/data/sage/js/notebook_lib.js
    a b var debug_keypress; 
    8383var skip_keyup = false;
    8484var in_debug_input = false;
    8585
     86// Interrupts.
     87var interrupt_state = {count: 0};
     88
    8689// Focus / blur.
    8790var current_cell = -1;
    8891var cell_has_changed = false;
    function cancel_update_check() { 
    35143517    updating = false;
    35153518    clearTimeout(update_timeout);
    35163519    document.title = original_title;
     3520    reset_interrupts();
    35173521}
    35183522
    35193523
    function interrupt() { 
    43284332    Send a message to the server that we would like to interrupt all
    43294333    running calculations in the worksheet.
    43304334    */
     4335    if (!updating) {
     4336        return;
     4337    }
    43314338    async_request(worksheet_command('interrupt'), interrupt_callback);
    43324339}
    43334340
    43344341
     4342function reset_interrupts() {
     4343    /*
     4344    Stops sending periodic interrupt commands, closes any running
     4345    alerts, and resets state variables.
     4346    */
     4347    var is = interrupt_state;
     4348
     4349    if (is.alert) {
     4350        is.alert.achtung('close');
     4351    }
     4352    is.alert = null;
     4353    is.count = 0;
     4354}
     4355
     4356
    43354357function interrupt_callback(status, response_text) {
    43364358    /*
    43374359    Callback called after we send the interrupt signal to the server.
    43384360    If the interrupt succeeds, we change the CSS/DOM to indicate that
    4339     no cells are currently computing.  If it fails, we display an
    4340     annoying alert (it might be a good idea to change this, e.g., to
    4341     blink red or something instead of an alert).
     4361    no cells are currently computing.  If it fails, we display/update
     4362    a alert and repeat after a timeout.  If the signal doesn't make
     4363    it, we just reset any alerts.
    43424364    */
    4343     if (response_text === "failed") {
    4344         alert('Unable to immediately interrupt calculation.');
    4345         return;
    4346     } else if (status === "success") {
     4365    var is = interrupt_state, message, timeout = 5;
     4366
     4367    if (response_text === 'failed') {
     4368        if (!is.count) {
     4369            is.count = 1;
     4370            message = 'Unable to interrupt calculation. ' +
     4371                'Trying again in ' + timeout + ' seconds... ' +
     4372                'Close this box to stop trying.';
     4373
     4374            is.alert = $.achtung({
     4375                className: 'interrupt-fail-notification',
     4376                message: message,
     4377                timeout: timeout,
     4378                hideEffects: false,
     4379                showEffects: false,
     4380                onCloseButton: function () {
     4381                    reset_interrupts();
     4382                },
     4383                onTimeout: function () {
     4384                    interrupt();
     4385                }
     4386            });
     4387            return;
     4388        }
     4389
     4390        is.count += 1;
     4391        message = 'Interrupt attempt ' + is.count;
     4392        if (is.count > 5) {
     4393            message += '. <a href="javascript:restart_sage();">Restart</a>, instead?';
     4394        }
     4395        is.alert.achtung('update', {
     4396            message: message,
     4397            timeout: timeout
     4398        });
     4399    } else if (status === 'success') {
     4400        // halt_active_cells calls reset_interrupts.
    43474401        halt_active_cells();
     4402    } else {
     4403        reset_interrupts();
    43484404    }
    43494405}
    43504406
    function halt_active_cells() { 
    44544510        cell_set_not_evaluated(active_cell_list[i]);
    44554511    }
    44564512    active_cell_list = [];
     4513
     4514    reset_interrupts();
    44574515}
    44584516
    44594517
  • sagenb/notebook/run_notebook.py

    diff --git a/sagenb/notebook/run_notebook.py b/sagenb/notebook/run_notebook.py
    a b twist.notebook = notebook.load_notebook( 
    282282twist.SAGETEX_PATH = "%s"
    283283twist.OPEN_MODE = %s
    284284twist.SID_COOKIE = str(hash("%s"))
     285twist.reactor = reactor
    285286twist.init_updates()
    286287import sagenb.notebook.worksheet as worksheet
    287288
  • sagenb/notebook/twist.py

    diff --git a/sagenb/notebook/twist.py b/sagenb/notebook/twist.py
    a b startup.:: 
    2828notebook   = None
    2929OPEN_MODE  = None
    3030SID_COOKIE = None
     31reactor    = None
    3132
    3233############################################################
    3334
    class Worksheet_quit_sage(WorksheetResou 
    14621463class Worksheet_interrupt(WorksheetResource, resource.Resource):
    14631464    def render(self, ctx):
    14641465        # TODO -- this must not block long (!)
    1465         s = self.worksheet.interrupt()
    1466         return HTMLResponse(stream='ok' if s else 'failed')
     1466        def callback(success):
     1467            """Called when interrupt is successful"""
     1468            return HTMLResponse(stream = 'success' if success else 'failed')
     1469       
     1470        deferred = self.worksheet.interrupt(callback)
     1471        return deferred
    14671472
    14681473class Worksheet_hide_all(WorksheetResource, resource.Resource):
    14691474    def render(self, ctx):
  • sagenb/notebook/worksheet.py

    diff --git a/sagenb/notebook/worksheet.py b/sagenb/notebook/worksheet.py
    a b import string 
    3636import time
    3737import traceback
    3838
     39from twisted.internet.defer import Deferred
     40
    3941# General sage library code
    4042from sagenb.misc.misc import (cython, load, save,
    4143                              alarm, cancel_alarm, verbose, DOT_SAGENB,
    from sagenb.notebook.all import * 
    30673069
    30683070        return 'd', C
    30693071
    3070     def interrupt(self):
     3072    def interrupt(self, callback = None, timeout = 1):
    30713073        r"""
    30723074        Interrupt all currently queued up calculations.
    30733075
     3076        INPUT:
     3077
     3078        - ``timeout`` -- time to wait for interruption to succeed
     3079       
     3080        - ``callback`` -- callback to be called. Called with True if
     3081          interrupt succeeds, else called with False.
     3082       
    30743083        OUTPUT:
    30753084
    3076         -  ``bool`` - return True if no problems interrupting
    3077            calculation return False if the Sage interpreter had to be
    3078            restarted.
     3085        -  ``deferred`` - a Deferred object with the given callbacks and errbacks
    30793086
    30803087        EXAMPLES: We create a worksheet and start a large factorization
    30813088        going::
    from sagenb.notebook.all import * 
    30953102
    30963103        ::
    30973104
    3098             sage: W.interrupt()         # random -- could fail on heavily loaded machine
     3105            sage: W.interrupt()         # not tested -- needs running reactor
    30993106            True
    31003107
    31013108        Now we check and nothing is computing.
    from sagenb.notebook.all import * 
    31183125        # stop the current computation in the running Sage
    31193126        S = self.__sage
    31203127        S.interrupt()
    3121         return True
     3128       
     3129        deferred = Deferred()
     3130        deferred.addCallback(callback)
     3131       
     3132        def interrupt_check():
     3133            if S.is_computing():
     3134                deferred.callback(False)
     3135            else:
     3136                deferred.callback(True)
     3137               
     3138        from twist import reactor
     3139        reactor.callLater(timeout, interrupt_check)
     3140       
     3141        return deferred
    31223142
    31233143    def clear_queue(self):
    31243144        # empty the queue
  • new file sass/src/jquery-plugins/_ui-achtung.sass

    diff --git a/sass/src/jquery-plugins/_ui-achtung.sass b/sass/src/jquery-plugins/_ui-achtung.sass
    new file mode 100644
    - +  
     1* html
     2  #achtung-overlay
     3    position: absolute
     4
     5  .achtung
     6    width: 280px
     7
     8
     9#achtung-overlay
     10  overflow: hidden
     11  position: fixed
     12  top: 15px
     13  right: 15px
     14  width: 280px
     15  z-index: 50
     16
     17
     18.achtung
     19  display: none
     20  margin-bottom: 8px
     21  padding: 15px 15px
     22  background-color: #000
     23  color: white
     24  width: 250px
     25  font-weight: bold
     26  position: relative
     27  overflow: hidden
     28  -moz-box-shadow: #aaa 1px 1px 2px
     29  -webkit-box-shadow: #aaa 1px 1px 2px
     30  box-shadow: #aaa 1px 1px 2px
     31  -moz-border-radius: 4px
     32  -webkit-border-radius: 4px
     33  border-radius: 4px
     34  opacity: .85
     35  filter: Alpha(Opacity=85)
     36
     37
     38.ui-icon
     39  display: block
     40  text-indent: -99999px
     41  overflow: hidden
     42  background-repeat: no-repeat
     43  width: 16px
     44  height: 16px
     45  background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_222222_256x240.png)
     46
     47
     48.ui-icon-carat-1-n
     49  background-position: 0 0
     50
     51
     52.ui-icon-carat-1-ne
     53  background-position: -16px 0
     54
     55
     56.ui-icon-carat-1-e
     57  background-position: -32px 0
     58
     59
     60.ui-icon-carat-1-se
     61  background-position: -48px 0
     62
     63
     64.ui-icon-carat-1-s
     65  background-position: -64px 0
     66
     67
     68.ui-icon-carat-1-sw
     69  background-position: -80px 0
     70
     71
     72.ui-icon-carat-1-w
     73  background-position: -96px 0
     74
     75
     76.ui-icon-carat-1-nw
     77  background-position: -112px 0
     78
     79
     80.ui-icon-carat-2-n-s
     81  background-position: -128px 0
     82
     83
     84.ui-icon-carat-2-e-w
     85  background-position: -144px 0
     86
     87
     88.ui-icon-triangle-1-n
     89  background-position: 0 -16px
     90
     91
     92.ui-icon-triangle-1-ne
     93  background-position: -16px -16px
     94
     95
     96.ui-icon-triangle-1-e
     97  background-position: -32px -16px
     98
     99
     100.ui-icon-triangle-1-se
     101  background-position: -48px -16px
     102
     103
     104.ui-icon-triangle-1-s
     105  background-position: -64px -16px
     106
     107
     108.ui-icon-triangle-1-sw
     109  background-position: -80px -16px
     110
     111
     112.ui-icon-triangle-1-w
     113  background-position: -96px -16px
     114
     115
     116.ui-icon-triangle-1-nw
     117  background-position: -112px -16px
     118
     119
     120.ui-icon-triangle-2-n-s
     121  background-position: -128px -16px
     122
     123
     124.ui-icon-triangle-2-e-w
     125  background-position: -144px -16px
     126
     127
     128.ui-icon-arrow-1-n
     129  background-position: 0 -32px
     130
     131
     132.ui-icon-arrow-1-ne
     133  background-position: -16px -32px
     134
     135
     136.ui-icon-arrow-1-e
     137  background-position: -32px -32px
     138
     139
     140.ui-icon-arrow-1-se
     141  background-position: -48px -32px
     142
     143
     144.ui-icon-arrow-1-s
     145  background-position: -64px -32px
     146
     147
     148.ui-icon-arrow-1-sw
     149  background-position: -80px -32px
     150
     151
     152.ui-icon-arrow-1-w
     153  background-position: -96px -32px
     154
     155
     156.ui-icon-arrow-1-nw
     157  background-position: -112px -32px
     158
     159
     160.ui-icon-arrow-2-n-s
     161  background-position: -128px -32px
     162
     163
     164.ui-icon-arrow-2-ne-sw
     165  background-position: -144px -32px
     166
     167
     168.ui-icon-arrow-2-e-w
     169  background-position: -160px -32px
     170
     171
     172.ui-icon-arrow-2-se-nw
     173  background-position: -176px -32px
     174
     175
     176.ui-icon-arrowstop-1-n
     177  background-position: -192px -32px
     178
     179
     180.ui-icon-arrowstop-1-e
     181  background-position: -208px -32px
     182
     183
     184.ui-icon-arrowstop-1-s
     185  background-position: -224px -32px
     186
     187
     188.ui-icon-arrowstop-1-w
     189  background-position: -240px -32px
     190
     191
     192.ui-icon-arrowthick-1-n
     193  background-position: 0 -48px
     194
     195
     196.ui-icon-arrowthick-1-ne
     197  background-position: -16px -48px
     198
     199
     200.ui-icon-arrowthick-1-e
     201  background-position: -32px -48px
     202
     203
     204.ui-icon-arrowthick-1-se
     205  background-position: -48px -48px
     206
     207
     208.ui-icon-arrowthick-1-s
     209  background-position: -64px -48px
     210
     211
     212.ui-icon-arrowthick-1-sw
     213  background-position: -80px -48px
     214
     215
     216.ui-icon-arrowthick-1-w
     217  background-position: -96px -48px
     218
     219
     220.ui-icon-arrowthick-1-nw
     221  background-position: -112px -48px
     222
     223
     224.ui-icon-arrowthick-2-n-s
     225  background-position: -128px -48px
     226
     227
     228.ui-icon-arrowthick-2-ne-sw
     229  background-position: -144px -48px
     230
     231
     232.ui-icon-arrowthick-2-e-w
     233  background-position: -160px -48px
     234
     235
     236.ui-icon-arrowthick-2-se-nw
     237  background-position: -176px -48px
     238
     239
     240.ui-icon-arrowthickstop-1-n
     241  background-position: -192px -48px
     242
     243
     244.ui-icon-arrowthickstop-1-e
     245  background-position: -208px -48px
     246
     247
     248.ui-icon-arrowthickstop-1-s
     249  background-position: -224px -48px
     250
     251
     252.ui-icon-arrowthickstop-1-w
     253  background-position: -240px -48px
     254
     255
     256.ui-icon-arrowreturnthick-1-w
     257  background-position: 0 -64px
     258
     259
     260.ui-icon-arrowreturnthick-1-n
     261  background-position: -16px -64px
     262
     263
     264.ui-icon-arrowreturnthick-1-e
     265  background-position: -32px -64px
     266
     267
     268.ui-icon-arrowreturnthick-1-s
     269  background-position: -48px -64px
     270
     271
     272.ui-icon-arrowreturn-1-w
     273  background-position: -64px -64px
     274
     275
     276.ui-icon-arrowreturn-1-n
     277  background-position: -80px -64px
     278
     279
     280.ui-icon-arrowreturn-1-e
     281  background-position: -96px -64px
     282
     283
     284.ui-icon-arrowreturn-1-s
     285  background-position: -112px -64px
     286
     287
     288.ui-icon-arrowrefresh-1-w
     289  background-position: -128px -64px
     290
     291
     292.ui-icon-arrowrefresh-1-n
     293  background-position: -144px -64px
     294
     295
     296.ui-icon-arrowrefresh-1-e
     297  background-position: -160px -64px
     298
     299
     300.ui-icon-arrowrefresh-1-s
     301  background-position: -176px -64px
     302
     303
     304.ui-icon-arrow-4
     305  background-position: 0 -80px
     306
     307
     308.ui-icon-arrow-4-diag
     309  background-position: -16px -80px
     310
     311
     312.ui-icon-extlink
     313  background-position: -32px -80px
     314
     315
     316.ui-icon-newwin
     317  background-position: -48px -80px
     318
     319
     320.ui-icon-refresh
     321  background-position: -64px -80px
     322
     323
     324.ui-icon-shuffle
     325  background-position: -80px -80px
     326
     327
     328.ui-icon-transfer-e-w
     329  background-position: -96px -80px
     330
     331
     332.ui-icon-transferthick-e-w
     333  background-position: -112px -80px
     334
     335
     336.ui-icon-folder-collapsed
     337  background-position: 0 -96px
     338
     339
     340.ui-icon-folder-open
     341  background-position: -16px -96px
     342
     343
     344.ui-icon-document
     345  background-position: -32px -96px
     346
     347
     348.ui-icon-document-b
     349  background-position: -48px -96px
     350
     351
     352.ui-icon-note
     353  background-position: -64px -96px
     354
     355
     356.ui-icon-mail-closed
     357  background-position: -80px -96px
     358
     359
     360.ui-icon-mail-open
     361  background-position: -96px -96px
     362
     363
     364.ui-icon-suitcase
     365  background-position: -112px -96px
     366
     367
     368.ui-icon-comment
     369  background-position: -128px -96px
     370
     371
     372.ui-icon-person
     373  background-position: -144px -96px
     374
     375
     376.ui-icon-print
     377  background-position: -160px -96px
     378
     379
     380.ui-icon-trash
     381  background-position: -176px -96px
     382
     383
     384.ui-icon-locked
     385  background-position: -192px -96px
     386
     387
     388.ui-icon-unlocked
     389  background-position: -208px -96px
     390
     391
     392.ui-icon-bookmark
     393  background-position: -224px -96px
     394
     395
     396.ui-icon-tag
     397  background-position: -240px -96px
     398
     399
     400.ui-icon-home
     401  background-position: 0 -112px
     402
     403
     404.ui-icon-flag
     405  background-position: -16px -112px
     406
     407
     408.ui-icon-calendar
     409  background-position: -32px -112px
     410
     411
     412.ui-icon-cart
     413  background-position: -48px -112px
     414
     415
     416.ui-icon-pencil
     417  background-position: -64px -112px
     418
     419
     420.ui-icon-clock
     421  background-position: -80px -112px
     422
     423
     424.ui-icon-disk
     425  background-position: -96px -112px
     426
     427
     428.ui-icon-calculator
     429  background-position: -112px -112px
     430
     431
     432.ui-icon-zoomin
     433  background-position: -128px -112px
     434
     435
     436.ui-icon-zoomout
     437  background-position: -144px -112px
     438
     439
     440.ui-icon-search
     441  background-position: -160px -112px
     442
     443
     444.ui-icon-wrench
     445  background-position: -176px -112px
     446
     447
     448.ui-icon-gear
     449  background-position: -192px -112px
     450
     451
     452.ui-icon-heart
     453  background-position: -208px -112px
     454
     455
     456.ui-icon-star
     457  background-position: -224px -112px
     458
     459
     460.ui-icon-link
     461  background-position: -240px -112px
     462
     463
     464.ui-icon-cancel
     465  background-position: 0 -128px
     466
     467
     468.ui-icon-plus
     469  background-position: -16px -128px
     470
     471
     472.ui-icon-plusthick
     473  background-position: -32px -128px
     474
     475
     476.ui-icon-minus
     477  background-position: -48px -128px
     478
     479
     480.ui-icon-minusthick
     481  background-position: -64px -128px
     482
     483
     484.ui-icon-close
     485  background-position: -80px -128px
     486
     487
     488.ui-icon-closethick
     489  background-position: -96px -128px
     490
     491
     492.ui-icon-key
     493  background-position: -112px -128px
     494
     495
     496.ui-icon-lightbulb
     497  background-position: -128px -128px
     498
     499
     500.ui-icon-scissors
     501  background-position: -144px -128px
     502
     503
     504.ui-icon-clipboard
     505  background-position: -160px -128px
     506
     507
     508.ui-icon-copy
     509  background-position: -176px -128px
     510
     511
     512.ui-icon-contact
     513  background-position: -192px -128px
     514
     515
     516.ui-icon-image
     517  background-position: -208px -128px
     518
     519
     520.ui-icon-video
     521  background-position: -224px -128px
     522
     523
     524.ui-icon-script
     525  background-position: -240px -128px
     526
     527
     528.ui-icon-alert
     529  background-position: 0 -144px
     530
     531
     532.ui-icon-info
     533  background-position: -16px -144px
     534
     535
     536.ui-icon-notice
     537  background-position: -32px -144px
     538
     539
     540.ui-icon-help
     541  background-position: -48px -144px
     542
     543
     544.ui-icon-check
     545  background-position: -64px -144px
     546
     547
     548.ui-icon-bullet
     549  background-position: -80px -144px
     550
     551
     552.ui-icon-radio-off
     553  background-position: -96px -144px
     554
     555
     556.ui-icon-radio-on
     557  background-position: -112px -144px
     558
     559
     560.ui-icon-pin-w
     561  background-position: -128px -144px
     562
     563
     564.ui-icon-pin-s
     565  background-position: -144px -144px
     566
     567
     568.ui-icon-play
     569  background-position: 0 -160px
     570
     571
     572.ui-icon-pause
     573  background-position: -16px -160px
     574
     575
     576.ui-icon-seek-next
     577  background-position: -32px -160px
     578
     579
     580.ui-icon-seek-prev
     581  background-position: -48px -160px
     582
     583
     584.ui-icon-seek-end
     585  background-position: -64px -160px
     586
     587
     588.ui-icon-seek-first
     589  background-position: -80px -160px
     590
     591
     592.ui-icon-stop
     593  background-position: -96px -160px
     594
     595
     596.ui-icon-eject
     597  background-position: -112px -160px
     598
     599
     600.ui-icon-volume-off
     601  background-position: -128px -160px
     602
     603
     604.ui-icon-volume-on
     605  background-position: -144px -160px
     606
     607
     608.ui-icon-power
     609  background-position: 0 -176px
     610
     611
     612.ui-icon-signal-diag
     613  background-position: -16px -176px
     614
     615
     616.ui-icon-signal
     617  background-position: -32px -176px
     618
     619
     620.ui-icon-battery-0
     621  background-position: -48px -176px
     622
     623
     624.ui-icon-battery-1
     625  background-position: -64px -176px
     626
     627
     628.ui-icon-battery-2
     629  background-position: -80px -176px
     630
     631
     632.ui-icon-battery-3
     633  background-position: -96px -176px
     634
     635
     636.ui-icon-circle-plus
     637  background-position: 0 -192px
     638
     639
     640.ui-icon-circle-minus
     641  background-position: -16px -192px
     642
     643
     644.ui-icon-circle-close
     645  background-position: -32px -192px
     646
     647
     648.ui-icon-circle-triangle-e
     649  background-position: -48px -192px
     650
     651
     652.ui-icon-circle-triangle-s
     653  background-position: -64px -192px
     654
     655
     656.ui-icon-circle-triangle-w
     657  background-position: -80px -192px
     658
     659
     660.ui-icon-circle-triangle-n
     661  background-position: -96px -192px
     662
     663
     664.ui-icon-circle-arrow-e
     665  background-position: -112px -192px
     666
     667
     668.ui-icon-circle-arrow-s
     669  background-position: -128px -192px
     670
     671
     672.ui-icon-circle-arrow-w
     673  background-position: -144px -192px
     674
     675
     676.ui-icon-circle-arrow-n
     677  background-position: -160px -192px
     678
     679
     680.ui-icon-circle-zoomin
     681  background-position: -176px -192px
     682
     683
     684.ui-icon-circle-zoomout
     685  background-position: -192px -192px
     686
     687
     688.ui-icon-circle-check
     689  background-position: -208px -192px
     690
     691
     692.ui-icon-circlesmall-plus
     693  background-position: 0 -208px
     694
     695
     696.ui-icon-circlesmall-minus
     697  background-position: -16px -208px
     698
     699
     700.ui-icon-circlesmall-close
     701  background-position: -32px -208px
     702
     703
     704.ui-icon-squaresmall-plus
     705  background-position: -48px -208px
     706
     707
     708.ui-icon-squaresmall-minus
     709  background-position: -64px -208px
     710
     711
     712.ui-icon-squaresmall-close
     713  background-position: -80px -208px
     714
     715
     716.ui-icon-grip-dotted-vertical
     717  background-position: 0 -224px
     718
     719
     720.ui-icon-grip-dotted-horizontal
     721  background-position: -16px -224px
     722
     723
     724.ui-icon-grip-solid-vertical
     725  background-position: -32px -224px
     726
     727
     728.ui-icon-grip-solid-horizontal
     729  background-position: -48px -224px
     730
     731
     732.ui-icon-gripsmall-diagonal-se
     733  background-position: -64px -224px
     734
     735
     736.ui-icon-grip-diagonal-se
     737  background-position: -80px -224px
     738
     739
     740.achtung
     741  .achtung-message-icon
     742    margin-top: 0
     743    margin-left: -.5em
     744    margin-right: .5em
     745    float: left
     746    zoom: 1
     747
     748  .ui-icon
     749    &.achtung-close-button
     750      overflow: hidden
     751      float: right
     752      position: relative
     753      top: -8px
     754      right: -8px
     755      cursor: pointer
     756      background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_888888_256x240.png)
     757
     758    &.achtung-close-button-hover
     759      background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_ffffff_256x240.png)
     760
     761
     762.achtungSuccess, .achtungFail, .achtungWait
     763  opacity: .93
     764  filter: Alpha(Opacity=93)
     765
     766
     767.achtungSuccess
     768  background-color: #4DB559
     769
     770
     771.achtungFail
     772  background-color: #D64450
     773
     774
     775.achtungWait
     776  background-color: #658093
     777
     778
     779.achtungSuccess .ui-icon.achtung-close-button, .achtungFail .ui-icon.achtung-close-button
     780  background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_2e83ff_256x240.png)
     781
     782
     783.achtungSuccess .ui-icon.achtung-close-button-hover, .achtungFail .ui-icon.achtung-close-button-hover
     784  background-image: url(/javascript/jqueryui/css/sage/images/ui-icons_222222_256x240.png)
     785
     786
     787.achtung
     788  .wait-icon
     789    background-image: url(/javascript/jqueryui/css/sage/images/wait.gif)
     790
     791  .achtung-message
     792    display: inline
  • sass/src/main.sass

    diff --git a/sass/src/main.sass b/sass/src/main.sass
    a b div.docstring-introspection-dialog 
    462462    :clear both
    463463    :font-size 0.6em
    464464
     465.worksheet-online .interrupt-fail-notification
     466  :background-color #B22222
     467
    465468span.pane div.worksheets_topbar
    466469  :color black
    467470  :height 3ex
    t 
    11901193@import accounts.sass
    11911194@import login.sass
    11921195@import pygment.sass
     1196@import jquery-plugins/ui-achtung.sass