{if $upload_mode eq 'multiple'} {combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js' } {combine_script id='jquery.uploadify' load='footer' require='jquery' path='admin/include/uploadify/jquery.uploadify.v3.0.0.min.js' } {combine_script id='jquery.ui.progressbar' load='footer'} {combine_css path="admin/themes/default/uploadify.jGrowl.css"} {combine_css path="admin/include/uploadify/uploadify.css"} {/if} {include file='include/colorbox.inc.tpl'} {footer_script}{literal} jQuery(document).ready(function(){ function checkUploadStart() { var nbErrors = 0; jQuery("#formErrors").hide(); jQuery("#formErrors li").hide(); if (jQuery("#albumSelect option:selected").length == 0) { jQuery("#formErrors #noAlbum").show(); nbErrors++; } var nbFiles = 0; if (jQuery("#uploadBoxes").size() == 1) { jQuery("input[name^=image_upload]").each(function() { if (jQuery(this).val() != "") { nbFiles++; } }); } else { nbFiles = jQuery(".uploadifyQueueItem").size(); } if (nbFiles == 0) { jQuery("#formErrors #noPhoto").show(); nbErrors++; } if (nbErrors != 0) { jQuery("#formErrors").show(); return false; } else { return true; } } function humanReadableFileSize(bytes) { var byteSize = Math.round(bytes / 1024 * 100) * .01; var suffix = 'KB'; if (byteSize > 1000) { byteSize = Math.round(byteSize *.001 * 100) * .01; suffix = 'MB'; } var sizeParts = byteSize.toString().split('.'); if (sizeParts.length > 1) { byteSize = sizeParts[0] + '.' + sizeParts[1].substr(0,2); } else { byteSize = sizeParts[0]; } return byteSize+suffix; } function fillCategoryListbox(selectId, selectedValue) { jQuery.getJSON( "ws.php?format=json&method=pwg.categories.getList", { recursive: true, fullname: true, format: "json", }, function(data) { jQuery.each( data.result.categories, function(i,category) { var selected = null; if (category.id == selectedValue) { selected = "selected"; } jQuery("") .attr("value", category.id) .attr("selected", selected) .text(category.name) .appendTo("#"+selectId) ; } ); } ); } /* jQuery("#albumSelect").find("option").remove(); fillCategoryListbox("albumSelect"); fillCategoryListbox("category_parent"); */ jQuery(".addAlbumOpen").colorbox({inline:true, href:"#addAlbumForm"}); jQuery("#addAlbumForm form").submit(function(){ jQuery("#categoryNameError").text(""); jQuery.ajax({ url: "ws.php?format=json&method=pwg.categories.add", data: { parent: jQuery("select[name=category_parent] option:selected").val(), name: jQuery("input[name=category_name]").val(), }, beforeSend: function() { jQuery("#albumCreationLoading").show(); }, success:function(html) { jQuery("#albumCreationLoading").hide(); var newAlbum = jQuery.parseJSON(html).result.id; jQuery(".addAlbumOpen").colorbox.close(); jQuery("#albumSelect").find("option").remove(); fillCategoryListbox("albumSelect", newAlbum); /* we refresh the album creation form, in case the user wants to create another album */ jQuery("#category_parent").find("option").remove(); jQuery("") .attr("value", 0) .text("------------") .appendTo("#category_parent") ; fillCategoryListbox("category_parent", newAlbum); jQuery("#addAlbumForm form input[name=category_name]").val(''); jQuery("#albumSelection").show(); return true; }, error:function(XMLHttpRequest, textStatus, errorThrows) { jQuery("#albumCreationLoading").hide(); jQuery("#categoryNameError").text(errorThrows).css("color", "red"); } }); return false; }); jQuery("#hideErrors").click(function() { jQuery("#formErrors").hide(); return false; }); jQuery("#uploadWarningsSummary a.showInfo").click(function() { jQuery("#uploadWarningsSummary").hide(); jQuery("#uploadWarnings").show(); }); jQuery("#showPermissions").click(function() { jQuery(this).parent(".showFieldset").hide(); jQuery("#permissions").show(); }); {/literal} {if $upload_mode eq 'html'} {literal} function addUploadBox() { var uploadBox = '
'; jQuery(uploadBox).appendTo("#uploadBoxes"); } addUploadBox(); jQuery("#addUploadBox A").click(function () { addUploadBox(); }); jQuery("#uploadForm").submit(function() { return checkUploadStart(); }); {/literal} {elseif $upload_mode eq 'multiple'} var uploadify_path = '{$uploadify_path}'; var upload_id = '{$upload_id}'; var session_id = '{$session_id}'; var pwg_token = '{$pwg_token}'; var buttonText = "{'Select files'|@translate}"; var sizeLimit = Math.round({$upload_max_filesize} / 1024); /* in KBytes */ {literal} jQuery("#uploadify").uploadify({ 'uploader' : uploadify_path + '/uploadify.php', 'langFile' : uploadify_path + '/uploadifyLang_en.js', 'swf' : uploadify_path + '/uploadify.swf', buttonCursor : 'pointer', 'buttonText' : buttonText, 'width' : 300, 'cancelImage' : uploadify_path + '/cancel.png', 'queueID' : 'fileQueue', 'auto' : false, 'multi' : true, 'fileTypeDesc' : 'Photo files', 'fileTypeExts' : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF', 'fileSizeLimit' : sizeLimit, 'progressData' : 'percentage', requeueErrors : false, 'onSelect' : function(event,ID,fileObj) { jQuery("#fileQueue").show(); }, 'onQueueComplete' : function(stats) { jQuery("input[name=submit_upload]").click(); }, onUploadError: function (file,errorCode,errorMsg,errorString,swfuploadifyQueue) { /* uploadify calls the onUploadError trigger when the user cancels a file! */ /* There no error so we skip it to avoid panic. */ if ("Cancelled" == errorString) { return false; } var msg = file.name+', '+errorString; /* Let's put the error message in the form to display once the form is */ /* performed, it makes support easier when user can copy/paste the error */ /* thrown. */ jQuery("#uploadForm").append(''); jQuery.jGrowl( 'onUploadError '+msg, { theme: 'error', header: 'ERROR', life: 4000, sticky: false } ); return false; }, onUploadSuccess: function (file,data,response) { var data = jQuery.parseJSON(data); jQuery("#uploadedPhotos").parent("fieldset").show(); /* Let's display the thumbnail of the uploaded photo, no need to wait the */ /* end of the queue */ jQuery("#uploadedPhotos").prepend(' '); }, onUploadComplete: function(file,swfuploadifyQueue) { var max = parseInt(jQuery("#progressMax").text()); var next = parseInt(jQuery("#progressCurrent").text())+1; var addToProgressBar = 2; if (next <= max) { jQuery("#progressCurrent").text(next); } else { addToProgressBar = 1; } jQuery("#progressbar").progressbar({ value: jQuery("#progressbar").progressbar("option", "value") + addToProgressBar }); } }); jQuery("input[type=button]").click(function() { if (!checkUploadStart()) { return false; } jQuery("#uploadify").uploadifySettings( 'postData', { 'category_id' : jQuery("select[name=category] option:selected").val(), 'level' : jQuery("select[name=level] option:selected").val(), 'upload_id' : upload_id, 'session_id' : session_id, 'pwg_token' : pwg_token, } ); nb_files = jQuery(".uploadifyQueueItem").size(); jQuery("#progressMax").text(nb_files); jQuery("#progressbar").progressbar({max: nb_files*2, value:1}); jQuery("#progressCurrent").text(1); jQuery("#uploadProgress").show(); jQuery("#uploadify").uploadifyUpload(); }); {/literal} {/if} }); {/footer_script}