Skip to content

Commit 7ed79cf

Browse files
committed
Improve sidebar
1 parent 75daf11 commit 7ed79cf

File tree

1 file changed

+40
-34
lines changed

1 file changed

+40
-34
lines changed

coreui/src/containers/TheSidebar.vue

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,50 @@ export default {
2828
return {
2929
minimize: false,
3030
nav: [],
31-
show: true
31+
show: true,
32+
buffor: [],
3233
}
3334
},
3435
methods: {
36+
dropdown(data){
37+
let result = [
38+
'CSidebarNavDropdown',
39+
{
40+
props: {
41+
name: data['name'],
42+
route: data['href'],
43+
icon: data['icon']
44+
}
45+
},
46+
[]
47+
];
48+
for(let i=0; i<data['elements'].length; i++){
49+
if(data['elements'][i]['slug'] == 'dropdown'){
50+
result[2].push( this.dropdown(data['elements'][i]) );
51+
}else{
52+
result[2].push(
53+
[
54+
'CSidebarNavLink',
55+
{
56+
props: {
57+
name: data['elements'][i]['name'],
58+
to: data['elements'][i]['href'],
59+
icon: data['elements'][i]['icon']
60+
}
61+
}
62+
]
63+
);
64+
}
65+
}
66+
return result;
67+
},
3568
rebuildData(data){
36-
let result = ['CSidebarNav',[]]
69+
this.buffor = ['CSidebarNav',[]]
3770
for(let k=0; k<data.length; k++){
3871
switch(data[k]['slug']){
3972
case 'link':
4073
if(data[k]['href'].indexOf('http') !== -1){
41-
result[1].push(
74+
this.buffor[1].push(
4275
[
4376
'CSidebarNavLink',
4477
{
@@ -52,7 +85,7 @@ export default {
5285
]
5386
);
5487
}else{
55-
result[1].push(
88+
this.buffor[1].push(
5689
[
5790
'CSidebarNavLink',
5891
{
@@ -67,45 +100,19 @@ export default {
67100
}
68101
break;
69102
case 'title':
70-
result[1].push(
103+
this.buffor[1].push(
71104
[
72105
'CSidebarNavTitle',
73106
[data[k]['name']]
74107
]
75108
);
76109
break;
77110
case 'dropdown':
78-
result[1].push(
79-
[
80-
'CSidebarNavDropdown',
81-
{
82-
props: {
83-
name: data[k]['name'],
84-
route: data[k]['href'],
85-
icon: data[k]['icon']
86-
}
87-
},
88-
[]
89-
]
90-
);
91-
for(let i=0; i<data[k]['elements'].length; i++){
92-
result[1][k][2].push(
93-
[
94-
'CSidebarNavLink',
95-
{
96-
props: {
97-
name: data[k]['elements'][i]['name'],
98-
to: data[k]['elements'][i]['href'],
99-
icon: data[k]['elements'][i]['icon']
100-
}
101-
}
102-
]
103-
);
104-
}
111+
this.buffor[1].push( this.dropdown(data[k]) );
105112
break;
106113
}
107114
}
108-
return result;
115+
return this.buffor;
109116
}
110117
},
111118
mounted () {
@@ -114,7 +121,6 @@ export default {
114121
axios.get('/api/menu?token=' + localStorage.getItem("api_token") )
115122
.then(function (response) {
116123
self.nav = self.rebuildData(response.data);
117-
console.log(self.rebuildData(response.data));
118124
}).catch(function (error) {
119125
console.log(error);
120126
self.$router.push({ path: '/login' });

0 commit comments

Comments
 (0)