mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-22 16:33:48 +01:00
LSformElement :: select_object : Add ordered feature
This commit is contained in:
parent
3a6bd1ea06
commit
8313191f54
5 changed files with 58 additions and 1 deletions
|
@ -13,6 +13,7 @@
|
|||
'display_name_format' => '[LSformat du nom d'affichage des LSobjects]',
|
||||
'value_attribute' => '[Nom de l'attribut clé des LSobjects]'
|
||||
),
|
||||
'ordered' => [Booléen],
|
||||
'sort' => [Booléen],
|
||||
'sortDirection' => '[ASC|DESC]'
|
||||
),]]>
|
||||
|
@ -66,6 +67,18 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ordered</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si la liste des objets choisis doit être
|
||||
ordonnable ou non (Faux par défaut). Cela aura pour effet d'activer une
|
||||
fonctionnalité dynamique de l'interface permettant de remonter ou descendre
|
||||
dans la liste les objets choisis.</simpara>
|
||||
<note><simpara>Cette fonctionnalité désactive automatiquement le trie des
|
||||
objets à l'affichage.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>sort</term>
|
||||
<listitem>
|
||||
|
|
BIN
public_html/images/default/down.png
Normal file
BIN
public_html/images/default/down.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 426 B |
BIN
public_html/images/default/up.png
Normal file
BIN
public_html/images/default/up.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 408 B |
|
@ -67,6 +67,9 @@ class LSformElement_select_object extends LSformElement {
|
|||
'object_type' => $this -> selectableObject,
|
||||
'addBtn' => _('Modify'),
|
||||
'deleteBtns' => _('Delete'),
|
||||
'up_label' => _('Move up'),
|
||||
'down_label' => _('Move down'),
|
||||
'ordered' => (($this -> params['html_options']['ordered'])?1:0),
|
||||
'multiple' => (($this -> params['multiple'])?1:0),
|
||||
'filter64' => (($this -> params['html_options']['selectable_object']['filter'])?base64_encode($this -> params['html_options']['selectable_object']['filter']):''),
|
||||
'noValueLabel' => _('No set value'),
|
||||
|
@ -90,7 +93,7 @@ class LSformElement_select_object extends LSformElement {
|
|||
}
|
||||
}
|
||||
|
||||
if (!isset($this -> params['html_options']['sort']) || $this -> params['html_options']['sort']) {
|
||||
if ((!isset($this -> params['html_options']['sort']) || $this -> params['html_options']['sort']) && !$this -> params['html_options']['ordered']) {
|
||||
uasort($this -> values,array($this,'_sortTwoValues'));
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ var LSformElement_select_object_field = new Class({
|
|||
|
||||
// Delete btns
|
||||
this.ul.getElements('a.LSformElement_select_object').each(function(a){
|
||||
this.addOrderedBtns(a);
|
||||
this.addDeleteBtn(a);
|
||||
},this);
|
||||
|
||||
|
@ -62,6 +63,45 @@ var LSformElement_select_object_field = new Class({
|
|||
varLSdefault.addHelpInfo(btn,'LSformElement_select_object','delete');
|
||||
},
|
||||
|
||||
addOrderedBtns: function(a) {
|
||||
if (!this.params.ordered) {
|
||||
return true;
|
||||
}
|
||||
var btn_down = new Element('img');
|
||||
btn_down.addClass('btn');
|
||||
btn_down.setProperties({
|
||||
src: varLSdefault.imagePath('down'),
|
||||
alt: this.params.down_label
|
||||
});
|
||||
btn_down.addEvent('click',this.onDownBtnClick.bind(this,btn_down));
|
||||
btn_down.injectAfter(a);
|
||||
|
||||
var btn_up = new Element('img');
|
||||
btn_up.addClass('btn');
|
||||
btn_up.setProperties({
|
||||
src: varLSdefault.imagePath('up'),
|
||||
alt: this.params.up_label
|
||||
});
|
||||
btn_up.addEvent('click',this.onUpBtnClick.bind(this,btn_up));
|
||||
btn_up.injectAfter(a);
|
||||
},
|
||||
|
||||
onUpBtnClick: function(btn) {
|
||||
var li = btn.getParent();
|
||||
var prev = li.getPrevious('li');
|
||||
if ($type(prev) && !prev.hasClass('LSformElement_select_object_addBtn')) {
|
||||
li.inject(prev,'before');
|
||||
}
|
||||
},
|
||||
|
||||
onDownBtnClick: function(btn) {
|
||||
var li = btn.getParent();
|
||||
var next = li.getNext('li');
|
||||
if ($type(next)) {
|
||||
li.inject(next,'after');
|
||||
}
|
||||
},
|
||||
|
||||
addSingleAddBtn: function(insideEl) {
|
||||
this.addBtn = new Element('img');
|
||||
this.addBtn.setProperty('src',varLSdefault.imagePath('modify'));
|
||||
|
@ -190,6 +230,7 @@ var LSformElement_select_object_field = new Class({
|
|||
input.addClass('LSformElement_select_object');
|
||||
input.injectAfter(a);
|
||||
|
||||
this.addOrderedBtns(a);
|
||||
this.addDeleteBtn(a);
|
||||
|
||||
li.injectInside(this.ul);
|
||||
|
|
Loading…
Reference in a new issue