mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-20 13:33:34 -07:00
using pre-compiled handlebar templates
re-did static content from nancy
This commit is contained in:
parent
3720afd30d
commit
375f887539
21 changed files with 367 additions and 124 deletions
2
UI/.idea/jsLinters/jshint.xml
generated
2
UI/.idea/jsLinters/jshint.xml
generated
|
@ -61,7 +61,7 @@
|
|||
<option passfail="false" />
|
||||
<option white="false" />
|
||||
<option maxerr="50" />
|
||||
<option predef="NzbDrone, define, Backbone, _, window,Handlebars, console,require,$" />
|
||||
<option predef="NzbDrone, define, Backbone, _, window,Handlebars, console,require,$,Marionette" />
|
||||
</component>
|
||||
</project>
|
||||
|
||||
|
|
|
@ -9,32 +9,20 @@
|
|||
<link rel="apple-touch-icon" sizes="144x144" href="Static/Content/Images/apple-touch-icon-144.png" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,600,300' rel='stylesheet' type='text/css'>
|
||||
<link href="/static/content/bootstrap.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/bootstrap.slider.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/bootstrapSwitch.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/base.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/theme.css" rel='stylesheet' type='text/css'>
|
||||
<link href="/static/content/toastr.css" rel='stylesheet' type='text/css'>
|
||||
<link href="/static/content/fullcalendar.css" rel='stylesheet' type='text/css'>
|
||||
<link href="/static/content/tablesorter.bootstrap.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/tablesorter.pager.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/AddSeries/addseries.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/menu.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/form.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/static/content/settings.quality.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/bootstrap.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/bootstrap.slider.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/bootstrapSwitch.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/base.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/theme.css" rel='stylesheet' type='text/css'>
|
||||
<link href="/content/toastr.css" rel='stylesheet' type='text/css'>
|
||||
<link href="/content/fullcalendar.css" rel='stylesheet' type='text/css'>
|
||||
<link href="/content/tablesorter.bootstrap.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/tablesorter.pager.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/AddSeries/addseries.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/menu.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/form.css" rel='stylesheet' type='text/css' />
|
||||
<link href="/content/settings.quality.css" rel='stylesheet' type='text/css' />
|
||||
</head>
|
||||
<script type="text/html" id="notification-template">
|
||||
<div class="alert alert-{{level}}">
|
||||
<button type="button" class="close x-close icon-remove-sign"></button>
|
||||
<i class="{{iconClass}}" /><strong>{{title}}</strong>
|
||||
{{#if isPreFormatted}}
|
||||
<pre>{{{preFormattedMessage}}}</pre>
|
||||
{{else}}
|
||||
{{message}}
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
</script>
|
||||
<body>
|
||||
<div id="in-nav">
|
||||
<div class="container">
|
||||
|
@ -100,27 +88,29 @@
|
|||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
<script src="/static/JsLibraries/jquery.js"></script>
|
||||
<script src="/static/JsLibraries/bootstrap.js"></script>
|
||||
<script src="/static/JsLibraries/bootstrap.slider.js"></script>
|
||||
<script src="/static/JsLibraries/bootstrapSwitch.js"></script>
|
||||
<script src="/static/JsLibraries/underscore.js"></script>
|
||||
<script src="/static/JsLibraries/handlebars.js"></script>
|
||||
<script src="/static/JsLibraries/backbone.js"></script>
|
||||
<script src="/static/JsLibraries/backbone.modelbinder.js"></script>
|
||||
<script src="/static/JsLibraries/backbone.mutators.js"></script>
|
||||
<script src="/static/JsLibraries/backbone.marionette.js"></script>
|
||||
<script src="/static/JsLibraries/jquery.tablesorter.js"></script>
|
||||
<script src="/static/JsLibraries/jquery.tablesorter.bootstrap.js"></script>
|
||||
<script src="/static/JsLibraries/jquery.tablesorter.pager.js"></script>
|
||||
<script src="/static/JsLibraries/sugar.js"></script>
|
||||
<script src="/static/JsLibraries/fullcalendar.js"></script>
|
||||
<script src="/JsLibraries/jquery.js"></script>
|
||||
<script src="/JsLibraries/bootstrap.js"></script>
|
||||
<script src="/JsLibraries/bootstrap.slider.js"></script>
|
||||
<script src="/JsLibraries/bootstrapSwitch.js"></script>
|
||||
<script src="/JsLibraries/underscore.js"></script>
|
||||
<script src="/JsLibraries/handlebars.js"></script>
|
||||
<script src="/JsLibraries/backbone.js"></script>
|
||||
<script src="/JsLibraries/backbone.modelbinder.js"></script>
|
||||
<script src="/JsLibraries/backbone.mutators.js"></script>
|
||||
<script src="/JsLibraries/backbone.marionette.js"></script>
|
||||
<script src="/JsLibraries/jquery.tablesorter.js"></script>
|
||||
<script src="/JsLibraries/jquery.tablesorter.bootstrap.js"></script>
|
||||
<script src="/JsLibraries/jquery.tablesorter.pager.js"></script>
|
||||
<script src="/JsLibraries/sugar.js"></script>
|
||||
<script src="/JsLibraries/fullcalendar.js"></script>
|
||||
|
||||
<script src="/static/Mixins/backbone.marionette.templates.js"></script>
|
||||
<script src="/static/Mixins/backbone.ajax.js"></script>
|
||||
<script src="/static/Mixins/tablesorter.extensions.js"></script>
|
||||
<script src="/static/Mixins/spoon.js"></script>
|
||||
<script src="/templates.js"></script>
|
||||
|
||||
<script data-main="/static/app" src="/static/JsLibraries/require.js"></script>
|
||||
<script src="/static/Routing.js"></script>
|
||||
<script src="/Mixins/backbone.marionette.templates.js"></script>
|
||||
<script src="/Mixins/backbone.ajax.js"></script>
|
||||
<script src="/Mixins/tablesorter.extensions.js"></script>
|
||||
<script src="/Mixins/spoon.js"></script>
|
||||
|
||||
<script data-main="/app" src="/JsLibraries/require.js"></script>
|
||||
<script src="/Routing.js"></script>
|
||||
</html>
|
||||
|
|
|
@ -1,37 +1,23 @@
|
|||
_.extend(Marionette.TemplateCache.prototype, {
|
||||
"use strict";
|
||||
|
||||
loadTemplate:function (templateId) {
|
||||
Marionette.TemplateCache.get = function (templateId) {
|
||||
var templateFunction = window.Templates[templateId];
|
||||
|
||||
if (!templateFunction) {
|
||||
console.error('couldn\'t find pre-compiled template ' + templateId);
|
||||
}
|
||||
|
||||
var template;
|
||||
var templateName = templateId;
|
||||
|
||||
console.log("Loading template '" + templateId + "'");
|
||||
|
||||
if (templateId.startsWith('#')) {
|
||||
return $(templateId).html();
|
||||
return function (data) {
|
||||
|
||||
try {
|
||||
console.log('rendering template ' + templateName);
|
||||
return templateFunction(data);
|
||||
}
|
||||
|
||||
$.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);
|
||||
}
|
||||
});
|
||||
|
||||
catch (error) {
|
||||
console.error('template render failed for ' + templateName + ' ' + error.message);
|
||||
console.error(data);
|
||||
}
|
||||
};
|
||||
};
|
|
@ -1,22 +1,23 @@
|
|||
require(['app','Controller'], function (app, controller) {
|
||||
"use strict";
|
||||
require(['app', 'Controller'], function (app, controller) {
|
||||
|
||||
NzbDrone.Router = Backbone.Marionette.AppRouter.extend({
|
||||
|
||||
controller: controller,
|
||||
appRoutes: {
|
||||
'': 'series',
|
||||
'series': 'series',
|
||||
'series/index': 'series',
|
||||
'series/add': 'addSeries',
|
||||
appRoutes : {
|
||||
'' : 'series',
|
||||
'series' : 'series',
|
||||
'series/index' : 'series',
|
||||
'series/add' : 'addSeries',
|
||||
'series/add/:action(/:query)': 'addSeries',
|
||||
'series/details/:query': 'seriesDetails',
|
||||
'upcoming': 'upcoming',
|
||||
'upcoming/index': 'upcoming',
|
||||
'calendar': 'calendar',
|
||||
'settings': 'settings',
|
||||
'settings/:action(/:query)': 'settings',
|
||||
'missing': 'missing',
|
||||
':whatever': 'notFound'
|
||||
'series/details/:query' : 'seriesDetails',
|
||||
'upcoming' : 'upcoming',
|
||||
'upcoming/index' : 'upcoming',
|
||||
'calendar' : 'calendar',
|
||||
'settings' : 'settings',
|
||||
'settings/:action(/:query)' : 'settings',
|
||||
'missing' : 'missing',
|
||||
':whatever' : 'notFound'
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
define(['app'],function () {
|
||||
"use strict";
|
||||
define(['app'],function () {
|
||||
NzbDrone.Shared.NotFoundView = Backbone.Marionette.ItemView.extend({
|
||||
template: 'Shared/notfoundtemplate',
|
||||
template: 'Shared/notfoundtemplate'
|
||||
});
|
||||
});
|
||||
|
||||
|
|
10
UI/Shared/NotificationTemplate.html
Normal file
10
UI/Shared/NotificationTemplate.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
<div class="alert alert-{{level}}">
|
||||
<button type="button" class="close x-close icon-remove-sign"></button>
|
||||
<i class="{{iconClass}}" /><strong>{{title}}</strong>
|
||||
{{#if isPreFormatted}}
|
||||
<pre>{{{preFormattedMessage}}}</pre>
|
||||
{{else}}
|
||||
{{message}}
|
||||
{{/if}}
|
||||
|
||||
</div>
|
|
@ -1,7 +1,9 @@
|
|||
define(['app', 'Shared/NotificationCollection'], function (app, notificationCollection) {
|
||||
"use strict";
|
||||
|
||||
define(['app', 'Shared/NotificationCollection'], function (app, notificationCollection) {
|
||||
|
||||
var notificationItemView = Backbone.Marionette.ItemView.extend({
|
||||
template: '#notification-template',
|
||||
template: 'Shared/NotificationTemplate',
|
||||
|
||||
events: {
|
||||
'click .x-close': 'kill'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue