diff options
author | Mario <mario@mariovavti.com> | 2020-12-16 16:57:56 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2020-12-16 16:57:56 +0000 |
commit | b4b566318a0e52b6396445ddc21c20c0abcc8ce4 (patch) | |
tree | e65c0225d0c85a72db1e709e3a32484584b049c0 | |
parent | 27df896a9cb1f713c49e290f2a4e7d9860aff1d5 (diff) | |
download | volse-hubzilla-b4b566318a0e52b6396445ddc21c20c0abcc8ce4.tar.gz volse-hubzilla-b4b566318a0e52b6396445ddc21c20c0abcc8ce4.tar.bz2 volse-hubzilla-b4b566318a0e52b6396445ddc21c20c0abcc8ce4.zip |
files_ng: fix regression in finding the right path in certain situations and add a info panel with attach and zrl bbcode
-rw-r--r-- | include/attach.php | 35 | ||||
-rw-r--r-- | view/js/mod_cloud.js | 11 | ||||
-rw-r--r-- | view/tpl/cloud_directory.tpl | 34 |
3 files changed, 55 insertions, 25 deletions
diff --git a/include/attach.php b/include/attach.php index 7ef5c4d0e..8ebe2d243 100644 --- a/include/attach.php +++ b/include/attach.php @@ -647,17 +647,15 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $pathname = filepath_macro($newalbum); } elseif(array_key_exists('folder',$arr)) { - $x = q("select display_path from attach where hash = '%s' and uid = %d limit 1", - dbesc($arr['folder']), - intval($channel['channel_id']) - ); - if($x) - $pathname = $x[0]['display_path']; + $pathname = find_path_by_hash($channel['channel_id'], $arr['folder']); } else { $pathname = filepath_macro($album); } } + elseif(array_key_exists('folder',$arr)) { + $pathname = find_path_by_hash($channel['channel_id'], $arr['folder']); + } if(! $pathname) { $pathname = filepath_macro($upload_path); } @@ -807,6 +805,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $os_relpath = ltrim($os_relpath,'/'); $os_path = $os_relpath; + $display_path = ltrim($pathname . '/' . $filename,'/'); if($src) { @@ -890,7 +889,6 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { ); } else { - $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, content, created, edited, os_path, display_path, allow_cid, allow_gid,deny_cid, deny_gid ) VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($channel['channel_account_id']), @@ -1747,6 +1745,29 @@ function find_filename_by_hash($channel_id, $attachHash) { } /** + * @brief Returns the display_path of an attachment in a given channel. + * + * @param int $channel_id + * The id of the channel + * @param string $attachHash + * The hash of the attachment + * @return string + * The filename of the attachment + */ +function find_path_by_hash($channel_id, $attachHash) { + $r = q("SELECT display_path FROM attach WHERE uid = %d AND hash = '%s' LIMIT 1", + intval($channel_id), + dbesc($attachHash) + ); + $display_path = ''; + if ($r) { + $display_path = $r[0]['display_path']; + } + + return $display_path; +} + +/** * @brief Pipes $in to $out in 16KB chunks. * * @param resource $in File pointer of input diff --git a/view/js/mod_cloud.js b/view/js/mod_cloud.js index 7f2bdfab7..cbd9c2a08 100644 --- a/view/js/mod_cloud.js +++ b/view/js/mod_cloud.js @@ -14,6 +14,14 @@ $(document).ready(function () { // Per File Tools + $('.cloud-tool-info-btn').on('click', function (e) { + e.preventDefault(); + let id = $(this).data('id'); + close_and_deactivate_all_panels(); + $('#cloud-tool-info-' + id).toggle(); + $('#cloud-index-' + id).addClass('cloud-index-active'); + }); + $('.cloud-tool-perms-btn').on('click', function (e) { e.preventDefault(); let id = $(this).data('id'); @@ -323,7 +331,6 @@ $(document).ready(function () { $('#cloud-tool-submit-' + id).show(); $('#cloud-index-' + id).addClass('cloud-index-active'); - $('#cloud-tool-submit-' + id).show(); } }); @@ -406,7 +413,7 @@ function prepareHtml(f) { $('#cloud-index #new-upload-progress-bar-' + num.toString()).after( '<tr id="new-upload-' + i + '" class="new-upload">' + '<td></td>' + - '<td><i class="fa ' + getIconFromType(f.type) + '" title="' + f.type + '"></i></td>' + + '<td><i class="fa fa-fw ' + getIconFromType(f.type) + '" title="' + f.type + '"></i></td>' + '<td>' + f.name + '</td>' + '<td id="upload-progress-' + i + '"></td><td></td><td></td>' + '<td class="d-none d-md-table-cell">' + formatSizeUnits(f.size) + '</td><td class="d-none d-md-table-cell"></td>' + diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl index 6f70c6bfe..8fe31767c 100644 --- a/view/tpl/cloud_directory.tpl +++ b/view/tpl/cloud_directory.tpl @@ -165,6 +165,7 @@ <i class="fa fa-fw fa-ellipsis-v"></i> </button> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-button-{{$item.attach_id}}"> + <a id="cloud-tool-info-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-info-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-info"></i> Info</a> {{if $item.is_owner}} <a id="cloud-tool-perms-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-perms-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-{{$item.lockstate}}"></i> Adjust permissions</a> {{/if}} @@ -210,6 +211,23 @@ <div id="cloud-tool-rename-{{$item.attach_id}}" class="cloud-tool"> {{include file="field_input.tpl" field=$item.newfilename}} </div> + <div id="cloud-tool-info-{{$item.attach_id}}" class="cloud-tool"> + {{if ! $item.collection}} + <div class="form-group"> + <label for="attach-code-input-{{$item.attach_id}}">Attachment code</label> + <input type="text" class="form-control" id="attach-code-input-{{$item.attach_id}}" name="attach-code-input-{{$item.attach_id}}" value="[attachment]{{$item.resource}},{{$item.revision}}[/attachment]" onclick="this.select();" /> + </div> + {{/if}} + <div class="form-group"> + <label for="link-code-input-{{$item.attach_id}}">Link code</label> + <input type="text" class="form-control" id="link-code-input-{{$item.attach_id}}" name="link-code-input-{{$item.attach_id}}" value="[zrl={{$item.full_path}}]{{$item.full_path}}[/zrl]" onclick="this.select();" /> + </div> + <div class="form-group"> + <button id="cloud-tool-close-btn-{{$item.attach_id}}" class="btn btn-outline-secondary btn-sm cloud-tool-cancel-btn" type="button" data-id="{{$item.attach_id}}"> + Close + </button> + </div> + </div> <div id="cloud-tool-move-{{$item.attach_id}}" class="cloud-tool"> {{include file="field_select.tpl" field=$item.newfolder}} {{include file="field_checkbox.tpl" field=$item.copy}} @@ -238,22 +256,6 @@ </div> </div> </div> - <!--div id="cloud-tool-share-{{$item.attach_id}}" class=""> - <div id="attach-edit-tools-share-{{$item.attach_id}}" class="btn-group form-group"> - <button id="link-btn-{{$item.attach_id}}" class="btn btn-outline-secondary btn-sm" type="button" onclick="openClose('link-code-{{$item.attach_id}}');" title="{{$link_btn_title}}"> - <i class="fa fa-link jot-icons"></i> - </button> - </div> - </div> - {{if !$item.collection}} - <a href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]" id="attach-btn" class="btn btn-outline-secondary btn-sm" title="{{$attach_btn_title}}"> - <i class="fa fa-share-square-o jot-icons"></i> - </a> - {{/if}} - <div id="link-code-{{$item.attach_id}}" class="form-group link-code"> - <label for="linkpasteinput-{{$item.attach_id}}">{{$cpldesc}}</label> - <input type="text" class="form-control" id="linkpasteinput-{{$item.attach_id}}" name="linkpasteinput-{{$item.attach_id}}" value="{{$item.full_path}}" onclick="this.select();"/> - </div--> </form> </td> </tr> |