/*\r
* pettanR work.js\r
- * version 0.4.5\r
+ * version 0.4.6\r
* \r
* author:\r
* itozyun\r
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
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
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
);\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
/*\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
}\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
}\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
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