updated: jquery upload plugin (upload winix function)

git-svn-id: svn://ttmath.org/publicrep/winix/trunk@861 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2012-07-15 15:49:48 +00:00
parent 9830b0a50f
commit e98cca7fbc
6 changed files with 253 additions and 213 deletions

View File

@ -432,9 +432,9 @@ void Rm::Clear()
void Rm::CreateJSON(bool status)
{
if( status )
cur->request->page << "true\n";
cur->request->page << "[true]\n";
else
cur->request->page << "false\n";
cur->request->page << "[false]\n";
cur->request->page_generated = true;
cur->request->use_html_filter = false;

View File

@ -26,127 +26,168 @@
[if-any-no winix_function_param_is "ckeditor_upload" winix_function_param_is "jquery_upload"]
<h1>{upload_header}</h1>
<div id="fileupload">
<form id="additem" method="post" action="[doc_base_url][dir]upload" enctype="multipart/form-data">
<fieldset>
<legend>{upload_form_legend}</legend>
<div class="fileupload-buttonbar">
<label class="fileinput-button">
<span>{upload_add_files}</span>
<input type="file" name="fileupload" multiple>
</label>
<button type="submit" class="start">{upload_start_upload}</button>
<button type="reset" class="cancel">{upload_cancel_upload}</button>
<button type="button" class="delete">{upload_delete_files}</button>
[# The file upload form used as target for the file upload widget]
<form id="fileupload" action="[doc_base_url][dir]upload" method="POST" enctype="multipart/form-data">
[# The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload]
<div class="row fileupload-buttonbar">
<div class="span7">
[# The fileinput-button span is used to style the file input field as button]
<span class="btn btn-success fileinput-button">
<i class="icon-plus icon-white"></i>
<span>{upload_button_add_files}</span>
<input type="file" name="files\[\]" multiple>
</span>
<button type="submit" class="btn btn-primary start">
<i class="icon-upload icon-white"></i>
<span>{upload_button_start_upload}</span>
</button>
<button type="reset" class="btn btn-warning cancel">
<i class="icon-ban-circle icon-white"></i>
<span>{upload_button_cancel_upload}</span>
</button>
<button type="button" class="btn btn-danger delete">
<i class="icon-trash icon-white"></i>
<span>{upload_button_delete}</span>
</button>
<input type="checkbox" class="toggle">
</div>
[# The global progress information]
<div class="span5 fileupload-progress fade">
[# The global progress bar]
<div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
<div class="bar" style="width:0%;"></div>
</div>
[# The extended global progress information]
<div class="progress-extended">&nbsp;</div>
</div>
</div>
[if false]
[if winix_function_param_is "multi"]
<p class="withnext">{upload_form_file_multi}</p>
<input size="68" class="edit" type="file" name="fileupload1">
<input size="68" class="edit" type="file" name="fileupload2">
<input size="68" class="edit" type="file" name="fileupload3">
<input size="68" class="edit" type="file" name="fileupload4">
<input size="68" class="edit" type="file" name="fileupload5">
[else]
<p class="withnext">{upload_form_file}</p>
<input size="68" class="edit" type="file" name="fileupload">
<p class="withnext">{title}:</p>
<input class="edit" type="text" name="subject" value="[item_subject]">
<p class="withnext">{suggested_url}:</p>
<input class="edit" type="text" name="url" value="[item_url]">
[include "fun_emacs_post.html"]
[end]
[end]
[if-no user_logged]
<p class="withnext">{nick}:</p>
<input class="edit" type="text" name="guestname" value="[item_guest_name]">
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[# The loading indicator is shown during file processing]
<div class="fileupload-loading"></div>
<br>
[# The table listing the files available for upload/download]
<table role="presentation" class="table table-striped"><tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"></tbody></table>
</form>
[if false]<input class="submit" type="submit" value="{upload_submit}">[end]
</fieldset>
</form>
<div class="fileupload-content">
<table class="files"></table>
<div class="fileupload-progressbar"></div>
</div>
<script id="template-upload" type="text/x-jquery-tmpl">
<tr class="template-upload\{\{if error\}\} ui-state-error\{\{/if\}\}">
<td class="preview"></td>
<td class="name">$\{name\}</td>
<td class="size">$\{sizef\}</td>
\{\{if error\}\}
<td class="error" colspan="2">{upload_error}:
\{\{if error === 'maxFileSize'\}\}{upload_file_too_big}
\{\{else error === 'minFileSize'\}\}{upload_file_too_small}
\{\{else error === 'acceptFileTypes'\}\}{upload_filetype_not_allowed}
\{\{else error === 'maxNumberOfFiles'\}\}{upload_max_files_exceeded}
\{\{else\}\}$\{error\}
\{\{/if\}\}
</td>
\{\{else\}\}
<td class="progress"><div></div></td>
<td class="start"><button>{upload_start}</button></td>
\{\{/if\}\}
<td class="cancel"><button>{upload_cancel}</button></td>
</tr>
</script>
<script id="template-download" type="text/x-jquery-tmpl">
<tr class="template-download\{\{if error\}\} ui-state-error\{\{/if\}\}">
\{\{if error\}\}
<td></td>
<td class="name">$\{name\}</td>
<td class="size">$\{sizef\}</td>
<td class="error" colspan="2">{upload_error}:
\{\{if error === 1\}\}{upload_file_too_big}
\{\{else error === 2\}\}{upload_file_too_big}
\{\{else error === 3\}\}{upload_partial}
\{\{else error === 4\}\}{upload_no_file}
\{\{else error === 5\}\}{upload_missing_tmp_folder}
\{\{else error === 6\}\}{upload_disc_failded}
\{\{else error === 7\}\}{upload_extenstion_stop}
\{\{else error === 'maxFileSize'\}\}{upload_file_too_big}
\{\{else error === 'minFileSize'\}\}{upload_file_too_small}
\{\{else error === 'acceptFileTypes'\}\}Filetype not allowed
\{\{else error === 'maxNumberOfFiles'\}\}{upload_filetype_not_allowed}
\{\{else error === 'uploadedBytes'\}\}{upload_bytes_exceed_file_size}
\{\{else error === 'emptyResult'\}\}{upload_empty_result}
\{\{else\}\}$\{error\}
\{\{/if\}\}
</td>
\{\{else\}\}
<td class="preview">
\{\{if thumbnail_url\}\}
<a href="$\{url\}/cat" target="_blank"><img src="$\{thumbnail_url\}"></a>
\{\{/if\}\}
</td>
<td class="name">
<a href="$\{url\}/cat"\{\{if thumbnail_url\}\} target="_blank"\{\{/if\}\}>$\{name\}</a>
</td>
<td class="size">$\{sizef\}</td>
<!--<td class="url">$\{url\}</td>-->
<td colspan="2"></td>
\{\{/if\}\}
<td class="delete">
<button data-type="$\{delete_type\}" data-url="$\{delete_url\}">{upload_delete}</button>
</td>
</tr>
</script>
[# modal-gallery is the modal dialog used for the image gallery]
<div id="modal-gallery" class="modal modal-gallery hide fade" data-filter=":odd">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times;</a>
<h3 class="modal-title"></h3>
</div>
<div class="modal-body"><div class="modal-image"></div></div>
<div class="modal-footer">
<a class="btn modal-download" target="_blank">
<i class="icon-download"></i>
<span>{upload_button_download}</span>
</a>
<a class="btn btn-success modal-play modal-slideshow" data-slideshow="5000">
<i class="icon-play icon-white"></i>
<span>{upload_button_slideshow}</span>
</a>
<a class="btn btn-info modal-prev">
<i class="icon-arrow-left icon-white"></i>
<span>{upload_button_previous}</span>
</a>
<a class="btn btn-primary modal-next">
<span>{upload_button_next}</span>
<i class="icon-arrow-right icon-white"></i>
</a>
</div>
</div>
[# The template to display files available for upload]
<script id="template-upload" type="text/x-tmpl">
\{% for (var i=0, file; file=o.files\[i\]; i++) \{ %\}
<tr class="template-upload fade">
<td class="preview"><span class="fade"></span></td>
<td class="name"><span>\{%=file.name%\}</span></td>
<td class="size"><span>\{%=o.formatFileSize(file.size)%\}</span></td>
\{% if (file.error) \{ %\}
<td class="error" colspan="2"><span class="label label-important">\{%=locale.fileupload.error%\}</span> \{%=locale.fileupload.errors\[file.error\] || file.error%\}</td>
\{% \} else if (o.files.valid && !i) \{ %\}
<td>
<div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar" style="width:0%;"></div></div>
</td>
<td class="start">\{% if (!o.options.autoUpload) \{ %\}
<button class="btn btn-primary">
<i class="icon-upload icon-white"></i>
<span>\{%=locale.fileupload.start%\}</span>
</button>
\{% \} %\}</td>
\{% \} else \{ %\}
<td colspan="2"></td>
\{% \} %\}
<td class="cancel">\{% if (!i) \{ %\}
<button class="btn btn-warning">
<i class="icon-ban-circle icon-white"></i>
<span>\{%=locale.fileupload.cancel%\}</span>
</button>
\{% \} %\}</td>
</tr>
\{% \} %\}
</script>
[# The template to display files available for download]
<script id="template-download" type="text/x-tmpl">
\{% for (var i=0, file; file=o.files\[i\]; i++) \{ %\}
<tr class="template-download fade">
\{% if (file.error) \{ %\}
<td></td>
<td class="name"><span>\{%=file.name%\}</span></td>
<td class="size"><span>\{%=o.formatFileSize(file.size)%\}</span></td>
<td class="error" colspan="2"><span class="label label-important">\{%=locale.fileupload.error%\}</span> \{%=locale.fileupload.errors\[file.error\] || file.error%\}</td>
\{% \} else \{ %\}
<td class="preview">\{% if (file.thumbnail_url) \{ %\}
<a href="\{%=file.url%\}" title="\{%=file.name%\}" rel="gallery" download="\{%=file.name%\}"><img src="\{%=file.thumbnail_url%\}"></a>
\{% \} %\}</td>
<td class="name">
<a href="\{%=file.url%\}" title="\{%=file.name%\}" rel="\{%=file.thumbnail_url&&'gallery'%\}" download="\{%=file.name%\}">\{%=file.name%\}</a>
</td>
<td class="size"><span>\{%=o.formatFileSize(file.size)%\}</span></td>
<td colspan="2"></td>
\{% \} %\}
<td class="delete">
<button class="btn btn-danger" data-type="\{%=file.delete_type%\}" data-url="\{%=file.delete_url%\}">
<i class="icon-trash icon-white"></i>
<span>{upload_button_delete}</span>
</button>
<input type="checkbox" name="delete" value="1">
</td>
</tr>
\{% \} %\}
</script>
</div>
<script type="text/javascript">
$('#fileupload button.start').css('display', 'none');
$('#fileupload').fileupload(\{
"url": "[doc_base_url][dir]upload/jquery_upload",
"autoUpload": true
\});
$('#fileupload').fileupload(
'option',
'redirect',
window.location.href.replace(
/\/\[^\/\]*$/,
'/cors/result.html?%s'
)
);
$('#fileupload').each(function () \{
var that = this;
$.getJSON(this.action + '/jquery_upload', function (result) \{
if (result && result.length) \{
$(that).fileupload('option', 'done')
.call(that, null, \{result: result\});
\}
\});
\});</script>
[end]

View File

@ -42,24 +42,6 @@
[end]
[# !! co to?]
[if winix_function_is "gallery-old"]
[if-one gallery_has_not_mount_type gallery_mount_type_arg_is "lightbox"]
<link rel="stylesheet" href="[doc_base_url_common]/lightbox/lightbox.css" type="text/css" media="screen">
<script src="[doc_base_url_common]/lightbox/js/prototype.js" type="text/javascript"></script>
<script src="[doc_base_url_common]/lightbox/js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="[doc_base_url_common]/lightbox/js/lightbox.js" type="text/javascript"></script>
[end]
[if-one gallery_mount_type_arg_is "galleria" gallery_mount_type_arg_is "galleriathumb"]
<script type="text/javascript" src="[doc_base_url_common]/jquery-1.4.2.min.js"></script>
<script src="[doc_base_url_common]/aino-galleria/src/galleria.js" type="text/javascript"></script>
[end]
[end]
[if winix_function_is "gallery"]
[if-one gallery_has_not_mount_type gallery_mount_type_arg_is "lightbox"]
@ -78,28 +60,75 @@
[if winix_function_is "upload"]
<script type="text/javascript" src="[doc_base_url_common]/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="[doc_base_url_common]/jquery-ui-1.8.13/js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="[doc_base_url_common]/jquery.tmpl.min.js"></script>
<script type="text/javascript" src="[doc_base_url_common]/fileupload/jquery.iframe-transport.js"></script>
<script type="text/javascript" src="[doc_base_url_common]/fileupload.js"></script>
<script type="text/javascript" src="[doc_base_url_common]/fileupload/jquery.fileupload.js"></script>
<script type="text/javascript" src="[doc_base_url_common]/fileupload/jquery.fileupload-ui.js"></script>
<link rel="stylesheet" href="[doc_base_url_common]/jquery-ui-1.8.16.custom/css/smoothness/jquery-ui-1.8.16.custom.css" id="theme">
[# other themes]
[if false]
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/themes/base/jquery-ui.css" id="theme">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/themes/pepper-grinder/jquery-ui.css" id="theme">
[end]
<link rel="stylesheet" href="[doc_base_url_common]/fileupload/jquery.fileupload-ui.css">
<link rel="stylesheet" href="[doc_base_url_common]/fileupload.css">
[# Bootstrap CSS Toolkit styles]
[# I downloaded bootstrap.min.css and removed some normal elements from it such as html, body etc ]
[# I left only items with a class set]
[# <link rel="stylesheet" href="http://blueimp.github.com/cdn/css/bootstrap.min.css"> ]
<link rel="stylesheet" href="[doc_base_url_common]/fileupload/css/bootstrap_custom.css" type="text/css">
[# Generic page styles, removed, only one item there is there]
[# <link rel="stylesheet" href=".../fileupload/css/style.css"> ]
[# Bootstrap styles for responsive website layout, supporting different screen sizes]
<link rel="stylesheet" href="http://blueimp.github.com/cdn/css/bootstrap-responsive.min.css" type="text/css">
[# Bootstrap CSS fixes for IE6]
<!--\[if lt IE 7\]><link rel="stylesheet" href="http://blueimp.github.com/cdn/css/bootstrap-ie6.min.css" type="text/css"><!\[endif\]-->
[# Bootstrap Image Gallery styles]
<link rel="stylesheet" href="http://blueimp.github.com/Bootstrap-Image-Gallery/css/bootstrap-image-gallery.min.css" type="text/css">
[# CSS to style the file input field as button and adjust the Bootstrap progress bars]
<link rel="stylesheet" href="[doc_base_url_common]/fileupload/css/jquery.fileupload-ui.css" type="text/css">
[# Shim to make HTML5 elements usable in older Internet Explorer versions]
<!--\[if lt IE 9\]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script><!\[endif\]-->
[# can be moved to the end of a page (before </html> tag) ]
<script type="text/javascript" src="[doc_base_url_common]/jquery-1.7.2.min.js"></script>
[# The jQuery UI widget factory, can be omitted if jQuery UI is already included]
<script type="text/javascript" src="[doc_base_url_common]/fileupload/js/vendor/jquery.ui.widget.js"></script>
[# The Templates plugin is included to render the upload/download listings]
<script type="text/javascript" src="http://blueimp.github.com/JavaScript-Templates/tmpl.min.js"></script>
[# The Load Image plugin is included for the preview images and image resizing functionality]
<script type="text/javascript" src="http://blueimp.github.com/JavaScript-Load-Image/load-image.min.js"></script>
[# The Canvas to Blob plugin is included for image resizing functionality]
<script type="text/javascript" src="http://blueimp.github.com/JavaScript-Canvas-to-Blob/canvas-to-blob.min.js"></script>
[# Bootstrap JS and Bootstrap Image Gallery are not required, but included for the demo]
<script type="text/javascript" src="http://blueimp.github.com/cdn/js/bootstrap.min.js"></script>
<script type="text/javascript" src="http://blueimp.github.com/Bootstrap-Image-Gallery/js/bootstrap-image-gallery.min.js"></script>
[# The Iframe Transport is required for browsers without support for XHR file uploads]
<script type="text/javascript" src="[doc_base_url_common]/fileupload/js/jquery.iframe-transport.js"></script>
[# The basic File Upload plugin]
<script type="text/javascript" src="[doc_base_url_common]/fileupload/js/jquery.fileupload.js"></script>
[# The File Upload file processing plugin]
<script type="text/javascript" src="[doc_base_url_common]/fileupload/js/jquery.fileupload-fp.js"></script>
[# The File Upload user interface plugin]
<script type="text/javascript" src="[doc_base_url_common]/fileupload/js/jquery.fileupload-ui.js"></script>
[# The localization script]
<script type="text/javascript" src="[doc_base_url_common]/fileupload/js/locale.js"></script>
[# do not load main.js - is is at the end of fun_upload.html ]
[# The XDomainRequest Transport is included for cross-domain file deletion for IE8+]
<!--\[if gte IE 8\]><script type="text/javascript" src="js/cors/jquery.xdr-transport.js"></script><!\[endif\]-->
[end]
[if winix_function_is "sort"]
[if-no item_is]
<script type="text/javascript" src="[doc_base_url_common]/jquery-1.6.1.min.js"></script>

View File

@ -263,31 +263,14 @@ template_form_info = Select a new template
template_form_from_mount_point = from the mount point
upload_header = Files manager
upload_form_file = Browse for a file
upload_form_file_multi = Browse for files
upload_form_legend = Upload form
upload_content = File description
upload_submit = Upload
upload_add_files = Add files...
upload_start_upload = Start upload
upload_cancel_upload = Cancel upload
upload_delete_files = Delete all files
upload_error = Error
upload_file_too_big = File is too big
upload_file_too_small = File is too small
upload_filetype_not_allowed = Filetype not allowed
upload_max_files_exceeded = Max number of files exceeded
upload_start = Start
upload_cancel = Cancel
upload_bytes_exceed_file_size = Uploaded bytes exceed file size
upload_empty_result = Empty file upload result
upload_partial = File was only partially uploaded
upload_no_file = No File was uploaded
upload_missing_tmp_folder = Missing a temporary folder
upload_disc_failded = Failed to write file to disk
upload_extenstion_stop = File upload stopped by extension
upload_delete = Delete
upload_button_add_files = Add files...
upload_button_start_upload = Start upload
upload_button_cancel_upload = Cancel upload
upload_button_delete = Delete
upload_button_download = Download
upload_button_slideshow = Slideshow
upload_button_previous = Previous
upload_button_next = Next
who_header = Sessions
who_tab_index = Ind.

View File

@ -284,30 +284,15 @@ template_form_from_mount_point = z punktu montowania
upload_header = Menedżer plików
upload_form_file = Wybierz plik
upload_form_file_multi = Wybierz pliki
upload_form_legend = Formularz do wysłania pliku
upload_content = Opis pliku
upload_submit = Wyślij
upload_add_files = Dodaj pliki...
upload_start_upload = Rozpocznij wysyłanie
upload_cancel_upload = Przerwij wysyłanie
upload_delete_files = Skasuj wszystkie pliki
upload_error = Błąd
upload_file_too_big = Plik jest zbyt duży
upload_file_too_small = Plik jest zbyt mały
upload_filetype_not_allowed = Nieobsługiwany rodzaj pliku
upload_max_files_exceeded = Przekroczono dopuszczalną ilość plików
upload_start = Wyślij
upload_cancel = Przerwij
upload_bytes_exceed_file_size = Wysłana ilość bajtów przekracza rozmiar pliku
upload_empty_result = Otrzymano pusty wynik
upload_partial = Plik został jedynie częściowo przesłany
upload_no_file = Żaden plik nie został wysłany
upload_missing_tmp_folder = Brakuje katalogu tymczasowego
upload_disc_failded = Błąd zapisu pliku na dysk
upload_extenstion_stop = Wysyłanie pliku zatrzymane przez jakiś plugin
upload_delete = Usuń
upload_button_add_files = Dodaj pliki...
upload_button_start_upload = Wysyłaj
upload_button_cancel_upload = Przerwij wysyłanie
upload_button_delete = Usuń
upload_button_download = Ściągnij
upload_button_slideshow = Pokaz slajdów
upload_button_previous = Poprzedni
upload_button_next = Następny
who_header = Lista sesji

View File

@ -23,28 +23,30 @@ static std::wstring doc_proto_str;
void doc_title(Info & i)
{
size_t a;
bool was_dir = false;
bool was_dir = false;
// from 1 means skipping the root directory
for(a = 1 ; a<cur->request->dir_tab.size() ; ++a)
for(size_t a=0 ; a<cur->request->dir_tab.size() ; ++a)
{
if( !cur->request->dir_tab[a]->subject.empty() )
{
if( was_dir )
i.out << config->title_separator;
i.out << cur->request->dir_tab[a]->subject;
was_dir = true;
if( a < cur->request->dir_tab.size()-1 )
i.out << config->title_separator;
}
}
if( cur->request->is_item && !cur->request->item.subject.empty() )
if( cur->request->is_item &&
!cur->request->item.subject.empty() &&
cur->request->item.subject != cur->request->dir_tab.back()->subject
)
{
if( was_dir )
i.out << config->title_separator;
i.out << cur->request->item.subject;
was_dir = true;
}
}