mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-16 10:03:51 -07:00
Moved source code under src folder - massive change
This commit is contained in:
parent
2fc8123d6b
commit
5bf0e197ec
1499 changed files with 1054 additions and 1444 deletions
117
src/UI/Calendar/CalendarView.js
Normal file
117
src/UI/Calendar/CalendarView.js
Normal file
|
@ -0,0 +1,117 @@
|
|||
'use strict';
|
||||
|
||||
define(
|
||||
[
|
||||
'app',
|
||||
'marionette',
|
||||
'moment',
|
||||
'Calendar/Collection',
|
||||
'fullcalendar'
|
||||
], function (App, Marionette, Moment, CalendarCollection) {
|
||||
|
||||
var _instance;
|
||||
|
||||
return Marionette.ItemView.extend({
|
||||
initialize: function () {
|
||||
this.collection = new CalendarCollection();
|
||||
},
|
||||
render : function () {
|
||||
$(this.$el).empty().fullCalendar({
|
||||
defaultView : 'basicWeek',
|
||||
allDayDefault : false,
|
||||
ignoreTimezone: false,
|
||||
weekMode : 'variable',
|
||||
firstDay : window.NzbDrone.ServerStatus.startOfWeek,
|
||||
timeFormat : 'h(:mm)tt',
|
||||
header : {
|
||||
left : 'prev,next today',
|
||||
center: 'title',
|
||||
right : 'month,basicWeek,basicDay'
|
||||
},
|
||||
buttonText : {
|
||||
prev: '<i class="icon-arrow-left"></i>',
|
||||
next: '<i class="icon-arrow-right"></i>'
|
||||
},
|
||||
events : this.getEvents,
|
||||
eventRender : function (event, element) {
|
||||
$(element).addClass(event.statusLevel);
|
||||
$(element).children('.fc-event-inner').addClass(event.statusLevel);
|
||||
},
|
||||
eventClick : function (event) {
|
||||
App.vent.trigger(App.Commands.ShowEpisodeDetails, {episode: event.model});
|
||||
}
|
||||
});
|
||||
|
||||
_instance = this;
|
||||
},
|
||||
|
||||
onShow: function () {
|
||||
this.$('.fc-button-today').click();
|
||||
},
|
||||
|
||||
getEvents: function (start, end, callback) {
|
||||
var startDate = Moment(start).toISOString();
|
||||
var endDate = Moment(end).toISOString();
|
||||
|
||||
_instance.collection.fetch({
|
||||
data : { start: startDate, end: endDate },
|
||||
success: function (calendarCollection) {
|
||||
calendarCollection.each(function (element) {
|
||||
var episodeTitle = element.get('title');
|
||||
var seriesTitle = element.get('series').title;
|
||||
var start = element.get('airDateUtc');
|
||||
var runtime = element.get('series').runtime;
|
||||
var end = Moment(start).add('minutes', runtime).toISOString();
|
||||
|
||||
|
||||
element.set({
|
||||
title : seriesTitle,
|
||||
episodeTitle: episodeTitle,
|
||||
start : start,
|
||||
end : end,
|
||||
allDay : false
|
||||
});
|
||||
|
||||
element.set('statusLevel', _instance.getStatusLevel(element));
|
||||
element.set('model', element);
|
||||
});
|
||||
|
||||
callback(calendarCollection.toJSON());
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getStatusLevel: function (element) {
|
||||
var hasFile = element.get('hasFile');
|
||||
var currentTime = Moment();
|
||||
var start = Moment(element.get('airDateUtc'));
|
||||
var end = Moment(element.get('end'));
|
||||
|
||||
var statusLevel = 'primary';
|
||||
|
||||
if (hasFile) {
|
||||
statusLevel = 'success';
|
||||
}
|
||||
|
||||
else if (currentTime.isAfter(start) && currentTime.isBefore(end)) {
|
||||
var s = start.toISOString();
|
||||
var e = end.toISOString();
|
||||
var c = currentTime.toISOString();
|
||||
|
||||
statusLevel = 'warning';
|
||||
}
|
||||
|
||||
else if (start.isBefore(currentTime) && !hasFile) {
|
||||
statusLevel = 'danger';
|
||||
}
|
||||
|
||||
var test = currentTime.startOf('day').format('LLLL');
|
||||
|
||||
if (end.isBefore(currentTime.startOf('day'))) {
|
||||
statusLevel += ' past'
|
||||
}
|
||||
|
||||
return statusLevel;
|
||||
}
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue