mirror of https://gitee.com/karson/fastadmin.git
116 lines
5.2 KiB
JavaScript
116 lines
5.2 KiB
JavaScript
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function ($, undefined, Backend, Table, Form, Template) {
|
|
|
|
var Controller = {
|
|
index: function () {
|
|
// 初始化表格参数配置
|
|
Table.api.init({
|
|
extend: {
|
|
index_url: 'posts/sites/index',
|
|
add_url: 'posts/sites/add',
|
|
edit_url: 'posts/sites/edit',
|
|
del_url: 'posts/sites/del',
|
|
multi_url: 'posts/sites/multi',
|
|
table: 'sites',
|
|
}
|
|
});
|
|
|
|
var table = $("#table");
|
|
|
|
// 初始化表格
|
|
table.bootstrapTable({
|
|
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
|
pk: 'id',
|
|
sortName: 'id',
|
|
columns: [
|
|
[
|
|
{checkbox: true},
|
|
{field: 'id', title: __('Id')},
|
|
{field: 'username', title: __('User_id'), operate:false},
|
|
{field: 'name', title: __('name'),operate: 'LIKE %...%',placeholder: '关键字,模糊搜索',},
|
|
{field: 'domain', title: __('Domain'),operate: 'LIKE %...%',placeholder: '关键字,模糊搜索',},
|
|
{field: 'lang', title: __('Lang'), operate:false},
|
|
{field: 'status', title: __('Status'),searchList: {normal: __('Normal'), hidden: __('Hidden')}, formatter: Table.api.formatter.status},
|
|
{field: 'createtime', title: __('Createtime'), operate: 'BETWEEN', type: 'datetime', addclass: 'datetimepicker', data: 'data-date-format="YYYY-MM-DD"', formatter: Table.api.formatter.datetime},
|
|
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
|
]
|
|
]
|
|
});
|
|
|
|
// 为表格绑定事件
|
|
Table.api.bindevent(table);
|
|
},
|
|
add: function () {
|
|
Controller.api.bindevent();
|
|
},
|
|
edit: function () {
|
|
Controller.api.bindevent();
|
|
},
|
|
config: function(){
|
|
|
|
$.validator.config({
|
|
rules: {
|
|
domain: function(ele){
|
|
_value = $.trim(element.value.toString());
|
|
if (!_value.match(/^[A-Za-z0-9]+$/)) {
|
|
return __('Please enter a valid URL');
|
|
}
|
|
return $.ajax({
|
|
url: 'posts/sites/check_element_available',
|
|
type: 'POST',
|
|
data: {"domain": _value},
|
|
dataType: 'json'
|
|
});
|
|
},
|
|
url: function (element) {
|
|
_value = $.trim(element.value.toString());
|
|
if (!_value.match(/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_\.]+$/)) {
|
|
return __('Please enter a valid URL');
|
|
}
|
|
return $.ajax({
|
|
url: 'posts/sites/check_element_available',
|
|
type: 'POST',
|
|
data: {"domain": _value},
|
|
dataType: 'json'
|
|
});
|
|
}
|
|
}
|
|
});
|
|
Controller.api.bindevent();
|
|
},
|
|
api: {
|
|
bindevent: function () {
|
|
$(document).on("click", ".fieldlist .btn-append", function () {
|
|
var rel = parseInt($(this).closest("dl").children('dd').length)-2;
|
|
$(this).closest("dl").attr("rel", rel);
|
|
$('<dd class="form-inline"><input type="text" name="custom['+ rel + '][field]" class="form-control" value="" size="20" /> <input type="text" name="custom[' + rel + '][value]" class="form-control" value="" size="50" /> <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span></dd>').insertBefore($(this).parent());
|
|
});
|
|
$(document).on("click", ".fieldlist dd .btn-remove", function () {
|
|
var that=this;
|
|
$(that).parent().remove();
|
|
return;
|
|
});
|
|
|
|
$(document).on('click', 'input[name*="row[lang]"]', function(e){
|
|
if($(this).val()=='zh-cn'){
|
|
$(this).prop('checked', true);
|
|
return false;
|
|
}
|
|
$('#extraLanguage').html('');
|
|
if($('input[name*="row[lang]"]:checked').length>1){
|
|
$('input[name*="row[lang]"]:checked').each(function(){
|
|
if($(this).val()!='zh-cn'){
|
|
var language = $(this).val();
|
|
var languageText = $(this).closest('label').text();
|
|
var html = Template('seotpl', {lang: language, langName: languageText});
|
|
$('#extraLanguage').append(html)
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
Form.api.bindevent($("form[role=form]"));
|
|
}
|
|
}
|
|
};
|
|
return Controller;
|
|
}); |