'
+ ];
+ $app.dlg_result.show('外部密钥' + action + '成功', msg.join(''));
+ }
+ } else {
+ $tp.notify_error('外部密钥' + action + '失败:' + tp_error_msg(ret.code, ret.message));
+ }
+ },
+ function () {
+ $tp.notify_error('网络故障,外部密钥' + action + '失败!');
+ },
+ timeout
+ );
+
+ };
+
+ return dlg;
+ };
+
+ return _obj;
+};
diff --git a/server/www/teleport/static/js/teleport/controls.js b/server/www/teleport/static/js/teleport/controls.js
index 44a0288..9bc935b 100644
--- a/server/www/teleport/static/js/teleport/controls.js
+++ b/server/www/teleport/static/js/teleport/controls.js
@@ -117,7 +117,7 @@ $tp.create_table = function (options) {
// 整理传入的表格初始化参数
_tbl._fix_options = function () {
if (!_.isUndefined(_tbl.options.column_default)) {
- for (var i = 0, cnt = _tbl.options.columns.length; i < cnt; ++i) {
+ for (let i = 0, cnt = _tbl.options.columns.length; i < cnt; ++i) {
if (!_.isUndefined(_tbl.options.columns[i]['align'])) {
if (_.isUndefined(_tbl.options.columns[i]['header_align'])) {
_tbl.options.columns[i]['header_align'] = _tbl.options.columns[i]['align'];
@@ -127,7 +127,7 @@ $tp.create_table = function (options) {
}
}
- for (var k in _tbl.options.column_default) {
+ for (let k in _tbl.options.column_default) {
if (_tbl.options.column_default.hasOwnProperty(k)) {
if (k === 'align') {
if (_.isUndefined(_tbl.options.columns[i]['header_align'])) {
@@ -136,8 +136,7 @@ $tp.create_table = function (options) {
if (_.isUndefined(_tbl.options.columns[i]['cell_align'])) {
_tbl.options.columns[i]['cell_align'] = _tbl.options.column_default[k];
}
- }
- else if (_.isUndefined(_tbl.options.columns[i][k])) {
+ } else if (_.isUndefined(_tbl.options.columns[i][k])) {
_tbl.options.columns[i][k] = _tbl.options.column_default[k];
}
}
@@ -230,28 +229,28 @@ $tp.create_table = function (options) {
_tbl.load_begin(1500);
- var _filter = {};
+ let _filter = {};
// 对每一个关联的过滤器,获取其设置
$.each(_tbl.filter_ctrls, function (name, ctrl) {
if (_.isUndefined(ctrl.get_filter)) {
console.error('filter', name, 'has have no get_filter() interface.');
}
- var _f = ctrl.get_filter();
+ let _f = ctrl.get_filter();
$.each(_f, function (k, v) {
_filter[k] = v;
});
});
- var _order = null;
+ let _order = null;
if (_tbl.header_ctrl) {
_order = _tbl.header_ctrl.get_order();
}
- var _limit = {};
+ let _limit = {};
_limit.page_index = _tbl.page_index;
_limit.per_page = _tbl.per_page;
- var args = {filter: _filter, order: _order, limit: _limit};
+ let args = {filter: _filter, order: _order, limit: _limit};
if (_tbl.options.data_source && _tbl.options.data_source.restrict)
args.restrict = _tbl.options.data_source.restrict;
if (_tbl.options.data_source && _tbl.options.data_source.exclude)
@@ -265,12 +264,14 @@ $tp.create_table = function (options) {
if (_tbl.options.data_source) {
if (_tbl.options.data_source.type === 'none') {
// 外部直接调用set_data()方法来设置数据,无需本控件主动获取
+ cb_stack.exec();
} else if (_tbl.options.data_source.type === 'callback') {
// 调用一个函数来加载数据
args.table = _tbl;
_tbl.options.data_source.fn(cb_stack, args);
+ cb_stack.exec();
} else if (_tbl.options.data_source.type === 'ajax-post') {
- var _url = _tbl.options.data_source.url;
+ let _url = _tbl.options.data_source.url;
$tp.ajax_post_json(_url, args,
function (ret) {
// console.log('ajax-return:', ret);
@@ -281,27 +282,31 @@ $tp.create_table = function (options) {
cb_stack.add(_tbl.load_end);
_tbl.set_data(cb_stack, {}, {total: ret.data.total, page_index: ret.data.page_index, data: ret.data.data});
}
+ cb_stack.exec();
},
function () {
_tbl.show_load_failed();
+ cb_stack.exec();
}, 6000
);
} else {
console.error('table-options [data-source] type [' + _tbl.options.data_source.type + '] known.');
+ cb_stack.exec();
}
} else {
console.error('have no idea for load table data. need data_source.');
+ cb_stack.exec();
}
};
_tbl._create_row_dom = function (row_data) {
- var node = ['
'];
+ let node = ['
'];
- for (var i = 0, cnt = _tbl.options.columns.length; i < cnt; ++i) {
- var col = _tbl.options.columns[i];
+ for (let i = 0, cnt = _tbl.options.columns.length; i < cnt; ++i) {
+ let col = _tbl.options.columns[i];
node.push('
');
- var k;
+ let k;
if (_.isUndefined(col.render)) {
if (_.isUndefined(col.fields) || _.isEmpty(col.fields)) {
node.push(row_data[col.key]);
} else {
- var _tmp = [];
+ let _tmp = [];
for (k in col.fields) {
if (col.fields.hasOwnProperty(k))
_tmp.push(row_data[col.fields[k]]);
@@ -328,7 +333,7 @@ $tp.create_table = function (options) {
}
} else {
if (_.isFunction(_tbl.render[col.render])) {
- var _args = {};
+ let _args = {};
for (k in col.fields) {
if (col.fields.hasOwnProperty(k))
_args[k] = row_data[col.fields[k]];
@@ -345,10 +350,10 @@ $tp.create_table = function (options) {
_tbl._render_row = function (row_data, pos_row_id) {
// 0=插入到第一行,-1=插入到最后一行(默认),其他=插入到指定row_id的行之后,如果没有找到指定的行,则插入到最后
- var _pos = !_.isUndefined(pos_row_id) ? pos_row_id : -1;
+ let _pos = !_.isUndefined(pos_row_id) ? pos_row_id : -1;
- var dom_obj = $('#' + _tbl.dom_id + ' tbody');
- var _tr = $(_tbl._create_row_dom(row_data));
+ let dom_obj = $('#' + _tbl.dom_id + ' tbody');
+ let _tr = $(_tbl._create_row_dom(row_data));
_tr.data('data-row-data', row_data);
if (_pos === -1) {
@@ -356,7 +361,7 @@ $tp.create_table = function (options) {
} else if (_pos === 0) {
dom_obj.prepend(_tr);
} else {
- var _pos_obj = $(dom_obj).find("[data-row-id='" + _pos + "']");
+ let _pos_obj = $(dom_obj).find("[data-row-id='" + _pos + "']");
if (0 === _pos_obj[0]) {
// 没有找到指定行,则加入到最后
dom_obj.append(_tr);
@@ -368,40 +373,40 @@ $tp.create_table = function (options) {
// callback for each cell.
if (_.isFunction(_tbl.options.on_cell_created)) {
- var _cell_objs = $('#' + _tbl.dom_id + " tr[data-row-id='" + row_data._row_id + "'] td");
- for (var i = 0, cnt = _cell_objs.length; i < cnt; ++i) {
+ let _cell_objs = $('#' + _tbl.dom_id + " tr[data-row-id='" + row_data._row_id + "'] td");
+ for (let i = 0, cnt = _cell_objs.length; i < cnt; ++i) {
console.log('aaaa');
_tbl.options.on_cell_created(_tbl, row_data._row_id, _tbl.options.columns[i].key, $(_cell_objs[i]));
}
}
if (_.isFunction(_tbl.options.on_row_created)) {
- var _row_obj = $('#' + _tbl.dom_id + " [data-row-id='" + row_data._row_id + "']");
+ let _row_obj = $('#' + _tbl.dom_id + " [data-row-id='" + row_data._row_id + "']");
_tbl.options.on_row_created(_tbl, row_data._row_id, _row_obj);
}
};
_tbl._render_rows = function (rows_data, pos_row_id) {
// 0=插入到第一行,-1=插入到最后一行(默认),其他=插入到指定row_id的行之后,如果没有找到指定的行,则插入到最后
- var _pos = !_.isUndefined(pos_row_id) ? pos_row_id : -1;
+ let _pos = !_.isUndefined(pos_row_id) ? pos_row_id : -1;
- var dom_obj = $('#' + _tbl.dom_id + ' tbody');
- var node = [];
+ let dom_obj = $('#' + _tbl.dom_id + ' tbody');
+ let node = [];
- var r;
- var row_count = rows_data.length;
+ let r;
+ let row_count = rows_data.length;
for (r = 0; r < row_count; ++r) {
node.push(_tbl._create_row_dom(rows_data[r]));
}
- var _tr = $(node.join(''));
+ let _tr = $(node.join(''));
if (_pos === -1) {
dom_obj.append(_tr);
} else if (_pos === 0) {
dom_obj.prepend(_tr);
} else {
- var _pos_obj = $(dom_obj).find("[data-row-id='" + _pos + "']");
+ let _pos_obj = $(dom_obj).find("[data-row-id='" + _pos + "']");
if (0 === _pos_obj[0]) {
// 没有找到指定行,则加入到最后
dom_obj.append(_tr);
@@ -411,15 +416,15 @@ $tp.create_table = function (options) {
}
}
- var _have_cell_created = _.isFunction(_tbl.options.on_cell_created);
- var _have_row_created = _.isFunction(_tbl.options.on_row_created);
+ let _have_cell_created = _.isFunction(_tbl.options.on_cell_created);
+ let _have_row_created = _.isFunction(_tbl.options.on_row_created);
for (r = 0; r < row_count; ++r) {
- var _row_obj = $('#' + _tbl.dom_id + ' tr[data-row-id="' + rows_data[r]._row_id + '"]');
+ let _row_obj = $('#' + _tbl.dom_id + ' tr[data-row-id="' + rows_data[r]._row_id + '"]');
_row_obj.data('data-row-data', rows_data[r]);
if (_have_cell_created) {
- for (var i = 0, cnt = _tbl.options.columns.length; i < cnt; ++i) {
+ for (let i = 0, cnt = _tbl.options.columns.length; i < cnt; ++i) {
_tbl.options.on_cell_created(_tbl, rows_data[r]._row_id, _tbl.options.columns[i].key, $('#' + _tbl.dom_id + ' td[data-cell-id="' + rows_data[r]._row_id + '-' + i + '"]'));
}
}
@@ -430,7 +435,7 @@ $tp.create_table = function (options) {
};
_tbl.render_table = function (cb_stack, cb_args) {
- var dom_obj = $('#' + _tbl.dom_id + ' tbody');
+ let dom_obj = $('#' + _tbl.dom_id + ' tbody');
if (_tbl.row_data.length === 0) {
_tbl.show_empty_table();
@@ -452,7 +457,7 @@ $tp.create_table = function (options) {
_tbl.page_total = Math.ceil(_tbl.total / _tbl.per_page);
// 我们为表格的每一行数据加入我们自己的索引 _row_id
- for (var i = 0, cnt = _tbl.row_data.length; i < cnt; ++i) {
+ for (let i = 0, cnt = _tbl.row_data.length; i < cnt; ++i) {
if (_.isUndefined(_tbl.row_data[i]._row_id)) {
_tbl.row_data[i]._row_id = _.uniqueId();
}
@@ -474,9 +479,9 @@ $tp.create_table = function (options) {
// 2. 行本身的JQuery对象,或者行内任意一个JQuery对象
// 3. 行的id(创建行时内部制定的,不一定是顺序号)
_tbl.get_row = function (obj) {
- var _tr = null;
+ let _tr = null;
if (_.isElement(obj) || _.isObject(obj)) {
- var _obj = _.isElement(obj) ? $(obj) : obj;
+ let _obj = _.isElement(obj) ? $(obj) : obj;
if (_obj.prop('tagName') === 'TR') {
_tr = _obj;
} else if (_obj.prop('tagName') === 'TD') {
@@ -486,8 +491,8 @@ $tp.create_table = function (options) {
}
return _tr.data('data-row-data');
} else if (_.isString(obj) || _.isNumber(obj)) {
- var _id = _.isString(obj) ? obj : '' + obj;
- for (var i = 0, cnt = _tbl.row_data.length; i < cnt; ++i) {
+ let _id = _.isString(obj) ? obj : '' + obj;
+ for (let i = 0, cnt = _tbl.row_data.length; i < cnt; ++i) {
if (_tbl.row_data[i]._row_id === _id) {
return _tbl.row_data[i];
}
@@ -502,10 +507,10 @@ $tp.create_table = function (options) {
// TODO: 更新一行数据,传入的kv有可能比原始数据内容的字段更多,需要能够保存下来备用
// TODO: 此外,需要检查一下表格初始化时使用的字段,如果这些字段的内容并没有更新,则无需更新界面元素,以提升性能
_tbl.update_row = function (row_id, kv) {
- var _row_obj = $('#' + _tbl.dom_id + " tr[data-row-id='" + row_id + "']");
- var _row_data = _row_obj.data('data-row-data');
- var _changed_fields = [];
- for (var k in kv) {
+ let _row_obj = $('#' + _tbl.dom_id + " tr[data-row-id='" + row_id + "']");
+ let _row_data = _row_obj.data('data-row-data');
+ let _changed_fields = [];
+ for (let k in kv) {
if (kv.hasOwnProperty(k)) {
if (!_.isUndefined(_row_data[k])) {
if (_row_data[k] !== kv[k])
@@ -523,10 +528,10 @@ $tp.create_table = function (options) {
console.log('-- update row ui --');
// 根据columns的设置,更新界面元素
- for (var i in _tbl.options.columns) {
+ for (let i in _tbl.options.columns) {
if (!_tbl.options.columns.hasOwnProperty(i))
continue;
- var col = _tbl.options.columns[i];
+ let col = _tbl.options.columns[i];
for (k in kv) {
if (!kv.hasOwnProperty(k))
continue;
@@ -535,17 +540,17 @@ $tp.create_table = function (options) {
if (_.contains(col.fields, k)) {
- var _cell = $('#' + _tbl.dom_id + ' td[data-cell-id="' + row_id + '-' + i + '"]');
+ let _cell = $('#' + _tbl.dom_id + ' td[data-cell-id="' + row_id + '-' + i + '"]');
if (col.recreate) {
if (_.isFunction(_tbl.options.on_cell_created)) {
- var node = '';
+ let node = '';
if (_.isUndefined(col.render)) {
node += _row_data[col.key];
} else {
if (_.isFunction(_tbl.render[col.render])) {
- var _args = {};
- for (var f in col.fields) {
+ let _args = {};
+ for (let f in col.fields) {
if (col.fields.hasOwnProperty(f))
_args[f] = _row_data[col.fields[f]];
}
@@ -579,13 +584,13 @@ $tp.create_table = function (options) {
// 参数pos_row_id: 0=插入到第一行,-1=插入到最后一行(默认),其他=插入到指定row_id的行之后,如果没有找到指定的行,则插入到最后
_tbl.add_row = function (rows, pos_row_id, fn_is_duplicated) {
- var ret_row_id = [];
- var _fn = _.isFunction(fn_is_duplicated) ? fn_is_duplicated : null;
- var _new_count = rows.length;
- for (var i = 0; i < _new_count; ++i) {
- var _my_count = _tbl.row_data.length;
- var _is_duplicated = false;
- for (var j = 0; j < _my_count; ++j) {
+ let ret_row_id = [];
+ let _fn = _.isFunction(fn_is_duplicated) ? fn_is_duplicated : null;
+ let _new_count = rows.length;
+ for (let i = 0; i < _new_count; ++i) {
+ let _my_count = _tbl.row_data.length;
+ let _is_duplicated = false;
+ for (let j = 0; j < _my_count; ++j) {
if (_fn) {
if (_fn(rows[i], _tbl.row_data[j])) {
_is_duplicated = true;
@@ -617,8 +622,8 @@ $tp.create_table = function (options) {
};
_tbl.remove_row = function (row_id) {
- var _index = -1;
- for (var i = 0, cnt = _tbl.row_data.length; i < cnt; ++i) {
+ let _index = -1;
+ for (let i = 0, cnt = _tbl.row_data.length; i < cnt; ++i) {
if (_tbl.row_data[i]['_row_id'] === row_id) {
_index = i;
break;
@@ -637,7 +642,7 @@ $tp.create_table = function (options) {
_tbl.clear = function () {
$('#' + _tbl.dom_id + ' tbody').empty();
_tbl.row_data = [];
- var cb_stack = CALLBACK_STACK.create();
+ let cb_stack = CALLBACK_STACK.create();
cb_stack
.add(_tbl.on_data_loaded)
.add(_tbl.update_paging)
@@ -649,7 +654,7 @@ $tp.create_table = function (options) {
};
_tbl.load_begin = function (delay_) {
- var _delay = delay_ || 1000;
+ let _delay = delay_ || 1000;
_tbl.show_loading(_delay);
};
@@ -663,7 +668,7 @@ $tp.create_table = function (options) {
};
_tbl.show_loading = function (delay_) {
- var _delay = delay_ || 0;
+ let _delay = delay_ || 0;
if (_delay > 0) {
if (_tbl.loading_timer === null) {
_tbl.loading_timer = setTimeout(function () {
@@ -673,7 +678,7 @@ $tp.create_table = function (options) {
}
}
- var msg_loading = '