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

Reply via email to