forked from extern/egroupware
Add another attribute to toolbar, called flat_list, in order to define wheter show actions with children as button or dropdown
This commit is contained in:
parent
8525d55080
commit
1529a14db7
@ -31,6 +31,12 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "5",
|
"default": "5",
|
||||||
"description": "Define minimum action view range to show actions by both icons and caption"
|
"description": "Define minimum action view range to show actions by both icons and caption"
|
||||||
|
},
|
||||||
|
"flat_list": {
|
||||||
|
"name": "Flat list",
|
||||||
|
"type": "boolean",
|
||||||
|
"default": true,
|
||||||
|
"description": "Define whether the actions with children should be shown as dropdown or flat list"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -97,7 +103,7 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
|
|
||||||
var pref = egw.preference(this.id,this.egw().getAppName());
|
var pref = egw.preference(this.id,this.egw().getAppName());
|
||||||
if (pref && !jQuery.isArray(pref)) this.preference = pref;
|
if (pref && !jQuery.isArray(pref)) this.preference = pref;
|
||||||
|
|
||||||
//Set the default actions for the first time
|
//Set the default actions for the first time
|
||||||
if (typeof pref === 'undefined')
|
if (typeof pref === 'undefined')
|
||||||
{
|
{
|
||||||
@ -131,10 +137,8 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
|
|
||||||
if(action.children)
|
if(action.children)
|
||||||
{
|
{
|
||||||
this.dropdowns[action.id] = $j(document.createElement('span'))
|
|
||||||
.addClass("ui-state-default")
|
|
||||||
.appendTo(last_group);
|
|
||||||
var children = {};
|
var children = {};
|
||||||
|
var toolbar = this;
|
||||||
var add_children = function(root, children) {
|
var add_children = function(root, children) {
|
||||||
for(var id in root.children)
|
for(var id in root.children)
|
||||||
{
|
{
|
||||||
@ -142,6 +146,7 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
id: id || root.children[id].id,
|
id: id || root.children[id].id,
|
||||||
label: root.children[id].caption
|
label: root.children[id].caption
|
||||||
};
|
};
|
||||||
|
var childaction = {};
|
||||||
if(root.children[id].iconUrl)
|
if(root.children[id].iconUrl)
|
||||||
{
|
{
|
||||||
info.icon = root.children[id].iconUrl;
|
info.icon = root.children[id].iconUrl;
|
||||||
@ -151,15 +156,35 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
add_children(root.children[id], info);
|
add_children(root.children[id], info);
|
||||||
}
|
}
|
||||||
children[id] = info;
|
children[id] = info;
|
||||||
|
|
||||||
|
if (toolbar.flat_list)
|
||||||
|
{
|
||||||
|
childaction = root.children[id];
|
||||||
|
if (typeof root.children[id].group != 'undefined' &&
|
||||||
|
typeof root.group != 'undefined')
|
||||||
|
{
|
||||||
|
childaction.group = root.group;
|
||||||
|
}
|
||||||
|
toolbar._make_button (childaction);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
add_children(action, children);
|
add_children(action, children);
|
||||||
|
if (this.flat_list && children)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dropdowns[action.id] = $j(document.createElement('span'))
|
||||||
|
.addClass("ui-state-default")
|
||||||
|
.appendTo(last_group);
|
||||||
|
|
||||||
var dropdown = et2_createWidget("dropdown_button", {
|
var dropdown = et2_createWidget("dropdown_button", {
|
||||||
id: action.id,
|
id: action.id,
|
||||||
label: action.caption
|
label: action.caption
|
||||||
},this);
|
},this);
|
||||||
dropdown.set_select_options(children);
|
dropdown.set_select_options(children);
|
||||||
var toolbar = this;
|
|
||||||
dropdown.onchange = jQuery.proxy(function(selected, dropdown)
|
dropdown.onchange = jQuery.proxy(function(selected, dropdown)
|
||||||
{
|
{
|
||||||
var action = toolbar._actionManager.getActionById(selected.attr('data-id'));
|
var action = toolbar._actionManager.getActionById(selected.attr('data-id'));
|
||||||
@ -195,7 +220,7 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
this.actionlist.find('span').sort( function (lg,g){
|
this.actionlist.find('span').sort( function (lg,g){
|
||||||
return +lg.dataset.group - +g.dataset.group;
|
return +lg.dataset.group - +g.dataset.group;
|
||||||
}).appendTo(this.actionlist);
|
}).appendTo(this.actionlist);
|
||||||
|
|
||||||
this.actionlist.appendTo(this.div);
|
this.actionlist.appendTo(this.div);
|
||||||
this.actionbox.appendTo(this.div);
|
this.actionbox.appendTo(this.div);
|
||||||
|
|
||||||
@ -294,7 +319,9 @@ var et2_toolbar = et2_DOMWidget.extend(
|
|||||||
}
|
}
|
||||||
if (action.caption)
|
if (action.caption)
|
||||||
{
|
{
|
||||||
if (this.countActions <= parseInt(this.view_range) || this.preference[action.id] )
|
if ((this.countActions <= parseInt(this.view_range) ||
|
||||||
|
this.preference[action.id]) &&
|
||||||
|
typeof button[0] != 'undefined')
|
||||||
{
|
{
|
||||||
button[0].textContent = action.caption;
|
button[0].textContent = action.caption;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user