aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-10-30 18:49:18 -0700
committerzotlabs <mike@macgirvin.com>2017-10-30 18:49:18 -0700
commit71e0e55b0b5bc1746cb481056b027e76c1821ef7 (patch)
tree7e49ea56994a901398ee49d9c2bc6d8586d58595
parent4fef29e61c32b129f0090a4962d91607337a9406 (diff)
downloadvolse-hubzilla-71e0e55b0b5bc1746cb481056b027e76c1821ef7.tar.gz
volse-hubzilla-71e0e55b0b5bc1746cb481056b027e76c1821ef7.tar.bz2
volse-hubzilla-71e0e55b0b5bc1746cb481056b027e76c1821ef7.zip
provide a 'tile' view (view only) mode to mod_cloud
-rw-r--r--Zotlabs/Module/Cloud_tiles.php17
-rw-r--r--Zotlabs/Storage/Browser.php20
-rw-r--r--view/tpl/cloud_directory.tpl35
-rw-r--r--view/tpl/cloud_header.tpl1
4 files changed, 73 insertions, 0 deletions
diff --git a/Zotlabs/Module/Cloud_tiles.php b/Zotlabs/Module/Cloud_tiles.php
new file mode 100644
index 000000000..45124cdfa
--- /dev/null
+++ b/Zotlabs/Module/Cloud_tiles.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Zotlabs\Module;
+
+class Cloud_tiles extends \Zotlabs\Web\Controller {
+
+ function init() {
+
+ if(intval($_SESSION['cloud_tiles']))
+ $_SESSION['cloud_tiles'] = 0;
+ else
+ $_SESSION['cloud_tiles'] = 1;
+
+ goaway(z_root() . '/' . hex2bin(argv(1)));
+
+ }
+} \ No newline at end of file
diff --git a/Zotlabs/Storage/Browser.php b/Zotlabs/Storage/Browser.php
index 6f6f4a292..b5c3ac1cf 100644
--- a/Zotlabs/Storage/Browser.php
+++ b/Zotlabs/Storage/Browser.php
@@ -173,6 +173,7 @@ class Browser extends DAV\Browser\Plugin {
$displayName = $this->escapeHTML($displayName);
$type = $this->escapeHTML($type);
+
$icon = '';
if ($this->enableAssets) {
@@ -196,12 +197,28 @@ class Browser extends DAV\Browser\Plugin {
}
}
+ $photo_icon = '';
+
+ if(strpos($type,'image/') === 0 && $attachHash) {
+ $r = q("select resource_id, imgscale from photo where resource_id = '%s' and imgscale in ( %d, %d ) order by imgscale asc limit 1",
+ dbesc($attachHash),
+ intval(PHOTO_RES_320),
+ intval(PHOTO_RES_PROFILE_80)
+ );
+ if($r) {
+ $photo_icon = $r[0]['resource_id'] . '-' . $r[0]['imgscale'];
+ }
+ }
+
+
+
$attachIcon = ""; // "<a href=\"attach/".$attachHash."\" title=\"".$displayName."\"><i class=\"fa fa-arrow-circle-o-down\"></i></a>";
// put the array for this file together
$ft['attachId'] = $this->findAttachIdByHash($attachHash);
$ft['fileStorageUrl'] = substr($fullPath, 0, strpos($fullPath, "cloud/")) . "filestorage/" . $this->auth->getCurrentUser();
$ft['icon'] = $icon;
+ $ft['photo_icon'] = $photo_icon;
$ft['attachIcon'] = (($size) ? $attachIcon : '');
// @todo Should this be an item value, not a global one?
$ft['is_owner'] = $is_owner;
@@ -221,6 +238,7 @@ class Browser extends DAV\Browser\Plugin {
$this->server->emit('onHTMLActionsPanel', array($parent, &$output, $path));
}
+
$html .= replace_macros(get_markup_template('cloud.tpl'), array(
'$header' => t('Files') . ": " . $this->escapeHTML($path) . "/",
'$total' => t('Total'),
@@ -230,6 +248,8 @@ class Browser extends DAV\Browser\Plugin {
'$upload' => t('Upload'),
'$is_owner' => $is_owner,
'$parentpath' => $parentpath,
+ '$cpath' => bin2hex(\App::$query_string),
+ '$tiles' => intval($_SESSION['cloud_tiles']),
'$entries' => $f,
'$name' => t('Name'),
'$type' => t('Type'),
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index e8ae6a590..3beeb4f8a 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -1,4 +1,38 @@
<div id="cloud-drag-area" class="section-content-wrapper-np">
+ {{if $tiles}}
+
+ {{if $parentpath}}
+ <div class="cloud-container" style="float: left; width: 80px; height: 80px; margin: 5px;">
+ <div class="cloud-icon"><a href="{{$parentpath.path}}">
+ <i class="fa fa-level-up" style="font-size: 48px;"></i>
+ </a>
+ </div>
+ <div class="cloud-title" style="width: 78px; height: 36px; overflow: hidden;"><a href="{{$parentpath.path}}">..</a>
+ </div>
+ </div>
+ {{/if}}
+
+ {{foreach $entries as $item}}
+ <div class="cloud-container" style="float: left; width: 80px; height: 80px; margin: 5px;">
+ <div class="cloud-icon"><a href="{{$item.fullPath}}">
+ {{if $item.photo_icon}}
+ <img src="photo/{{$item.photo_icon}}" style="width: 48px; height: 48px;">
+ {{else}}
+ <i class="fa {{$item.iconFromType}}" title="{{$item.type}}" style="font-size: 48px;"></i>
+ {{/if}}
+ </a>
+ </div>
+ <div class="cloud-title" style="width: 78px; height: 36px; overflow: hidden;"><a href="{{$item.fullPath}}">
+ {{$item.displayName}}
+ </a>
+ </div>
+ {{if $item.is_owner}}
+
+ {{/if}}
+ </div>
+ {{/foreach}}
+ <div class="clear"></div>
+ {{else}}
<table id="cloud-index">
<tr>
<th width="1%"></th>
@@ -42,4 +76,5 @@
{{/foreach}}
</table>
+ {{/if}}
</div>
diff --git a/view/tpl/cloud_header.tpl b/view/tpl/cloud_header.tpl
index c1e589341..468f2febc 100644
--- a/view/tpl/cloud_header.tpl
+++ b/view/tpl/cloud_header.tpl
@@ -1,6 +1,7 @@
<div class="section-title-wrapper">
{{if $actionspanel}}
<div class="pull-right">
+ <a href="cloud_tiles/{{$cpath}}" class="btn btn-sm btn-outline-secondary"><i class="fa fa-fw {{if $tiles}}fa-list-ul{{else}}fa-table{{/if}}"></i></a>
{{if $is_owner}}
<a href="/sharedwithme" class="btn btn-sm btn-outline-secondary"><i class="fa fa-cloud-download"></i>&nbsp;{{$shared}}</a>
{{/if}}