Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 3c13f327

Von Moritz Bunkus vor mehr als 7 Jahren hinzugefügt

  • ID 3c13f327bdac0832bcf5d6d2db9585df57c1d285
  • Vorgänger f63a4593
  • Nachfolger 31b247ee

ActionBar: programmatisches Interface für Änderungen On-The-Fly

Unterschiede anzeigen:

js/kivi.ActionBar.js
106 106
    }
107 107
  };
108 108

  
109
  k.setupAction = function(e) {
110
    var data = $(e).data('action');
109
  k.removeTooltip = function($e) {
110
    if ($e.hasClass('tooltipstered'))
111
      $e.tooltipster('destroy');
112
    $e.prop('title', '');
113
  };
114

  
115
  k.setTooltip = function($e, tooltip) {
116
    if ($e.hasClass('tooltipstered'))
117
      $e.tooltipster('content', tooltip);
118
    else
119
      $e.tooltipster({ content: tooltip, theme: 'tooltipster-light' });
120
  };
121

  
122
  k.setDisabled = function($e, tooltip) {
123
    var data = $e.data('action');
124

  
125
    $e.addClass(CLASSES.disabled);
126

  
127
    if (tooltip && (tooltip != '1'))
128
      kivi.ActionBar.setTooltip($e, tooltip);
129
    else
130
      kivi.ActionBar.removeTooltip($e);
131
  };
132

  
133
  k.setEnabled = function($e) {
134
    var data = $e.data('action');
135

  
136
    $e.removeClass(CLASSES.disabled);
137

  
138
    if (data.tooltip)
139
      kivi.ActionBar.setTooltip($e, data.tooltip);
140
    else
141
      kivi.ActionBar.removeTooltip($e);
142
  };
143

  
144
  k.Action = function(e) {
145
    var $e       = $(e);
146
    var instance = $e.data('instance');
147
    if (instance)
148
      return instance;
149

  
150
    var data = $e.data('action');
111 151
    if (undefined === data) return;
112 152

  
113
    if (data.disabled && (data.disabled != '0')) {
114
      $(e).addClass(CLASSES.disabled);
115
      if (data.disabled != '1')
116
        data.tooltip = data.disabled;
117
    }
153
    data.originalTooltip = data.tooltip;
154

  
155
    if (data.disabled && (data.disabled != '0'))
156
      kivi.ActionBar.setDisabled($e, data.disabled);
157

  
158
    else if (data.tooltip)
159
      kivi.ActionBar.setTooltip($e, data.tooltip);
118 160

  
119 161
    if (data.accesskey) {
120 162
      if (data.submit) {
121
        kivi.ActionBar.Accesskeys.add_accesskey(data.submit[0], data.accesskey, $(e));
163
        kivi.ActionBar.Accesskeys.add_accesskey(data.submit[0], data.accesskey, $e);
122 164
      }
123 165
      if (data.call) {
124
        kivi.ActionBar.Accesskeys.add_accesskey(undefined, data.accesskey, $(e));
166
        kivi.ActionBar.Accesskeys.add_accesskey(undefined, data.accesskey, $e);
125 167
      }
126 168
    }
127 169

  
128
    if (data.tooltip) {
129
      $(e).tooltipster({ content: data.tooltip, theme: 'tooltipster-light' });
130
    }
131

  
132 170
    if (data.call || data.submit || data.link) {
133
      $(e).click(function(event) {
171
      $e.click(function(event) {
134 172
        var $hidden, key, func, check;
135
        if ($(e).hasClass(CLASSES.disabled)) {
173
        if ($e.hasClass(CLASSES.disabled)) {
136 174
          event.stopPropagation();
137 175
          return;
138 176
        }
......
169 207
          window.location.href = data.link;
170 208
        }
171 209
        if ((data.only_once !== undefined) && (data.only_once !== 0)) {
172
          $(e).addClass(CLASSES.disabled);
173
          $(e).tooltipster({ content: kivi.t8("The action can only be executed once."), theme: 'tooltipster-light' });
210
          $e.addClass(CLASSES.disabled);
211
          $e.tooltipster({ content: kivi.t8("The action can only be executed once."), theme: 'tooltipster-light' });
174 212
        }
175 213
      });
176 214
    }
215

  
216
    instance = {
217
      removeTooltip: function()        { kivi.ActionBar.removeTooltip($e); },
218
      setTooltip:    function(tooltip) { kivi.ActionBar.setTooltip($e, tooltip); },
219
      disable:       function(tooltip) { kivi.ActionBar.setDisabled($e, tooltip); },
220
      enable:        function()        { kivi.ActionBar.setEnabled($e, $e.data('action').tooltip); },
221
    };
222

  
223
    $e.data('instance', instance);
224

  
225
    return instance;
177 226
  };
178 227
});
179 228

  
180 229
$(function(){
181 230
  $('div.layout-actionbar .layout-actionbar-action').each(function(_, e) {
182
    kivi.ActionBar.setupAction(e)
231
    kivi.ActionBar.Action(e);
183 232
  });
184 233
  $('div.layout-actionbar-combobox').each(function(_, e) {
185 234
    $(e).data('combobox', new kivi.ActionBar.Combobox(e));

Auch abrufbar als: Unified diff