-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathmoviegenre.js
122 lines (111 loc) · 3.63 KB
/
moviegenre.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
* Copyright 2011 slash2009.
* Copyright 2013 Zernable.
* Copyright 2013 uNiversal.
* Copyright 2013, 2014 Andrew Fyfe.
*
* This file is part of Web interface Media Manager (WIMM) for kodi.
*
* WIMM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* WIMM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WIMM. If not, see <http://www.gnu.org/licenses/>.
*/
var MovieRecord = Ext.data.Record.create([
{ name: 'movieid' },
{ name: 'Movietitle', mapping: 'title' },
{ name: 'watched', mapping: 'playcount' },
{ name: 'set' },
{ name: 'year' }
]);
var sortArticles = docCookies.getItem('sortArticles') === '1';
var storeMovie = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.KodiProxy({
jsonData: {
jsonrpc: '2.0',
method: 'VideoLibrary.GetMovies',
params: {
properties: [
'title', 'year', 'playcount', 'set'
],
sort: {
order: 'ascending',
ignorearticle: sortArticles,
method: 'sorttitle'
}
},
id: 'WIMM'
}
}),
reader: new Ext.data.JsonReader({ root: 'result.movies' }, MovieRecord)
});
var movieGrid = new Ext.grid.GridPanel({
title: 'Movies by Genre',
id: 'Moviegrid',
store: storeMovie,
region: 'west',
width: 285,
frame: true,
split: true,
cm: movieColumnModel,
autoExpandColumn: 'title',
enableColumnResize: false,
stripeRows: true,
viewConfig: {
headersDisabled: true
},
sm: new Ext.grid.RowSelectionModel({ singleSelect: true }),
listeners: {
rowcontextmenu: function(grid, rowIndex, e) {
e.stopEvent();
gridContextMenu.showAt(e.getXY());
return false;
}
},
tbar: {
xtype: 'toolbar',
height: 30,
items: [
{
id: 'genreFilterCombo',
store: WIMM.video.genreStore,
xtype: 'combo',
name: 'label',
emptyText: 'Filter by genre...',
displayField: 'label',
mode: 'local',
triggerAction: 'all',
listeners: {
select: function(combo, record, index) {
storeMovie.load({ params: { filter: {
field: 'genre',
operator: 'contains',
value: record.data.label
} } });
}
}
},
{
text: 'X',
tooltip: 'Clear genre filter',
handler: function() {
Ext.getCmp('genreFilterCombo').clearValue();
storeMovie.load({ params: { filter: {
field: 'genre',
operator: 'contains',
value: ''
} } });
}
}
]
}
});