diff options
author | plegall <plg@piwigo.org> | 2010-04-14 14:08:19 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2010-04-14 14:08:19 +0000 |
commit | ce82578b0478108e16b8d6e9a16216df68f2608b (patch) | |
tree | d53a0838ab4962a034f88f1aacd0b71165a7d743 /admin | |
parent | 535f7933a830ea058ae325ce3489b9c12f86c852 (diff) |
feature 1601: improve error feedback on multiple upload : use jGrowl jQuery
plugin to display individual state for each uploaded file.
git-svn-id: http://piwigo.org/svn/trunk@5848 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | admin/themes/default/template/photos_add_direct.tpl | 72 | ||||
-rw-r--r-- | admin/themes/default/uploadify.jGrowl.css | 147 |
2 files changed, 219 insertions, 0 deletions
diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index e80024e5b..652bada78 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -1,10 +1,13 @@ {known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"} +{known_script id="jquery.jgrowl" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.jgrowl_minimized.js"} {if $upload_mode eq 'multiple'} <script type="text/javascript" src="{$uploadify_path}/swfobject.js"></script> <script type="text/javascript" src="{$uploadify_path}/jquery.uploadify.v2.1.0.min.js"></script> {/if} +<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/uploadify.jGrowl.css"> + {literal} <script type="text/javascript"> jQuery(document).ready(function(){ @@ -105,6 +108,75 @@ var buttonText = 'Browse'; else { $("input[name=submit_upload]").click(); } + }, + onError: function (event, queueID ,fileObj, errorObj) { + var msg; + if (errorObj.status == 404) { + alert('Could not find upload script.'); + msg = 'Could not find upload script.'; + } + else if (errorObj.type === "HTTP") { + msg = errorObj.type+": "+errorObj.status; + } + else if (errorObj.type ==="File Size") { + msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB'; + } + else { + msg = errorObj.type+": "+errorObj.text; + } + + $.jGrowl( + '<p></p>'+msg, + { + theme: 'error', + header: 'ERROR', + sticky: true + } + ); + + $("#fileUploadgrowl" + queueID).fadeOut( + 250, + function() { + $("#fileUploadgrowl" + queueID).remove() + } + ); + return false; + }, + onCancel: function (a, b, c, d) { + var msg = "Cancelled uploading: "+c.name; + $.jGrowl( + '<p></p>'+msg, + { + theme: 'warning', + header: 'Cancelled Upload', + life: 4000, + sticky: false + } + ); + }, + onClearQueue: function (a, b) { + var msg = "Cleared "+b.fileCount+" files from queue"; + $.jGrowl( + '<p></p>'+msg, + { + theme: 'warning', + header: 'Cleared Queue', + life: 4000, + sticky: false + } + ); + }, + onComplete: function (a, b ,c, d, e) { + var size = Math.round(c.size/1024); + $.jGrowl( + '<p></p>'+c.name+' - '+size+'KB', + { + theme: 'success', + header: 'Upload Complete', + life: 4000, + sticky: false + } + ); } }); diff --git a/admin/themes/default/uploadify.jGrowl.css b/admin/themes/default/uploadify.jGrowl.css new file mode 100644 index 000000000..954531387 --- /dev/null +++ b/admin/themes/default/uploadify.jGrowl.css @@ -0,0 +1,147 @@ +/* +Default jGrowl style definitions for: + +Uploadify v1.6.2 +Copyright (C) 2009 by Ronnie Garcia +Co-developed by Travis Nickels +*/ + +/** Uploadify Styling here Styling **/ +div.jGrowl div.success { + background: url(images/Check.png) no-repeat 6px 6px; +} +div.jGrowl div.error { + background: url(images/Error.png) no-repeat 6px 6px; +} +div.jGrowl div.warning { + background: url(images/Alert.png) no-repeat 6px 6px; +} + +div.jGrowl div.jGrowl-notification, div.jGrowl div.jGrowl-closer { + background-color: #000; + color: #fff; + opacity: .85; + filter: alpha(opacity = 85); + zoom: 1; + width: 300px; + padding: 10px; + margin-top: 5px; + margin-bottom: 5px; + font-family: Tahoma, Arial, Helvetica, sans-serif; + font-size: 12px; + text-align: left; + display: none; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +/* original jGrowl css styling */ + +div.center div.jGrowl-notification, div.center div.jGrowl-closer { + margin-left: auto; + margin-right: auto; +} + +div.jGrowl div.jGrowl-notification { + min-height: 40px; +} + +div.jGrowl div.jGrowl-notification div.close { + float: right; + font-weight: bold; + font-size: 12px; + cursor: pointer; +} + +div.jGrowl div.jGrowl-closer { + height: 15px; + padding-top: 4px; + padding-bottom: 4px; + cursor: pointer; + font-size: 11px; + font-weight: bold; + text-align: center; +} + +div.jGrowl div.jGrowl-notification div.header { + font-weight: bold; + font-size: 14px; + margin-left: 60px; +} +div.jGrowl div.jGrowl-notification div.message { + font-size: 12px; + margin-left: 60px; +} +div.jGrowl div.jGrowl-notification p { + font-size: 6px; +} + +div.jGrowl { + padding: 10px; + z-index: 9999; +} + +/** Special IE6 Style Positioning **/ +div.ie6 { + position: absolute; +} + +div.ie6.top-right { + right: auto; + bottom: auto; + left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.top-left { + left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.bottom-right { + left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.bottom-left { + left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.center { + left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); + width: 100%; +} + +/** Normal Style Positions **/ +body > div.jGrowl { + position: fixed; +} + +body > div.jGrowl.top-left { + left: 0px; + top: 0px; +} + +body > div.jGrowl.top-right { + right: 0px; + top: 0px; +} + +body > div.jGrowl.bottom-left { + left: 0px; + bottom: 0px; +} + +body > div.jGrowl.bottom-right { + right: 0px; + bottom: 0px; +} + +body > div.jGrowl.center { + top: 0px; + width: 50%; + left: 25%; +} + |