mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 14:03:29 -07:00
removed backbone from VS solution,
renamed NzbDrone.Backbone to UI
This commit is contained in:
parent
c7776f74e1
commit
663160c06a
230 changed files with 57 additions and 386 deletions
20
UI/Mixins/AutoComplete.js
Normal file
20
UI/Mixins/AutoComplete.js
Normal 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
|
||||
});
|
||||
};
|
||||
|
||||
});
|
28
UI/Mixins/backbone.ajax.js
Normal file
28
UI/Mixins/backbone.ajax.js
Normal 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);
|
||||
}
|
||||
|
||||
};
|
||||
} ());
|
37
UI/Mixins/backbone.marionette.templates.js
Normal file
37
UI/Mixins/backbone.marionette.templates.js
Normal 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
12
UI/Mixins/spoon.js
Normal 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}');
|
||||
}
|
49
UI/Mixins/tablesorter.extensions.js
Normal file
49
UI/Mixins/tablesorter.extensions.js
Normal 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'
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue