/*
* pettanR system.js
- * version 0.4.6
+ * version 0.4.9
*
* author:
* itozyun
},
getChildFileLength: function(){
var children = FILE_CONTROLER.getChildren( this);
- return children !== null && typeof children.length === 'number' ? children.length : 0;
+ return Type.isArray( children ) === true ? children.length : -1;
},
getChildFileIndex: function( _FILEorFILEDATA){
var children = FILE_CONTROLER.getChildren( this);
-
- if( children === null || typeof children.length !== 'number') return -1;
+ if( Type.isArray( children.length ) === false ) return -1;
var l = children.length,
_fileData = FILE_CONTROLER.getFileData( _FILEorFILEDATA);
if( _fileData === null) return -1;
var l = ICON_ARRAY.length;
if( i < l){
var _file = tree.getCurrentFile().getChildFileByIndex( i);
- if( _file !== null && ( _file.getChildFileLength() > 0 || _file.getType() === pettanr.file.FILE_TYPE.FOLDER)){
+ if( _file !== null && ( _file.getChildFileLength() !== -1 || _file.getType() === pettanr.file.FILE_TYPE.FOLDER)){
tree.down( i);
draw();
}
getSeqentialFiles: function( _file){
var _data = FileAPI.getFileData( _file),
_json = _data !== null ? _data.json : null;
+ if( _json === true && _data.type === pettanr.driver.FILE_TYPE.COMIC ){
+ _json = [ pettanr.CONST.PETTANR_ROOT_PATH, 'comics\/', _data.id, '.json\/play\/' ].join( '' );
+ }
if( typeof _json === 'string'){
FileAPI.getJson( _file, _json, onLoadJson, onErrorJson);
_data.state = pettanr.file.FILE_STATE.LOADING;
- delete _data.json;
+ _data.json = null;
+ return;
}
},
getName: function( _file){
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){
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 = {
type: pettanr.file.FILE_TYPE.FOLDER,
children: [],
driver: Driver,
- json: pettanr.CONST.URL_ORIGINAL_PICTURES_JSON
+ json: pettanr.CONST.URL_RESOURCE_PICTURES_JSON
},
FILE_DATA_MY_COMICS_ROOT = {
name: 'My Comics',
- type: pettanr.file.FILE_TYPE.FOLDER,
- children: []
+ type: pettanr.file.FILE_TYPE.AUTHOR,
+ children: [],
+ driver: Driver
},
FILE_DATA_MY_PICTURES_ROOT = {
name: 'My Pictures',
- type: pettanr.file.FILE_TYPE.FOLDER,
- children: []
+ type: pettanr.file.FILE_TYPE.ARTIST,
+ children: [],
+ driver: Driver,
+ json: pettanr.CONST.URL_ORIGINAL_PICTURES_JSON
},
FILE_DATA_AUTHOR_ROOT = {
name: 'Authors',
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);
-
+
function onLoadJson( _file, _json){
var _access = FileAPI.getFileDataAccess( _file),
_data = _access !== null ? _access.DATA : null,
var _type, _array,
_id = _data.id,
i, l;
- if( _parent === FILE_DATA_COMIC_ROOT){
+ if( _parent.type === pettanr.driver.FILE_TYPE.COMIC ){
+ _data.type = pettanr.driver.FILE_TYPE.PANEL;
+ _array = PANEL_ARRAY;
+ } else
+ 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
- if( _parent === FILE_DATA_PICTURE_ROOT){
+ if( _parent === FILE_DATA_PICTURE_ROOT || _parent === FILE_DATA_MY_PICTURES_ROOT ){
_data.type = pettanr.driver.FILE_TYPE.PICTURE;
_array = RESOURCE_PICTURE_ARRAY;
// _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.type === pettanr.driver.FILE_TYPE.COMIC ){
+ var _panels = _data.panels,
+ _panel;
+ if( _panels && Type.isArray( _panels ) === true){
+ if( Type.isArray( _data.children ) === false){
+ _data.children = [];
+ };
+ for( i=0, l=_panels.length; i<l; ++i){
+ _panel = buildFileData( _panels[ i ], FILE_DATA_PANELS_ROOT );
+ /*
+ * 間違い! t 順に格納
+ */
+ _data.children.push( _panel );
+ }
+ delete _data.panels;
+ }
+ } else
+ 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 );
+ }
+ _data.json = true;
+ } 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 || [],
- _elm;
- for(var i=0, l=_elements.length; i<l; ++i){
+ _elm, _rpicID;
+ for( i=0, l=_elements.length; i<l; ++i){
_elm = _elements[ i];
if( _elm.resource_picture){
_elm.resource_picture = buildFileData( _elm.resource_picture, FILE_DATA_PICTURE_ROOT); // 上記参照切れに備えてここで上書き
}
- if( _elm.resource_picture_id && RESOURCE_PICTURE_ARRAY[ _elm.resource_picture_id]){
- _elm.resource_picture = RESOURCE_PICTURE_ARRAY[ _elm.resource_picture_id];
+ _rpicID = _elm.resource_picture_id - 1;
+ if( _rpicID && RESOURCE_PICTURE_ARRAY[ _rpicID ]){
+ _elm.resource_picture = RESOURCE_PICTURE_ARRAY[ _rpicID ];
}
}
} else
- if( _parent === FILE_DATA_PICTURE_ROOT){
+ if( _data.type = pettanr.driver.FILE_TYPE.PICTURE ){
if( _data.artist){
var _pictureList = getFolderData( _data, 'artist', FILE_DATA_ARTIST_ROOT);
pettanr.util.getIndex( _pictureList.children, _data) === -1 && _pictureList.children.push( _data);
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];
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 {
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);