The branch, eden has been updated
via 567a0a6669e1e53ba18987b0bf806bf5247fbe81 (commit)
from b5054cedabf2c2564b47907a8484e9181aac422d (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/webinterfaces;a=commit;h=567a0a6669e1e53ba18987b0bf806bf5247fbe81
commit 567a0a6669e1e53ba18987b0bf806bf5247fbe81
Author: montellese <[email protected]>
Date: Sun Mar 25 15:37:47 2012 +0200
[webinterface.XWMM] updated to 2.0.4
diff --git a/webinterface.XWMM/addon.xml b/webinterface.XWMM/addon.xml
index f0407f6..d52125e 100644
--- a/webinterface.XWMM/addon.xml
+++ b/webinterface.XWMM/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="webinterface.XWMM"
- version="2.0.3"
+ version="2.0.4"
name="XWMM"
provider-name="slash">
<requires>
diff --git a/webinterface.XWMM/changelog.txt b/webinterface.XWMM/changelog.txt
index c0ad7a9..4cc1317 100644
--- a/webinterface.XWMM/changelog.txt
+++ b/webinterface.XWMM/changelog.txt
@@ -1,31 +1,4 @@
XWMM Change log
-1.9.3
-- Fixes:
--- Save button disabled
--- double-click on fanart allow to change fanarts
-
-1.9.4
-- Fixes:
--- Music Genres and Artists were not displayed properly
--- fwatched / unwatched when using MySQL database
--- Files option with IE
--- Video flag display
--- Movie release date in HTML export
--- Music field update
-
-2.0.0
-- Fixes:
-
--- fixed IE8 compatibility
--- fixed files view that was not displayed
--- Music interface display
--- Removed caching files
-
-- Added:
--- added new XWMM icon
--- some movie fields (country, imdb number, original title) in other details
--- improved movie save function: set fields change enables save button
--- improved musci save function: save any field and progress bar
2.0.1
- Fixes:
@@ -40,3 +13,13 @@ XWMM Change log
-- Movie Genres updates
-- TvShow save
-- Music save
+
+2.0.4
+- Fixes:
+-- set watched / unwatched
+-- Movie genres management tool (add, update, delete)
+-- Display movies in a set
+-- Mosic artists display
+
+- Added
+-- imdb number movie field can now be changed
\ No newline at end of file
diff --git a/webinterface.XWMM/global.js b/webinterface.XWMM/global.js
index 9b1b51c..bc203dc 100644
--- a/webinterface.XWMM/global.js
+++ b/webinterface.XWMM/global.js
@@ -1,5 +1,5 @@
-var myVersion = '2.0.3'
+var myVersion = '2.0.4'
function mergeJson(object1, object2) {
var i;
diff --git a/webinterface.XWMM/include/genre.js
b/webinterface.XWMM/include/genre.js
index 019ca06..93fb164 100644
--- a/webinterface.XWMM/include/genre.js
+++ b/webinterface.XWMM/include/genre.js
@@ -1,26 +1,7 @@
-//to be deleted ?
-var MoviedetailSet = new Ext.form.FieldSet({
- columnWidth:0.56,
- title: 'Movie details',
- id: 'details',
- labelWidth: 65,
- bodyStyle:'padding:5px 10px 5'
-});
-
-//to be deleted ?
-var MoviePicture = new Ext.form.FieldSet({
- columnWidth:0.44,
- //layout: 'form',
- bodyStyle:'padding:5px 10px 0',
- defaults:{xtype:'container'},
- title: 'Rating and Cover',
- cls: 'center-align'
-});
-
var genreRecord = Ext.data.Record.create([
- {name: 'genreid', type: 'string'},
- {name: 'label'}
+ {name: 'genreid', mapping: 'field:nth(1)', type: 'string'},
+ {name: 'label', mapping: 'field:nth(2)'}
]);
var Checkgenre = new Ext.grid.CheckboxSelectionModel({
@@ -50,27 +31,25 @@ var GenrecolModel = new Ext.grid.ColumnModel([
{header: "Genre", width: 200, dataIndex: 'label'}
]);
+
var storegenre = new Ext.data.Store({
id: 'storegenre',
sortInfo: {field: 'label', direction: "ASC"},
- autoLoad: true,
- proxy: new Ext.data.XBMCProxy({
- url: "/jsonrpc",
- xbmcParams : {"jsonrpc": "2.0", "method":
"VideoLibrary.GetGenres", "params": {"type": "movie"},"id": 1}
- }),
- reader: new Ext.data.JsonReader({
- root:'result.genres'
+ reader: new Ext.data.JsonXBMCReader({
+ root:'data'
}, genreRecord),
+ url: '/xbmcCmds/xbmcHttp?command=queryvideodatabase(select idGenre,
strGenre FROM genre)',
selectFromString :function(string){ // select genre rows according to
movie genre field
var myArray = string.split('/');
Genregrid.getSelectionModel().clearSelections(false);
for (var i = 0; i < myArray.length; i++) {
var index =
storegenre.findExact('label',removeSpace(myArray[i]),0,false,false);
- Genregrid.getSelectionModel().selectRow(index, true);
+ Genregrid.getSelectionModel().selectRow(index, true)
}
}
});
+
var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update',
listeners: {
diff --git a/webinterface.XWMM/include/xbmc.js
b/webinterface.XWMM/include/xbmc.js
index 1c6e9f2..cd4bf4c 100644
--- a/webinterface.XWMM/include/xbmc.js
+++ b/webinterface.XWMM/include/xbmc.js
@@ -84,6 +84,11 @@ function downloadXBMCFile(url,myFile) {
});
};
+function updateXBMCMovieSet(record) {
+ var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE
sets SET strSet = "'+record.data.strSet+'" WHERE idSet =
"'+record.data.idSet+'")';
+ XBMCExecSql(inputUrl)
+}
+
function AddXBMCNewMovieSet(record) {
var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(INSERT
INTO sets (strSet) VALUES ("'+record.data.strSet+'"))';
Ext.Ajax.request({
@@ -98,15 +103,8 @@ function AddXBMCNewMovieSet(record) {
}
function AddXBMCNewGenre(record) {
- var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(INSERT
INTO genre (strGenre) VALUES ("'+record.data.strGenre+'"))';
- Ext.Ajax.request({
- url: inputUrl,
- method: 'GET',
- async: false,
- success: function (t){},
- failure: function(t){},
- timeout: 2000
- });
+ var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(INSERT
INTO genre (strGenre) VALUES ("'+record.data.label+'"))';
+ XBMCExecSql(inputUrl)
}
function updateXBMCAlbumInfo(record) {
@@ -174,21 +172,14 @@ function removeXBMCMovieSet(rec) {
}
function removeXBMCGenre(record) {
- var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(DELETE
FROM genre WHERE idGenre='+record.data.idGenre+')';
- Ext.Ajax.request({
- url: inputUrl,
- method: 'GET',
- async: false,
- success: function (t){},
- failure: function(t){},
- timeout: 2000
- });
+ var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(DELETE
FROM genre WHERE idGenre='+record.data.genreid+')';
+ XBMCExecSql(inputUrl);
}
function checkXBMCGenreUsed(record) {
var found = false;
// check if genre is used in movie
- var inputUrl = '/xbmcCmds/xbmcHttp?command=queryvideodatabase(SELECT
idMovie FROM genrelinkmovie where idGenre='+record.data.idGenre+')';
+ var inputUrl = '/xbmcCmds/xbmcHttp?command=queryvideodatabase(SELECT
idMovie FROM genrelinkmovie where idGenre='+record.data.genreid+')';
Ext.Ajax.request({
url: inputUrl,
method: 'GET',
@@ -200,7 +191,7 @@ function checkXBMCGenreUsed(record) {
timeout: 2000
});
- inputUrl = '/xbmcCmds/xbmcHttp?command=queryvideodatabase(SELECT idShow
FROM genrelinktvshow where idGenre='+record.data.idGenre+')';
+ inputUrl = '/xbmcCmds/xbmcHttp?command=queryvideodatabase(SELECT idShow
FROM genrelinktvshow where idGenre='+record.data.genreid+')';
Ext.Ajax.request({
url: inputUrl,
method: 'GET',
@@ -218,37 +209,50 @@ function checkXBMCGenreUsed(record) {
function updateXBMCGenreString(record) {
//update strGenre in Genre Table
- var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE
genre SET strGenre = "'+record.data.strGenre+'" WHERE
idGenre='+record.data.idGenre+')';
- Ext.Ajax.request({
- url: inputUrl,
- method: 'GET',
- async: false,
- success: function (t){},
- failure: function(t){},
- timeout: 2000
- });
+ var inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE
genre SET strGenre = "'+record.data.label+'" WHERE
idGenre='+record.data.genreid+')';
+ XBMCExecSql(inputUrl)
- var oldValue = record.modified.strGenre;
- var newValue = record.data.strGenre;
+ var oldValue = record.modified.label;
+ var newValue = record.data.label;
- //update strGenre in movie Table
- inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE movie
SET c08 = replace(c08,"'+oldValue+'","'+newValue+'") where c08 like
"'+oldValue+'" or c08 like "%/ '+oldValue+'" or c08 like "'+oldValue+' /%" or
c08 like "%/ '+oldValue+' /%")';
+ //get and update all movies with that genre
+ inputUrl = '/xbmcCmds/xbmcHttp?command=queryvideodatabase(SELECT
movie.idMovie, movie.c14 FROM movie inner join genrelinkmovie on
(genrelinkmovie.idMovie = movie.idMovie) where genrelinkmovie.idGenre =
'+record.data.genreid+')';
Ext.Ajax.request({
url: inputUrl,
method: 'GET',
async: false,
- success: function (t){},
+ success: function (t){
+ var temp = TrimXmltofields(t);
+ temp = temp.replace(/<record>/g, "");
+ temp = temp.split("<field>"); // temp contain idMovie,
genrestring, idMovie, genrestring, etc ...
+ for (var i=1; i < temp.length; i=i+2) {
+ var myString = temp[i+1].replace(oldValue,
newValue);
+ var myMovieId = temp[i];
+ inputUrl =
'/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE movie SET c14 =
"'+myString+'" where idMovie = '+myMovieId+')';
+ XBMCExecSql(inputUrl)
+ }
+ },
failure: function(t){},
timeout: 2000
});
-
- //update strGenre in tvshow Table
- inputUrl = '/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE tvshow
SET c08 = replace(c08,"'+oldValue+'","'+newValue+'") where c08 like
"'+oldValue+'" or c08 like "%/ '+oldValue+'" or c08 like "'+oldValue+' /%" or
c08 like "%/ '+oldValue+' /%")';
+
+ //get and update all TVShows with that genre
+ inputUrl = '/xbmcCmds/xbmcHttp?command=queryvideodatabase(SELECT
tvshow.idShow, tvshow.c08 FROM tvshow inner join genrelinktvshow on
(genrelinktvshow.idShow = tvshow.idShow) where genrelinktvshow.idGenre =
'+record.data.genreid+')';
Ext.Ajax.request({
url: inputUrl,
method: 'GET',
async: false,
- success: function (t){},
+ success: function (t){
+ var temp = TrimXmltofields(t);
+ temp = temp.replace(/<record>/g, "");
+ temp = temp.split("<field>"); // temp contain idMovie,
genrestring, idMovie, genrestring, etc ...
+ for (var i=1; i < temp.length; i=i+2) {
+ var myString = temp[i+1].replace(oldValue,
newValue);
+ var myMovieId = temp[i];
+ inputUrl =
'/xbmcCmds/xbmcHttp?command=execvideodatabase(UPDATE tvshow SET c08 =
"'+myString+'" where idShow = '+myMovieId+')';
+ XBMCExecSql(inputUrl)
+ }
+ },
failure: function(t){},
timeout: 2000
});
@@ -264,7 +268,7 @@ function updateXBMCGenreString(record) {
return temp;
}
-function TrimXbmcXml(t){
+function TrimXmltofields(t) {
var temp = t.responseText.replace(/<html>/g, "");
temp = temp.replace(/<\/html>/g, "");
temp = temp.replace(/<recordset>/g, "");
@@ -272,6 +276,12 @@ function TrimXbmcXml(t){
temp = temp.replace(/<\/recordset>/g, "");
temp = temp.replace(/\n/g, '');
temp = temp.replace(/<\/field>/g, "");
+
+ return temp;
+}
+
+function TrimXbmcXml(t){
+ var temp = TrimXmltofields(t);
temp = temp.replace(/<field>/g, "");
return temp;
@@ -362,6 +372,7 @@ function XBMCgetMoviesFields(resp, r) {
temp = temp.split("<field>");
r.data.MovieFanartUrl = getFanartList(temp[1]);
r.data.MovieCoverUrl = getCoverList(temp[2], r);
+ r.data.idFile = temp[3];
}
diff --git a/webinterface.XWMM/movies/include.js
b/webinterface.XWMM/movies/include.js
index 446c35e..3f46c55 100644
--- a/webinterface.XWMM/movies/include.js
+++ b/webinterface.XWMM/movies/include.js
@@ -144,7 +144,7 @@ function GetMovieDetails(r){
mergeJson(r.data, jsonResponse.moviedetails);
- var inputUrl =
'/xbmcCmds/xbmcHttp?command=queryvideodatabase(select c20, c08 from movie where
idMovie='+r.data.idMovie+')';
+ var inputUrl =
'/xbmcCmds/xbmcHttp?command=queryvideodatabase(select c20, c08, idFile from
movie where idMovie='+r.data.idMovie+')';
Ext.Ajax.request({
url: inputUrl,
method: 'GET',
diff --git a/webinterface.XWMM/movies/movie.js
b/webinterface.XWMM/movies/movie.js
index 915a8ad..772c743 100644
--- a/webinterface.XWMM/movies/movie.js
+++ b/webinterface.XWMM/movies/movie.js
@@ -52,7 +52,6 @@ var fileDetailsPanel = new Ext.FormPanel({
},{
fieldLabel: 'imdb',
name: 'imdbnumber',
- readOnly: true,
XBMCName: 'c09'
},{
xtype: 'combo',
diff --git a/webinterface.XWMM/movies/moviegenre.html
b/webinterface.XWMM/movies/moviegenre.html
index b888822..a81de2c 100644
--- a/webinterface.XWMM/movies/moviegenre.html
+++ b/webinterface.XWMM/movies/moviegenre.html
@@ -7,7 +7,7 @@
<link rel="stylesheet" type="text/css"
href="../extjs/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css"
href="../extjs/resources/css/xtheme-darkgray.css" />
<link rel="stylesheet" type="text/css" href="../css/silk.css" />
- <link rel="stylesheet" type="text/css" href="data-view.css" />
+ <link rel="stylesheet" type="text/css" href="../css/data-view.css" />
<script type="text/javascript"
src="../extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../extjs/ext-all.js"></script>
<script type="text/javascript" src="../ux/ext-basex.js"></script>
diff --git a/webinterface.XWMM/movies/movieset.js
b/webinterface.XWMM/movies/movieset.js
index 02507fb..5351b3b 100644
--- a/webinterface.XWMM/movies/movieset.js
+++ b/webinterface.XWMM/movies/movieset.js
@@ -2,11 +2,6 @@
//------------ Movie All Sets (including orphans) ----------------
-var MovieSetcolModel = new Ext.grid.ColumnModel([
- {header: "#", dataIndex: 'setid', hidden: true},
- {header: "Set Name", dataIndex: 'set', width: 200}
- ]);
-
var MovieSetRecord = Ext.data.Record.create([
{name: 'idSet', mapping: 'field:nth(1)', type: 'int'},
{name: 'strSet', mapping: 'field:nth(2)'}
@@ -26,25 +21,24 @@ var MoviesInSetcolModel = new Ext.grid.ColumnModel([
{header: "Movie Title", dataIndex: 'movieinset', width: 200}
]);
+
var MoviesInSetRecord = Ext.data.Record.create([
- {name: 'idmovie'},
- {name: 'movieinset', mapping: 'label'}
+ {name: 'idMovie', mapping: 'field:nth(1)'},
+ {name: 'movieinset', mapping: 'field:nth(2)'}
]);
-var MoviesInSetStore = new Ext.data.Store({
- //sortInfo: {field: 'set', direction: "ASC"},
+var MoviesInSetStore = new Ext.data.GroupingStore({
+ sortInfo: {field: 'movieinset', direction: "ASC"},
id: 'moviesinsetstore',
- proxy: new Ext.data.XBMCProxy({
- url: "/jsonrpc"
- }),
- reader: new Ext.data.JsonReader({
- root:'result.setdetails.items.movies'
- }, MoviesInSetRecord)
+ reader: new Ext.data.JsonXBMCReader({
+ root:'data'
+ }, MoviesInSetRecord),
+ url: '/xbmcCmds/xbmcHttp?command=queryvideodatabase(select
movie.idMovie, c00 FROM setlinkmovie JOIN movie ON setlinkmovie.idMovie =
movie.idMovie)'
});
var MovieInSetGrid = new Ext.grid.GridPanel({
- width:250,
+ width:230,
height: 290,
cm: MoviesInSetcolModel,
title: 'Movies in Set',
@@ -83,7 +77,7 @@ var MovieSetEditor = new Ext.ux.grid.RowEditor({
MovieSetStore.reload()
}
else {
- updateXBMCMovieSetString(record);
+ updateXBMCMovieSet(record);
MovieSetStore.reload()
}
}
@@ -105,8 +99,8 @@ var MovieSetMgmtGrid = new Ext.grid.GridPanel({
selModel: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners : {
- rowselect: function(sm, row, rec) {
- MoviesInSetStore.proxy.conn.xbmcParams =
{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieSetDetails", "params":
{"setid": rec.data.idSet, "properties": ["title", "thumbnail"]}, "id": 1};
+ rowselect: function(sm, row, rec) {
+ MoviesInSetStore.proxy.conn.url =
'/xbmcCmds/xbmcHttp?command=queryvideodatabase(select movie.idMovie, c00 FROM
setlinkmovie JOIN movie ON setlinkmovie.idMovie = movie.idMovie WHERE idSet =
'+rec.data.idSet+')';
MoviesInSetStore.load();
}
}
diff --git a/webinterface.XWMM/movies/startapp.js
b/webinterface.XWMM/movies/startapp.js
index 16ec4a2..0d7d788 100644
--- a/webinterface.XWMM/movies/startapp.js
+++ b/webinterface.XWMM/movies/startapp.js
@@ -84,6 +84,7 @@ Ext.onReady(function() {
});
storeMovie.load();
+ storegenre.load();
Ext.QuickTips.init();
diff --git a/webinterface.XWMM/music/musiclist.js
b/webinterface.XWMM/music/musiclist.js
index abaa8b2..e5f073c 100644
--- a/webinterface.XWMM/music/musiclist.js
+++ b/webinterface.XWMM/music/musiclist.js
@@ -9,7 +9,7 @@
// ------------ Artist information -------------
var CheckArtist = new Ext.grid.CheckboxSelectionModel({
- dataIndex:'idArtist',
+ dataIndex:'artistid',
alwaysSelectOnCheck: 'true',
header: false,
listeners: {
@@ -108,8 +108,8 @@ var standardInfo = new Ext.FormPanel({
fieldLabel: 'artist',
store: ArtistStore,
id: 'albumartistfield',
- displayField: 'strArtist',
- valueField : 'idArtist',
+ displayField: 'artist',
+ valueField : 'artistid',
//mode: 'local',
//typeAhead: true,
name: 'strArtist',
diff --git a/webinterface.XWMM/tvshows/app.js b/webinterface.XWMM/tvshows/app.js
index b5052dd..90453cd 100644
--- a/webinterface.XWMM/tvshows/app.js
+++ b/webinterface.XWMM/tvshows/app.js
@@ -51,6 +51,7 @@ Ext.onReady(function() {
});
storeTvshow.load();
+ storegenre.load();
}
});
-----------------------------------------------------------------------
Summary of changes:
webinterface.XWMM/addon.xml | 2 +-
webinterface.XWMM/changelog.txt | 37 +++---------
webinterface.XWMM/global.js | 2 +-
webinterface.XWMM/include/genre.js | 37 +++----------
webinterface.XWMM/include/xbmc.js | 89 +++++++++++++++++-------------
webinterface.XWMM/movies/include.js | 2 +-
webinterface.XWMM/movies/movie.js | 1 -
webinterface.XWMM/movies/moviegenre.html | 2 +-
webinterface.XWMM/movies/movieset.js | 32 ++++------
webinterface.XWMM/movies/startapp.js | 1 +
webinterface.XWMM/music/musiclist.js | 6 +-
webinterface.XWMM/tvshows/app.js | 1 +
12 files changed, 90 insertions(+), 122 deletions(-)
hooks/post-receive
--
Web Interfaces
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons