From 8a8689c19139f075145001b46a15dea56ff21c77 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sat, 2 Dec 2017 17:31:18 -0800 Subject: remove warning for large files on cloud upload --- Zotlabs/Storage/Browser.php | 3 --- view/tpl/cloud_actionspanel.tpl | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Zotlabs/Storage/Browser.php b/Zotlabs/Storage/Browser.php index dd3067cf8..26abf27b5 100644 --- a/Zotlabs/Storage/Browser.php +++ b/Zotlabs/Storage/Browser.php @@ -373,8 +373,6 @@ class Browser extends DAV\Browser\Plugin { if(strpos($path,$special) === 0) $path = trim(substr($path,$count),'/'); - $info = t('Please use DAV to upload large (video, audio) files.
See Cloud Desktop Clients'); - $output .= replace_macros(get_markup_template('cloud_actionspanel.tpl'), array( '$folder_header' => t('Create new folder'), @@ -382,7 +380,6 @@ class Browser extends DAV\Browser\Plugin { '$upload_header' => t('Upload file'), '$upload_submit' => t('Upload'), '$quota' => $quota, - '$info' => $info, '$channick' => $this->auth->owner_nick, '$aclselect' => $aclselect, '$allow_cid' => acl2json($channel_acl['allow_cid']), diff --git a/view/tpl/cloud_actionspanel.tpl b/view/tpl/cloud_actionspanel.tpl index 6b876d2ac..292452cca 100644 --- a/view/tpl/cloud_actionspanel.tpl +++ b/view/tpl/cloud_actionspanel.tpl @@ -20,7 +20,7 @@
- {{if $quota.limit || $quota.used}}{{/if}} + {{if $quota.limit || $quota.used}}{{/if}}
-- cgit v1.2.3 From ba547c22571d90bc8757e45643463d53d9cae2e6 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 3 Dec 2017 17:22:18 -0800 Subject: chunked uploads for photos page --- Zotlabs/Module/Photos.php | 52 +++++++++++++++++++++++++- view/js/mod_photos.js | 93 +++++++++++++++++++++++++++++++++++++++------- view/tpl/photos_upload.tpl | 11 +++--- 3 files changed, 136 insertions(+), 20 deletions(-) diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php index caef45d98..279c393aa 100644 --- a/Zotlabs/Module/Photos.php +++ b/Zotlabs/Module/Photos.php @@ -465,6 +465,51 @@ class Photos extends \Zotlabs\Web\Controller { $_REQUEST['group_deny'] = expand_acl($channel['channel_deny_gid']); } + + $matches = []; + $partial = false; + + + + if(array_key_exists('HTTP_CONTENT_RANGE',$_SERVER)) { + $pm = preg_match('/bytes (\d*)\-(\d*)\/(\d*)/',$_SERVER['HTTP_CONTENT_RANGE'],$matches); + if($pm) { + logger('Content-Range: ' . print_r($matches,true)); + $partial = true; + } + } + + if($partial) { + $x = save_chunk($channel,$matches[1],$matches[2],$matches[3]); + + if($x['partial']) { + header('Range: bytes=0-' . (($x['length']) ? $x['length'] - 1 : 0)); + json_return_and_die($result); + } + else { + header('Range: bytes=0-' . (($x['size']) ? $x['size'] - 1 : 0)); + + $_FILES['userfile'] = [ + 'name' => $x['name'], + 'type' => $x['type'], + 'tmp_name' => $x['tmp_name'], + 'error' => $x['error'], + 'size' => $x['size'] + ]; + } + } + else { + if(! array_key_exists('userfile',$_FILES)) { + $_FILES['userfile'] = [ + 'name' => $_FILES['files']['name'], + 'type' => $_FILES['files']['type'], + 'tmp_name' => $_FILES['files']['tmp_name'], + 'error' => $_FILES['files']['error'], + 'size' => $_FILES['files']['size'] + ]; + } + } + $r = attach_store($channel,get_observer_hash(), '', $_REQUEST); if(! $r['success']) { @@ -557,8 +602,11 @@ class Photos extends \Zotlabs\Web\Controller { nav_set_selected('Photos'); - $o = ""; - + $o = ' + + '; + + $o .= "\r\n"; diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js index 267b51531..bf926c692 100644 --- a/view/js/mod_photos.js +++ b/view/js/mod_photos.js @@ -27,29 +27,93 @@ function showHideBodyTextarea() { // initialize function UploadInit() { + var nickname = $('#invisible-photos-file-upload').data('nickname'); var fileselect = $("#photos-upload-choose"); var filedrag = $("#photos-upload-form"); var submit = $("#dbtn-submit"); + var count = 1; + + $('#invisible-photos-file-upload').fileupload({ + url: 'photos/' + nickname, + dataType: 'json', + dropZone: filedrag, + maxChunkSize: 4 * 1024 * 1024, + + add: function(e,data) { + $(data.files).each( function() { this.count = ++ count; prepareHtml(this); }); + + var allow_cid = ($('#photos-upload-form').data('allow_cid') || []); + var allow_gid = ($('#photos-upload-form').data('allow_gid') || []); + var deny_cid = ($('#photos-upload-form').data('deny_cid') || []); + var deny_gid = ($('#photos-upload-form').data('deny_gid') || []); + + $('.acl-field').remove(); + + $(allow_gid).each(function(i,v) { + $('#photos-upload-form').append(""); + }); + $(allow_cid).each(function(i,v) { + $('#photos-upload-form').append(""); + }); + $(deny_gid).each(function(i,v) { + $('#photos-upload-form').append(""); + }); + $(deny_cid).each(function(i,v) { + $('#photos-upload-form').append(""); + }); + + data.formData = $('#photos-upload-form').serializeArray(); + + data.submit(); + }, + + progress: function(e,data) { + + // there will only be one file, the one we are looking for + + $(data.files).each( function() { + var idx = this.count; + + // Dynamically update the percentage complete displayed in the file upload list + $('#upload-progress-' + idx).html(Math.round(data.loaded / data.total * 100) + '%'); + $('#upload-progress-bar-' + idx).css('background-size', Math.round(data.loaded / data.total * 100) + '%'); + + }); + + + }, + + + stop: function(e,data) { + window.location.href = window.location.href; + } + + }); + + $('#dbtn-submit').click(function(event) { event.preventDefault(); $('#invisible-photos-file-upload').trigger('click'); return false;}); + + + // is XHR2 available? - var xhr = new XMLHttpRequest(); - if (xhr.upload) { +// var xhr = new XMLHttpRequest(); +// if (xhr.upload) { // file select - fileselect.attr("multiple", 'multiple'); - fileselect.on("change", UploadFileSelectHandler); +// fileselect.attr("multiple", 'multiple'); +// fileselect.on("change", UploadFileSelectHandler); // file submit - submit.on("click", fileselect, UploadFileSelectHandler); +// submit.on("click", fileselect, UploadFileSelectHandler); // file drop - filedrag.on("dragover", DragDropUploadFileHover); - filedrag.on("dragleave", DragDropUploadFileHover); - filedrag.on("drop", DragDropUploadFileSelectHandler); - } +// filedrag.on("dragover", DragDropUploadFileHover); +// filedrag.on("dragleave", DragDropUploadFileHover); +// filedrag.on("drop", DragDropUploadFileSelectHandler); +// } - window.filesToUpload = 0; - window.fileUploadsCompleted = 0; +// window.filesToUpload = 0; +// window.fileUploadsCompleted = 0; } // file drag hover @@ -98,8 +162,11 @@ function UploadFileSelectHandler(e) { } } -function prepareHtml(f, i) { - var num = i - 1; +function prepareHtml(f) { + + var num = f.count - 1; + var i = f.count; + $('#upload-index #new-upload-progress-bar-' + num.toString()).after( '' + '' + diff --git a/view/tpl/photos_upload.tpl b/view/tpl/photos_upload.tpl index 46b1d3fd0..ea173049b 100755 --- a/view/tpl/photos_upload.tpl +++ b/view/tpl/photos_upload.tpl @@ -1,6 +1,7 @@
+
- +
@@ -15,9 +16,9 @@
{{if $default}} -
+ {{include file="field_input.tpl" field=$caption}} {{include file="field_checkbox.tpl" field=$visible}}
@@ -30,7 +31,7 @@ {{/if}} - +
@@ -57,7 +58,7 @@
- {{* this is needed to append the upload files in the right order *}} + {{* this is needed to append the upload files in the right order *}}
{{$aclselect}}
-- cgit v1.2.3 From 1c32c5fd2ad2185ce2ea53f94edac1de1c178f7b Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 3 Dec 2017 17:25:00 -0800 Subject: rename button --- Zotlabs/Module/Photos.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php index 279c393aa..6aece0ed6 100644 --- a/Zotlabs/Module/Photos.php +++ b/Zotlabs/Module/Photos.php @@ -704,7 +704,7 @@ class Photos extends \Zotlabs\Web\Controller { '$uploader' => $ret['addon_text'], '$default' => (($ret['default_upload']) ? true : false), '$uploadurl' => $ret['post_url'], - '$submit' => t('Submit') + '$submit' => t('Upload') )); -- cgit v1.2.3 From 7ed80bf44320a9fd2baf9cb949399589c7d88e33 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 3 Dec 2017 17:38:39 -0800 Subject: js warning - getelementbyid (id doesn't exist) --- view/tpl/photo_album.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl index 58b843bf0..678e790ac 100755 --- a/view/tpl/photo_album.tpl +++ b/view/tpl/photo_album.tpl @@ -9,7 +9,7 @@ {{/if}} {{if $can_post}} - + {{/if}}
-- cgit v1.2.3 From 1c821640cec383ab3ac02834cd560edd48111c08 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 3 Dec 2017 19:12:55 -0800 Subject: pagetitle lost importing a pdl element from conversation --- Zotlabs/Module/Impel.php | 2 ++ Zotlabs/Module/Layouts.php | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Zotlabs/Module/Impel.php b/Zotlabs/Module/Impel.php index 77f488d26..0c372bd96 100644 --- a/Zotlabs/Module/Impel.php +++ b/Zotlabs/Module/Impel.php @@ -26,6 +26,8 @@ class Impel extends \Zotlabs\Web\Controller { if(! $j) json_return_and_die($ret); + // logger('element: ' . print_r($j,true)); + $channel = \App::get_channel(); $arr = array(); diff --git a/Zotlabs/Module/Layouts.php b/Zotlabs/Module/Layouts.php index 34d754029..19efb37fd 100644 --- a/Zotlabs/Module/Layouts.php +++ b/Zotlabs/Module/Layouts.php @@ -162,12 +162,12 @@ class Layouts extends \Zotlabs\Web\Controller { 'created' => $rr['created'], 'edited' => $rr['edited'], 'mimetype' => $rr['mimetype'], - 'pagetitle' => $rr['sid'], + 'pagetitle' => urldecode($rr['v']), 'mid' => $rr['mid'] ); $pages[$rr['iid']][] = array( 'url' => $rr['iid'], - 'title' => $rr['v'], + 'title' => urldecode($rr['v']), 'descr' => $rr['title'], 'mid' => $rr['mid'], 'created' => $rr['created'], -- cgit v1.2.3 From 91e3c5c34e93004b9641d906c9f512b42f9c4a7a Mon Sep 17 00:00:00 2001 From: zotlabs Date: Sun, 3 Dec 2017 19:30:36 -0800 Subject: render installable elements as buttons instead of links --- include/bbcode.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index fd476766e..e38473168 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -246,8 +246,8 @@ function bb_parse_element($match) { $j = json_decode(base64url_decode($match[1]),true); if ($j && local_channel()) { - $text = sprintf( t('Install %s element: '), translate_design_element($j['type'])) . $j['pagetitle']; - $o = EOL . '' . $text . '' . EOL; + $text = sprintf( t('Install %1$s element %2$s'), translate_design_element($j['type']), $j['pagetitle']); + $o = EOL . '' . EOL; } else { $text = sprintf( t('This post contains an installable %s element, however you lack permissions to install it on this site.' ), translate_design_element($j['type'])) . $j['pagetitle']; -- cgit v1.2.3