OSDN Git Service

pettanR version0.4.6 working create new comic
authoritozyun <itozyun@gmail.com>
Fri, 30 Mar 2012 00:18:00 +0000 (09:18 +0900)
committeritozyun <itozyun@gmail.com>
Fri, 30 Mar 2012 00:18:00 +0000 (09:18 +0900)
public/assets/common.js
public/assets/system.js
public/assets/work.js

index 086afb0..e4090b1 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
  * pettanR common.js\r
- *   version 0.4.5\r
+ *   version 0.4.6\r
  * \r
  * author: itozyun\r
  */\r
@@ -40,7 +40,7 @@ var pettanr = ( function(){
                IS_DEBUG = typeof URL_PARAMS.debug === 'boolean' ? URL_PARAMS.debug : IS_LOCAL === true,\r
                jqWindow , jqDocument , jqBody;\r
        return {\r
-               version: '0.4.5',\r
+               version: '0.4.6',\r
                init: function(){\r
                        jqWindow = $( window);\r
                        jqDocument = $( document);\r
@@ -698,7 +698,7 @@ pettanr.CONST = ( function(){
                URL_PANELS_JSON:                        ( isLocal === true ? 'json\/' : PETTANR_ROOT_PATH) + 'panels.json',\r
                NS_PETTANR_COMIC:                       'pettanr-comic',\r
                RESOURCE_PICTURE_PATH:          ( isLocal === true ? pettanr.ROOT_PATH : PETTANR_ROOT_PATH) + 'resource_pictures\/',\r
-               CREATE_COMIC_JS:                        ( isLocal === true ? 'js\/' : PETTANR_ROOT_PATH) + 'comics_new.js',\r
+               CREATE_COMIC_JS:                        isLocal === true ? 'js\/create_new_comic.js' : PETTANR_ROOT_PATH + 'comics\/new.js',\r
                UPLOAD_PICTURE_JS:                      isLocal === true ? 'js\/upload_picture.js' : PETTANR_ROOT_PATH + 'original_pictures\/new.js',\r
                JQUERY_URL:                                     isLocal === true ? 'javascripts\/jquery-1.6.2.min.js' : PETTANR_ROOT_PATH + 'assets\/jquery-162_min.js'\r
        }\r
@@ -1235,7 +1235,7 @@ pettanr.form = ( function(){
                                instance = this;\r
                                delete this.init;\r
                        },\r
-                       update: function( _value){\r
+                       value: function( _value){\r
                                if( _value !== undefined){\r
                                        elmA.innerHTML = _value;\r
                                        value = _value;\r
@@ -1245,6 +1245,7 @@ pettanr.form = ( function(){
                                        }\r
                                }\r
                                currentItem === instance && this.finish();\r
+                               return value;\r
                        },\r
                        start: function(){\r
                                onClick();\r
@@ -1261,7 +1262,7 @@ pettanr.form = ( function(){
                                \r
                                ON_UPDATE_FUNCTION && _newValue !== value && ON_UPDATE_FUNCTION( _newValue, value);\r
                                finish( instance);\r
-                               \r
+                               value = _newValue;\r
                                focus = false;\r
                        },\r
                        enabled: function(){\r
index 05df86c..0401667 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * pettanR system.js
- *   version 0.4.5
+ *   version 0.4.6
  *   
  * author:
  *   itozyun
index 91fa9ee..1cdf898 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
  * pettanR work.js\r
- *   version 0.4.5\r
+ *   version 0.4.6\r
  *   \r
  * author:\r
  *   itozyun\r
@@ -1497,14 +1497,14 @@ pettanr.editor = ( function(){
                                                currentElementType = _elementType;\r
                                        }\r
                                        if( currentElementType !== -1){\r
-                                               inputX.update( x);\r
-                                               inputY.update( y);\r
-                                               inputZ.update( z);\r
-                                               _elementType === 1 && inputA.update( a);\r
-                                               inputW.update( w);\r
-                                               inputH.update( h);\r
-                                               _elementType === 0 && inputPercentW.update( wPercent);\r
-                                               _elementType === 0 && inputPercentH.update( hPercent);                                  \r
+                                               inputX.value( x);\r
+                                               inputY.value( y);\r
+                                               inputZ.value( z);\r
+                                               _elementType === 1 && inputA.value( a);\r
+                                               inputW.value( w);\r
+                                               inputH.value( h);\r
+                                               _elementType === 0 && inputPercentW.value( wPercent);\r
+                                               _elementType === 0 && inputPercentH.value( hPercent);                                   \r
                                        } else {\r
                                                \r
                                        }\r
@@ -3530,39 +3530,105 @@ pettanr.comicConsole = ( function(){
        var COMIC_CONSOLE = ( function(){\r
                var jqWrap,\r
                        ID = 'comicConsole',\r
-                       elmProgress = document.getElementById( 'comic-console-progress'),\r
+                       elmWrap = document.getElementById( 'comic-console-wrapper' ),\r
+                       elmProgress = document.getElementById( 'comic-console-progress' ),\r
                        inputTitle, inputW, inputH, inputVisible, inputEditable,\r
-                       elmUploader = null;\r
+                       elmUploader = null,\r
+                       elmScript = null\r
+                       elmIframe = null,\r
+                       elmForm = null,\r
+                       timer = null,\r
+                       isUploading = false;\r
                //pettanr.key.addKeyDownEvent( ID, 69, false, false, clickOK);\r
                \r
                function clickOK(){\r
-                       // clickCancel();\r
-                       // pettanr.proxy.createFormProxy( pettanr.CONST.UPLOAD_PICTURE_JS, onCreateForm);\r
+                       if( !elmForm) return false;\r
+                       // validate\r
+                       isUploading = true;\r
+                       pettanr.util.createIframe( 'targetFrameCreateComic', copyAndSubmit);\r
                        elmProgress.innerHTML = '■';\r
-                       // set values\r
-                       // submit\r
                }\r
-               function onCreateForm( iDocument){\r
-                       var div = iDocument.createElement( 'div');\r
-                       div.id = "uploader";\r
-                       iDocument.body.appendChild( div);\r
-                       \r
-                       var script = iDocument.createElement( 'script');\r
-                       script.type = 'text\/javascript';\r
-                       script.src = pettanr.CONST.UPLOAD_PICTURE_JS;\r
-                       iDocument.body.appendChild( script);\r
-                       \r
-                       elmProgress.innerHTML = '■■';\r
-                       \r
-                       var form = iDocument.forms[ 0 ];\r
-                       \r
-               }\r
-               \r
+\r
+                       function copyAndSubmit( _iframe){\r
+                               elmUploader.appendChild( _iframe );\r
+                               elmIframe = _iframe;\r
+                               elmForm.target = elmIframe.name;\r
+                               \r
+                               var _inputList = elmForm.getElementsByTagName( 'input' ),\r
+                                       _input, _name;\r
+                               for( var i=0, l= _inputList.length; i<l; ++i){\r
+                                       _input = _inputList[ i ];\r
+                                       _name = _input.name;\r
+                                       if( _name === 'comic[title]'){\r
+                                               _input.value = inputTitle.value();\r
+                                       } else\r
+                                       if( _name === 'comic[width]'){\r
+                                               _input.value = inputW.value();\r
+                                       } else\r
+                                       if( _name === 'comic[height]'){\r
+                                               _input.value = inputH.value();\r
+                                       }\r
+                               }\r
+                               var _selectList = elmForm.getElementsByTagName( 'select' ),\r
+                                       _select, _name, _optionList;\r
+                               for( i=0, l= _selectList.length; i<l; ++i){\r
+                                       _select = _selectList[ i ];\r
+                                       _name = _select.name;\r
+                                       _optionList = _select.getElementsByTagName( 'option' )\r
+                                       if( _name === 'comic[visible]'){\r
+                                               \r
+                                       } else\r
+                                       if( _name === 'comic[editable]'){\r
+                                               \r
+                                       }\r
+                               }\r
+                               try {\r
+                                       elmForm.submit();\r
+                               } catch( e){\r
+                                       elmProgress.innerHTML = 'submit() err..';\r
+                                       isUploading = false;\r
+                                       setTimeout( clickCancel , 3000);\r
+                                       return;\r
+                               }\r
+                               if( pettanr.ua.isIE){\r
+                                       elmIframe.onreadystatechange = detectIframe;\r
+                               } else {\r
+                                       elmIframe.onload = onIframeUpdate;\r
+                               }\r
+                               elmProgress.innerHTML = 'uploading..';\r
+                       }\r
+               /*\r
+                * ie の 場合、readyState をチェック.\r
+                */\r
+                               function detectIframe(){\r
+                           if ( elmIframe.readyState === 'complete') {\r
+                               elmIframe.onreadystatechange = new Function();\r
+                               elmIframe.onreadystatechange = null;\r
+                               onIframeUpdate();\r
+                           }\r
+                               }\r
+                                       function onIframeUpdate(){\r
+                                               elmIframe.onload = null;\r
+                                               ( elmIframe.contentWindow || elmIframe.contentDocument.parentWindow ).close();\r
+                                               elmIframe = null;\r
+                                               elmProgress.innerHTML = 'success!';\r
+                                               setTimeout( clickCancel , 1000);\r
+                                               isUploading = false;\r
+                                       }\r
+                               \r
                function clickCancel(){\r
+                       if( isUploading === true) return false;\r
                        pettanr.overlay.hide();\r
                        COMIC_CONSOLE.onClose();\r
                }\r
-               \r
+               function detectForm(){\r
+                       elmForm = elmUploader.getElementsByTagName( 'form' )[ 0 ];\r
+                       if( elmForm){\r
+                               window.clearInterval( timer);\r
+                               timer = null;\r
+                               copyAndSubmit();\r
+                       }\r
+               }\r
                return {\r
                        init: function(){\r
                                this.jqWrap = jqWrap = $( '#comic-console-wrapper').hide();\r
@@ -3585,6 +3651,23 @@ pettanr.comicConsole = ( function(){
                                pettanr.overlay.show( COMIC_CONSOLE );\r
                                \r
                                inputTitle.start();\r
+                               \r
+                               elmUploader = document.createElement( 'div');\r
+                               elmUploader.id = "newcomic";\r
+                               elmUploader.style.cssText = 'height:1px;line-height:1px;visibility:hidden;';\r
+                               elmWrap.appendChild( elmUploader);\r
+                               \r
+                               var elmScript = document.createElement( 'script');\r
+                               elmScript.type = 'text\/javascript';\r
+                               elmScript.src = pettanr.CONST.CREATE_COMIC_JS;\r
+                               elmWrap.appendChild( elmScript);\r
+                               \r
+                               elmProgress.innerHTML = '';\r
+                               \r
+                               if( timer === null){\r
+                                       timer = window.setInterval( detectForm, 250);\r
+                               }\r
+                               \r
                                COMIC_CONSOLE.onWindowResize( w, h);\r
                        },\r
                        onWindowResize: function( _windowW, _windowH){\r
@@ -3596,6 +3679,19 @@ pettanr.comicConsole = ( function(){
                                );\r
                        },\r
                        onClose: function(){\r
+                               elmForm !== null && $( elmUploader ).remove();\r
+                               elmForm  = null;\r
+                               isUploading = false;\r
+                               \r
+                               if( elmScript !== null ){\r
+                                       document.body.removeChild( elmScript);\r
+                                       elmScript = null;                                       \r
+                               }\r
+                               if( timer !== null){\r
+                                       window.clearInterval( timer);\r
+                                       timer = null;\r
+                               }\r
+                               \r
                                jqWrap.hide();\r
                        },\r
                        ID: ID\r
@@ -3652,9 +3748,9 @@ pettanr.uploadConsole = ( function(){
                /*\r
                 * form の target に iframe を指定したのち submit();
                 */\r
-                       function onCreateIframe( iframe ){\r
-                               elmContainer.appendChild( iframe );\r
-                               elmForm.target = iframe.name;\r
+                       function onCreateIframe( _iframe ){\r
+                               elmContainer.appendChild( _iframe );\r
+                               elmForm.target = _iframe.name;\r
                                \r
                                try {\r
                                        elmForm.submit();\r
@@ -3666,11 +3762,11 @@ pettanr.uploadConsole = ( function(){
                                }\r
                                \r
                                if( pettanr.ua.isIE){\r
-                                       iframe.onreadystatechange = detectIframe;\r
+                                       _iframe.onreadystatechange = detectIframe;\r
                                } else {\r
-                                       iframe.onload = onIframeUpdate;\r
+                                       _iframe.onload = onIframeUpdate;\r
                                }\r
-                               elmIframe = iframe;\r
+                               elmIframe = _iframe;\r
                                elmProgress.innerHTML = 'uploading..';\r
                        }\r
                /*\r
@@ -3693,9 +3789,9 @@ pettanr.uploadConsole = ( function(){
                                        }\r
                \r
                function detectForm(){\r
-                       elmForm = elmContainer.getElementsByTagName( 'form')[ 0 ];\r
+                       elmForm = elmContainer.getElementsByTagName( 'form' )[ 0 ];\r
                        if( elmForm){\r
-                               var _inputList = elmForm.getElementsByTagName( 'input'),\r
+                               var _inputList = elmForm.getElementsByTagName( 'input' ),\r
                                        _input;\r
                                for( var i=0, l= _inputList.length; i<l; ++i){\r
                                        _input = _inputList[ i ];\r
@@ -3762,9 +3858,10 @@ pettanr.uploadConsole = ( function(){
                                elmForm = elmFile = null;\r
                                isUploading = false;\r
                                \r
-                               document.body.removeChild( elmScript);\r
-                               elmScript = null;\r
-                               \r
+                               if( elmScript !== null ){\r
+                                       document.body.removeChild( elmScript);\r
+                                       elmScript = null;                                       \r
+                               }\r
                                if( timer !== null){\r
                                        window.clearInterval( timer);\r
                                        timer = null;\r