aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario <mario@mariovavti.com>2020-12-16 16:57:56 +0000
committerMario <mario@mariovavti.com>2020-12-16 16:57:56 +0000
commitb4b566318a0e52b6396445ddc21c20c0abcc8ce4 (patch)
treee65c0225d0c85a72db1e709e3a32484584b049c0
parent27df896a9cb1f713c49e290f2a4e7d9860aff1d5 (diff)
downloadvolse-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.php35
-rw-r--r--view/js/mod_cloud.js11
-rw-r--r--view/tpl/cloud_directory.tpl34
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>