OSDN Git Service

client is version0.4.7, start to fix comic exporoler.
[pettanr/pettanr.git] / public / assets / system.js
index 0401667..fe25f91 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * pettanR system.js
- *   version 0.4.6
+ *   version 0.4.7
  *   
  * author:
  *   itozyun
@@ -950,7 +950,7 @@ pettanr.driver = ( function(){
                                if( _type === pettanr.driver.FILE_TYPE.PICTURE){
                                        return { image: [ pettanr.CONST.RESOURCE_PICTURE_PATH, 'thumbnail/', _data.id, '.', _data.ext ].join( '')};
                                }
-                               if( _data === FILE_DATA_COMIC_ROOT){
+                               if( _data === FILE_DATA_COMICS_ROOT){
                                        return { className: 'file-type-cabinet'};
                                }
                                if( _type === pettanr.driver.FILE_TYPE.COMIC){
@@ -977,11 +977,18 @@ pettanr.driver = ( function(){
                        type:           pettanr.file.FILE_TYPE.FOLDER,
                        children:       []
                },
-               FILE_DATA_COMIC_ROOT = {
+               FILE_DATA_COMICS_ROOT = {
                        name:           'Comics',
                        type:           pettanr.file.FILE_TYPE.FOLDER,
                        children:       [],
                        driver:         Driver,
+                       json:           pettanr.CONST.URL_COMICS_JSON
+               },
+               FILE_DATA_PANELS_ROOT = {
+                       name:           'Panels',
+                       type:           pettanr.file.FILE_TYPE.FOLDER,
+                       children:       [],
+                       driver:         Driver,
                        json:           pettanr.CONST.URL_PANELS_JSON
                },
                FILE_DATA_PICTURE_ROOT = {
@@ -1029,8 +1036,8 @@ pettanr.driver = ( function(){
                BALLOON_TEMPLETE_ARRAY = [],
                ORIGINAL_LICENSE_ARRAY = [],
                BASIC_LICENSES = 'cc_by,cc_nc,cc_nd,cc_sa,keep_aspect_ratio,no_convert,no_flip,no_resize'.split( ',');
-       FILE_DATA_SERVICE_ROOT.children.push( FILE_DATA_COMIC_ROOT, FILE_DATA_PICTURE_ROOT, FILE_DATA_LICENSE_ROOT, FILE_DATA_BALLOON_ROOT);
-       FILE_DATA_COMIC_ROOT.children.push( FILE_DATA_MY_COMICS_ROOT, FILE_DATA_AUTHOR_ROOT);
+       FILE_DATA_SERVICE_ROOT.children.push( FILE_DATA_COMICS_ROOT, FILE_DATA_PICTURE_ROOT, FILE_DATA_PANELS_ROOT, FILE_DATA_LICENSE_ROOT, FILE_DATA_BALLOON_ROOT);
+       FILE_DATA_COMICS_ROOT.children.push( FILE_DATA_MY_COMICS_ROOT, FILE_DATA_AUTHOR_ROOT);
        FILE_DATA_PICTURE_ROOT.children.push( FILE_DATA_MY_PICTURES_ROOT, FILE_DATA_ARTIST_ROOT);
        
        FileAPI.createFolderUnderRoot( FILE_DATA_SERVICE_ROOT);
@@ -1060,7 +1067,11 @@ pettanr.driver = ( function(){
                var _type, _array,
                        _id = _data.id,
                        i, l;
-               if( _parent === FILE_DATA_COMIC_ROOT){
+               if( _parent === FILE_DATA_COMICS_ROOT){
+                       _data.type = pettanr.driver.FILE_TYPE.COMIC;
+                       _array = COMIC_ARRAY;
+               } else
+               if( _parent === FILE_DATA_PANELS_ROOT){
                        _data.type = pettanr.driver.FILE_TYPE.PANEL;
                        _array = PANEL_ARRAY;
                } else
@@ -1091,24 +1102,31 @@ pettanr.driver = ( function(){
                
                // _array に _data を格納 または 上書き
                if( typeof _id === 'number'){
-                       var __data = _array[ _id];
+                       --_id;
+                       var __data = _array[ _id ];
                        if( __data){
                                for( var key in _data){
                                        __data[ key ] = _data[ key ];
                                }
                                _data = __data; // このタイミングで参照が切れるので注意!!
                        } else {
-                               _array[ _id] = _data;
+                               _array[ _id ] = _data;
                        }
                }
-               
-               if( _parent === FILE_DATA_COMIC_ROOT){
+               if( _parent === FILE_DATA_COMICS_ROOT){
+                       if( _data.author ){
+                               var _author = getFolderData( _data, 'author', FILE_DATA_AUTHOR_ROOT);
+                               pettanr.util.getIndex( _author.children, _data) === -1 && _author.children.push( _data);
+                               _author.id === MyAuthorID && pettanr.util.getIndex( FILE_DATA_MY_COMICS_ROOT.children, _data) === -1 && FILE_DATA_MY_COMICS_ROOT.children.push( _data );
+                       }
+               } else
+               if( _parent === FILE_DATA_PANELS_ROOT){
                        if( _data.comic && _data.author){
-                               var _comic = getFolderData( _data, 'comic', FILE_DATA_COMIC_ROOT),
-                                       _comicList = getFolderData( _data, 'author', FILE_DATA_AUTHOR_ROOT);
+                               var _comic = getFolderData( _data, 'comic', FILE_DATA_COMICS_ROOT),
+                                       _author = getFolderData( _data, 'author', FILE_DATA_AUTHOR_ROOT);
                                _comic.children.push( _data);
-                               pettanr.util.getIndex( _comicList.children, _comic) === -1 && _comicList.children.push( _comic);
-                               _comicList.id === MyAuthorID && pettanr.util.getIndex( FILE_DATA_MY_COMICS_ROOT.children, _comic) === -1 && FILE_DATA_MY_COMICS_ROOT.children.push( _comic);
+                               pettanr.util.getIndex( _author.children, _comic) === -1 && _author.children.push( _comic);
+                               _author.id === MyAuthorID && pettanr.util.getIndex( FILE_DATA_MY_COMICS_ROOT.children, _comic) === -1 && FILE_DATA_MY_COMICS_ROOT.children.push( _comic);
                        }
                        // picture data をファイルに取り出し
                        var _elements = _data.panel_elements || [],
@@ -1139,13 +1157,14 @@ pettanr.driver = ( function(){
        function getFolderData( _data, _key, _parentData){
                if( typeof _data[ _key ] !== 'object') return {children:[]};
                var _ret,
-                       _id = _data[ _key ].id,
+                       _id = _data[ _key ].id - 1,
                        _array;
                if( typeof _id !== 'number') return {children:[]};
                
                _array =        _parentData === FILE_DATA_ARTIST_ROOT ? ARTIST_ARRAY :
                                        _parentData === FILE_DATA_AUTHOR_ROOT ? AUTHOR_ARRAY :
-                                       _parentData === FILE_DATA_COMIC_ROOT ? COMIC_ARRAY : []
+                                       _parentData === FILE_DATA_COMICS_ROOT ? COMIC_ARRAY :
+                                       _parentData === FILE_DATA_PANELS_ROOT ? PANEL_ARRAY : []
 
                if( typeof _array[ _id] === 'object'){
                        var __data = _array[ _id];
@@ -1169,7 +1188,11 @@ pettanr.driver = ( function(){
                if( _parentData === FILE_DATA_ARTIST_ROOT){
                        _ret.type = pettanr.driver.FILE_TYPE.ARTIST;
                } else
-               if( _parentData === FILE_DATA_COMIC_ROOT){
+               if( _parentData === FILE_DATA_PANELS_ROOT){
+                       _ret.type = pettanr.driver.FILE_TYPE.COMIC;
+                       return _ret;
+               } else
+               if( _parentData === FILE_DATA_COMICS_ROOT){
                        _ret.type = pettanr.driver.FILE_TYPE.COMIC;
                        return _ret;
                } else {
@@ -1183,7 +1206,7 @@ pettanr.driver = ( function(){
 
        return {
                createComicTree: function(){
-                       return pettanr.file.createTree( FILE_DATA_SERVICE_ROOT); //FILE_DATA_COMIC_ROOT);
+                       return pettanr.file.createTree( FILE_DATA_SERVICE_ROOT); //FILE_DATA_COMICS_ROOT);
                },
                createPictureTree: function(){
                        return pettanr.file.createTree( FILE_DATA_PICTURE_ROOT);