removed backbone from VS solution,

renamed NzbDrone.Backbone to UI
This commit is contained in:
kay.one 2013-03-29 12:18:44 -07:00
commit 663160c06a
230 changed files with 57 additions and 386 deletions

20
UI/Mixins/AutoComplete.js Normal file
View file

@ -0,0 +1,20 @@
define(['app'], function () {
$.fn.autoComplete = function (resource) {
$(this).typeahead({
source: function (filter, callback) {
$.ajax({
url: NzbDrone.Constants.ApiRoot + resource,
dataType: "json",
type: "GET",
data: { query: filter },
success: function (data) {
callback(data);
}
});
},
minLength: 3
});
};
});

View file

@ -0,0 +1,28 @@
//try to add ajax data as query string to DELETE calls.
(function (){
var original = Backbone.ajax;
Backbone.ajax = function (){
var xhr = arguments[0];
//check if ajax call was made with data option
if(xhr && xhr.data && xhr.type=='DELETE')
{
if(xhr.url.indexOf('?') === -1)
{
xhr.url = xhr.url + '?' + $.param(xhr.data);
}
else
{
xhr.url = xhr.url + '&' + $.param(xhr.data);
}
}
if (original){
original.apply (this, arguments);
}
};
} ());

View file

@ -0,0 +1,37 @@
_.extend(Marionette.TemplateCache.prototype, {
loadTemplate:function (templateId) {
var template;
console.log("Loading template '" + templateId + "'");
if (templateId.startsWith('#')) {
return $(templateId).html();
}
$.ajax({
url:'/static/' + templateId + '.html',
cache:false,
async:false
}).done(function (data) {
template = data;
}).fail(function (data) {
console.log("couldn't load template " + this.templateId + " Error: " + data.statusText);
template = "<div class='alert alert-error'>Couldn't load template '" + templateId + "'. Status: " + data.statusText + "</div>";
});
return template;
}
});
_.extend(Marionette.TemplateCache.prototype, {
compileTemplate:function (rawTemplate) {
return Handlebars.compile(rawTemplate);
}
});

12
UI/Mixins/spoon.js Normal file
View file

@ -0,0 +1,12 @@
function bestDateString(sourceDate){
if (!sourceDate) return '';
var date = Date.create(sourceDate);
if (date.isYesterday()) return 'Yesterday';
if (date.isToday()) return 'Today';
if (date.isTomorrow()) return 'Tomorrow';
if (date.isAfter(Date.create('tomorrow')) && date.isBefore(Date.create().addDays(7))) return date.format('{Weekday}');
return date.format('{MM}/{dd}/{yyyy}');
}

View file

@ -0,0 +1,49 @@
$.tablesorter.addParser({
// set a unique id
id: 'title',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
return s.match(/title="(.*?)"/)[1].toLowerCase();
},
// set type, either numeric or text
type: 'text'
});
$.tablesorter.addParser({
// set a unique id
id: 'date',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
var match = s.match(/data-date="(.*?)"/)[1];
if (match === '')
return Date.create().addYears(100).format(Date.ISO8601_DATETIME);
return match;
},
// set type, either numeric or text
type: 'text'
});
$.tablesorter.addParser({
// set a unique id
id: 'innerHtml',
is: function (s) {
// return false so this parser is not auto detected
return false;
},
format: function (s) {
// format your data for normalization
return $(s).get(0).innerHTML;
},
// set type, either numeric or text
type: 'text'
});