You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

appnavigation.php 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <div id="app-navigation-files" role="navigation"></div>
  2. <div class="hidden">
  3. <ul class="with-icon" tabindex="0">
  4. <?php
  5. $pinned = 0;
  6. foreach ($_['navigationItems'] as $item) {
  7. $pinned = NavigationListElements($item, $l, $pinned);
  8. }
  9. ?>
  10. <?php if ($_['quota'] === \OCP\Files\FileInfo::SPACE_UNLIMITED): ?>
  11. <li id="quota" class="pinned <?php p($pinned === 0 ? 'first-pinned ' : '') ?>">
  12. <a href="#" class="icon-quota svg quota-navigation-item">
  13. <p id="quotatext" class="quota-navigation-item__text"><?php p($l->t('%s used', [$_['usage']])); ?></p>
  14. </a>
  15. </li>
  16. <?php else: ?>
  17. <li id="quota" class="has-tooltip pinned <?php p($pinned === 0 ? 'first-pinned ' : '') ?>"
  18. title="<?php p($l->t('%s%%', [round($_['usage_relative'])])); ?>">
  19. <a href="#" class="icon-quota svg quota-navigation-item">
  20. <p id="quotatext" class="quota-navigation-item__text"><?php p($l->t('%1$s of %2$s used', [$_['usage'], $_['total_space']])); ?></p>
  21. <div class="quota-navigation-item__container">
  22. <progress value="<?php p($_['usage_relative']); ?>" max="100" class="<?= ($_['usage_relative'] > 80) ? 'warn' : '' ?>"></progress>
  23. </div>
  24. </a>
  25. </li>
  26. <?php endif; ?>
  27. </ul>
  28. <div id="app-settings">
  29. <div id="app-settings-header">
  30. <button class="settings-button"
  31. data-apps-slide-toggle="#app-settings-content">
  32. <?php p($l->t('Files settings')); ?>
  33. </button>
  34. </div>
  35. <div id="app-settings-content">
  36. <div id="files-app-settings"></div>
  37. <div id="files-setting-showhidden">
  38. <input class="checkbox" id="showhiddenfilesToggle"
  39. checked="checked" type="checkbox">
  40. <label for="showhiddenfilesToggle"><?php p($l->t('Show hidden files')); ?></label>
  41. </div>
  42. <div id="files-setting-cropimagepreviews">
  43. <input class="checkbox" id="cropimagepreviewsToggle"
  44. checked="checked" type="checkbox">
  45. <label for="cropimagepreviewsToggle"><?php p($l->t('Crop image previews')); ?></label>
  46. </div>
  47. <label for="webdavurl"><?php p($l->t('WebDAV')); ?></label>
  48. <input id="webdavurl" type="text" readonly="readonly"
  49. value="<?php p($_['webdav_url']); ?>"/>
  50. <em><a href="<?php echo link_to_docs('user-webdav') ?>" target="_blank" rel="noreferrer noopener"><?php p($l->t('Use this address to access your Files via WebDAV')) ?> ↗</a></em>
  51. </div>
  52. </div>
  53. </div>
  54. <?php
  55. /**
  56. * Prints the HTML for a single Entry.
  57. *
  58. * @param $item The item to be added
  59. * @param $l Translator
  60. * @param $pinned IntegerValue to count the pinned entries at the bottom
  61. *
  62. * @return int Returns the pinned value
  63. */
  64. function NavigationListElements($item, $l, $pinned) {
  65. strpos($item['classes'] ?? '', 'pinned') !== false ? $pinned++ : ''; ?>
  66. <li
  67. data-id="<?php p($item['id']) ?>"
  68. <?php if (isset($item['dir'])) { ?> data-dir="<?php p($item['dir']); ?>" <?php } ?>
  69. <?php if (isset($item['view'])) { ?> data-view="<?php p($item['view']); ?>" <?php } ?>
  70. <?php if (isset($item['expandedState'])) { ?> data-expandedstate="<?php p($item['expandedState']); ?>" <?php } ?>
  71. class="nav-<?php p($item['id']) ?>
  72. <?php if (isset($item['classes'])) {
  73. p($item['classes']);
  74. } ?>
  75. <?php p($pinned === 1 ? 'first-pinned' : '') ?>
  76. <?php if (isset($item['defaultExpandedState']) && $item['defaultExpandedState']) { ?> open<?php } ?>"
  77. <?php if (isset($item['folderPosition'])) { ?> folderposition="<?php p($item['folderPosition']); ?>" <?php } ?>>
  78. <a href="<?php p(isset($item['href']) ? $item['href'] : '#') ?>"
  79. class="nav-icon-<?php p(isset($item['icon']) && $item['icon'] !== '' ? $item['icon'] : $item['id']) ?> svg"><?php p($item['name']); ?></a>
  80. <?php
  81. NavigationElementMenu($item);
  82. if (isset($item['sublist'])) {
  83. ?>
  84. <button class="collapse app-navigation-noclose" aria-expanded="<?= !empty($item['defaultExpandedState']) ? 'true' : 'false' ?>"
  85. aria-label="<?php p($l->t('Toggle %1$s sublist', $item['name'])) ?>"
  86. <?php if (sizeof($item['sublist']) == 0) { ?> style="display: none" <?php } ?>>
  87. </button>
  88. <ul id="sublist-<?php p($item['id']); ?>">
  89. <?php
  90. foreach ($item['sublist'] as $item) {
  91. $pinned = NavigationListElements($item, $l, $pinned);
  92. } ?>
  93. </ul>
  94. <?php
  95. } ?>
  96. </li>
  97. <?php
  98. return $pinned;
  99. }
  100. /**
  101. * Prints the HTML for a dotmenu.
  102. *
  103. * @param $item The item to be added
  104. *
  105. * @return void
  106. */
  107. function NavigationElementMenu($item) {
  108. if (isset($item['menubuttons']) && $item['menubuttons'] === 'true') {
  109. ?>
  110. <div id="dotmenu-<?php p($item['id']); ?>"
  111. class="app-navigation-entry-utils" <?php if (isset($item['enableMenuButton']) && $item['enableMenuButton'] === 0) { ?> style="display: none"<?php } ?>>
  112. <ul>
  113. <li class="app-navigation-entry-utils-menu-button svg">
  114. <button id="dotmenu-button-<?php p($item['id']) ?>"></button>
  115. </li>
  116. </ul>
  117. </div>
  118. <div id="dotmenu-content-<?php p($item['id']) ?>"
  119. class="app-navigation-entry-menu">
  120. <ul>
  121. </ul>
  122. </div>
  123. <?php
  124. }
  125. }