diff options
author | zotlabs <mike@macgirvin.com> | 2017-10-30 18:49:18 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-10-30 18:49:18 -0700 |
commit | 71e0e55b0b5bc1746cb481056b027e76c1821ef7 (patch) | |
tree | 7e49ea56994a901398ee49d9c2bc6d8586d58595 | |
parent | 4fef29e61c32b129f0090a4962d91607337a9406 (diff) | |
download | volse-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.php | 17 | ||||
-rw-r--r-- | Zotlabs/Storage/Browser.php | 20 | ||||
-rw-r--r-- | view/tpl/cloud_directory.tpl | 35 | ||||
-rw-r--r-- | view/tpl/cloud_header.tpl | 1 |
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> {{$shared}}</a> {{/if}} |