mirror of https://github.com/lidarr/Lidarr
Calendar moved to layout
This commit is contained in:
parent
60e28140ab
commit
c04dc9d5e9
|
@ -1,8 +0,0 @@
|
||||||
<div class="row">
|
|
||||||
<div id="events" class="span3">
|
|
||||||
<h4>Upcoming</h4>
|
|
||||||
</div>
|
|
||||||
<div class=span9>
|
|
||||||
<div id="calendar"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,12 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
define([
|
|
||||||
'app',
|
|
||||||
'Calendar/CalendarCollection'
|
|
||||||
|
|
||||||
], function () {
|
|
||||||
NzbDrone.Calendar.CalendarItemView = Backbone.Marionette.ItemView.extend({
|
|
||||||
template : 'Calendar/CalendarItemTemplate',
|
|
||||||
tagName : 'div'
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
"use strict";
|
||||||
|
define([
|
||||||
|
'app',
|
||||||
|
'Calendar/UpcomingCollectionView',
|
||||||
|
'Calendar/CalendarView',
|
||||||
|
'Shared/Toolbar/ToolbarLayout'
|
||||||
|
],
|
||||||
|
function () {
|
||||||
|
NzbDrone.Calendar.CalendarLayout = Backbone.Marionette.Layout.extend({
|
||||||
|
template: 'Calendar/CalendarLayoutTemplate',
|
||||||
|
|
||||||
|
regions: {
|
||||||
|
upcoming: '#x-upcoming',
|
||||||
|
calendar: '#x-calendar'
|
||||||
|
},
|
||||||
|
|
||||||
|
initialize: function () {
|
||||||
|
this.upcomingCollection = new NzbDrone.Calendar.UpcomingCollection();
|
||||||
|
this.upcomingCollection.fetch();
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow: function () {
|
||||||
|
this._showUpcoming();
|
||||||
|
this._showCalendar();
|
||||||
|
},
|
||||||
|
|
||||||
|
_showUpcoming: function () {
|
||||||
|
this.upcoming.show(new NzbDrone.Calendar.UpcomingCollectionView({
|
||||||
|
collection: this.upcomingCollection
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
|
||||||
|
_showCalendar: function () {
|
||||||
|
this.calendar.show(new NzbDrone.Calendar.CalendarView());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,9 @@
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<h4>Upcoming</h4>
|
||||||
|
<div id="x-upcoming"></div>
|
||||||
|
</div>
|
||||||
|
<div class=span9>
|
||||||
|
<div id="x-calendar" class="calendar"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,21 +1,12 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
define(['app', 'Calendar/CalendarItemView'], function () {
|
define(['app', 'Calendar/Collection'], function () {
|
||||||
NzbDrone.Calendar.CalendarCollectionView = Backbone.Marionette.CompositeView.extend({
|
NzbDrone.Calendar.CalendarView = Backbone.Marionette.ItemView.extend({
|
||||||
itemView : NzbDrone.Calendar.CalendarItemView,
|
|
||||||
itemViewContainer: '#events',
|
|
||||||
template : 'Calendar/CalendarCollectionTemplate',
|
|
||||||
|
|
||||||
ui: {
|
|
||||||
calendar: '#calendar'
|
|
||||||
},
|
|
||||||
|
|
||||||
initialize : function () {
|
initialize : function () {
|
||||||
//should use this.collection?
|
this.collection = new NzbDrone.Calendar.Collection();
|
||||||
this.calendar = new NzbDrone.Calendar.CalendarCollection();
|
|
||||||
},
|
},
|
||||||
onCompositeCollectionRendered: function () {
|
render: function () {
|
||||||
$(this.ui.calendar).empty().fullCalendar({
|
$(this.$el).empty().fullCalendar({
|
||||||
defaultView : 'basicWeek',
|
defaultView : 'basicWeek',
|
||||||
allDayDefault : false,
|
allDayDefault : false,
|
||||||
ignoreTimezone: false,
|
ignoreTimezone: false,
|
||||||
|
@ -55,22 +46,20 @@ define(['app', 'Calendar/CalendarItemView'], function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
NzbDrone.Calendar.CalendarCollectionView.Instance = this;
|
NzbDrone.Calendar.CalendarView.Instance = this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
onShow: function () {
|
onShow: function () {
|
||||||
this.$('.fc-button-today').click();
|
this.$('.fc-button-today').click();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
getEvents: function (start, end, callback) {
|
getEvents: function (start, end, callback) {
|
||||||
var bbView = NzbDrone.Calendar.CalendarCollectionView.Instance;
|
var bbView = NzbDrone.Calendar.CalendarView.Instance;
|
||||||
|
|
||||||
var startDate = Date.create(start).format(Date.ISO8601_DATETIME);
|
var startDate = Date.create(start).format(Date.ISO8601_DATETIME);
|
||||||
var endDate = Date.create(end).format(Date.ISO8601_DATETIME);
|
var endDate = Date.create(end).format(Date.ISO8601_DATETIME);
|
||||||
|
|
||||||
bbView.calendar.fetch({
|
bbView.collection.fetch({
|
||||||
data : { start: startDate, end: endDate },
|
data : { start: startDate, end: endDate },
|
||||||
success: function (calendarCollection) {
|
success: function (calendarCollection) {
|
||||||
_.each(calendarCollection.models, function (element) {
|
_.each(calendarCollection.models, function (element) {
|
|
@ -0,0 +1,13 @@
|
||||||
|
"use strict";
|
||||||
|
define(['app', 'Series/EpisodeModel'], function () {
|
||||||
|
NzbDrone.Calendar.Collection = Backbone.Collection.extend({
|
||||||
|
url : NzbDrone.Constants.ApiRoot + '/calendar',
|
||||||
|
model : NzbDrone.Series.EpisodeModel,
|
||||||
|
|
||||||
|
comparator: function(model) {
|
||||||
|
var date = new Date(model.get('airDate'));
|
||||||
|
var time = date.getTime();
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,6 +1,6 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
define(['app', 'Series/EpisodeModel'], function () {
|
define(['app', 'Series/EpisodeModel'], function () {
|
||||||
NzbDrone.Calendar.CalendarCollection = Backbone.Collection.extend({
|
NzbDrone.Calendar.UpcomingCollection = Backbone.Collection.extend({
|
||||||
url : NzbDrone.Constants.ApiRoot + '/calendar',
|
url : NzbDrone.Constants.ApiRoot + '/calendar',
|
||||||
model : NzbDrone.Series.EpisodeModel,
|
model : NzbDrone.Series.EpisodeModel,
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
define(['app', 'Calendar/UpcomingItemView'], function () {
|
||||||
|
NzbDrone.Calendar.UpcomingCollectionView = Backbone.Marionette.CollectionView.extend({
|
||||||
|
itemView: NzbDrone.Calendar.UpcomingItemView
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,12 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
define([
|
||||||
|
'app',
|
||||||
|
'Calendar/UpcomingCollection'
|
||||||
|
|
||||||
|
], function () {
|
||||||
|
NzbDrone.Calendar.UpcomingItemView = Backbone.Marionette.ItemView.extend({
|
||||||
|
template : 'Calendar/UpcomingItemTemplate',
|
||||||
|
tagName : 'div'
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,121 @@
|
||||||
|
.calendar {
|
||||||
|
th, td {
|
||||||
|
border-color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.primary {
|
||||||
|
border-color: #007ccd;
|
||||||
|
background-color: #007ccd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-event-skin {
|
||||||
|
background-color: #007ccd;
|
||||||
|
border: 1px solid #007ccd;
|
||||||
|
border-radius: 4px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
border-color: #14b8d4;
|
||||||
|
background-color: #14b8d4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inverse {
|
||||||
|
border-color: #333333;
|
||||||
|
background-color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning {
|
||||||
|
border-color: #ffa93c;
|
||||||
|
background-color: #ffa93c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.danger {
|
||||||
|
border-color: #ea494a;
|
||||||
|
background-color: #ea494a;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
background-color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.purple {
|
||||||
|
border-color: #7932ea;
|
||||||
|
background-color: #7932ea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success {
|
||||||
|
border-color: #4cb158;
|
||||||
|
background-color: #4cb158;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 17.5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.event {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
border-top: 1px solid #eeeeee;
|
||||||
|
padding-top: 10px;
|
||||||
|
|
||||||
|
.primary {
|
||||||
|
border-color: #007ccd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
border-color: #14b8d4;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
text-transform: none !important;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #008dcd;
|
||||||
|
margin: 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inverse {
|
||||||
|
border-color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning {
|
||||||
|
border-color: #ffa93c;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.danger {
|
||||||
|
border-color: #ea494a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
border-left: 4px solid #eeeeee;
|
||||||
|
padding-left: 16px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 20px;
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
line-height: 1em;
|
||||||
|
color: #555555;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 0.8em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.purple {
|
||||||
|
border-color: #7932ea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success {
|
||||||
|
border-color: #4cb158;
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,10 +30,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#calendar th, #calendar td {
|
|
||||||
border-color: #eeeeee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel .success, .panel .success h6 {
|
.panel .success, .panel .success h6 {
|
||||||
background-color: #4cb158;
|
background-color: #4cb158;
|
||||||
}
|
}
|
||||||
|
@ -143,107 +139,6 @@ body {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#calendar {
|
|
||||||
.primary {
|
|
||||||
border-color: #007ccd;
|
|
||||||
background-color: #007ccd;
|
|
||||||
}
|
|
||||||
.fc-event-skin {
|
|
||||||
background-color: #007ccd;
|
|
||||||
border: 1px solid #007ccd;
|
|
||||||
border-radius: 4px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.info {
|
|
||||||
border-color: #14b8d4;
|
|
||||||
background-color: #14b8d4;
|
|
||||||
}
|
|
||||||
.fc-state-highlight {
|
|
||||||
background: rgba(20, 184, 212, .2);
|
|
||||||
}
|
|
||||||
.inverse {
|
|
||||||
border-color: #333333;
|
|
||||||
background-color: #333333;
|
|
||||||
}
|
|
||||||
.warning {
|
|
||||||
border-color: #ffa93c;
|
|
||||||
background-color: #ffa93c;
|
|
||||||
}
|
|
||||||
.danger {
|
|
||||||
border-color: #ea494a;
|
|
||||||
background-color: #ea494a;
|
|
||||||
}
|
|
||||||
th {
|
|
||||||
background-color: #eeeeee;
|
|
||||||
}
|
|
||||||
.purple {
|
|
||||||
border-color: #7932ea;
|
|
||||||
background-color: #7932ea;
|
|
||||||
}
|
|
||||||
.success {
|
|
||||||
border-color: #4cb158;
|
|
||||||
background-color: #4cb158;
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: 17.5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.event {
|
|
||||||
display: inline-block;
|
|
||||||
width: 100%;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
border-top: 1px solid #eeeeee;
|
|
||||||
padding-top: 10px;
|
|
||||||
.primary {
|
|
||||||
border-color: #007ccd;
|
|
||||||
}
|
|
||||||
.info {
|
|
||||||
border-color: #14b8d4;
|
|
||||||
}
|
|
||||||
h4 {
|
|
||||||
text-transform: none !important;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #008dcd;
|
|
||||||
margin: 5px 0px;
|
|
||||||
}
|
|
||||||
.inverse {
|
|
||||||
border-color: #333333;
|
|
||||||
}
|
|
||||||
.warning {
|
|
||||||
border-color: #ffa93c;
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
color: #999999;
|
|
||||||
}
|
|
||||||
.danger {
|
|
||||||
border-color: #ea494a;
|
|
||||||
}
|
|
||||||
.date {
|
|
||||||
text-align: center;
|
|
||||||
display: inline-block;
|
|
||||||
border-left: 4px solid #eeeeee;
|
|
||||||
padding-left: 16px;
|
|
||||||
float: left;
|
|
||||||
margin-right: 20px;
|
|
||||||
h4 {
|
|
||||||
line-height: 1em;
|
|
||||||
color: #555555;
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-weight: 500;
|
|
||||||
line-height: 0.8em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.purple {
|
|
||||||
border-color: #7932ea;
|
|
||||||
}
|
|
||||||
.success {
|
|
||||||
border-color: #4cb158;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-sidebar {
|
.profile-sidebar {
|
||||||
ul {
|
ul {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -3,7 +3,7 @@ define(['app',
|
||||||
'Form/FormBuilder',
|
'Form/FormBuilder',
|
||||||
'AddSeries/AddSeriesLayout',
|
'AddSeries/AddSeriesLayout',
|
||||||
'Series/Index/SeriesIndexLayout',
|
'Series/Index/SeriesIndexLayout',
|
||||||
'Calendar/CalendarCollectionView',
|
'Calendar/CalendarLayout',
|
||||||
'Shared/NotificationView',
|
'Shared/NotificationView',
|
||||||
'Shared/NotFoundView',
|
'Shared/NotFoundView',
|
||||||
'MainMenuView',
|
'MainMenuView',
|
||||||
|
@ -43,9 +43,7 @@ define(['app',
|
||||||
|
|
||||||
calendar: function () {
|
calendar: function () {
|
||||||
this._setTitle('Calendar');
|
this._setTitle('Calendar');
|
||||||
var calendarCollection = new NzbDrone.Calendar.CalendarCollection();
|
NzbDrone.mainRegion.show(new NzbDrone.Calendar.CalendarLayout());
|
||||||
calendarCollection.fetch();
|
|
||||||
NzbDrone.mainRegion.show(new NzbDrone.Calendar.CalendarCollectionView({collection: calendarCollection}));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
<link href="/content/base.css" rel='stylesheet' type='text/css'/>
|
<link href="/content/base.css" rel='stylesheet' type='text/css'/>
|
||||||
<link href="/settings/notifications/notifications.css" rel='stylesheet' type='text/css'/>
|
<link href="/settings/notifications/notifications.css" rel='stylesheet' type='text/css'/>
|
||||||
<link href="/settings/indexers/indexers.css" rel='stylesheet' type='text/css'/>
|
<link href="/settings/indexers/indexers.css" rel='stylesheet' type='text/css'/>
|
||||||
|
<link href="/calendar/calendar.css" rel='stylesheet' type='text/css'/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="in-sub-nav">
|
<div id="in-sub-nav">
|
||||||
|
|
Loading…
Reference in New Issue