Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 41ca035299 | |||
| 110ac5b130 | |||
| 266ba1453e | |||
| ba6d6fdd8f | |||
| e5dd893774 | |||
| 85c25f0fc7 | |||
| ae130388a5 | |||
| e653214b91 | |||
| 9ca6a3a995 | |||
| 7303dbae41 | |||
| 511f5a0c45 |
+7
-1
@@ -14,10 +14,16 @@ Comptatible with AppOrder.
|
|||||||
|
|
||||||
You can report a bug or request a feature by opening an issue.
|
You can report a bug or request a feature by opening an issue.
|
||||||
|
|
||||||
|
If you like this app, leave a review on https://apps.nextcloud.com/apps/side_menu
|
||||||
|
|
||||||
|
You like this app and you want to support me?
|
||||||
|
|
||||||
|
* ☕ [Buy me a coffee](https://www.buymeacoffee.com/deblan)
|
||||||
|
* 😃 [Leave a comment](https://apps.nextcloud.com/apps/side_menu#comments)
|
||||||
]]></description>
|
]]></description>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author mail="contact@deblan.fr" homepage="https://www.deblan.io/">Simon Vieille</author>
|
<author mail="contact@deblan.fr" homepage="https://www.deblan.io/">Simon Vieille</author>
|
||||||
<version>1.12.1</version>
|
<version>1.13.0</version>
|
||||||
<namespace>SideMenu</namespace>
|
<namespace>SideMenu</namespace>
|
||||||
<category>customization</category>
|
<category>customization</category>
|
||||||
<website>https://gitnet.fr/deblan/side_menu</website>
|
<website>https://gitnet.fr/deblan/side_menu</website>
|
||||||
|
|||||||
+2
-6
@@ -217,15 +217,11 @@
|
|||||||
|
|
||||||
.side-menu-always-displayed #side-menu.open,
|
.side-menu-always-displayed #side-menu.open,
|
||||||
.side-menu-always-displayed #side-menu.open .side-menu-apps-list,
|
.side-menu-always-displayed #side-menu.open .side-menu-apps-list,
|
||||||
.side-menu-always-displayed #side-menu.open .side-menu-header,
|
.side-menu-always-displayed #side-menu.open .side-menu-header {
|
||||||
.side-menu-always-displayed #side-menu:hover,
|
|
||||||
.side-menu-always-displayed #side-menu:hover .side-menu-apps-list,
|
|
||||||
.side-menu-always-displayed #side-menu:hover .side-menu-header {
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.side-menu-always-displayed #side-menu.open .side-menu-app-text,
|
.side-menu-always-displayed #side-menu.open .side-menu-app-text {
|
||||||
.side-menu-always-displayed #side-menu:hover .side-menu-app-text {
|
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ class JsController extends Controller
|
|||||||
$user = OC::$server[IUserSession::class]->getUser();
|
$user = OC::$server[IUserSession::class]->getUser();
|
||||||
$topMenuApps = (array) json_decode($this->config->getAppValue('side_menu', 'top-menu-apps', '[]'), true);
|
$topMenuApps = (array) json_decode($this->config->getAppValue('side_menu', 'top-menu-apps', '[]'), true);
|
||||||
$targetBlankApps = (array) json_decode($this->config->getAppValue('side_menu', 'target-blank-apps', '[]'), true);
|
$targetBlankApps = (array) json_decode($this->config->getAppValue('side_menu', 'target-blank-apps', '[]'), true);
|
||||||
|
$useAvatar = (bool) $this->config->getAppValue('side_menu', 'use-avatar', '0');
|
||||||
|
$avatar = null;
|
||||||
|
|
||||||
if ($user) {
|
if ($user) {
|
||||||
$userTopMenuApps = (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'top-menu-apps', '[]'), true);
|
$userTopMenuApps = (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'top-menu-apps', '[]'), true);
|
||||||
@@ -66,11 +68,22 @@ class JsController extends Controller
|
|||||||
$userTargetBlankMode = (int) $this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank-mode', '1');
|
$userTargetBlankMode = (int) $this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank-mode', '1');
|
||||||
$userTargetBlankApps = (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank-apps', '[]'), true);
|
$userTargetBlankApps = (array) json_decode($this->config->getUserValue($user->getUid(), 'side_menu', 'target-blank-apps', '[]'), true);
|
||||||
|
|
||||||
if ($userTargetBlankMode === 2) {
|
if (2 === $userTargetBlankMode) {
|
||||||
$targetBlankApps = $userTargetBlankApps;
|
$targetBlankApps = $userTargetBlankApps;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
$isAvatarSet = OC::$server->getAvatarManager()->getAvatar($user->getUid())->exists();
|
||||||
|
|
||||||
|
if ($useAvatar && $isAvatarSet) {
|
||||||
|
$avatar = OC::$server->getURLGenerator()->linkToRoute(
|
||||||
|
'core.avatar.getAvatar', [
|
||||||
|
'userId' => $user->getUid(),
|
||||||
|
'size' => 128,
|
||||||
|
'v' => $this->config->getUserValue($user, 'avatar', 'version', 0),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = [
|
$parameters = [
|
||||||
'opener-position' => $this->config->getAppValue('side_menu', 'opener-position', 'before'),
|
'opener-position' => $this->config->getAppValue('side_menu', 'opener-position', 'before'),
|
||||||
@@ -81,6 +94,7 @@ class JsController extends Controller
|
|||||||
'loader-enabled' => (bool) $this->config->getAppValue('side_menu', 'loader-enabled', '1'),
|
'loader-enabled' => (bool) $this->config->getAppValue('side_menu', 'loader-enabled', '1'),
|
||||||
'always-displayed' => (bool) $this->config->getAppValue('side_menu', 'always-displayed', '0'),
|
'always-displayed' => (bool) $this->config->getAppValue('side_menu', 'always-displayed', '0'),
|
||||||
'big-menu' => (bool) $this->config->getAppValue('side_menu', 'big-menu', '0'),
|
'big-menu' => (bool) $this->config->getAppValue('side_menu', 'big-menu', '0'),
|
||||||
|
'avatar' => $avatar,
|
||||||
'top-menu-apps' => $topMenuApps,
|
'top-menu-apps' => $topMenuApps,
|
||||||
'target-blank-apps' => $targetBlankApps,
|
'target-blank-apps' => $targetBlankApps,
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ class Admin implements ISettings
|
|||||||
'always-displayed' => $this->config->getAppValue('side_menu', 'always-displayed', '0'),
|
'always-displayed' => $this->config->getAppValue('side_menu', 'always-displayed', '0'),
|
||||||
'big-menu' => $this->config->getAppValue('side_menu', 'big-menu', '0'),
|
'big-menu' => $this->config->getAppValue('side_menu', 'big-menu', '0'),
|
||||||
'display-logo' => $this->config->getAppValue('side_menu', 'display-logo', '1'),
|
'display-logo' => $this->config->getAppValue('side_menu', 'display-logo', '1'),
|
||||||
|
'use-avatar' => $this->config->getAppValue('side_menu', 'use-avatar', '0'),
|
||||||
'opener-position' => $this->config->getAppValue('side_menu', 'opener-position', 'before'),
|
'opener-position' => $this->config->getAppValue('side_menu', 'opener-position', 'before'),
|
||||||
'opener-hover' => $this->config->getAppValue('side_menu', 'opener-hover', '0'),
|
'opener-hover' => $this->config->getAppValue('side_menu', 'opener-hover', '0'),
|
||||||
'opener-only' => $this->config->getAppValue('side_menu', 'opener-only', '0'),
|
'opener-only' => $this->config->getAppValue('side_menu', 'opener-only', '0'),
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 116 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 58 KiB |
+7
-2
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<div class="side-menu-header">
|
<div class="side-menu-header">
|
||||||
<button class="side-menu-opener"></button>
|
<button class="side-menu-opener"></button>
|
||||||
|
|
||||||
<div v-if="logo" class="side-menu-logo">
|
<div v-if="logo" v-bind:class="{'side-menu-logo': true, 'avatardiv': isAvatar}">
|
||||||
<img v-bind:src="logo">
|
<img v-bind:src="logo">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -46,6 +46,7 @@ export default {
|
|||||||
logo: null,
|
logo: null,
|
||||||
forceLightIcon: false,
|
forceLightIcon: false,
|
||||||
targetBlank: false,
|
targetBlank: false,
|
||||||
|
isAvatar: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -104,8 +105,12 @@ export default {
|
|||||||
},
|
},
|
||||||
retrieveLogo() {
|
retrieveLogo() {
|
||||||
const ncLogo = document.querySelector('#nextcloud .logo')
|
const ncLogo = document.querySelector('#nextcloud .logo')
|
||||||
|
const avatar = document.querySelector('#side-menu-container').getAttribute('data-avatar');
|
||||||
|
|
||||||
if (ncLogo) {
|
if (avatar) {
|
||||||
|
this.logo = avatar
|
||||||
|
this.isAvatar = true
|
||||||
|
} else if (ncLogo) {
|
||||||
const url = window.getComputedStyle(ncLogo, null)
|
const url = window.getComputedStyle(ncLogo, null)
|
||||||
.getPropertyValue('background-image')
|
.getPropertyValue('background-image')
|
||||||
.replace('url("', '')
|
.replace('url("', '')
|
||||||
|
|||||||
@@ -41,4 +41,4 @@ var alwaysDisplayed = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
alwaysDisplayed()
|
window.setTimeout(alwaysDisplayed, 200)
|
||||||
|
|||||||
+12
-3
@@ -13,6 +13,10 @@
|
|||||||
<?php if ($_['force-light-icon']): ?>
|
<?php if ($_['force-light-icon']): ?>
|
||||||
sideMenuContainer.attr('data-forcelighticon', '1')
|
sideMenuContainer.attr('data-forcelighticon', '1')
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($_['avatar']): ?>
|
||||||
|
sideMenuContainer.attr('data-avatar', '<?php p($avatar) ?>')
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
sideMenuContainer.attr('data-targetblankapps', '<?php p(implode(',', $_['target-blank-apps'])) ?>')
|
sideMenuContainer.attr('data-targetblankapps', '<?php p(implode(',', $_['target-blank-apps'])) ?>')
|
||||||
|
|
||||||
@@ -67,7 +71,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<?php if ($_['opener-hover']): ?>
|
<?php if ($_['opener-hover'] || ($_['always-displayed'] && !$_['big-menu'])): ?>
|
||||||
var sideMenuMouseLeave = function() {
|
var sideMenuMouseLeave = function() {
|
||||||
sideMenu
|
sideMenu
|
||||||
.removeClass('open')
|
.removeClass('open')
|
||||||
@@ -87,9 +91,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!isTouchDevice) {
|
if (!isTouchDevice) {
|
||||||
headerMenuOpener.on('mouseenter', sideMenuOpenerMouseEnter)
|
<?php if ($_['opener-hover']): ?>
|
||||||
|
headerMenuOpener.on('mouseenter', sideMenuOpenerMouseEnter)
|
||||||
|
|
||||||
sideMenu.addClass('hide-opener')
|
sideMenu.addClass('hide-opener')
|
||||||
|
<?php else: ?>
|
||||||
|
sideMenu.on('mouseleave', sideMenuMouseLeave)
|
||||||
|
sideMenu.on('mouseenter', sideMenuOpenerMouseEnter)
|
||||||
|
<?php endif ?>
|
||||||
}
|
}
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
|
|||||||
@@ -342,6 +342,18 @@ $choicesSizes = [
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p><em><?php p($l->t('Use the avatar instead of the logo')); ?></em></p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<select id="side-menu-use-avatar" name="use-avatar" class="side-menu-setting">
|
||||||
|
<?php foreach ($choicesYesNo as $label => $value): ?>
|
||||||
|
<option value="<?php echo $value ?>" <?php if ($value === $_['use-avatar']): ?>selected<?php endif; ?>>
|
||||||
|
<?php echo $l->t($label); ?>
|
||||||
|
</option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label>
|
<label>
|
||||||
<?php p($l->t('Icons and texts')); ?>
|
<?php p($l->t('Icons and texts')); ?>
|
||||||
|
|||||||
Reference in New Issue
Block a user