OSDN Git Service

client is version0.4.12, added register Artist console (don't register...)
[pettanr/pettanr.git] / public / assets / work.js
index fe4a577..25d3256 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
  * pettanR work.js\r
- *   version 0.4.11\r
+ *   version 0.4.12\r
  *   \r
  * author:\r
  *   itozyun\r
@@ -4074,4 +4074,175 @@ pettanr.panelConsole = ( function(){
                        PANEL_CONSOLE.show( w, h);\r
                }\r
        }\r
+})();\r
+\r
+pettanr.artistConsole = ( function(){\r
+       var ARTIST_CONSOLE = ( function(){\r
+               var jqWrap,\r
+                       ID = 'artistConsole',\r
+                       TARGET_FRAME_NAME = 'targetFrameResisterArtist',\r
+                       elmContainer = document.getElementById( 'register'),\r
+                       elmProgress = document.getElementById( 'artist-console-progress'),\r
+                       timer = null,\r
+                       elmScript = null,\r
+                       elmForm = null,\r
+                       elmIframe = null,\r
+                       isUploading = false;\r
+               /*\r
+                * upload ボタンが押されたらまず iframe をつくる.\r
+                */\r
+               function clickOK(){\r
+                       if( !elmForm || !elmIframe || isUploading === true ) return false;\r
+                       elmProgress.innerHTML = 'uploading.';\r
+                       isUploading = true;\r
+                       submit();\r
+                       return false;\r
+               }\r
+               /*\r
+                * form の target に iframe を指定したのち submit();\r
+                */\r
+                       function submit(){\r
+                               try {\r
+                                       elmForm.submit();\r
+                               } catch( e){\r
+                                       elmProgress.innerHTML = 'submit() err..';\r
+                                       isUploading = false;\r
+                                       setTimeout( clickCancel , 3000);\r
+                                       return;\r
+                               }\r
+                               \r
+                               if( pettanr.ua.isIE){\r
+                                       elmIframe.onreadystatechange = detectIframe;\r
+                               } else {\r
+                                       elmIframe.onload = onLoad;\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
+                               onLoad();\r
+                           }\r
+                               }\r
+                                       function onLoad(){\r
+                                               elmIframe.onload = null;\r
+                                               ( elmIframe.contentWindow || elmIframe.contentDocument.parentWindow ).close();\r
+                                               elmProgress.innerHTML = 'success!';\r
+                                               setTimeout( clickCancel , 1000);\r
+                                               isUploading = false;\r
+                                       }\r
+               \r
+               function detectForm(){\r
+                       elmForm = elmContainer.getElementsByTagName( 'form' )[ 0 ];\r
+                       if( elmForm){\r
+                               var _inputList = elmForm.getElementsByTagName( 'input' ),\r
+                                       _input;\r
+                               for( var i=0, l= _inputList.length; i<l; ++i){\r
+                                       _input = _inputList[ i ];\r
+                                       if( _input.type === 'submit'){\r
+                                               _input.style.display = 'none';\r
+                                       }\r
+                               }\r
+                               window.clearInterval( timer);\r
+                               timer = null;\r
+                               pettanr.util.createIframe( TARGET_FRAME_NAME, onCreateIframe);\r
+                               elmProgress.innerHTML = 'create iframe';\r
+                       }\r
+               }\r
+               function onCreateIframe( _iframe ){\r
+                       elmContainer.appendChild( _iframe );\r
+                       elmIframe = _iframe;\r
+                       elmForm.target = _iframe.name;\r
+                       elmProgress.innerHTML = '';\r
+               }\r
+               /*\r
+                * \r
+                */\r
+               function clickCancel(){\r
+                       if( isUploading === true) return false;\r
+                       pettanr.overlay.hide();\r
+                       ARTIST_CONSOLE.onClose();\r
+                       return false;\r
+               }\r
+               \r
+               return {\r
+                       init: function(){\r
+                               this.jqWrap = jqWrap = $( '#artist-console-wrapper').hide();\r
+                               $( '#artist-console-post-button').click( clickOK );\r
+                               $( '#artist-console-cancel-button').click( clickCancel );\r
+\r
+                               delete ARTIST_CONSOLE.init;\r
+                       },\r
+                       jqWrap: null,\r
+                       show: function( w, h){\r
+                               /*\r
+                                * ie 6, 7 で fadeIn 中の要素に appendChild すると クラッシュするので、document.body に追加.\r
+                                */                             \r
+                               elmScript = document.createElement( 'script');\r
+                               elmScript.type = 'text\/javascript';\r
+                               elmScript.src = pettanr.CONST.RESISTER_ARTIST_JS;\r
+                               document.body.appendChild( elmScript);\r
+                               \r
+                               jqWrap.show();\r
+                               pettanr.overlay.show( ARTIST_CONSOLE );\r
+\r
+                               if( timer === null){\r
+                                       timer = window.setInterval( detectForm, 250 );\r
+                               }\r
+                               \r
+                               elmProgress.innerHTML = 'loading form.';\r
+                               \r
+                               ARTIST_CONSOLE.onWindowResize( w, h );\r
+                       },\r
+                       onWindowResize: function( _windowW, _windowH){\r
+                               jqWrap.css(\r
+                                       {\r
+                                               left:   Math.floor( ( _windowW -jqWrap.width()) /2),\r
+                                               top:    Math.floor( ( _windowH -jqWrap.height()) /2)\r
+                                       }\r
+                               );\r
+                       },\r
+                       onClose: function(){\r
+                               elmForm !== null && $( elmContainer.children ).remove();\r
+                               elmForm = elmIframe = 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
+                               jqWrap.hide();\r
+                       },\r
+                       ID: ID\r
+               }\r
+       })();\r
+       \r
+       return {\r
+               init: function(){\r
+                       ARTIST_CONSOLE.init();\r
+                       delete pettanr.comicConsole.init;\r
+               },\r
+               onOpen: function(){\r
+                       \r
+               },\r
+               onClose: function(){\r
+                       \r
+               },\r
+               onWindowResize: function( _windowW, _windowH){\r
+               },\r
+               _quickAccessShow: function(){\r
+                       jqWindow = pettanr.jqWindow();\r
+                       var w = jqWindow.width(),\r
+                               h = jqWindow.height();\r
+                       ARTIST_CONSOLE.show( w, h);\r
+               }\r
+       }\r
 })();
\ No newline at end of file