/**
 * 决策平台前端插件入口
 * @class FS.Plugin
 */
FS.Plugin = FS.Plugin || {};

/**
 * 推送消息打开处理接口
 *
 *     @example
 *     var open = function(msg) {
 *         FS.tabPane.addItem({
 *            title : "我的消息" + msg.id,
 *            src : msg.url
 *         });
 *     }
 *     var executable = function(msg) {
 *         return msg.username != null;
 *     }
 *     FS.Plugin.MessageHelper.push({
 *          executable : executable,
 *          action : open
 *     });
 *
 * @class FS.Plugin.MessageHelper
 */
FS.Plugin.MessageHelper = [];

/**
 * 管理决策系统目录树页面添加模板界面的工具栏按钮接口
 *
 *      @example
 *      $.extend(FS.Plugin.ReportManagerAddon, {
 *
 *          addSomeTemplate : function(tools) {
 *
 *          }
 *      });
 *
 * @class FS.Plugin.ReportManagerAddon
 */
FS.Plugin.ReportManagerAddon = {};


/**
 * 系统管理菜单中的tab项接口,需要往接口数组中添加如下形式的对象
 *
 *      @example
 *      var item = {
 *          ui : function() {
 *              return {
 *                  title : '管理菜单xx',
 *                  content : {
 *                      // 布局配置
 *                  }
 *              }
 *          },
 *          pop : function(idx, tabPane) {
 *              // 这一句是必须要的
 *              this.tabPane = tabPane;
 *              // 进行数据初始化处理
 *          }
 *      };
 *      FS.Plugin.SystemItems.push(item);
 *
 * @class FS.Plugin.SystemItems
 */
FS.Plugin.SystemItems = [];

/**
 * 外观设置接口
 *
 * @class FS.Plugin.LookAndFeelSettings
 */
FS.Plugin.LookAndFeelSettings = [];

/**
 * 用户管理界面接口,需要往接口数组中添加如下形式的对象
 *
 *      @example
 *      var item = {
 *          ui : null,
 *          action : FR.emptyFn()
 *      };
 *      FS.Plugin.UserManagerItems.push(item);
 *
 * @class FS.Plugin.UserManagerItems
 */
FS.Plugin.UserManagerItems = [];

/**
 * 用户管理界面按钮接口
 *
 *      @example
 *      $.extend(FS.Plugin.UserManagerTools, {
 *          importUser : null,
 *          addUser : null
 *      });
 *      // 如果要自定义用户导入和添加用户按钮的行为,则把null更改为对应的函数即可
 *
 * @class FS.Plugin.UserManagerTools
 */
FS.Plugin.UserManagerTools = {};

/**
 * 定时任务的附件输出类型接口
 *
 *      @example
 *      $.extend(FS.Plugin.ScheduleOutput, {
 *          attachType: function (outputFileFormat, CONSTANTS) {
 *
 *          },
 *          attachTypeSelectConfig : function(widgetName){
 *
 *          },
 *          attachResult : function(attachmentType) {
 *
 *          }
 *      });
 *
 * @class FS.Plugin.ScheduleOutput
 */
FS.Plugin.ScheduleOutput = {};

/**
 * 多级上报集成,在没有决策平台的时候提供多级上报的功能
 * @type {Array}
 */
FS.Plugin.MultiLevelReport = [];