forked from deblan/side_menu
add active app, remove useless controllers
This commit is contained in:
parent
f6bc16580f
commit
a0fed31780
|
@ -2,15 +2,5 @@
|
|||
|
||||
return [
|
||||
'routes' => [
|
||||
[
|
||||
'name' => 'Javascript#sideMenu',
|
||||
'url' => '/side_menu/javascript/side_menu',
|
||||
'verb' => 'GET',
|
||||
],
|
||||
[
|
||||
'name' => 'Api#apps',
|
||||
'url' => '/side_menu/api/apps',
|
||||
'verb' => 'GET',
|
||||
]
|
||||
],
|
||||
];
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.side-menu-app a:hover {
|
||||
.side-menu-app a:hover, .side-menu-app.is-active a {
|
||||
background: #444;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace OCA\SideMenu\Controller;
|
||||
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\IRequest;
|
||||
use OCP\INavigationManager;
|
||||
use OCP\AppFramework\Http\DataDownloadResponse;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
|
||||
class ApiController extends Controller
|
||||
{
|
||||
/**
|
||||
* @var INavigationManager
|
||||
*/
|
||||
protected $navigationManager;
|
||||
|
||||
/**
|
||||
* @param string $appName
|
||||
* @param IRequest $request
|
||||
* @param INavigationManager $navigationManager
|
||||
*/
|
||||
public function __construct($appName, IRequest $request, INavigationManager $navigationManager)
|
||||
{
|
||||
parent::__construct($appName, $request);
|
||||
|
||||
$this->navigationManager = $navigationManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*
|
||||
* @return JSONResponse
|
||||
*/
|
||||
public function apps(): JSONResponse
|
||||
{
|
||||
$apps = $this->navigationManager->getAll();
|
||||
|
||||
$data = [
|
||||
'apps' => $apps,
|
||||
];
|
||||
|
||||
return new JSONResponse($apps);
|
||||
}
|
||||
}
|
|
@ -9,9 +9,9 @@
|
|||
</div>
|
||||
|
||||
<ul class="side-menu-apps-list">
|
||||
<li v-for="app in apps" class="side-menu-app">
|
||||
<li v-for="app in apps" v-bind:class="{'side-menu-app': true, 'is-active': app.active}">
|
||||
<a v-bind:href="app.href">
|
||||
<img v-bind:src="app.icon" v-bind:alt="app.name" class="side-menu-app-icon">
|
||||
<span class="side-menu-app-icon" v-html="app.icon"></span>
|
||||
|
||||
{{ app.name }}
|
||||
</a>
|
||||
|
@ -34,18 +34,25 @@ export default {
|
|||
},
|
||||
created() {
|
||||
let that = this
|
||||
|
||||
axios.get(generateUrl('apps/side_menu/side_menu/api/apps'))
|
||||
.then(response => {
|
||||
this.apps = response.data
|
||||
})
|
||||
var links = document.querySelectorAll('#appmenu a')
|
||||
|
||||
this.logo = window.getComputedStyle(document.querySelector('#nextcloud .logo'), null)
|
||||
.getPropertyValue('background-image')
|
||||
.replace('url("', '')
|
||||
.replace('")', '')
|
||||
|
||||
console.log(this.logo)
|
||||
for (let element of links) {
|
||||
let href = element.getAttribute('href')
|
||||
|
||||
if (href !== '#') {
|
||||
that.apps.push({
|
||||
href: href,
|
||||
name: element.querySelector('span').innerHTML,
|
||||
icon: element.querySelector('svg').outerHTML,
|
||||
active: element.classList.contains('active')
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in a new issue