alecpl
2011-09-28 14d494fd993a8530e41f65d548dd91e4a86c91b9
program/js/app.js
@@ -439,6 +439,8 @@
  // execute a specific command on the web client
  this.command = function(command, props, obj)
  {
    var ret;
    if (obj && obj.blur)
      obj.blur();
@@ -462,24 +464,26 @@
    // process external commands
    if (typeof this.command_handlers[command] === 'function') {
      var ret = this.command_handlers[command](props, obj);
      ret = this.command_handlers[command](props, obj);
      return ret !== undefined ? ret : (obj ? false : true);
    }
    else if (typeof this.command_handlers[command] === 'string') {
      var ret = window[this.command_handlers[command]](props, obj);
      ret = window[this.command_handlers[command]](props, obj);
      return ret !== undefined ? ret : (obj ? false : true);
    }
    // trigger plugin hooks
    this.triggerEvent('actionbefore', {props:props, action:command});
    var ret = this.triggerEvent('before'+command, props);
    ret = this.triggerEvent('before'+command, props);
    if (ret !== undefined) {
      // abort if one the handlers returned false
      // abort if one of the handlers returned false
      if (ret === false)
        return false;
      else
        props = ret;
    }
    ret = undefined;
    // process internal command
    switch (command) {
@@ -1045,15 +1049,17 @@
      // unified command call (command name == function name)
      default:
        var func = command.replace(/-/g, '_');
        if (this[func] && typeof this[func] === 'function')
          this[func](props);
        if (this[func] && typeof this[func] === 'function') {
          ret = this[func](props);
        }
        break;
    }
    this.triggerEvent('after'+command, props);
    if (this.triggerEvent('after'+command, props) === false)
      ret = false;
    this.triggerEvent('actionafter', {props:props, action:command});
    return obj ? false : true;
    return ret === false ? false : obj ? false : true;
  };
  // set command(s) enabled or disabled