Browse Source

Updated NOVA_0.4.5 templates. Removed NOVA_0.4.4 templates.

tags/0.6.0
shypike 18 years ago
parent
commit
aa9b64dba0
  1. BIN
      main/NOVA_0.4.4/templates/static/images/icon-history-cleanup.gif
  2. 875
      main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/controls.js
  3. 0
      main/NOVA_0.4.5/LICENCE.TXT
  4. 20
      main/NOVA_0.4.5/README.TXT
  5. 0
      main/NOVA_0.4.5/templates/config.tmpl
  6. 0
      main/NOVA_0.4.5/templates/config_directories.tmpl
  7. 0
      main/NOVA_0.4.5/templates/config_general.tmpl
  8. 0
      main/NOVA_0.4.5/templates/config_rss.tmpl
  9. 0
      main/NOVA_0.4.5/templates/config_scheduling.tmpl
  10. 0
      main/NOVA_0.4.5/templates/config_server.tmpl
  11. 0
      main/NOVA_0.4.5/templates/config_switches.tmpl
  12. 0
      main/NOVA_0.4.5/templates/connection_info.tmpl
  13. 0
      main/NOVA_0.4.5/templates/history.tmpl
  14. 13
      main/NOVA_0.4.5/templates/main.tmpl
  15. 0
      main/NOVA_0.4.5/templates/nzo.tmpl
  16. 0
      main/NOVA_0.4.5/templates/queue.tmpl
  17. 0
      main/NOVA_0.4.5/templates/static/images/bg_dataBar.png
  18. 0
      main/NOVA_0.4.5/templates/static/images/bg_downloaded.png
  19. 0
      main/NOVA_0.4.5/templates/static/images/bg_downloaded_minibar.png
  20. 0
      main/NOVA_0.4.5/templates/static/images/bg_lonelyhearts.png
  21. 0
      main/NOVA_0.4.5/templates/static/images/bg_thead_tr.png
  22. 0
      main/NOVA_0.4.5/templates/static/images/bg_thead_tr_heading.png
  23. 0
      main/NOVA_0.4.5/templates/static/images/bg_thead_tr_orig.png
  24. 0
      main/NOVA_0.4.5/templates/static/images/bg_topBar.png
  25. 0
      main/NOVA_0.4.5/templates/static/images/bg_tr_hover.png
  26. 0
      main/NOVA_0.4.5/templates/static/images/bg_tr_odd.png
  27. BIN
      main/NOVA_0.4.5/templates/static/images/blank.gif
  28. 0
      main/NOVA_0.4.5/templates/static/images/close_grey.png
  29. 0
      main/NOVA_0.4.5/templates/static/images/favicon.ico
  30. 0
      main/NOVA_0.4.5/templates/static/images/icon-blank.png
  31. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-addnzb.png
  32. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-currenthistorysize.png
  33. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-freespacecom.png
  34. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-freespaceinc.png
  35. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-history.png
  36. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-knowndownloaded.png
  37. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-mbleft.png
  38. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-queue.png
  39. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-sidebyside.png
  40. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-speed.png
  41. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-timeleft.png
  42. 0
      main/NOVA_0.4.5/templates/static/images/icon-header-topbottom.png
  43. BIN
      main/NOVA_0.4.5/templates/static/images/icon-history-cleanup.png
  44. 0
      main/NOVA_0.4.5/templates/static/images/icon-history-fucked.png
  45. 0
      main/NOVA_0.4.5/templates/static/images/icon-history-join.png
  46. 0
      main/NOVA_0.4.5/templates/static/images/icon-history-par2.png
  47. 0
      main/NOVA_0.4.5/templates/static/images/icon-history-postprocessing.gif
  48. 0
      main/NOVA_0.4.5/templates/static/images/icon-history-unrar.png
  49. 0
      main/NOVA_0.4.5/templates/static/images/icon-history-unzip.gif
  50. 0
      main/NOVA_0.4.5/templates/static/images/icon-newzbin.png
  51. 0
      main/NOVA_0.4.5/templates/static/images/icon-queue-1downarrow.png
  52. 0
      main/NOVA_0.4.5/templates/static/images/icon-queue-1uparrow.png
  53. 0
      main/NOVA_0.4.5/templates/static/images/icon-queue-2downarrow.png
  54. 0
      main/NOVA_0.4.5/templates/static/images/icon-queue-2uparrow.png
  55. 0
      main/NOVA_0.4.5/templates/static/images/icon-queue-drop.png
  56. 0
      main/NOVA_0.4.5/templates/static/images/icon-queue-order.png
  57. 0
      main/NOVA_0.4.5/templates/static/images/loading.gif
  58. 2
      main/NOVA_0.4.5/templates/static/javascripts/builder.js
  59. 972
      main/NOVA_0.4.5/templates/static/javascripts/controls.js
  60. 66
      main/NOVA_0.4.5/templates/static/javascripts/dragdrop.js
  61. 577
      main/NOVA_0.4.5/templates/static/javascripts/effects.js
  62. 38
      main/NOVA_0.4.5/templates/static/javascripts/lytebox.js
  63. 2
      main/NOVA_0.4.5/templates/static/javascripts/nova.js
  64. 730
      main/NOVA_0.4.5/templates/static/javascripts/prototype.js
  65. 6
      main/NOVA_0.4.5/templates/static/javascripts/scriptaculous.js
  66. 73
      main/NOVA_0.4.5/templates/static/javascripts/slider.js
  67. 17
      main/NOVA_0.4.5/templates/static/javascripts/sound.js
  68. 22
      main/NOVA_0.4.5/templates/static/javascripts/unittest.js
  69. 0
      main/NOVA_0.4.5/templates/static/stylesheets/default.css
  70. 58
      main/NOVA_0.4.5/templates/static/stylesheets/lytebox.css
  71. 0
      main/NOVA_0.4.5/templates/static/stylesheets/nova.css

BIN
main/NOVA_0.4.4/templates/static/images/icon-history-cleanup.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

875
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/controls.js

@ -1,875 +0,0 @@
// script.aculo.us controls.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// (c) 2005-2007 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
// (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
// Contributors:
// Richard Livsey
// Rahul Bhargava
// Rob Wills
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/
// Autocompleter.Base handles all the autocompletion functionality
// that's independent of the data source for autocompletion. This
// includes drawing the autocompletion menu, observing keyboard
// and mouse events, and similar.
//
// Specific autocompleters need to provide, at the very least,
// a getUpdatedChoices function that will be invoked every time
// the text inside the monitored textbox changes. This method
// should get the text for which to provide autocompletion by
// invoking this.getToken(), NOT by directly accessing
// this.element.value. This is to allow incremental tokenized
// autocompletion. Specific auto-completion logic (AJAX, etc)
// belongs in getUpdatedChoices.
//
// Tokenized incremental autocompletion is enabled automatically
// when an autocompleter is instantiated with the 'tokens' option
// in the options parameter, e.g.:
// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
// will incrementally autocomplete with a comma as the token.
// Additionally, ',' in the above example can be replaced with
// a token array, e.g. { tokens: [',', '\n'] } which
// enables autocompletion on multiple tokens. This is most
// useful when one of the tokens is \n (a newline), as it
// allows smart autocompletion after linebreaks.
if(typeof Effect == 'undefined')
throw("controls.js requires including script.aculo.us' effects.js library");
var Autocompleter = {}
Autocompleter.Base = function() {};
Autocompleter.Base.prototype = {
baseInitialize: function(element, update, options) {
element = $(element)
this.element = element;
this.update = $(update);
this.hasFocus = false;
this.changed = false;
this.active = false;
this.index = 0;
this.entryCount = 0;
if(this.setOptions)
this.setOptions(options);
else
this.options = options || {};
this.options.paramName = this.options.paramName || this.element.name;
this.options.tokens = this.options.tokens || [];
this.options.frequency = this.options.frequency || 0.4;
this.options.minChars = this.options.minChars || 1;
this.options.onShow = this.options.onShow ||
function(element, update){
if(!update.style.position || update.style.position=='absolute') {
update.style.position = 'absolute';
Position.clone(element, update, {
setHeight: false,
offsetTop: element.offsetHeight
});
}
Effect.Appear(update,{duration:0.15});
};
this.options.onHide = this.options.onHide ||
function(element, update){ new Effect.Fade(update,{duration:0.15}) };
if(typeof(this.options.tokens) == 'string')
this.options.tokens = new Array(this.options.tokens);
this.observer = null;
this.element.setAttribute('autocomplete','off');
Element.hide(this.update);
Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
Event.observe(this.element, 'keypress', this.onKeyPress.bindAsEventListener(this));
// Turn autocomplete back on when the user leaves the page, so that the
// field's value will be remembered on Mozilla-based browsers.
Event.observe(window, 'beforeunload', function(){
element.setAttribute('autocomplete', 'on');
});
},
show: function() {
if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
if(!this.iefix &&
(Prototype.Browser.IE) &&
(Element.getStyle(this.update, 'position')=='absolute')) {
new Insertion.After(this.update,
'<iframe id="' + this.update.id + '_iefix" '+
'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
this.iefix = $(this.update.id+'_iefix');
}
if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
},
fixIEOverlapping: function() {
Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
this.iefix.style.zIndex = 1;
this.update.style.zIndex = 2;
Element.show(this.iefix);
},
hide: function() {
this.stopIndicator();
if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
if(this.iefix) Element.hide(this.iefix);
},
startIndicator: function() {
if(this.options.indicator) Element.show(this.options.indicator);
},
stopIndicator: function() {
if(this.options.indicator) Element.hide(this.options.indicator);
},
onKeyPress: function(event) {
if(this.active)
switch(event.keyCode) {
case Event.KEY_TAB:
case Event.KEY_RETURN:
this.selectEntry();
Event.stop(event);
case Event.KEY_ESC:
this.hide();
this.active = false;
Event.stop(event);
return;
case Event.KEY_LEFT:
case Event.KEY_RIGHT:
return;
case Event.KEY_UP:
this.markPrevious();
this.render();
if(Prototype.Browser.WebKit) Event.stop(event);
return;
case Event.KEY_DOWN:
this.markNext();
this.render();
if(Prototype.Browser.WebKit) Event.stop(event);
return;
}
else
if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
(Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
this.changed = true;
this.hasFocus = true;
if(this.observer) clearTimeout(this.observer);
this.observer =
setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
},
activate: function() {
this.changed = false;
this.hasFocus = true;
this.getUpdatedChoices();
},
onHover: function(event) {
var element = Event.findElement(event, 'LI');
if(this.index != element.autocompleteIndex)
{
this.index = element.autocompleteIndex;
this.render();
}
Event.stop(event);
},
onClick: function(event) {
var element = Event.findElement(event, 'LI');
this.index = element.autocompleteIndex;
this.selectEntry();
this.hide();
},
onBlur: function(event) {
// needed to make click events working
setTimeout(this.hide.bind(this), 250);
this.hasFocus = false;
this.active = false;
},
render: function() {
if(this.entryCount > 0) {
for (var i = 0; i < this.entryCount; i++)
this.index==i ?
Element.addClassName(this.getEntry(i),"selected") :
Element.removeClassName(this.getEntry(i),"selected");
if(this.hasFocus) {
this.show();
this.active = true;
}
} else {
this.active = false;
this.hide();
}
},
markPrevious: function() {
if(this.index > 0) this.index--
else this.index = this.entryCount-1;
this.getEntry(this.index).scrollIntoView(true);
},
markNext: function() {
if(this.index < this.entryCount-1) this.index++
else this.index = 0;
this.getEntry(this.index).scrollIntoView(false);
},
getEntry: function(index) {
return this.update.firstChild.childNodes[index];
},
getCurrentEntry: function() {
return this.getEntry(this.index);
},
selectEntry: function() {
this.active = false;
this.updateElement(this.getCurrentEntry());
},
updateElement: function(selectedElement) {
if (this.options.updateElement) {
this.options.updateElement(selectedElement);
return;
}
var value = '';
if (this.options.select) {
var nodes = document.getElementsByClassName(this.options.select, selectedElement) || [];
if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
} else
value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
var lastTokenPos = this.findLastToken();
if (lastTokenPos != -1) {
var newValue = this.element.value.substr(0, lastTokenPos + 1);
var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/);
if (whitespace)
newValue += whitespace[0];
this.element.value = newValue + value;
} else {
this.element.value = value;
}
this.element.focus();
if (this.options.afterUpdateElement)
this.options.afterUpdateElement(this.element, selectedElement);
},
updateChoices: function(choices) {
if(!this.changed && this.hasFocus) {
this.update.innerHTML = choices;
Element.cleanWhitespace(this.update);
Element.cleanWhitespace(this.update.down());
if(this.update.firstChild && this.update.down().childNodes) {
this.entryCount =
this.update.down().childNodes.length;
for (var i = 0; i < this.entryCount; i++) {
var entry = this.getEntry(i);
entry.autocompleteIndex = i;
this.addObservers(entry);
}
} else {
this.entryCount = 0;
}
this.stopIndicator();
this.index = 0;
if(this.entryCount==1 && this.options.autoSelect) {
this.selectEntry();
this.hide();
} else {
this.render();
}
}
},
addObservers: function(element) {
Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
Event.observe(element, "click", this.onClick.bindAsEventListener(this));
},
onObserverEvent: function() {
this.changed = false;
if(this.getToken().length>=this.options.minChars) {
this.getUpdatedChoices();
} else {
this.active = false;
this.hide();
}
},
getToken: function() {
var tokenPos = this.findLastToken();
if (tokenPos != -1)
var ret = this.element.value.substr(tokenPos + 1).replace(/^\s+/,'').replace(/\s+$/,'');
else
var ret = this.element.value;
return /\n/.test(ret) ? '' : ret;
},
findLastToken: function() {
var lastTokenPos = -1;
for (var i=0; i<this.options.tokens.length; i++) {
var thisTokenPos = this.element.value.lastIndexOf(this.options.tokens[i]);
if (thisTokenPos > lastTokenPos)
lastTokenPos = thisTokenPos;
}
return lastTokenPos;
}
}
Ajax.Autocompleter = Class.create();
Object.extend(Object.extend(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype), {
initialize: function(element, update, url, options) {
this.baseInitialize(element, update, options);
this.options.asynchronous = true;
this.options.onComplete = this.onComplete.bind(this);
this.options.defaultParams = this.options.parameters || null;
this.url = url;
},
getUpdatedChoices: function() {
this.startIndicator();
var entry = encodeURIComponent(this.options.paramName) + '=' +
encodeURIComponent(this.getToken());
this.options.parameters = this.options.callback ?
this.options.callback(this.element, entry) : entry;
if(this.options.defaultParams)
this.options.parameters += '&' + this.options.defaultParams;
new Ajax.Request(this.url, this.options);
},
onComplete: function(request) {
this.updateChoices(request.responseText);
}
});
// The local array autocompleter. Used when you'd prefer to
// inject an array of autocompletion options into the page, rather
// than sending out Ajax queries, which can be quite slow sometimes.
//
// The constructor takes four parameters. The first two are, as usual,
// the id of the monitored textbox, and id of the autocompletion menu.
// The third is the array you want to autocomplete from, and the fourth
// is the options block.
//
// Extra local autocompletion options:
// - choices - How many autocompletion choices to offer
//
// - partialSearch - If false, the autocompleter will match entered
// text only at the beginning of strings in the
// autocomplete array. Defaults to true, which will
// match text at the beginning of any *word* in the
// strings in the autocomplete array. If you want to
// search anywhere in the string, additionally set
// the option fullSearch to true (default: off).
//
// - fullSsearch - Search anywhere in autocomplete array strings.
//
// - partialChars - How many characters to enter before triggering
// a partial match (unlike minChars, which defines
// how many characters are required to do any match
// at all). Defaults to 2.
//
// - ignoreCase - Whether to ignore case when autocompleting.
// Defaults to true.
//
// It's possible to pass in a custom function as the 'selector'
// option, if you prefer to write your own autocompletion logic.
// In that case, the other options above will not apply unless
// you support them.
Autocompleter.Local = Class.create();
Autocompleter.Local.prototype = Object.extend(new Autocompleter.Base(), {
initialize: function(element, update, array, options) {
this.baseInitialize(element, update, options);
this.options.array = array;
},
getUpdatedChoices: function() {
this.updateChoices(this.options.selector(this));
},
setOptions: function(options) {
this.options = Object.extend({
choices: 10,
partialSearch: true,
partialChars: 2,
ignoreCase: true,
fullSearch: false,
selector: function(instance) {
var ret = []; // Beginning matches
var partial = []; // Inside matches
var entry = instance.getToken();
var count = 0;
for (var i = 0; i < instance.options.array.length &&
ret.length < instance.options.choices ; i++) {
var elem = instance.options.array[i];
var foundPos = instance.options.ignoreCase ?
elem.toLowerCase().indexOf(entry.toLowerCase()) :
elem.indexOf(entry);
while (foundPos != -1) {
if (foundPos == 0 && elem.length != entry.length) {
ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
elem.substr(entry.length) + "</li>");
break;
} else if (entry.length >= instance.options.partialChars &&
instance.options.partialSearch && foundPos != -1) {
if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
foundPos + entry.length) + "</li>");
break;
}
}
foundPos = instance.options.ignoreCase ?
elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
elem.indexOf(entry, foundPos + 1);
}
}
if (partial.length)
ret = ret.concat(partial.slice(0, instance.options.choices - ret.length))
return "<ul>" + ret.join('') + "</ul>";
}
}, options || {});
}
});
// AJAX in-place editor
//
// see documentation on http://wiki.script.aculo.us/scriptaculous/show/Ajax.InPlaceEditor
// Use this if you notice weird scrolling problems on some browsers,
// the DOM might be a bit confused when this gets called so do this
// waits 1 ms (with setTimeout) until it does the activation
Field.scrollFreeActivate = function(field) {
setTimeout(function() {
Field.activate(field);
}, 1);
}
Ajax.InPlaceEditor = Class.create();
Ajax.InPlaceEditor.defaultHighlightColor = "#FFFF99";
Ajax.InPlaceEditor.prototype = {
initialize: function(element, url, options) {
this.url = url;
this.element = $(element);
this.options = Object.extend({
paramName: "value",
okButton: true,
okLink: false,
okText: "ok",
cancelButton: false,
cancelLink: true,
cancelText: "cancel",
textBeforeControls: '',
textBetweenControls: '',
textAfterControls: '',
savingText: "Saving...",
clickToEditText: "Click to edit",
okText: "ok",
rows: 1,
onComplete: function(transport, element) {
new Effect.Highlight(element, {startcolor: this.options.highlightcolor});
},
onFailure: function(transport) {
alert("Error communicating with the server: " + transport.responseText.stripTags());
},
callback: function(form) {
return Form.serialize(form);
},
handleLineBreaks: true,
loadingText: 'Loading...',
savingClassName: 'inplaceeditor-saving',
loadingClassName: 'inplaceeditor-loading',
formClassName: 'inplaceeditor-form',
highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor,
highlightendcolor: "#FFFFFF",
externalControl: null,
submitOnBlur: false,
ajaxOptions: {},
evalScripts: false
}, options || {});
if(!this.options.formId && this.element.id) {
this.options.formId = this.element.id + "-inplaceeditor";
if ($(this.options.formId)) {
// there's already a form with that name, don't specify an id
this.options.formId = null;
}
}
if (this.options.externalControl) {
this.options.externalControl = $(this.options.externalControl);
}
this.originalBackground = Element.getStyle(this.element, 'background-color');
if (!this.originalBackground) {
this.originalBackground = "transparent";
}
this.element.title = this.options.clickToEditText;
this.onclickListener = this.enterEditMode.bindAsEventListener(this);
this.mouseoverListener = this.enterHover.bindAsEventListener(this);
this.mouseoutListener = this.leaveHover.bindAsEventListener(this);
Event.observe(this.element, 'click', this.onclickListener);
Event.observe(this.element, 'mouseover', this.mouseoverListener);
Event.observe(this.element, 'mouseout', this.mouseoutListener);
if (this.options.externalControl) {
Event.observe(this.options.externalControl, 'click', this.onclickListener);
Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener);
Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener);
}
},
enterEditMode: function(evt) {
if (this.saving) return;
if (this.editing) return;
this.editing = true;
this.onEnterEditMode();
if (this.options.externalControl) {
Element.hide(this.options.externalControl);
}
Element.hide(this.element);
this.createForm();
this.element.parentNode.insertBefore(this.form, this.element);
if (!this.options.loadTextURL) Field.scrollFreeActivate(this.editField);
// stop the event to avoid a page refresh in Safari
if (evt) {
Event.stop(evt);
}
return false;
},
createForm: function() {
this.form = document.createElement("form");
this.form.id = this.options.formId;
Element.addClassName(this.form, this.options.formClassName)
this.form.onsubmit = this.onSubmit.bind(this);
this.createEditField();
if (this.options.textarea) {
var br = document.createElement("br");
this.form.appendChild(br);
}
if (this.options.textBeforeControls)
this.form.appendChild(document.createTextNode(this.options.textBeforeControls));
if (this.options.okButton) {
var okButton = document.createElement("input");
okButton.type = "submit";
okButton.value = this.options.okText;
okButton.className = 'editor_ok_button';
this.form.appendChild(okButton);
}
if (this.options.okLink) {
var okLink = document.createElement("a");
okLink.href = "#";
okLink.appendChild(document.createTextNode(this.options.okText));
okLink.onclick = this.onSubmit.bind(this);
okLink.className = 'editor_ok_link';
this.form.appendChild(okLink);
}
if (this.options.textBetweenControls &&
(this.options.okLink || this.options.okButton) &&
(this.options.cancelLink || this.options.cancelButton))
this.form.appendChild(document.createTextNode(this.options.textBetweenControls));
if (this.options.cancelButton) {
var cancelButton = document.createElement("input");
cancelButton.type = "submit";
cancelButton.value = this.options.cancelText;
cancelButton.onclick = this.onclickCancel.bind(this);
cancelButton.className = 'editor_cancel_button';
this.form.appendChild(cancelButton);
}
if (this.options.cancelLink) {
var cancelLink = document.createElement("a");
cancelLink.href = "#";
cancelLink.appendChild(document.createTextNode(this.options.cancelText));
cancelLink.onclick = this.onclickCancel.bind(this);
cancelLink.className = 'editor_cancel editor_cancel_link';
this.form.appendChild(cancelLink);
}
if (this.options.textAfterControls)
this.form.appendChild(document.createTextNode(this.options.textAfterControls));
},
hasHTMLLineBreaks: function(string) {
if (!this.options.handleLineBreaks) return false;
return string.match(/<br/i) || string.match(/<p>/i);
},
convertHTMLLineBreaks: function(string) {
return string.replace(/<br>/gi, "\n").replace(/<br\/>/gi, "\n").replace(/<\/p>/gi, "\n").replace(/<p>/gi, "");
},
createEditField: function() {
var text;
if(this.options.loadTextURL) {
text = this.options.loadingText;
} else {
text = this.getText();
}
var obj = this;
if (this.options.rows == 1 && !this.hasHTMLLineBreaks(text)) {
this.options.textarea = false;
var textField = document.createElement("input");
textField.obj = this;
textField.type = "text";
textField.name = this.options.paramName;
textField.value = text;
textField.style.backgroundColor = this.options.highlightcolor;
textField.className = 'editor_field';
var size = this.options.size || this.options.cols || 0;
if (size != 0) textField.size = size;
if (this.options.submitOnBlur)
textField.onblur = this.onSubmit.bind(this);
this.editField = textField;
} else {
this.options.textarea = true;
var textArea = document.createElement("textarea");
textArea.obj = this;
textArea.name = this.options.paramName;
textArea.value = this.convertHTMLLineBreaks(text);
textArea.rows = this.options.rows;
textArea.cols = this.options.cols || 40;
textArea.className = 'editor_field';
if (this.options.submitOnBlur)
textArea.onblur = this.onSubmit.bind(this);
this.editField = textArea;
}
if(this.options.loadTextURL) {
this.loadExternalText();
}
this.form.appendChild(this.editField);
},
getText: function() {
return this.element.innerHTML;
},
loadExternalText: function() {
Element.addClassName(this.form, this.options.loadingClassName);
this.editField.disabled = true;
new Ajax.Request(
this.options.loadTextURL,
Object.extend({
asynchronous: true,
onComplete: this.onLoadedExternalText.bind(this)
}, this.options.ajaxOptions)
);
},
onLoadedExternalText: function(transport) {
Element.removeClassName(this.form, this.options.loadingClassName);
this.editField.disabled = false;
this.editField.value = transport.responseText.stripTags();
Field.scrollFreeActivate(this.editField);
},
onclickCancel: function() {
this.onComplete();
this.leaveEditMode();
return false;
},
onFailure: function(transport) {
this.options.onFailure(transport);
if (this.oldInnerHTML) {
this.element.innerHTML = this.oldInnerHTML;
this.oldInnerHTML = null;
}
return false;
},
onSubmit: function() {
// onLoading resets these so we need to save them away for the Ajax call
var form = this.form;
var value = this.editField.value;
// do this first, sometimes the ajax call returns before we get a chance to switch on Saving...
// which means this will actually switch on Saving... *after* we've left edit mode causing Saving...
// to be displayed indefinitely
this.onLoading();
if (this.options.evalScripts) {
new Ajax.Request(
this.url, Object.extend({
parameters: this.options.callback(form, value),
onComplete: this.onComplete.bind(this),
onFailure: this.onFailure.bind(this),
asynchronous:true,
evalScripts:true
}, this.options.ajaxOptions));
} else {
new Ajax.Updater(
{ success: this.element,
// don't update on failure (this could be an option)
failure: null },
this.url, Object.extend({
parameters: this.options.callback(form, value),
onComplete: this.onComplete.bind(this),
onFailure: this.onFailure.bind(this)
}, this.options.ajaxOptions));
}
// stop the event to avoid a page refresh in Safari
if (arguments.length > 1) {
Event.stop(arguments[0]);
}
return false;
},
onLoading: function() {
this.saving = true;
this.removeForm();
this.leaveHover();
this.showSaving();
},
showSaving: function() {
this.oldInnerHTML = this.element.innerHTML;
this.element.innerHTML = this.options.savingText;
Element.addClassName(this.element, this.options.savingClassName);
this.element.style.backgroundColor = this.originalBackground;
Element.show(this.element);
},
removeForm: function() {
if(this.form) {
if (this.form.parentNode) Element.remove(this.form);
this.form = null;
}
},
enterHover: function() {
if (this.saving) return;
this.element.style.backgroundColor = this.options.highlightcolor;
if (this.effect) {
this.effect.cancel();
}
Element.addClassName(this.element, this.options.hoverClassName)
},
leaveHover: function() {
if (this.options.backgroundColor) {
this.element.style.backgroundColor = this.oldBackground;
}
Element.removeClassName(this.element, this.options.hoverClassName)
if (this.saving) return;
this.effect = new Effect.Highlight(this.element, {
startcolor: this.options.highlightcolor,
endcolor: this.options.highlightendcolor,
restorecolor: this.originalBackground
});
},
leaveEditMode: function() {
Element.removeClassName(this.element, this.options.savingClassName);
this.removeForm();
this.leaveHover();
this.element.style.backgroundColor = this.originalBackground;
Element.show(this.element);
if (this.options.externalControl) {
Element.show(this.options.externalControl);
}
this.editing = false;
this.saving = false;
this.oldInnerHTML = null;
this.onLeaveEditMode();
},
onComplete: function(transport) {
this.leaveEditMode();
this.options.onComplete.bind(this)(transport, this.element);
},
onEnterEditMode: function() {},
onLeaveEditMode: function() {},
dispose: function() {
if (this.oldInnerHTML) {
this.element.innerHTML = this.oldInnerHTML;
}
this.leaveEditMode();
Event.stopObserving(this.element, 'click', this.onclickListener);
Event.stopObserving(this.element, 'mouseover', this.mouseoverListener);
Event.stopObserving(this.element, 'mouseout', this.mouseoutListener);
if (this.options.externalControl) {
Event.stopObserving(this.options.externalControl, 'click', this.onclickListener);
Event.stopObserving(this.options.externalControl, 'mouseover', this.mouseoverListener);
Event.stopObserving(this.options.externalControl, 'mouseout', this.mouseoutListener);
}
}
};
Ajax.InPlaceCollectionEditor = Class.create();
Object.extend(Ajax.InPlaceCollectionEditor.prototype, Ajax.InPlaceEditor.prototype);
Object.extend(Ajax.InPlaceCollectionEditor.prototype, {
createEditField: function() {
if (!this.cached_selectTag) {
var selectTag = document.createElement("select");
var collection = this.options.collection || [];
var optionTag;
collection.each(function(e,i) {
optionTag = document.createElement("option");
optionTag.value = (e instanceof Array) ? e[0] : e;
if((typeof this.options.value == 'undefined') &&
((e instanceof Array) ? this.element.innerHTML == e[1] : e == optionTag.value)) optionTag.selected = true;
if(this.options.value==optionTag.value) optionTag.selected = true;
optionTag.appendChild(document.createTextNode((e instanceof Array) ? e[1] : e));
selectTag.appendChild(optionTag);
}.bind(this));
this.cached_selectTag = selectTag;
}
this.editField = this.cached_selectTag;
if(this.options.loadTextURL) this.loadExternalText();
this.form.appendChild(this.editField);
this.options.callback = function(form, value) {
return "value=" + encodeURIComponent(value);
}
}
});
// Delayed observer, like Form.Element.Observer,
// but waits for delay after last key input
// Ideal for live-search fields
Form.Element.DelayedObserver = Class.create();
Form.Element.DelayedObserver.prototype = {
initialize: function(element, delay, callback) {
this.delay = delay || 0.5;
this.element = $(element);
this.callback = callback;
this.timer = null;
this.lastValue = $F(this.element);
Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
},
delayedListener: function(event) {
if(this.lastValue == $F(this.element)) return;
if(this.timer) clearTimeout(this.timer);
this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
this.lastValue = $F(this.element);
},
onTimerEvent: function() {
this.timer = null;
this.callback(this.element, $F(this.element));
}
};

0
main/NOVA_0.4.4/LICENSE.txt → main/NOVA_0.4.5/LICENCE.TXT

20
main/NOVA_0.4.4/README.txt → main/NOVA_0.4.5/README.TXT

@ -1,12 +1,12 @@
================================ ================================
NOVA 0.4.4 README - Oct 10, 2007 NOVA 0.4.5 README - Oct 26, 2007
http://sabnzbd.organixdesign.com http://sabnzbd.organixdesign.com
======= =======
AUTHORS AUTHORS
* Nathan Langlois => complete rewrite of NOVA for version 0.4 * Nathan => complete rewrite of NOVA for version 0.4
* Dana Woodman => original NOVA + concept design * Dana Woodman => original NOVA + concept design
* ShyPike => modified for SABnzbd-0.2.7 * ShyPike => modified for SABnzbd-0.2.7up
============ ============
INTRODUCTION INTRODUCTION
@ -28,6 +28,13 @@ WHAT IS NEW
* Much much more! * Much much more!
================== ==================
NOVA 0.4.5 UPDATES
* Added +Script Dirscan options in Config->Switches for SABnzbdPlus (blackhole directory)
* New Cleanup icon for History Verbosity
* Updated integrated components
* Didn't do any testing, good luck!
==================
NOVA 0.4.4 UPDATES NOVA 0.4.4 UPDATES
* History Verbosity has been drastically cleaned up * History Verbosity has been drastically cleaned up
(1) Details are now hidden behind icons (hover icon with cursor to view) (1) Details are now hidden behind icons (hover icon with cursor to view)
@ -88,9 +95,4 @@ A: Yes, stay tuned. Our ultimate goal is to allow for straightforward customizat
============== ==============
SPECIAL THANKS SPECIAL THANKS
* Pim for the Dutch translation => http://www.pimspage.nl/ * Everyone in the community who left so much valuable feedback - we appreciate it greatly!
* Prototype Core Team => http://www.prototypejs.org/
* script.aculo.us => http://script.aculo.us/
* Lytebox => http://www.dolem.com/lytebox/
* Nuvola icon set => http://www.icon-king.com/?p=15
* Everyone in the community who left so much valuable feedback - we appreciate it greatly!

0
main/NOVA_0.4.4/templates/config.tmpl → main/NOVA_0.4.5/templates/config.tmpl

0
main/NOVA_0.4.4/templates/config_directories.tmpl → main/NOVA_0.4.5/templates/config_directories.tmpl

0
main/NOVA_0.4.4/templates/config_general.tmpl → main/NOVA_0.4.5/templates/config_general.tmpl

0
main/NOVA_0.4.4/templates/config_rss.tmpl → main/NOVA_0.4.5/templates/config_rss.tmpl

0
main/NOVA_0.4.4/templates/config_scheduling.tmpl → main/NOVA_0.4.5/templates/config_scheduling.tmpl

0
main/NOVA_0.4.4/templates/config_server.tmpl → main/NOVA_0.4.5/templates/config_server.tmpl

0
main/NOVA_0.4.4/templates/config_switches.tmpl → main/NOVA_0.4.5/templates/config_switches.tmpl

0
main/NOVA_0.4.4/templates/connection_info.tmpl → main/NOVA_0.4.5/templates/connection_info.tmpl

0
main/NOVA_0.4.4/templates/history.tmpl → main/NOVA_0.4.5/templates/history.tmpl

13
main/NOVA_0.4.4/templates/main.tmpl → main/NOVA_0.4.5/templates/main.tmpl

@ -11,13 +11,13 @@
<title>NOVA (Loading...?)</title> <title>NOVA (Loading...?)</title>
<link rel="shortcut icon" type="image/ico" href="static/images/favicon.ico"/> <link rel="shortcut icon" type="image/ico" href="static/images/favicon.ico"/>
<link rel="stylesheet" type="text/css" media="screen, tv, projection" href="static/stylesheets/nova.css" /> <link rel="stylesheet" type="text/css" media="screen, tv, projection" href="static/stylesheets/nova.css" />
<link rel="stylesheet" type="text/css" media="screen" href="static/javascripts/lytebox/lytebox.css" /> <link rel="stylesheet" type="text/css" media="screen" href="static/stylesheets/lytebox.css" />
<script type="text/javascript"> <script type="text/javascript">
var sabplus = "$sabplus"; var sabplus = "$sabplus";
</script> </script>
<script src="static/javascripts/prototype/prototype.js" type="text/javascript"></script> <script src="static/javascripts/prototype.js" type="text/javascript"></script>
<script src="static/javascripts/scriptaculous/scriptaculous.js" type="text/javascript"></script> <script src="static/javascripts/scriptaculous.js" type="text/javascript"></script>
<script src="static/javascripts/lytebox/lytebox.js" type="text/javascript"></script> <script src="static/javascripts/lytebox.js" type="text/javascript"></script>
<script src="static/javascripts/nova.js" type="text/javascript"></script> <script src="static/javascripts/nova.js" type="text/javascript"></script>
</head> </head>
<body> <body>
@ -25,7 +25,7 @@
<!-- BEGIN main menu bar --> <!-- BEGIN main menu bar -->
<div class="topBar"> <div class="topBar">
<div id="logo">SABnzbd-$version N<font color="#F89E44">O</font><font color="#FAB875">V</font><font color="#FCD1A6">A</font></div> <div id="logo">SABnzbd N<font color="#F89E44">O</font><font color="#FAB875">V</font><font color="#FCD1A6">A</font></div>
<div id="topLinks"> <div id="topLinks">
<a onclick="Effect.toggle('2ndbar','blind')" id="plusnzb" title="Enqueue an nzb">+NZB</a> <a onclick="Effect.toggle('2ndbar','blind')" id="plusnzb" title="Enqueue an nzb">+NZB</a>
<a onclick="Effect.toggle('novabar','blind')" id="plusnzb" title="NOVA Settings">Options</a> <a onclick="Effect.toggle('novabar','blind')" id="plusnzb" title="NOVA Settings">Options</a>
@ -64,7 +64,8 @@
<a onclick="NOVAction('Layout_Queue');" title="Switch Layout: Toggle Queue"><img src="static/images/icon-header-queue.png" /></a> <a onclick="NOVAction('Layout_Queue');" title="Switch Layout: Toggle Queue"><img src="static/images/icon-header-queue.png" /></a>
<a onclick="NOVAction('Layout_History');" title="Switch Layout: Toggle History"><img src="static/images/icon-header-history.png" /></a> <a onclick="NOVAction('Layout_History');" title="Switch Layout: Toggle History"><img src="static/images/icon-header-history.png" /></a>
<a onclick="NOVAction('Layout_Stats');" title="Switch Layout: Toggle Statistics"><img src="static/images/favicon.ico" /></a> <a onclick="NOVAction('Layout_Stats');" title="Switch Layout: Toggle Statistics"><img src="static/images/favicon.ico" /></a>
<a href="http://sabnzbd.organixdesign.com/" target="_blank" title="Visit Official NOVA Site">Version 0.4.4</a> <a href="http://sourceforge.net/projects/sabnzbdplus/" target="_blank" title="Visit Official SABnzbd+ Site">SAB-$version</a>
<a href="http://sabnzbd.organixdesign.com/" target="_blank" title="Visit Official NOVA Site">Nova 0.4.5</a>
<a onclick="NOVAction('shutdown');" title="Terminate SABnzbd Application">Shutdown SAB</a> <a onclick="NOVAction('shutdown');" title="Terminate SABnzbd Application">Shutdown SAB</a>
</div> </div>

0
main/NOVA_0.4.4/templates/nzo.tmpl → main/NOVA_0.4.5/templates/nzo.tmpl

0
main/NOVA_0.4.4/templates/queue.tmpl → main/NOVA_0.4.5/templates/queue.tmpl

0
main/NOVA_0.4.4/templates/static/images/bg_dataBar.png → main/NOVA_0.4.5/templates/static/images/bg_dataBar.png

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 469 B

0
main/NOVA_0.4.4/templates/static/images/bg_downloaded.png → main/NOVA_0.4.5/templates/static/images/bg_downloaded.png

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 336 B

0
main/NOVA_0.4.4/templates/static/images/bg_downloaded_minibar.png → main/NOVA_0.4.5/templates/static/images/bg_downloaded_minibar.png

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
main/NOVA_0.4.4/templates/static/images/bg_lonelyhearts.png → main/NOVA_0.4.5/templates/static/images/bg_lonelyhearts.png

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
main/NOVA_0.4.4/templates/static/images/bg_thead_tr.png → main/NOVA_0.4.5/templates/static/images/bg_thead_tr.png

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 221 B

0
main/NOVA_0.4.4/templates/static/images/bg_thead_tr_heading.png → main/NOVA_0.4.5/templates/static/images/bg_thead_tr_heading.png

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 221 B

0
main/NOVA_0.4.4/templates/static/images/bg_thead_tr_orig.png → main/NOVA_0.4.5/templates/static/images/bg_thead_tr_orig.png

Before

Width:  |  Height:  |  Size: 941 B

After

Width:  |  Height:  |  Size: 941 B

0
main/NOVA_0.4.4/templates/static/images/bg_topBar.png → main/NOVA_0.4.5/templates/static/images/bg_topBar.png

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 324 B

0
main/NOVA_0.4.4/templates/static/images/bg_tr_hover.png → main/NOVA_0.4.5/templates/static/images/bg_tr_hover.png

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

0
main/NOVA_0.4.4/templates/static/images/bg_tr_odd.png → main/NOVA_0.4.5/templates/static/images/bg_tr_odd.png

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

BIN
main/NOVA_0.4.5/templates/static/images/blank.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

0
main/NOVA_0.4.4/templates/static/javascripts/lytebox/images/close_grey.png → main/NOVA_0.4.5/templates/static/images/close_grey.png

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
main/NOVA_0.4.4/templates/static/images/favicon.ico → main/NOVA_0.4.5/templates/static/images/favicon.ico

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-blank.png → main/NOVA_0.4.5/templates/static/images/icon-blank.png

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-header-addnzb.png → main/NOVA_0.4.5/templates/static/images/icon-header-addnzb.png

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-header-currenthistorysize.png → main/NOVA_0.4.5/templates/static/images/icon-header-currenthistorysize.png

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 502 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-freespacecom.png → main/NOVA_0.4.5/templates/static/images/icon-header-freespacecom.png

Before

Width:  |  Height:  |  Size: 552 B

After

Width:  |  Height:  |  Size: 552 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-freespaceinc.png → main/NOVA_0.4.5/templates/static/images/icon-header-freespaceinc.png

Before

Width:  |  Height:  |  Size: 623 B

After

Width:  |  Height:  |  Size: 623 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-history.png → main/NOVA_0.4.5/templates/static/images/icon-header-history.png

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 714 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-knowndownloaded.png → main/NOVA_0.4.5/templates/static/images/icon-header-knowndownloaded.png

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 576 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-mbleft.png → main/NOVA_0.4.5/templates/static/images/icon-header-mbleft.png

Before

Width:  |  Height:  |  Size: 986 B

After

Width:  |  Height:  |  Size: 986 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-queue.png → main/NOVA_0.4.5/templates/static/images/icon-header-queue.png

Before

Width:  |  Height:  |  Size: 720 B

After

Width:  |  Height:  |  Size: 720 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-sidebyside.png → main/NOVA_0.4.5/templates/static/images/icon-header-sidebyside.png

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 822 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-speed.png → main/NOVA_0.4.5/templates/static/images/icon-header-speed.png

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 679 B

0
main/NOVA_0.4.4/templates/static/images/icon-header-timeleft.png → main/NOVA_0.4.5/templates/static/images/icon-header-timeleft.png

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-header-topbottom.png → main/NOVA_0.4.5/templates/static/images/icon-header-topbottom.png

Before

Width:  |  Height:  |  Size: 767 B

After

Width:  |  Height:  |  Size: 767 B

BIN
main/NOVA_0.4.5/templates/static/images/icon-history-cleanup.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-history-fucked.png → main/NOVA_0.4.5/templates/static/images/icon-history-fucked.png

Before

Width:  |  Height:  |  Size: 228 B

After

Width:  |  Height:  |  Size: 228 B

0
main/NOVA_0.4.4/templates/static/images/icon-history-join.png → main/NOVA_0.4.5/templates/static/images/icon-history-join.png

Before

Width:  |  Height:  |  Size: 980 B

After

Width:  |  Height:  |  Size: 980 B

0
main/NOVA_0.4.4/templates/static/images/icon-history-par2.png → main/NOVA_0.4.5/templates/static/images/icon-history-par2.png

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 899 B

0
main/NOVA_0.4.4/templates/static/images/icon-history-postprocessing.gif → main/NOVA_0.4.5/templates/static/images/icon-history-postprocessing.gif

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-history-unrar.png → main/NOVA_0.4.5/templates/static/images/icon-history-unrar.png

Before

Width:  |  Height:  |  Size: 539 B

After

Width:  |  Height:  |  Size: 539 B

0
main/NOVA_0.4.4/templates/static/images/icon-history-unzip.gif → main/NOVA_0.4.5/templates/static/images/icon-history-unzip.gif

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 180 B

0
main/NOVA_0.4.4/templates/static/images/icon-newzbin.png → main/NOVA_0.4.5/templates/static/images/icon-newzbin.png

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-queue-1downarrow.png → main/NOVA_0.4.5/templates/static/images/icon-queue-1downarrow.png

Before

Width:  |  Height:  |  Size: 808 B

After

Width:  |  Height:  |  Size: 808 B

0
main/NOVA_0.4.4/templates/static/images/icon-queue-1uparrow.png → main/NOVA_0.4.5/templates/static/images/icon-queue-1uparrow.png

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 781 B

0
main/NOVA_0.4.4/templates/static/images/icon-queue-2downarrow.png → main/NOVA_0.4.5/templates/static/images/icon-queue-2downarrow.png

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-queue-2uparrow.png → main/NOVA_0.4.5/templates/static/images/icon-queue-2uparrow.png

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-queue-drop.png → main/NOVA_0.4.5/templates/static/images/icon-queue-drop.png

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
main/NOVA_0.4.4/templates/static/images/icon-queue-order.png → main/NOVA_0.4.5/templates/static/images/icon-queue-order.png

Before

Width:  |  Height:  |  Size: 166 B

After

Width:  |  Height:  |  Size: 166 B

0
main/NOVA_0.4.4/templates/static/javascripts/lytebox/images/loading.gif → main/NOVA_0.4.5/templates/static/images/loading.gif

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

2
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/builder.js → main/NOVA_0.4.5/templates/static/javascripts/builder.js

@ -1,4 +1,4 @@
// script.aculo.us builder.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // script.aculo.us builder.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// //

972
main/NOVA_0.4.5/templates/static/javascripts/controls.js

@ -0,0 +1,972 @@
// script.aculo.us controls.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// (c) 2005-2007 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
// (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
// Contributors:
// Richard Livsey
// Rahul Bhargava
// Rob Wills
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/
// Autocompleter.Base handles all the autocompletion functionality
// that's independent of the data source for autocompletion. This
// includes drawing the autocompletion menu, observing keyboard
// and mouse events, and similar.
//
// Specific autocompleters need to provide, at the very least,
// a getUpdatedChoices function that will be invoked every time
// the text inside the monitored textbox changes. This method
// should get the text for which to provide autocompletion by
// invoking this.getToken(), NOT by directly accessing
// this.element.value. This is to allow incremental tokenized
// autocompletion. Specific auto-completion logic (AJAX, etc)
// belongs in getUpdatedChoices.
//
// Tokenized incremental autocompletion is enabled automatically
// when an autocompleter is instantiated with the 'tokens' option
// in the options parameter, e.g.:
// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
// will incrementally autocomplete with a comma as the token.
// Additionally, ',' in the above example can be replaced with
// a token array, e.g. { tokens: [',', '\n'] } which
// enables autocompletion on multiple tokens. This is most
// useful when one of the tokens is \n (a newline), as it
// allows smart autocompletion after linebreaks.
//
// vim:expandtab ts=8 sw=2
if(typeof Effect == 'undefined')
throw("controls.js requires including script.aculo.us' effects.js library");
var Autocompleter = { }
Autocompleter.Base = function() { };
Autocompleter.Base.prototype = {
baseInitialize: function(element, update, options) {
element = $(element)
this.element = element;
this.update = $(update);
this.hasFocus = false;
this.changed = false;
this.active = false;
this.index = 0;
this.entryCount = 0;
this.oldElementValue = this.element.value;
if(this.setOptions)
this.setOptions(options);
else
this.options = options || { };
this.options.paramName = this.options.paramName || this.element.name;
this.options.tokens = this.options.tokens || [];
this.options.frequency = this.options.frequency || 0.4;
this.options.minChars = this.options.minChars || 1;
this.options.onShow = this.options.onShow ||
function(element, update){
if(!update.style.position || update.style.position=='absolute') {
update.style.position = 'absolute';
Position.clone(element, update, {
setHeight: false,
offsetTop: element.offsetHeight
});
}
Effect.Appear(update,{duration:0.15});
};
this.options.onHide = this.options.onHide ||
function(element, update){ new Effect.Fade(update,{duration:0.15}) };
if(typeof(this.options.tokens) == 'string')
this.options.tokens = new Array(this.options.tokens);
// Force carriage returns as token delimiters anyway
if (!this.options.tokens.include('\n'))
this.options.tokens.push('\n');
this.observer = null;
this.element.setAttribute('autocomplete','off');
Element.hide(this.update);
Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
Event.observe(this.element, 'keypress', this.onKeyPress.bindAsEventListener(this));
},
show: function() {
if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
if(!this.iefix &&
(Prototype.Browser.IE) &&
(Element.getStyle(this.update, 'position')=='absolute')) {
new Insertion.After(this.update,
'<iframe id="' + this.update.id + '_iefix" '+
'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
this.iefix = $(this.update.id+'_iefix');
}
if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
},
fixIEOverlapping: function() {
Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
this.iefix.style.zIndex = 1;
this.update.style.zIndex = 2;
Element.show(this.iefix);
},
hide: function() {
this.stopIndicator();
if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
if(this.iefix) Element.hide(this.iefix);
},
startIndicator: function() {
if(this.options.indicator) Element.show(this.options.indicator);
},
stopIndicator: function() {
if(this.options.indicator) Element.hide(this.options.indicator);
},
onKeyPress: function(event) {
if(this.active)
switch(event.keyCode) {
case Event.KEY_TAB:
case Event.KEY_RETURN:
this.selectEntry();
Event.stop(event);
case Event.KEY_ESC:
this.hide();
this.active = false;
Event.stop(event);
return;
case Event.KEY_LEFT:
case Event.KEY_RIGHT:
return;
case Event.KEY_UP:
this.markPrevious();
this.render();
if(Prototype.Browser.WebKit) Event.stop(event);
return;
case Event.KEY_DOWN:
this.markNext();
this.render();
if(Prototype.Browser.WebKit) Event.stop(event);
return;
}
else
if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
(Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
this.changed = true;
this.hasFocus = true;
if(this.observer) clearTimeout(this.observer);
this.observer =
setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
},
activate: function() {
this.changed = false;
this.hasFocus = true;
this.getUpdatedChoices();
},
onHover: function(event) {
var element = Event.findElement(event, 'LI');
if(this.index != element.autocompleteIndex)
{
this.index = element.autocompleteIndex;
this.render();
}
Event.stop(event);
},
onClick: function(event) {
var element = Event.findElement(event, 'LI');
this.index = element.autocompleteIndex;
this.selectEntry();
this.hide();
},
onBlur: function(event) {
// needed to make click events working
setTimeout(this.hide.bind(this), 250);
this.hasFocus = false;
this.active = false;
},
render: function() {
if(this.entryCount > 0) {
for (var i = 0; i < this.entryCount; i++)
this.index==i ?
Element.addClassName(this.getEntry(i),"selected") :
Element.removeClassName(this.getEntry(i),"selected");
if(this.hasFocus) {
this.show();
this.active = true;
}
} else {
this.active = false;
this.hide();
}
},
markPrevious: function() {
if(this.index > 0) this.index--
else this.index = this.entryCount-1;
this.getEntry(this.index).scrollIntoView(true);
},
markNext: function() {
if(this.index < this.entryCount-1) this.index++
else this.index = 0;
this.getEntry(this.index).scrollIntoView(false);
},
getEntry: function(index) {
return this.update.firstChild.childNodes[index];
},
getCurrentEntry: function() {
return this.getEntry(this.index);
},
selectEntry: function() {
this.active = false;
this.updateElement(this.getCurrentEntry());
},
updateElement: function(selectedElement) {
if (this.options.updateElement) {
this.options.updateElement(selectedElement);
return;
}
var value = '';
if (this.options.select) {
var nodes = document.getElementsByClassName(this.options.select, selectedElement) || [];
if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
} else
value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
var bounds = this.getTokenBounds();
if (bounds[0] != -1) {
var newValue = this.element.value.substr(0, bounds[0]);
var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
if (whitespace)
newValue += whitespace[0];
this.element.value = newValue + value + this.element.value.substr(bounds[1]);
} else {
this.element.value = value;
}
this.oldElementValue = this.element.value;
this.element.focus();
if (this.options.afterUpdateElement)
this.options.afterUpdateElement(this.element, selectedElement);
},
updateChoices: function(choices) {
if(!this.changed && this.hasFocus) {
this.update.innerHTML = choices;
Element.cleanWhitespace(this.update);
Element.cleanWhitespace(this.update.down());
if(this.update.firstChild && this.update.down().childNodes) {
this.entryCount =
this.update.down().childNodes.length;
for (var i = 0; i < this.entryCount; i++) {
var entry = this.getEntry(i);
entry.autocompleteIndex = i;
this.addObservers(entry);
}
} else {
this.entryCount = 0;
}
this.stopIndicator();
this.index = 0;
if(this.entryCount==1 && this.options.autoSelect) {
this.selectEntry();
this.hide();
} else {
this.render();
}
}
},
addObservers: function(element) {
Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
Event.observe(element, "click", this.onClick.bindAsEventListener(this));
},
onObserverEvent: function() {
this.changed = false;
this.tokenBounds = null;
if(this.getToken().length>=this.options.minChars) {
this.getUpdatedChoices();
} else {
this.active = false;
this.hide();
}
this.oldElementValue = this.element.value;
},
getToken: function() {
var bounds = this.getTokenBounds();
return this.element.value.substring(bounds[0], bounds[1]).strip();
},
getTokenBounds: function() {
if (null != this.tokenBounds) return this.tokenBounds;
var value = this.element.value;
if (value.strip().empty()) return [-1, 0];
var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
var offset = (diff == this.oldElementValue.length ? 1 : 0);
var prevTokenPos = -1, nextTokenPos = value.length;
var tp;
for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
if (tp > prevTokenPos) prevTokenPos = tp;
tp = value.indexOf(this.options.tokens[index], diff + offset);
if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
}
return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
}
}
Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
var boundary = Math.min(newS.length, oldS.length);
for (var index = 0; index < boundary; ++index)
if (newS[index] != oldS[index])
return index;
return boundary;
};
Ajax.Autocompleter = Class.create();
Object.extend(Object.extend(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype), {
initialize: function(element, update, url, options) {
this.baseInitialize(element, update, options);
this.options.asynchronous = true;
this.options.onComplete = this.onComplete.bind(this);
this.options.defaultParams = this.options.parameters || null;
this.url = url;
},
getUpdatedChoices: function() {
this.startIndicator();
var entry = encodeURIComponent(this.options.paramName) + '=' +
encodeURIComponent(this.getToken());
this.options.parameters = this.options.callback ?
this.options.callback(this.element, entry) : entry;
if(this.options.defaultParams)
this.options.parameters += '&' + this.options.defaultParams;
new Ajax.Request(this.url, this.options);
},
onComplete: function(request) {
this.updateChoices(request.responseText);
}
});
// The local array autocompleter. Used when you'd prefer to
// inject an array of autocompletion options into the page, rather
// than sending out Ajax queries, which can be quite slow sometimes.
//
// The constructor takes four parameters. The first two are, as usual,
// the id of the monitored textbox, and id of the autocompletion menu.
// The third is the array you want to autocomplete from, and the fourth
// is the options block.
//
// Extra local autocompletion options:
// - choices - How many autocompletion choices to offer
//
// - partialSearch - If false, the autocompleter will match entered
// text only at the beginning of strings in the
// autocomplete array. Defaults to true, which will
// match text at the beginning of any *word* in the
// strings in the autocomplete array. If you want to
// search anywhere in the string, additionally set
// the option fullSearch to true (default: off).
//
// - fullSsearch - Search anywhere in autocomplete array strings.
//
// - partialChars - How many characters to enter before triggering
// a partial match (unlike minChars, which defines
// how many characters are required to do any match
// at all). Defaults to 2.
//
// - ignoreCase - Whether to ignore case when autocompleting.
// Defaults to true.
//
// It's possible to pass in a custom function as the 'selector'
// option, if you prefer to write your own autocompletion logic.
// In that case, the other options above will not apply unless
// you support them.
Autocompleter.Local = Class.create();
Autocompleter.Local.prototype = Object.extend(new Autocompleter.Base(), {
initialize: function(element, update, array, options) {
this.baseInitialize(element, update, options);
this.options.array = array;
},
getUpdatedChoices: function() {
this.updateChoices(this.options.selector(this));
},
setOptions: function(options) {
this.options = Object.extend({
choices: 10,
partialSearch: true,
partialChars: 2,
ignoreCase: true,
fullSearch: false,
selector: function(instance) {
var ret = []; // Beginning matches
var partial = []; // Inside matches
var entry = instance.getToken();
var count = 0;
for (var i = 0; i < instance.options.array.length &&
ret.length < instance.options.choices ; i++) {
var elem = instance.options.array[i];
var foundPos = instance.options.ignoreCase ?
elem.toLowerCase().indexOf(entry.toLowerCase()) :
elem.indexOf(entry);
while (foundPos != -1) {
if (foundPos == 0 && elem.length != entry.length) {
ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
elem.substr(entry.length) + "</li>");
break;
} else if (entry.length >= instance.options.partialChars &&
instance.options.partialSearch && foundPos != -1) {
if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
foundPos + entry.length) + "</li>");
break;
}
}
foundPos = instance.options.ignoreCase ?
elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
elem.indexOf(entry, foundPos + 1);
}
}
if (partial.length)
ret = ret.concat(partial.slice(0, instance.options.choices - ret.length))
return "<ul>" + ret.join('') + "</ul>";
}
}, options || { });
}
});
// AJAX in-place editor and collection editor
// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April 2007).
// Use this if you notice weird scrolling problems on some browsers,
// the DOM might be a bit confused when this gets called so do this
// waits 1 ms (with setTimeout) until it does the activation
Field.scrollFreeActivate = function(field) {
setTimeout(function() {
Field.activate(field);
}, 1);
}
Ajax.InPlaceEditor = Class.create();
Object.extend(Ajax.InPlaceEditor, {
DefaultOptions: {
ajaxOptions: { },
autoRows: 3, // Use when multi-line w/ rows == 1
cancelControl: 'link', // 'link'|'button'|false
cancelText: 'cancel',
clickToEditText: 'Click to edit',
externalControl: null, // id|elt
externalControlOnly: false,
fieldPostCreation: 'activate', // 'activate'|'focus'|false
formClassName: 'inplaceeditor-form',
formId: null, // id|elt
highlightColor: '#ffff99',
highlightEndColor: '#ffffff',
hoverClassName: '',
htmlResponse: true,
loadingClassName: 'inplaceeditor-loading',
loadingText: 'Loading...',
okControl: 'button', // 'link'|'button'|false
okText: 'ok',
paramName: 'value',
rows: 1, // If 1 and multi-line, uses autoRows
savingClassName: 'inplaceeditor-saving',
savingText: 'Saving...',
size: 0,
stripLoadedTextTags: false,
submitOnBlur: false,
textAfterControls: '',
textBeforeControls: '',
textBetweenControls: ''
},
DefaultCallbacks: {
callback: function(form) {
return Form.serialize(form);
},
onComplete: function(transport, element) {
// For backward compatibility, this one is bound to the IPE, and passes
// the element directly. It was too often customized, so we don't break it.
new Effect.Highlight(element, {
startcolor: this.options.highlightColor, keepBackgroundImage: true });
},
onEnterEditMode: null,
onEnterHover: function(ipe) {
ipe.element.style.backgroundColor = ipe.options.highlightColor;
if (ipe._effect)
ipe._effect.cancel();
},
onFailure: function(transport, ipe) {
alert('Error communication with the server: ' + transport.responseText.stripTags());
},
onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
onLeaveEditMode: null,
onLeaveHover: function(ipe) {
ipe._effect = new Effect.Highlight(ipe.element, {
startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
restorecolor: ipe._originalBackground, keepBackgroundImage: true
});
}
},
Listeners: {
click: 'enterEditMode',
keydown: 'checkForEscapeOrReturn',
mouseover: 'enterHover',
mouseout: 'leaveHover'
}
});
Ajax.InPlaceEditor.prototype = {
initialize: function(element, url, options) {
this.url = url;
this.element = element = $(element);
this.prepareOptions();
this._controls = { };
arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
Object.extend(this.options, options || { });
if (!this.options.formId && this.element.id) {
this.options.formId = this.element.id + '-inplaceeditor';
if ($(this.options.formId))
this.options.formId = '';
}
if (this.options.externalControl)
this.options.externalControl = $(this.options.externalControl);
if (!this.options.externalControl)
this.options.externalControlOnly = false;
this._originalBackground = this.element.getStyle('background-color') || 'transparent';
this.element.title = this.options.clickToEditText;
this._boundCancelHandler = this.handleFormCancellation.bind(this);
this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
this._boundFailureHandler = this.handleAJAXFailure.bind(this);
this._boundSubmitHandler = this.handleFormSubmission.bind(this);
this._boundWrapperHandler = this.wrapUp.bind(this);
this.registerListeners();
},
checkForEscapeOrReturn: function(e) {
if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
if (Event.KEY_ESC == e.keyCode)
this.handleFormCancellation(e);
else if (Event.KEY_RETURN == e.keyCode)
this.handleFormSubmission(e);
},
createControl: function(mode, handler, extraClasses) {
var control = this.options[mode + 'Control'];
var text = this.options[mode + 'Text'];
if ('button' == control) {
var btn = document.createElement('input');
btn.type = 'submit';
btn.value = text;
btn.className = 'editor_' + mode + '_button';
if ('cancel' == mode)
btn.onclick = this._boundCancelHandler;
this._form.appendChild(btn);
this._controls[mode] = btn;
} else if ('link' == control) {
var link = document.createElement('a');
link.href = '#';
link.appendChild(document.createTextNode(text));
link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
link.className = 'editor_' + mode + '_link';
if (extraClasses)
link.className += ' ' + extraClasses;
this._form.appendChild(link);
this._controls[mode] = link;
}
},
createEditField: function() {
var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
var fld;
if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
fld = document.createElement('input');
fld.type = 'text';
var size = this.options.size || this.options.cols || 0;
if (0 < size) fld.size = size;
} else {
fld = document.createElement('textarea');
fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
fld.cols = this.options.cols || 40;
}
fld.name = this.options.paramName;
fld.value = text; // No HTML breaks conversion anymore
fld.className = 'editor_field';
if (this.options.submitOnBlur)
fld.onblur = this._boundSubmitHandler;
this._controls.editor = fld;
if (this.options.loadTextURL)
this.loadExternalText();
this._form.appendChild(this._controls.editor);
},
createForm: function() {
var ipe = this;
function addText(mode, condition) {
var text = ipe.options['text' + mode + 'Controls'];
if (!text || condition === false) return;
ipe._form.appendChild(document.createTextNode(text));
};
this._form = $(document.createElement('form'));
this._form.id = this.options.formId;
this._form.addClassName(this.options.formClassName);
this._form.onsubmit = this._boundSubmitHandler;
this.createEditField();
if ('textarea' == this._controls.editor.tagName.toLowerCase())
this._form.appendChild(document.createElement('br'));
if (this.options.onFormCustomization)
this.options.onFormCustomization(this, this._form);
addText('Before', this.options.okControl || this.options.cancelControl);
this.createControl('ok', this._boundSubmitHandler);
addText('Between', this.options.okControl && this.options.cancelControl);
this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
addText('After', this.options.okControl || this.options.cancelControl);
},
destroy: function() {
if (this._oldInnerHTML)
this.element.innerHTML = this._oldInnerHTML;
this.leaveEditMode();
this.unregisterListeners();
},
enterEditMode: function(e) {
if (this._saving || this._editing) return;
this._editing = true;
this.triggerCallback('onEnterEditMode');
if (this.options.externalControl)
this.options.externalControl.hide();
this.element.hide();
this.createForm();
this.element.parentNode.insertBefore(this._form, this.element);
if (!this.options.loadTextURL)
this.postProcessEditField();
if (e) Event.stop(e);
},
enterHover: function(e) {
if (this.options.hoverClassName)
this.element.addClassName(this.options.hoverClassName);
if (this._saving) return;
this.triggerCallback('onEnterHover');
},
getText: function() {
return this.element.innerHTML;
},
handleAJAXFailure: function(transport) {
this.triggerCallback('onFailure', transport);
if (this._oldInnerHTML) {
this.element.innerHTML = this._oldInnerHTML;
this._oldInnerHTML = null;
}
},
handleFormCancellation: function(e) {
this.wrapUp();
if (e) Event.stop(e);
},
handleFormSubmission: function(e) {
var form = this._form;
var value = $F(this._controls.editor);
this.prepareSubmission();
var params = this.options.callback(form, value);
params = (params ? params + '&' : '?') + 'editorId=' + this.element.id;
if (this.options.htmlResponse) {
var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
Object.extend(options, {
parameters: params,
onComplete: this._boundWrapperHandler,
onFailure: this._boundFailureHandler
});
new Ajax.Updater({ success: this.element }, this.url, options);
} else {
var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
Object.extend(options, {
parameters: params,
onComplete: this._boundWrapperHandler,
onFailure: this._boundFailureHandler
});
new Ajax.Request(this.url, options);
}
if (e) Event.stop(e);
},
leaveEditMode: function() {
this.element.removeClassName(this.options.savingClassName);
this.removeForm();
this.leaveHover();
this.element.style.backgroundColor = this._originalBackground;
this.element.show();
if (this.options.externalControl)
this.options.externalControl.show();
this._saving = false;
this._editing = false;
this._oldInnerHTML = null;
this.triggerCallback('onLeaveEditMode');
},
leaveHover: function(e) {
if (this.options.hoverClassName)
this.element.removeClassName(this.options.hoverClassName);
if (this._saving) return;
this.triggerCallback('onLeaveHover');
},
loadExternalText: function() {
this._form.addClassName(this.options.loadingClassName);
this._controls.editor.disabled = true;
var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
Object.extend(options, {
parameters: 'editorId=' + encodeURIComponent(this.element.id),
onComplete: Prototype.emptyFunction,
onSuccess: function(transport) {
this._form.removeClassName(this.options.loadingClassName);
var text = transport.responseText;
if (this.options.stripLoadedTextTags)
text = text.stripTags();
this._controls.editor.value = text;
this._controls.editor.disabled = false;
this.postProcessEditField();
}.bind(this),
onFailure: this._boundFailureHandler
});
new Ajax.Request(this.options.loadTextURL, options);
},
postProcessEditField: function() {
var fpc = this.options.fieldPostCreation;
if (fpc)
$(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
},
prepareOptions: function() {
this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
[this._extraDefaultOptions].flatten().compact().each(function(defs) {
Object.extend(this.options, defs);
}.bind(this));
},
prepareSubmission: function() {
this._saving = true;
this.removeForm();
this.leaveHover();
this.showSaving();
},
registerListeners: function() {
this._listeners = { };
var listener;
$H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
listener = this[pair.value].bind(this);
this._listeners[pair.key] = listener;
if (!this.options.externalControlOnly)
this.element.observe(pair.key, listener);
if (this.options.externalControl)
this.options.externalControl.observe(pair.key, listener);
}.bind(this));
},
removeForm: function() {
if (!this._form) return;
this._form.remove();
this._form = null;
this._controls = { };
},
showSaving: function() {
this._oldInnerHTML = this.element.innerHTML;
this.element.innerHTML = this.options.savingText;
this.element.addClassName(this.options.savingClassName);
this.element.style.backgroundColor = this._originalBackground;
this.element.show();
},
triggerCallback: function(cbName, arg) {
if ('function' == typeof this.options[cbName]) {
this.options[cbName](this, arg);
}
},
unregisterListeners: function() {
$H(this._listeners).each(function(pair) {
if (!this.options.externalControlOnly)
this.element.stopObserving(pair.key, pair.value);
if (this.options.externalControl)
this.options.externalControl.stopObserving(pair.key, pair.value);
}.bind(this));
},
wrapUp: function(transport) {
this.leaveEditMode();
// Can't use triggerCallback due to backward compatibility: requires
// binding + direct element
this._boundComplete(transport, this.element);
}
};
Object.extend(Ajax.InPlaceEditor.prototype, {
dispose: Ajax.InPlaceEditor.prototype.destroy
});
Ajax.InPlaceCollectionEditor = Class.create();
Ajax.InPlaceCollectionEditor.DefaultOptions = {
loadingCollectionText: 'Loading options...'
};
Object.extend(Ajax.InPlaceCollectionEditor.prototype, Ajax.InPlaceEditor.prototype);
Object.extend(Ajax.InPlaceCollectionEditor.prototype, {
initialize: function(element, url, options) {
this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
Ajax.InPlaceEditor.prototype.initialize.call(this, element, url, options);
},
createEditField: function() {
var list = document.createElement('select');
list.name = this.options.paramName;
list.size = 1;
this._controls.editor = list;
this._collection = this.options.collection || [];
if (this.options.loadCollectionURL)
this.loadCollection();
else
this.checkForExternalText();
this._form.appendChild(this._controls.editor);
},
loadCollection: function() {
this._form.addClassName(this.options.loadingClassName);
this.showLoadingText(this.options.loadingCollectionText);
var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
Object.extend(options, {
parameters: 'editorId=' + encodeURIComponent(this.element.id),
onComplete: Prototype.emptyFunction,
onSuccess: function(transport) {
var js = transport.responseText.strip();
if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
throw 'Server returned an invalid collection representation.';
this._collection = eval(js);
this.checkForExternalText();
}.bind(this),
onFailure: this.onFailure
});
new Ajax.Request(this.options.loadCollectionURL, options);
},
showLoadingText: function(text) {
this._controls.editor.disabled = true;
var tempOption = this._controls.editor.firstChild;
if (!tempOption) {
tempOption = document.createElement('option');
tempOption.value = '';
this._controls.editor.appendChild(tempOption);
tempOption.selected = true;
}
tempOption.update((text || '').stripScripts().stripTags());
},
checkForExternalText: function() {
this._text = this.getText();
if (this.options.loadTextURL)
this.loadExternalText();
else
this.buildOptionList();
},
loadExternalText: function() {
this.showLoadingText(this.options.loadingText);
var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
Object.extend(options, {
parameters: 'editorId=' + encodeURIComponent(this.element.id),
onComplete: Prototype.emptyFunction,
onSuccess: function(transport) {
this._text = transport.responseText.strip();
this.buildOptionList();
}.bind(this),
onFailure: this.onFailure
});
new Ajax.Request(this.options.loadTextURL, options);
},
buildOptionList: function() {
this._form.removeClassName(this.options.loadingClassName);
this._collection = this._collection.map(function(entry) {
return 2 === entry.length ? entry : [entry, entry].flatten();
});
var marker = ('value' in this.options) ? this.options.value : this._text;
var textFound = this._collection.any(function(entry) {
return entry[0] == marker;
}.bind(this));
this._controls.editor.update('');
var option;
this._collection.each(function(entry, index) {
option = document.createElement('option');
option.value = entry[0];
option.selected = textFound ? entry[0] == marker : 0 == index;
option.appendChild(document.createTextNode(entry[1]));
this._controls.editor.appendChild(option);
}.bind(this));
this._controls.editor.disabled = false;
Field.scrollFreeActivate(this._controls.editor);
}
});
//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
//**** This only exists for a while, in order to let ****
//**** users adapt to the new API. Read up on the new ****
//**** API and convert your code to it ASAP! ****
Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
if (!options) return;
function fallback(name, expr) {
if (name in options || expr === undefined) return;
options[name] = expr;
};
fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
options.cancelLink == options.cancelButton == false ? false : undefined)));
fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
options.okLink == options.okButton == false ? false : undefined)));
fallback('highlightColor', options.highlightcolor);
fallback('highlightEndColor', options.highlightendcolor);
};
// Delayed observer, like Form.Element.Observer,
// but waits for delay after last key input
// Ideal for live-search fields
Form.Element.DelayedObserver = Class.create();
Form.Element.DelayedObserver.prototype = {
initialize: function(element, delay, callback) {
this.delay = delay || 0.5;
this.element = $(element);
this.callback = callback;
this.timer = null;
this.lastValue = $F(this.element);
Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
},
delayedListener: function(event) {
if(this.lastValue == $F(this.element)) return;
if(this.timer) clearTimeout(this.timer);
this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
this.lastValue = $F(this.element);
},
onTimerEvent: function() {
this.timer = null;
this.callback(this.element, $F(this.element));
}
};

66
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/dragdrop.js → main/NOVA_0.4.5/templates/static/javascripts/dragdrop.js

@ -1,4 +1,4 @@
// script.aculo.us dragdrop.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // script.aculo.us dragdrop.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) // (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)
@ -6,7 +6,7 @@
// script.aculo.us is freely distributable under the terms of an MIT-style license. // script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/ // For details, see the script.aculo.us web site: http://script.aculo.us/
if(typeof Effect == 'undefined') if(Object.isUndefined(Effect))
throw("dragdrop.js requires including script.aculo.us' effects.js library"); throw("dragdrop.js requires including script.aculo.us' effects.js library");
var Droppables = { var Droppables = {
@ -22,14 +22,13 @@ var Droppables = {
greedy: true, greedy: true,
hoverclass: null, hoverclass: null,
tree: false tree: false
}, arguments[1] || {}); }, arguments[1] || { });
// cache containers // cache containers
if(options.containment) { if(options.containment) {
options._containers = []; options._containers = [];
var containment = options.containment; var containment = options.containment;
if((typeof containment == 'object') && if(Object.isArray(containment)) {
(containment.constructor == Array)) {
containment.each( function(c) { options._containers.push($(c)) }); containment.each( function(c) { options._containers.push($(c)) });
} else { } else {
options._containers.push($(containment)); options._containers.push($(containment));
@ -89,21 +88,23 @@ var Droppables = {
show: function(point, element) { show: function(point, element) {
if(!this.drops.length) return; if(!this.drops.length) return;
var affected = []; var drop, affected = [];
if(this.last_active) this.deactivate(this.last_active);
this.drops.each( function(drop) { this.drops.each( function(drop) {
if(Droppables.isAffected(point, element, drop)) if(Droppables.isAffected(point, element, drop))
affected.push(drop); affected.push(drop);
}); });
if(affected.length>0) { if(affected.length>0)
drop = Droppables.findDeepestChild(affected); drop = Droppables.findDeepestChild(affected);
if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);
if (drop) {
Position.within(drop.element, point[0], point[1]); Position.within(drop.element, point[0], point[1]);
if(drop.onHover) if(drop.onHover)
drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));
Droppables.activate(drop); if (drop != this.last_active) Droppables.activate(drop);
} }
}, },
@ -224,7 +225,7 @@ var Draggables = {
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
var Draggable = Class.create(); var Draggable = Class.create();
Draggable._dragging = {}; Draggable._dragging = { };
Draggable.prototype = { Draggable.prototype = {
initialize: function(element) { initialize: function(element) {
@ -237,7 +238,7 @@ Draggable.prototype = {
}); });
}, },
endeffect: function(element) { endeffect: function(element) {
var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0; var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
queue: {scope:'_draggable', position:'end'}, queue: {scope:'_draggable', position:'end'},
afterFinish: function(){ afterFinish: function(){
@ -255,7 +256,7 @@ Draggable.prototype = {
delay: 0 delay: 0
}; };
if(!arguments[1] || typeof arguments[1].endeffect == 'undefined') if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
Object.extend(defaults, { Object.extend(defaults, {
starteffect: function(element) { starteffect: function(element) {
element._opacity = Element.getOpacity(element); element._opacity = Element.getOpacity(element);
@ -264,11 +265,11 @@ Draggable.prototype = {
} }
}); });
var options = Object.extend(defaults, arguments[1] || {}); var options = Object.extend(defaults, arguments[1] || { });
this.element = $(element); this.element = $(element);
if(options.handle && (typeof options.handle == 'string')) if(options.handle && Object.isString(options.handle))
this.handle = this.element.down('.'+options.handle, 0); this.handle = this.element.down('.'+options.handle, 0);
if(!this.handle) this.handle = $(options.handle); if(!this.handle) this.handle = $(options.handle);
@ -281,7 +282,6 @@ Draggable.prototype = {
Element.makePositioned(this.element); // fix IE Element.makePositioned(this.element); // fix IE
this.delta = this.currentDelta();
this.options = options; this.options = options;
this.dragging = false; this.dragging = false;
@ -303,7 +303,7 @@ Draggable.prototype = {
}, },
initDrag: function(event) { initDrag: function(event) {
if(typeof Draggable._dragging[this.element] != 'undefined' && if(!Object.isUndefined(Draggable._dragging[this.element]) &&
Draggable._dragging[this.element]) return; Draggable._dragging[this.element]) return;
if(Event.isLeftClick(event)) { if(Event.isLeftClick(event)) {
// abort on form elements, fixes a Firefox issue // abort on form elements, fixes a Firefox issue
@ -326,6 +326,8 @@ Draggable.prototype = {
startDrag: function(event) { startDrag: function(event) {
this.dragging = true; this.dragging = true;
if(!this.delta)
this.delta = this.currentDelta();
if(this.options.zindex) { if(this.options.zindex) {
this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
@ -334,7 +336,9 @@ Draggable.prototype = {
if(this.options.ghosting) { if(this.options.ghosting) {
this._clone = this.element.cloneNode(true); this._clone = this.element.cloneNode(true);
Position.absolutize(this.element); this.element._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
if (!this.element._originallyAbsolute)
Position.absolutize(this.element);
this.element.parentNode.insertBefore(this._clone, this.element); this.element.parentNode.insertBefore(this._clone, this.element);
} }
@ -404,7 +408,9 @@ Draggable.prototype = {
} }
if(this.options.ghosting) { if(this.options.ghosting) {
Position.relativize(this.element); if (!this.element._originallyAbsolute)
Position.relativize(this.element);
delete this.element._originallyAbsolute;
Element.remove(this._clone); Element.remove(this._clone);
this._clone = null; this._clone = null;
} }
@ -418,7 +424,7 @@ Draggable.prototype = {
Draggables.notify('onEnd', this, event); Draggables.notify('onEnd', this, event);
var revert = this.options.revert; var revert = this.options.revert;
if(revert && typeof revert == 'function') revert = revert(this.element); if(revert && Object.isFunction(revert)) revert = revert(this.element);
var d = this.currentDelta(); var d = this.currentDelta();
if(revert && this.options.reverteffect) { if(revert && this.options.reverteffect) {
@ -472,15 +478,15 @@ Draggable.prototype = {
}.bind(this)); }.bind(this));
if(this.options.snap) { if(this.options.snap) {
if(typeof this.options.snap == 'function') { if(Object.isFunction(this.options.snap)) {
p = this.options.snap(p[0],p[1],this); p = this.options.snap(p[0],p[1],this);
} else { } else {
if(this.options.snap instanceof Array) { if(Object.isArray(this.options.snap)) {
p = p.map( function(v, i) { p = p.map( function(v, i) {
return Math.round(v/this.options.snap[i])*this.options.snap[i] }.bind(this)) return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this))
} else { } else {
p = p.map( function(v) { p = p.map( function(v) {
return Math.round(v/this.options.snap)*this.options.snap }.bind(this)) return (v/this.options.snap).round()*this.options.snap }.bind(this))
} }
}} }}
@ -590,7 +596,7 @@ SortableObserver.prototype = {
var Sortable = { var Sortable = {
SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,
sortables: {}, sortables: { },
_findRootElement: function(element) { _findRootElement: function(element) {
while (element.tagName.toUpperCase() != "BODY") { while (element.tagName.toUpperCase() != "BODY") {
@ -646,7 +652,7 @@ var Sortable = {
onChange: Prototype.emptyFunction, onChange: Prototype.emptyFunction,
onUpdate: Prototype.emptyFunction onUpdate: Prototype.emptyFunction
}, arguments[1] || {}); }, arguments[1] || { });
// clear any old sortable with same element // clear any old sortable with same element
this.destroy(element); this.destroy(element);
@ -870,7 +876,7 @@ var Sortable = {
only: sortableOptions.only, only: sortableOptions.only,
name: element.id, name: element.id,
format: sortableOptions.format format: sortableOptions.format
}, arguments[1] || {}); }, arguments[1] || { });
var root = { var root = {
id: null, id: null,
@ -894,7 +900,7 @@ var Sortable = {
sequence: function(element) { sequence: function(element) {
element = $(element); element = $(element);
var options = Object.extend(this.options(element), arguments[1] || {}); var options = Object.extend(this.options(element), arguments[1] || { });
return $(this.findElements(element, options) || []).map( function(item) { return $(this.findElements(element, options) || []).map( function(item) {
return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
@ -903,9 +909,9 @@ var Sortable = {
setSequence: function(element, new_sequence) { setSequence: function(element, new_sequence) {
element = $(element); element = $(element);
var options = Object.extend(this.options(element), arguments[2] || {}); var options = Object.extend(this.options(element), arguments[2] || { });
var nodeMap = {}; var nodeMap = { };
this.findElements(element, options).each( function(n) { this.findElements(element, options).each( function(n) {
if (n.id.match(options.format)) if (n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
@ -923,7 +929,7 @@ var Sortable = {
serialize: function(element) { serialize: function(element) {
element = $(element); element = $(element);
var options = Object.extend(Sortable.options(element), arguments[1] || {}); var options = Object.extend(Sortable.options(element), arguments[1] || { });
var name = encodeURIComponent( var name = encodeURIComponent(
(arguments[1] && arguments[1].name) ? arguments[1].name : element.id); (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);

577
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/effects.js → main/NOVA_0.4.5/templates/static/javascripts/effects.js

File diff suppressed because it is too large

38
main/NOVA_0.4.4/templates/static/javascripts/lytebox/lytebox.js → main/NOVA_0.4.5/templates/static/javascripts/lytebox.js

@ -1,17 +1,19 @@
//***********************************************************************************************************************************/ //***********************************************************************************************************************************/
// LyteBox v3.20 // LyteBox v3.22
// //
// Author: Markus F. Hay // Author: Markus F. Hay
// Website: http://www.dolem.com/lytebox // Website: http://www.dolem.com/lytebox
// Date: July 12, 2007 // Date: October 2, 2007
// License: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/) // License: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/)
// Browsers: Tested successfully on WinXP with the following browsers (using no DOCTYPE, Strict DOCTYPE, and Transitional DOCTYPE): // Browsers: Tested successfully on WinXP with the following browsers (using no DOCTYPE and Strict/Transitional/Loose DOCTYPES):
// * Firefox: 2.0.0.4, 1.5.0.12 // * Firefox: 2.0.0.7, 1.5.0.12
// * Internet Explorer: 7.0, 6.0 SP2, 5.5 SP2 // * Internet Explorer: 7.0, 6.0 SP2, 5.5 SP2
// * Opera: 9.21 // * Opera: 9.23
// //
// Releases: For up-to-date and complete release information, visit http://www.dolem.com/forum/showthread.php?tid=62 // Releases: For up-to-date and complete release information, visit http://www.dolem.com/forum/showthread.php?tid=62
// * v3.20 (07/11/07) // * v3.22 (10/02/07)
// * v3.21 (09/30/07)
// * v3.20 (07/12/07)
// * v3.10 (05/28/07) // * v3.10 (05/28/07)
// * v3.00 (05/15/07) // * v3.00 (05/15/07)
// * v2.02 (11/13/06) // * v2.02 (11/13/06)
@ -28,18 +30,18 @@ function LyteBox() {
this.theme = 'grey'; // themes: grey (default), red, green, blue, gold this.theme = 'grey'; // themes: grey (default), red, green, blue, gold
this.hideFlash = true; // controls whether or not Flash objects should be hidden this.hideFlash = true; // controls whether or not Flash objects should be hidden
this.outerBorder = false; // controls whether to show the outer grey (or theme) border this.outerBorder = false; // controls whether to show the outer grey (or theme) border
this.resizeSpeed = 8; // controls the speed of the image resizing (1=slowest and 10=fastest) this.resizeSpeed = 10; // controls the speed of the image resizing (1=slowest and 10=fastest)
this.maxOpacity = 80; // higher opacity = darker overlay, lower opacity = lighter overlay this.maxOpacity = 80; // higher opacity = darker overlay, lower opacity = lighter overlay
this.navType = 1; // 1 = "Prev/Next" buttons on top left and left (default), 2 = "<< prev | next >>" links next to image number this.navType = 1; // 1 = "Prev/Next" buttons on top left and left (default), 2 = "<< prev | next >>" links next to image number
this.autoResize = true; // controls whether or not images should be resized if larger than the browser window dimensions this.autoResize = false; // controls whether or not images should be resized if larger than the browser window dimensions
this.doAnimations = false; // controls whether or not "animate" Lytebox, i.e. resize transition between images, fade in/out effects, etc. this.doAnimations = false; // controls whether or not "animate" Lytebox, i.e. resize transition between images, fade in/out effects, etc.
this.borderSize = 12; // if you adjust the padding in the CSS, you will need to update this variable -- otherwise, leave this alone... this.borderSize = 12; // if you adjust the padding in the CSS, you will need to update this variable -- otherwise, leave this alone...
/*** End Global Configuration ***/ /*** End Global Configuration ***/
/*** Configure Slideshow Options ***/ /*** Configure Slideshow Options ***/
this.slideInterval = 4000; // Change value (milliseconds) to increase/decrease the time between "slides" (10000 = 10 seconds) this.slideInterval = 0; // Change value (milliseconds) to increase/decrease the time between "slides" (10000 = 10 seconds)
this.showNavigation = true; // true to display Next/Prev buttons/text during slideshow, false to hide this.showNavigation = false; // true to display Next/Prev buttons/text during slideshow, false to hide
this.showClose = true; // true to display the Close button, false to hide this.showClose = true; // true to display the Close button, false to hide
this.showDetails = true; // true to display image details (caption, count), false to hide this.showDetails = true; // true to display image details (caption, count), false to hide
this.showPlayPause = true; // true to display pause/play buttons next to close button, false to hide this.showPlayPause = true; // true to display pause/play buttons next to close button, false to hide
@ -81,7 +83,7 @@ function LyteBox() {
this.ie = false; this.ie = false;
/*@end /*@end
@*/ @*/
this.ie7 = (this.ie && window.XMLHttpRequest); this.ie7 = (this.ie && window.XMLHttpRequest);
this.initialize(); this.initialize();
} }
LyteBox.prototype.initialize = function() { LyteBox.prototype.initialize = function() {
@ -94,6 +96,9 @@ LyteBox.prototype.initialize = function() {
var objOverlay = this.doc.createElement("div"); var objOverlay = this.doc.createElement("div");
objOverlay.setAttribute('id','lbOverlay'); objOverlay.setAttribute('id','lbOverlay');
objOverlay.setAttribute((this.ie ? 'className' : 'class'), this.theme); objOverlay.setAttribute((this.ie ? 'className' : 'class'), this.theme);
if ((this.ie && !this.ie7) || (this.ie7 && this.doc.compatMode == 'BackCompat')) {
objOverlay.style.position = 'absolute';
}
objOverlay.style.display = 'none'; objOverlay.style.display = 'none';
objBody.appendChild(objOverlay); objBody.appendChild(objOverlay);
var objLytebox = this.doc.createElement("div"); var objLytebox = this.doc.createElement("div");
@ -278,7 +283,7 @@ LyteBox.prototype.start = function(imageLink, doSlide, doFrame) {
} }
this.doc.getElementById('lbClose').onclick = function() { myLytebox.end(); return false; } this.doc.getElementById('lbClose').onclick = function() { myLytebox.end(); return false; }
this.doc.getElementById('lbPause').onclick = function() { myLytebox.togglePlayPause("lbPause", "lbPlay"); return false; } this.doc.getElementById('lbPause').onclick = function() { myLytebox.togglePlayPause("lbPause", "lbPlay"); return false; }
this.doc.getElementById('lbPlay').onclick = function() { myLytebox.togglePlayPause("lbPlay", "lbPause"); return false; } this.doc.getElementById('lbPlay').onclick = function() { myLytebox.togglePlayPause("lbPlay", "lbPause"); return false; }
this.isSlideshow = doSlide; this.isSlideshow = doSlide;
this.isPaused = (this.slideNum != 0 ? true : false); this.isPaused = (this.slideNum != 0 ? true : false);
if (this.isSlideshow && this.showPlayPause && this.isPaused) { if (this.isSlideshow && this.showPlayPause && this.isPaused) {
@ -340,7 +345,6 @@ LyteBox.prototype.changeContent = function(imageNum) {
//iframe.style.border = b.trim(); //iframe.style.border = b.trim();
} }
} }
iframe.src = this.frameArray[this.activeFrame][0];
this.resizeContainer(parseInt(iframe.width), parseInt(iframe.height)); this.resizeContainer(parseInt(iframe.width), parseInt(iframe.height));
} else { } else {
imgPreloader = new Image(); imgPreloader = new Image();
@ -449,6 +453,9 @@ LyteBox.prototype.showContent = function() {
} }
this.doc.getElementById('lbImageContainer').style.display = (this.isLyteframe ? 'none' : ''); this.doc.getElementById('lbImageContainer').style.display = (this.isLyteframe ? 'none' : '');
this.doc.getElementById('lbIframeContainer').style.display = (this.isLyteframe ? '' : 'none'); this.doc.getElementById('lbIframeContainer').style.display = (this.isLyteframe ? '' : 'none');
try {
this.doc.getElementById('lbIframe').src = this.frameArray[this.activeFrame][0];
} catch(e) { }
} else { } else {
this.showContentTimerArray[this.showContentTimerCount++] = setTimeout("myLytebox.showContent()", 200); this.showContentTimerArray[this.showContentTimerCount++] = setTimeout("myLytebox.showContent()", 200);
} }
@ -635,6 +642,9 @@ LyteBox.prototype.end = function(caller) {
if (this.isSlideshow) { if (this.isSlideshow) {
for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); } for (var i = 0; i < this.slideshowIDCount; i++) { window.clearTimeout(this.slideshowIDArray[i]); }
} }
if (this.isLyteframe) {
this.initialize();
}
}; };
LyteBox.prototype.checkFrame = function() { LyteBox.prototype.checkFrame = function() {
if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) { if (window.parent.frames[window.name] && (parent.document.getElementsByTagName('frameset').length <= 0)) {
@ -665,11 +675,13 @@ LyteBox.prototype.appear = function(id, opacity) {
object.KhtmlOpacity = (opacity / 100); object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + (opacity + 10) + ")"; object.filter = "alpha(opacity=" + (opacity + 10) + ")";
if (opacity == 100 && (id == 'lbImage' || id == 'lbIframe')) { if (opacity == 100 && (id == 'lbImage' || id == 'lbIframe')) {
try { object.removeAttribute("filter"); } catch(e) {} /* Fix added for IE Alpha Opacity Filter bug. */
this.updateDetails(); this.updateDetails();
} else if (opacity >= this.maxOpacity && id == 'lbOverlay') { } else if (opacity >= this.maxOpacity && id == 'lbOverlay') {
for (var i = 0; i < this.overlayTimerCount; i++) { window.clearTimeout(this.overlayTimerArray[i]); } for (var i = 0; i < this.overlayTimerCount; i++) { window.clearTimeout(this.overlayTimerArray[i]); }
return; return;
} else if (opacity >= 100 && id == 'lbDetailsContainer') { } else if (opacity >= 100 && id == 'lbDetailsContainer') {
try { object.removeAttribute("filter"); } catch(e) {} /* Fix added for IE Alpha Opacity Filter bug. */
for (var i = 0; i < this.imageTimerCount; i++) { window.clearTimeout(this.imageTimerArray[i]); } for (var i = 0; i < this.imageTimerCount; i++) { window.clearTimeout(this.imageTimerArray[i]); }
this.doc.getElementById('lbOverlay').style.height = this.getPageSize()[1] + "px"; this.doc.getElementById('lbOverlay').style.height = this.getPageSize()[1] + "px";
} else { } else {

2
main/NOVA_0.4.4/templates/static/javascripts/nova.js → main/NOVA_0.4.5/templates/static/javascripts/nova.js

@ -215,7 +215,7 @@ function MainLoop(){
verbosity += '<img src="static/images/icon-history-unzip.gif" title="'+histore.lines[i].stages[j].actions[k].value.substr(3)+' :: '+histore.lines[i].stages[j].actions[k].name+'" />'; verbosity += '<img src="static/images/icon-history-unzip.gif" title="'+histore.lines[i].stages[j].actions[k].value.substr(3)+' :: '+histore.lines[i].stages[j].actions[k].name+'" />';
break; break;
case "DEL": case "DEL":
verbosity += '<img src="static/images/icon-history-cleanup.gif" title="'+histore.lines[i].stages[j].actions[k].value.substr(3)+' :: '+histore.lines[i].stages[j].actions[k].name+'" />'; verbosity += '<img src="static/images/icon-history-cleanup.png" title="'+histore.lines[i].stages[j].actions[k].value.substr(3)+' :: '+histore.lines[i].stages[j].actions[k].name+'" />';
break; break;
case "FJN": case "FJN":
verbosity += '<img src="static/images/icon-history-join.png" title="'+histore.lines[i].stages[j].actions[k].value.substr(3)+' :: '+histore.lines[i].stages[j].actions[k].name+'" />'; verbosity += '<img src="static/images/icon-history-join.png" title="'+histore.lines[i].stages[j].actions[k].value.substr(3)+' :: '+histore.lines[i].stages[j].actions[k].name+'" />';

730
main/NOVA_0.4.4/templates/static/javascripts/prototype/prototype.js → main/NOVA_0.4.5/templates/static/javascripts/prototype.js

File diff suppressed because it is too large

6
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/scriptaculous.js → main/NOVA_0.4.5/templates/static/javascripts/scriptaculous.js

@ -1,4 +1,4 @@
// script.aculo.us scriptaculous.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // script.aculo.us scriptaculous.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// //
@ -24,12 +24,12 @@
// For details, see the script.aculo.us web site: http://script.aculo.us/ // For details, see the script.aculo.us web site: http://script.aculo.us/
var Scriptaculous = { var Scriptaculous = {
Version: '1.7.1_beta3', Version: '1.8.0_pre1',
require: function(libraryName) { require: function(libraryName) {
// inserting via DOM fails in Safari 2.0, so brute force approach // inserting via DOM fails in Safari 2.0, so brute force approach
document.write('<script type="text/javascript" src="'+libraryName+'"></script>'); document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
}, },
REQUIRED_PROTOTYPE: '1.5.1', REQUIRED_PROTOTYPE: '1.6.0',
load: function() { load: function() {
function convertVersionString(versionString){ function convertVersionString(versionString){
var r = versionString.split('.'); var r = versionString.split('.');

73
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/slider.js → main/NOVA_0.4.5/templates/static/javascripts/slider.js

@ -1,11 +1,11 @@
// script.aculo.us slider.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // script.aculo.us slider.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Marty Haught, Thomas Fuchs // Copyright (c) 2005-2007 Marty Haught, Thomas Fuchs
// //
// script.aculo.us is freely distributable under the terms of an MIT-style license. // script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/ // For details, see the script.aculo.us web site: http://script.aculo.us/
if(!Control) var Control = {}; if (!Control) var Control = { };
Control.Slider = Class.create(); Control.Slider = Class.create();
// options: // options:
@ -18,14 +18,14 @@ Control.Slider.prototype = {
initialize: function(handle, track, options) { initialize: function(handle, track, options) {
var slider = this; var slider = this;
if(handle instanceof Array) { if (Object.isArray(handle)) {
this.handles = handle.collect( function(e) { return $(e) }); this.handles = handle.collect( function(e) { return $(e) });
} else { } else {
this.handles = [$(handle)]; this.handles = [$(handle)];
} }
this.track = $(track); this.track = $(track);
this.options = options || {}; this.options = options || { };
this.axis = this.options.axis || 'horizontal'; this.axis = this.options.axis || 'horizontal';
this.increment = this.options.increment || 1; this.increment = this.options.increment || 1;
@ -59,11 +59,11 @@ Control.Slider.prototype = {
this.dragging = false; this.dragging = false;
this.disabled = false; this.disabled = false;
if(this.options.disabled) this.setDisabled(); if (this.options.disabled) this.setDisabled();
// Allowed values array // Allowed values array
this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false; this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;
if(this.allowedValues) { if (this.allowedValues) {
this.minimum = this.allowedValues.min(); this.minimum = this.allowedValues.min();
this.maximum = this.allowedValues.max(); this.maximum = this.allowedValues.max();
} }
@ -76,16 +76,15 @@ Control.Slider.prototype = {
this.handles.each( function(h,i) { this.handles.each( function(h,i) {
i = slider.handles.length-1-i; i = slider.handles.length-1-i;
slider.setValue(parseFloat( slider.setValue(parseFloat(
(slider.options.sliderValue instanceof Array ? (Object.isArray(slider.options.sliderValue) ?
slider.options.sliderValue[i] : slider.options.sliderValue) || slider.options.sliderValue[i] : slider.options.sliderValue) ||
slider.range.start), i); slider.range.start), i);
Element.makePositioned(h); // fix IE h.makePositioned().observe("mousedown", slider.eventMouseDown);
Event.observe(h, "mousedown", slider.eventMouseDown);
}); });
Event.observe(this.track, "mousedown", this.eventMouseDown); this.track.observe("mousedown", this.eventMouseDown);
Event.observe(document, "mouseup", this.eventMouseUp); document.observe("mouseup", this.eventMouseUp);
Event.observe(document, "mousemove", this.eventMouseMove); document.observe("mousemove", this.eventMouseMove);
this.initialized = true; this.initialized = true;
}, },
@ -105,36 +104,36 @@ Control.Slider.prototype = {
this.disabled = false; this.disabled = false;
}, },
getNearestValue: function(value){ getNearestValue: function(value){
if(this.allowedValues){ if (this.allowedValues){
if(value >= this.allowedValues.max()) return(this.allowedValues.max()); if (value >= this.allowedValues.max()) return(this.allowedValues.max());
if(value <= this.allowedValues.min()) return(this.allowedValues.min()); if (value <= this.allowedValues.min()) return(this.allowedValues.min());
var offset = Math.abs(this.allowedValues[0] - value); var offset = Math.abs(this.allowedValues[0] - value);
var newValue = this.allowedValues[0]; var newValue = this.allowedValues[0];
this.allowedValues.each( function(v) { this.allowedValues.each( function(v) {
var currentOffset = Math.abs(v - value); var currentOffset = Math.abs(v - value);
if(currentOffset <= offset){ if (currentOffset <= offset){
newValue = v; newValue = v;
offset = currentOffset; offset = currentOffset;
} }
}); });
return newValue; return newValue;
} }
if(value > this.range.end) return this.range.end; if (value > this.range.end) return this.range.end;
if(value < this.range.start) return this.range.start; if (value < this.range.start) return this.range.start;
return value; return value;
}, },
setValue: function(sliderValue, handleIdx){ setValue: function(sliderValue, handleIdx){
if(!this.active) { if (!this.active) {
this.activeHandleIdx = handleIdx || 0; this.activeHandleIdx = handleIdx || 0;
this.activeHandle = this.handles[this.activeHandleIdx]; this.activeHandle = this.handles[this.activeHandleIdx];
this.updateStyles(); this.updateStyles();
} }
handleIdx = handleIdx || this.activeHandleIdx || 0; handleIdx = handleIdx || this.activeHandleIdx || 0;
if(this.initialized && this.restricted) { if (this.initialized && this.restricted) {
if((handleIdx>0) && (sliderValue<this.values[handleIdx-1])) if ((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))
sliderValue = this.values[handleIdx-1]; sliderValue = this.values[handleIdx-1];
if((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1])) if ((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))
sliderValue = this.values[handleIdx+1]; sliderValue = this.values[handleIdx+1];
} }
sliderValue = this.getNearestValue(sliderValue); sliderValue = this.getNearestValue(sliderValue);
@ -145,7 +144,7 @@ Control.Slider.prototype = {
this.translateToPx(sliderValue); this.translateToPx(sliderValue);
this.drawSpans(); this.drawSpans();
if(!this.dragging || !this.event) this.updateFinished(); if (!this.dragging || !this.event) this.updateFinished();
}, },
setValueBy: function(delta, handleIdx) { setValueBy: function(delta, handleIdx) {
this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta, this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
@ -180,17 +179,17 @@ Control.Slider.prototype = {
}, },
drawSpans: function() { drawSpans: function() {
var slider = this; var slider = this;
if(this.spans) if (this.spans)
$R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) }); $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });
if(this.options.startSpan) if (this.options.startSpan)
this.setSpan(this.options.startSpan, this.setSpan(this.options.startSpan,
$R(0, this.values.length>1 ? this.getRange(0).min() : this.value )); $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));
if(this.options.endSpan) if (this.options.endSpan)
this.setSpan(this.options.endSpan, this.setSpan(this.options.endSpan,
$R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum)); $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));
}, },
setSpan: function(span, range) { setSpan: function(span, range) {
if(this.isVertical()) { if (this.isVertical()) {
span.style.top = this.translateToPx(range.start); span.style.top = this.translateToPx(range.start);
span.style.height = this.translateToPx(range.end - range.start + this.range.start); span.style.height = this.translateToPx(range.end - range.start + this.range.start);
} else { } else {
@ -203,14 +202,14 @@ Control.Slider.prototype = {
Element.addClassName(this.activeHandle, 'selected'); Element.addClassName(this.activeHandle, 'selected');
}, },
startDrag: function(event) { startDrag: function(event) {
if(Event.isLeftClick(event)) { if (Event.isLeftClick(event)) {
if(!this.disabled){ if (!this.disabled){
this.active = true; this.active = true;
var handle = Event.element(event); var handle = Event.element(event);
var pointer = [Event.pointerX(event), Event.pointerY(event)]; var pointer = [Event.pointerX(event), Event.pointerY(event)];
var track = handle; var track = handle;
if(track==this.track) { if (track==this.track) {
var offsets = Position.cumulativeOffset(this.track); var offsets = Position.cumulativeOffset(this.track);
this.event = event; this.event = event;
this.setValue(this.translateToValue( this.setValue(this.translateToValue(
@ -224,7 +223,7 @@ Control.Slider.prototype = {
while((this.handles.indexOf(handle) == -1) && handle.parentNode) while((this.handles.indexOf(handle) == -1) && handle.parentNode)
handle = handle.parentNode; handle = handle.parentNode;
if(this.handles.indexOf(handle)!=-1) { if (this.handles.indexOf(handle)!=-1) {
this.activeHandle = handle; this.activeHandle = handle;
this.activeHandleIdx = this.handles.indexOf(this.activeHandle); this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
this.updateStyles(); this.updateStyles();
@ -239,10 +238,10 @@ Control.Slider.prototype = {
} }
}, },
update: function(event) { update: function(event) {
if(this.active) { if (this.active) {
if(!this.dragging) this.dragging = true; if (!this.dragging) this.dragging = true;
this.draw(event); this.draw(event);
if(Prototype.Browser.WebKit) window.scrollBy(0,0); if (Prototype.Browser.WebKit) window.scrollBy(0,0);
Event.stop(event); Event.stop(event);
} }
}, },
@ -253,11 +252,11 @@ Control.Slider.prototype = {
pointer[1] -= this.offsetY + offsets[1]; pointer[1] -= this.offsetY + offsets[1];
this.event = event; this.event = event;
this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] )); this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));
if(this.initialized && this.options.onSlide) if (this.initialized && this.options.onSlide)
this.options.onSlide(this.values.length>1 ? this.values : this.value, this); this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
}, },
endDrag: function(event) { endDrag: function(event) {
if(this.active && this.dragging) { if (this.active && this.dragging) {
this.finishDrag(event, true); this.finishDrag(event, true);
Event.stop(event); Event.stop(event);
} }
@ -270,7 +269,7 @@ Control.Slider.prototype = {
this.updateFinished(); this.updateFinished();
}, },
updateFinished: function() { updateFinished: function() {
if(this.initialized && this.options.onChange) if (this.initialized && this.options.onChange)
this.options.onChange(this.values.length>1 ? this.values : this.value, this); this.options.onChange(this.values.length>1 ? this.values : this.value, this);
this.event = null; this.event = null;
} }

17
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/sound.js → main/NOVA_0.4.5/templates/static/javascripts/sound.js

@ -1,4 +1,4 @@
// script.aculo.us sound.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // script.aculo.us sound.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// //
@ -39,16 +39,11 @@ Sound = {
this.tracks[options.track].id++; this.tracks[options.track].id++;
options.id = this.tracks[options.track].id; options.id = this.tracks[options.track].id;
if (Prototype.Browser.IE) { $$('body')[0].insert(
var sound = document.createElement('bgsound'); Prototype.Browser.IE ? new Element('bgsound',{
sound.setAttribute('id','sound_'+options.track+'_'+options.id); id: 'sound_'+options.track+'_'+options.id,
sound.setAttribute('src',options.url); src: options.url, loop: 1, autostart: true
sound.setAttribute('loop','1'); }) : Sound.template.evaluate(options));
sound.setAttribute('autostart','true');
$$('body')[0].appendChild(sound);
}
else
new Insertion.Bottom($$('body')[0], Sound.template.evaluate(options));
} }
}; };

22
main/NOVA_0.4.4/templates/static/javascripts/scriptaculous/unittest.js → main/NOVA_0.4.5/templates/static/javascripts/unittest.js

@ -1,4 +1,4 @@
// script.aculo.us unittest.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // script.aculo.us unittest.js v1.8.0_pre1, Fri Oct 12 21:34:51 +0200 2007
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// (c) 2005-2007 Jon Tirsen (http://www.tirsen.com) // (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
@ -524,15 +524,19 @@ Test.setupBDDExtensionMethods = function(){
shouldNotBe: 'assertReturnsFalse', shouldNotBe: 'assertReturnsFalse',
shouldRespondTo: 'assertRespondsTo' shouldRespondTo: 'assertRespondsTo'
}; };
Test.BDDMethods = {}; var makeAssertion = function(assertion, args, object) {
for(m in METHODMAP) { this[assertion].apply(this,(args || []).concat([object]));
Test.BDDMethods[m] = eval(
'function(){'+
'var args = $A(arguments);'+
'var scope = args.shift();'+
'scope.'+METHODMAP[m]+'.apply(scope,(args || []).concat([this])); }');
} }
[Array.prototype, String.prototype, Number.prototype].each(
Test.BDDMethods = {};
$H(METHODMAP).each(function(pair) {
Test.BDDMethods[pair.key] = function() {
var args = $A(arguments);
var scope = args.shift();
makeAssertion.apply(scope, [pair.value, args, this]); };
});
[Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each(
function(p){ Object.extend(p, Test.BDDMethods) } function(p){ Object.extend(p, Test.BDDMethods) }
); );
} }

0
main/NOVA_0.4.4/templates/static/stylesheets/default.css → main/NOVA_0.4.5/templates/static/stylesheets/default.css

58
main/NOVA_0.4.4/templates/static/javascripts/lytebox/lytebox.css → main/NOVA_0.4.5/templates/static/stylesheets/lytebox.css

@ -1,4 +1,4 @@
#lbOverlay { position: absolute; top: 0; left: 0; z-index: 99998; width: 100%; height: 500px; } #lbOverlay { position: fixed; top: 0; left: 0; z-index: 99998; width: 100%; height: 500px; }
#lbOverlay.grey { background-color: #000000; } #lbOverlay.grey { background-color: #000000; }
#lbOverlay.red { background-color: #330000; } #lbOverlay.red { background-color: #330000; }
#lbOverlay.green { background-color: #003300; } #lbOverlay.green { background-color: #003300; }
@ -24,26 +24,26 @@
#lbImageContainer, #lbIframeContainer { padding: 10px; } #lbImageContainer, #lbIframeContainer { padding: 10px; }
#lbLoading { #lbLoading {
position: absolute; top: 45%; left: 0%; height: 32px; width: 100%; text-align: center; line-height: 0; background: url(images/loading.gif) center no-repeat; position: absolute; top: 45%; left: 0%; height: 32px; width: 100%; text-align: center; line-height: 0; background: url(../images/loading.gif) center no-repeat;
} }
#lbHoverNav { position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; } #lbHoverNav { position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; }
#lbImageContainer>#lbHoverNav { left: 0; } #lbImageContainer>#lbHoverNav { left: 0; }
#lbHoverNav a { outline: none; } #lbHoverNav a { outline: none; }
#lbPrev { width: 49%; height: 100%; background: transparent url(images/blank.gif) no-repeat; display: block; left: 0; float: left; } #lbPrev { width: 49%; height: 100%; background: transparent url(../images/blank.gif) no-repeat; display: block; left: 0; float: left; }
#lbPrev.grey:hover, #lbPrev.grey:visited:hover { background: url(images/prev_grey.gif) left 15% no-repeat; } #lbPrev.grey:hover, #lbPrev.grey:visited:hover { background: url(../images/prev_grey.gif) left 15% no-repeat; }
#lbPrev.red:hover, #lbPrev.red:visited:hover { background: url(images/prev_red.gif) left 15% no-repeat; } #lbPrev.red:hover, #lbPrev.red:visited:hover { background: url(../images/prev_red.gif) left 15% no-repeat; }
#lbPrev.green:hover, #lbPrev.green:visited:hover { background: url(images/prev_green.gif) left 15% no-repeat; } #lbPrev.green:hover, #lbPrev.green:visited:hover { background: url(../images/prev_green.gif) left 15% no-repeat; }
#lbPrev.blue:hover, #lbPrev.blue:visited:hover { background: url(images/prev_blue.gif) left 15% no-repeat; } #lbPrev.blue:hover, #lbPrev.blue:visited:hover { background: url(../images/prev_blue.gif) left 15% no-repeat; }
#lbPrev.gold:hover, #lbPrev.gold:visited:hover { background: url(images/prev_gold.gif) left 15% no-repeat; } #lbPrev.gold:hover, #lbPrev.gold:visited:hover { background: url(../images/prev_gold.gif) left 15% no-repeat; }
#lbNext { width: 49%; height: 100%; background: transparent url(images/blank.gif) no-repeat; display: block; right: 0; float: right; } #lbNext { width: 49%; height: 100%; background: transparent url(../images/blank.gif) no-repeat; display: block; right: 0; float: right; }
#lbNext.grey:hover, #lbNext.grey:visited:hover { background: url(images/next_grey.gif) right 15% no-repeat; } #lbNext.grey:hover, #lbNext.grey:visited:hover { background: url(../images/next_grey.gif) right 15% no-repeat; }
#lbNext.red:hover, #lbNext.red:visited:hover { background: url(images/next_red.gif) right 15% no-repeat; } #lbNext.red:hover, #lbNext.red:visited:hover { background: url(../images/next_red.gif) right 15% no-repeat; }
#lbNext.green:hover, #lbNext.green:visited:hover { background: url(images/next_green.gif) right 15% no-repeat; } #lbNext.green:hover, #lbNext.green:visited:hover { background: url(../images/next_green.gif) right 15% no-repeat; }
#lbNext.blue:hover, #lbNext.blue:visited:hover { background: url(images/next_blue.gif) right 15% no-repeat; } #lbNext.blue:hover, #lbNext.blue:visited:hover { background: url(../images/next_blue.gif) right 15% no-repeat; }
#lbNext.gold:hover, #lbNext.gold:visited:hover { background: url(images/next_gold.gif) right 15% no-repeat; } #lbNext.gold:hover, #lbNext.gold:visited:hover { background: url(../images/next_gold.gif) right 15% no-repeat; }
#lbPrev2, #lbNext2 { text-decoration: none; font-weight: bold; } #lbPrev2, #lbNext2 { text-decoration: none; font-weight: bold; }
#lbPrev2.grey, #lbNext2.grey, #lbSpacer.grey { color: #333333; } #lbPrev2.grey, #lbNext2.grey, #lbSpacer.grey { color: #333333; }
@ -72,22 +72,22 @@
#lbNavDisplay { float: left; display: block; padding-bottom: 1.0em; } #lbNavDisplay { float: left; display: block; padding-bottom: 1.0em; }
#lbClose { width: 64px; height: 28px; float: right; margin-bottom: 1px; } #lbClose { width: 64px; height: 28px; float: right; margin-bottom: 1px; }
#lbClose.grey { background: url(images/close_grey.png) no-repeat; } #lbClose.grey { background: url(../images/close_grey.png) no-repeat; }
#lbClose.red { background: url(images/close_red.png) no-repeat; } #lbClose.red { background: url(../images/close_red.png) no-repeat; }
#lbClose.green { background: url(images/close_green.png) no-repeat; } #lbClose.green { background: url(../images/close_green.png) no-repeat; }
#lbClose.blue { background: url(images/close_blue.png) no-repeat; } #lbClose.blue { background: url(../images/close_blue.png) no-repeat; }
#lbClose.gold { background: url(images/close_gold.png) no-repeat; } #lbClose.gold { background: url(../images/close_gold.png) no-repeat; }
#lbPlay { width: 64px; height: 28px; float: right; margin-bottom: 1px; } #lbPlay { width: 64px; height: 28px; float: right; margin-bottom: 1px; }
#lbPlay.grey { background: url(images/play_grey.png) no-repeat; } #lbPlay.grey { background: url(../images/play_grey.png) no-repeat; }
#lbPlay.red { background: url(images/play_red.png) no-repeat; } #lbPlay.red { background: url(../images/play_red.png) no-repeat; }
#lbPlay.green { background: url(images/play_green.png) no-repeat; } #lbPlay.green { background: url(../images/play_green.png) no-repeat; }
#lbPlay.blue { background: url(images/play_blue.png) no-repeat; } #lbPlay.blue { background: url(../images/play_blue.png) no-repeat; }
#lbPlay.gold { background: url(images/play_gold.png) no-repeat; } #lbPlay.gold { background: url(../images/play_gold.png) no-repeat; }
#lbPause { width: 64px; height: 28px; float: right; margin-bottom: 1px; } #lbPause { width: 64px; height: 28px; float: right; margin-bottom: 1px; }
#lbPause.grey { background: url(images/pause_grey.png) no-repeat; } #lbPause.grey { background: url(../images/pause_grey.png) no-repeat; }
#lbPause.red { background: url(images/pause_red.png) no-repeat; } #lbPause.red { background: url(../images/pause_red.png) no-repeat; }
#lbPause.green { background: url(images/pause_green.png) no-repeat; } #lbPause.green { background: url(../images/pause_green.png) no-repeat; }
#lbPause.blue { background: url(images/pause_blue.png) no-repeat; } #lbPause.blue { background: url(../images/pause_blue.png) no-repeat; }
#lbPause.gold { background: url(images/pause_gold.png) no-repeat; } #lbPause.gold { background: url(../images/pause_gold.png) no-repeat; }

0
main/NOVA_0.4.4/templates/static/stylesheets/nova.css → main/NOVA_0.4.5/templates/static/stylesheets/nova.css

Loading…
Cancel
Save