mirror of https://gitee.com/karson/fastadmin.git
Merge remote-tracking branch 'karson/master'
commit
d59e15e575
|
|
@ -7,8 +7,19 @@
|
|||
<meta name="description" content="">
|
||||
<meta name="author" content="{$config.author}">
|
||||
<title>{$config.title}</title>
|
||||
<link href="https://cdn.bootcss.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.bootcss.com/font-awesome/4.6.2/css/font-awesome.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Plugin CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 70px; margin-bottom: 15px;
|
||||
|
|
@ -342,8 +353,12 @@
|
|||
|
||||
</div> <!-- /container -->
|
||||
|
||||
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
|
||||
<script src="https://cdn.bootcss.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
||||
<!-- jQuery -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@2.1.4/dist/jquery.min.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function syntaxHighlight(json) {
|
||||
if (typeof json != 'string') {
|
||||
|
|
@ -476,12 +491,14 @@
|
|||
//keep a copy of action attribute in order to modify the copy
|
||||
//instead of the initial attribute
|
||||
var url = $(form).attr('action');
|
||||
var method = $(form).prop('method').toLowerCase() || 'get';
|
||||
|
||||
var formData = new FormData();
|
||||
|
||||
$(form).find('input').each(function (i, input) {
|
||||
if ($(input).attr('type') == 'file') {
|
||||
if ($(input).attr('type').toLowerCase() == 'file') {
|
||||
formData.append($(input).attr('name'), $(input)[0].files[0]);
|
||||
method = 'post';
|
||||
} else {
|
||||
formData.append($(input).attr('name'), $(input).val())
|
||||
}
|
||||
|
|
@ -524,8 +541,8 @@
|
|||
|
||||
$.ajax({
|
||||
url: $('#apiUrl').val() + url,
|
||||
data: $(form).prop('method').toLowerCase() == 'get' ? $(form).serialize() : formData,
|
||||
type: $(form).prop('method') + '',
|
||||
data: method == 'get' ? $(form).serialize() : formData,
|
||||
type: method,
|
||||
dataType: 'json',
|
||||
contentType: false,
|
||||
processData: false,
|
||||
|
|
|
|||
|
|
@ -483,7 +483,6 @@ class Crud extends Command
|
|||
$appendAttrList = [];
|
||||
$controllerAssignList = [];
|
||||
$headingHtml = '{:build_heading()}';
|
||||
$headingJs = '';
|
||||
|
||||
//循环所有字段,开始构造视图的HTML和JS信息
|
||||
foreach ($columnList as $k => $v) {
|
||||
|
|
@ -707,7 +706,6 @@ class Crud extends Command
|
|||
}
|
||||
if ($this->headingFilterField && $this->headingFilterField == $field && $itemArr) {
|
||||
$headingHtml = $this->getReplacedStub('html/heading-html', ['field' => $field]);
|
||||
$headingJs = $this->getReplacedStub('html/heading-js', ['field' => $field]);
|
||||
}
|
||||
//排序方式,如果有指定排序字段,否则按主键排序
|
||||
$order = $field == $this->sortField ? $this->sortField : $order;
|
||||
|
|
@ -794,7 +792,6 @@ class Crud extends Command
|
|||
'relationMethodList' => '',
|
||||
'controllerIndex' => '',
|
||||
'headingHtml' => $headingHtml,
|
||||
'headingJs' => $headingJs,
|
||||
'visibleFieldList' => $fields ? "\$row->visible(['" . implode("','", array_filter(explode(',', $fields))) . "']);" : '',
|
||||
'appendAttrList' => implode(",\n", $appendAttrList),
|
||||
'getEnumList' => implode("\n\n", $getEnumArr),
|
||||
|
|
@ -1291,7 +1288,7 @@ EOD;
|
|||
$selectfilter = ' data-mimetype="image/*"';
|
||||
}
|
||||
$multiple = substr($field, -1) == 's' ? ' data-multiple="true"' : ' data-multiple="false"';
|
||||
$preview = $uploadfilter ? ' data-preview-id="p-' . $field . '"' : '';
|
||||
$preview = ' data-preview-id="p-' . $field . '"';
|
||||
$previewcontainer = $preview ? '<ul class="row list-inline plupload-preview" id="p-' . $field . '"></ul>' : '';
|
||||
return <<<EOD
|
||||
<div class="input-group">
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
// 绑定TAB事件
|
||||
$('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
var field = $(this).closest("ul").data("field");
|
||||
var value = $(this).data("value");
|
||||
var options = table.bootstrapTable('getOptions');
|
||||
options.pageNumber = 1;
|
||||
options.queryParams = function (params) {
|
||||
var filter = {};
|
||||
if (value !== '') {
|
||||
filter[field] = value;
|
||||
}
|
||||
params.filter = JSON.stringify(filter);
|
||||
return params;
|
||||
};
|
||||
table.bootstrapTable('refresh', {});
|
||||
return false;
|
||||
});
|
||||
|
|
@ -50,8 +50,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
showToggle: false,
|
||||
});
|
||||
|
||||
{%headingJs%}
|
||||
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -60,7 +60,14 @@ class Min extends Command
|
|||
if (IS_WIN)
|
||||
{
|
||||
// Winsows下请手动配置配置该值,一般将该值配置为 '"C:\Program Files\nodejs\node.exe"',除非你的Node安装路径有变更
|
||||
$nodeExec = '"C:\Program Files\nodejs\node.exe"';
|
||||
$nodeExec = 'C:\Program Files\nodejs\node.exe';
|
||||
if (file_exists($nodeExec)){
|
||||
$nodeExec = '"' . $nodeExec . '"';
|
||||
}else{
|
||||
// 如果 '"C:\Program Files\nodejs\node.exe"' 不存在,可能是node安装路径有变更
|
||||
// 但安装node会自动配置环境变量,直接执行 '"node.exe"' 提高第一次使用压缩打包的成功率
|
||||
$nodeExec = '"node.exe"';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class Common extends Api
|
|||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @ApiMethod (POST)
|
||||
* @param File $file 文件流
|
||||
*/
|
||||
public function upload()
|
||||
|
|
|
|||
|
|
@ -59,7 +59,9 @@ class Common
|
|||
\think\Cookie::set('think_var', $request->get('lang'));
|
||||
}
|
||||
// Form别名
|
||||
class_alias('fast\\Form', 'Form');
|
||||
if (!class_exists('Form')) {
|
||||
class_alias('fast\\Form', 'Form');
|
||||
}
|
||||
}
|
||||
|
||||
public function addonBegin(&$request)
|
||||
|
|
|
|||
|
|
@ -60,7 +60,10 @@ class User extends Frontend
|
|||
*/
|
||||
public function _empty($name)
|
||||
{
|
||||
Hook::listen("user_request_empty", $name);
|
||||
$data = Hook::listen("user_request_empty", $name);
|
||||
foreach ($data as $index => $datum) {
|
||||
$this->view->assign($datum);
|
||||
}
|
||||
return $this->view->fetch('user/' . $name);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,8 @@
|
|||
return [
|
||||
'Keep login' => '保持会话',
|
||||
'Forgot password' => '忘记密码?',
|
||||
'Sign in' => '登入',
|
||||
'Username' => '用户名',
|
||||
'User id' => '会员ID',
|
||||
'Username' => '用户名',
|
||||
'Nickname' => '昵称',
|
||||
'Password' => '密码',
|
||||
'Sign up' => '注 册',
|
||||
|
|
@ -43,7 +41,6 @@ return [
|
|||
'Next' => '下一页',
|
||||
'Last' => '末页',
|
||||
'None' => '无',
|
||||
'Home' => '主页',
|
||||
'Online' => '在线',
|
||||
'Logout' => '注销',
|
||||
'Profile' => '个人资料',
|
||||
|
|
@ -56,15 +53,10 @@ return [
|
|||
'Line' => '行号',
|
||||
'File' => '文件',
|
||||
'Menu' => '菜单',
|
||||
'Name' => '名称',
|
||||
'Weigh' => '权重',
|
||||
'Type' => '类型',
|
||||
'Title' => '标题',
|
||||
'Content' => '内容',
|
||||
'Status' => '状态',
|
||||
'Operate' => '操作',
|
||||
'Apply' => '应用',
|
||||
'Cancel' => '取消',
|
||||
'Clear' => '清空',
|
||||
'Custom Range' => '自定义',
|
||||
'Today' => '今天',
|
||||
|
|
@ -75,6 +67,7 @@ return [
|
|||
'This month' => '本月',
|
||||
'Choose' => '选择',
|
||||
'Append' => '追加',
|
||||
'Upload' => '上传',
|
||||
'Memo' => '备注',
|
||||
'Parent' => '父级',
|
||||
'Params' => '参数',
|
||||
|
|
@ -111,8 +104,8 @@ return [
|
|||
'Donation' => '捐赠',
|
||||
'Forum' => '社区',
|
||||
'Docs' => '文档',
|
||||
'Go back' => '返回首页',
|
||||
'Jump now' => '立即跳转',
|
||||
'User center' => '会员中心',
|
||||
'Change password' => '修改密码',
|
||||
'Please login first' => '请登录后再操作',
|
||||
'Send verification code' => '发送验证码',
|
||||
'Redirect now' => '立即跳转',
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ return [
|
|||
'Email already exist' => '邮箱已经存在',
|
||||
'Mobile already exist' => '手机号已经存在',
|
||||
'Username is incorrect' => '用户名不正确',
|
||||
'Email is incorrect' => '邮箱不正确',
|
||||
'Reset password' => '修改密码',
|
||||
'Reset password by email' => '通过邮箱',
|
||||
'Reset password by mobile' => '通过手机重置',
|
||||
|
|
@ -56,12 +55,10 @@ return [
|
|||
'Change password successful' => '修改密码成功',
|
||||
'Captcha is incorrect' => '验证码不正确',
|
||||
'Upload successful' => '上传成功',
|
||||
'Sign up successful' => '注册成功',
|
||||
'Logged in successful' => '登录成功',
|
||||
'Logout successful' => '注销成功',
|
||||
'User center already closed' => '会员中心已经关闭',
|
||||
'Operation failed' => '操作失败',
|
||||
'Invalid parameters' => '参数不正确',
|
||||
'Change password failure' => '修改密码失败',
|
||||
'Change password successful' => '修改密码成功',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
<li class="dropdown">
|
||||
{if $user}
|
||||
<a href="{:url('user/index')}" class="dropdown-toggle" data-toggle="dropdown" style="padding-top: 10px;height: 50px;">
|
||||
<span class="avatar-img"><img src="{$user.avatar}" alt=""></span>
|
||||
<span class="avatar-img"><img src="{$user.avatar|cdnurl}" alt=""></span>
|
||||
</a>
|
||||
{else /}
|
||||
<a href="{:url('user/index')}" class="dropdown-toggle" data-toggle="dropdown">{:__('User center')} <b class="caret"></b></a>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<div class="row user-baseinfo">
|
||||
<div class="col-md-3 col-sm-3 col-xs-2 text-center user-center">
|
||||
<a href="{:url('user/profile')}" title="{:__('Click to edit')}">
|
||||
<span class="avatar-img"><img src="{$user.avatar}" alt=""></span>
|
||||
<span class="avatar-img"><img src="{$user.avatar|cdnurl}" alt=""></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-9 col-sm-9 col-xs-10">
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="profile-avatar-container">
|
||||
<img class="profile-user-img img-responsive img-circle plupload" src="{$user.avatar}" alt="">
|
||||
<img class="profile-user-img img-responsive img-circle plupload" src="{$user.avatar|cdnurl}" alt="">
|
||||
<div class="profile-avatar-text img-circle">{:__('Click to edit')}</div>
|
||||
<button id="plupload-avatar" class="plupload" data-mimetype="png,jpg,jpeg,gif" data-input-id="c-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,19 @@
|
|||
<meta name="description" content="">
|
||||
<meta name="author" content="FastAdmin">
|
||||
<title>FastAdmin</title>
|
||||
<link href="https://cdn.bootcss.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.bootcss.com/font-awesome/4.6.2/css/font-awesome.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Plugin CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 70px; margin-bottom: 15px;
|
||||
|
|
@ -317,7 +328,7 @@
|
|||
<div class="panel panel-default">
|
||||
<div class="panel-heading" id="heading-1">
|
||||
<h4 class="panel-title">
|
||||
<span class="label label-success">GET</span>
|
||||
<span class="label label-primary">POST</span>
|
||||
<a data-toggle="collapse" data-parent="#accordion1" href="#collapseOne1"> 上传文件 <span class="text-muted">/api/common/upload</span></a>
|
||||
</h4>
|
||||
</div>
|
||||
|
|
@ -379,7 +390,7 @@
|
|||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><strong>参数</strong></div>
|
||||
<div class="panel-body">
|
||||
<form enctype="application/x-www-form-urlencoded" role="form" action="/api/common/upload" method="get" name="form1" id="form1">
|
||||
<form enctype="application/x-www-form-urlencoded" role="form" action="/api/common/upload" method="POST" name="form1" id="form1">
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="file">file</label>
|
||||
<input type="File" class="form-control input-sm" id="file" required placeholder="文件流" name="file">
|
||||
|
|
@ -3716,7 +3727,7 @@
|
|||
|
||||
<div class="row mt0 footer">
|
||||
<div class="col-md-6" align="left">
|
||||
Generated on 2018-08-04 20:31:01 </div>
|
||||
Generated on 2018-10-19 17:00:36 </div>
|
||||
<div class="col-md-6" align="right">
|
||||
<a href="https://www.fastadmin.net" target="_blank">FastAdmin</a>
|
||||
</div>
|
||||
|
|
@ -3724,8 +3735,12 @@
|
|||
|
||||
</div> <!-- /container -->
|
||||
|
||||
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
|
||||
<script src="https://cdn.bootcss.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
|
||||
<!-- jQuery -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@2.1.4/dist/jquery.min.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function syntaxHighlight(json) {
|
||||
if (typeof json != 'string') {
|
||||
|
|
@ -3858,12 +3873,14 @@
|
|||
//keep a copy of action attribute in order to modify the copy
|
||||
//instead of the initial attribute
|
||||
var url = $(form).attr('action');
|
||||
var method = $(form).prop('method').toLowerCase() || 'get';
|
||||
|
||||
var formData = new FormData();
|
||||
|
||||
$(form).find('input').each(function (i, input) {
|
||||
if ($(input).attr('type') == 'file') {
|
||||
if ($(input).attr('type').toLowerCase() == 'file') {
|
||||
formData.append($(input).attr('name'), $(input)[0].files[0]);
|
||||
method = 'post';
|
||||
} else {
|
||||
formData.append($(input).attr('name'), $(input).val())
|
||||
}
|
||||
|
|
@ -3906,8 +3923,8 @@
|
|||
|
||||
$.ajax({
|
||||
url: $('#apiUrl').val() + url,
|
||||
data: $(form).prop('method').toLowerCase() == 'get' ? $(form).serialize() : formData,
|
||||
type: $(form).prop('method') + '',
|
||||
data: method == 'get' ? $(form).serialize() : formData,
|
||||
type: method,
|
||||
dataType: 'json',
|
||||
contentType: false,
|
||||
processData: false,
|
||||
|
|
|
|||
|
|
@ -38,11 +38,11 @@ body {
|
|||
}
|
||||
/*预览区域*/
|
||||
.plupload-preview {
|
||||
padding: 10px;
|
||||
padding: 0 10px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.plupload-preview li {
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.plupload-preview .thumbnail {
|
||||
margin-bottom: 10px;
|
||||
|
|
@ -201,6 +201,23 @@ body {
|
|||
line-height: 1.5;
|
||||
padding: 4px 13px;
|
||||
}
|
||||
.fieldlist dd {
|
||||
display: block;
|
||||
margin: 5px 0;
|
||||
}
|
||||
.fieldlist dd input {
|
||||
display: inline-block;
|
||||
width: 300px;
|
||||
}
|
||||
.fieldlist dd input:first-child {
|
||||
width: 110px;
|
||||
}
|
||||
.fieldlist dd ins {
|
||||
width: 110px;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
/* 弹窗中的表单 */
|
||||
.form-layer {
|
||||
height: 100%;
|
||||
|
|
@ -475,4 +492,25 @@ main.content {
|
|||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
.pager .pagination {
|
||||
margin: 0;
|
||||
}
|
||||
.pager li {
|
||||
margin: 0 .4em;
|
||||
display: inline-block;
|
||||
}
|
||||
.pager li:first-child > a,
|
||||
.pager li:last-child > a,
|
||||
.pager li:first-child > span,
|
||||
.pager li:last-child > span {
|
||||
padding: .5em 1.2em;
|
||||
}
|
||||
.pager li > a,
|
||||
.pager li > span {
|
||||
background: none;
|
||||
border: 1px solid #e6e6e6;
|
||||
border-radius: 0.25em;
|
||||
padding: .5em .93em;
|
||||
font-size: 14px;
|
||||
}
|
||||
/*# sourceMappingURL=../css/frontend.css.map */
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -6575,7 +6575,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
|
|||
config: {
|
||||
container: document.body,
|
||||
classname: '.plupload:not([initialized])',
|
||||
previewtpl: '<li class="col-xs-3"><a href="<%=fullurl%>" data-url="<%=url%>" target="_blank" class="thumbnail"><img src="<%=fullurl%>" class="img-responsive"></a><a href="javascript:;" class="btn btn-danger btn-xs btn-trash"><i class="fa fa-trash"></i></a></li>',
|
||||
previewtpl: '<li class="col-xs-3"><a href="<%=fullurl%>" data-url="<%=url%>" target="_blank" class="thumbnail"><img src="<%=fullurl%>" onerror="this.src=\'https://tool.fastadmin.net/icon/\'+\'<%=fullurl%>\'.split(\'.\').pop()+\'.png\';this.onerror=null;" class="img-responsive"></a><a href="javascript:;" class="btn btn-danger btn-xs btn-trash"><i class="fa fa-trash"></i></a></li>',
|
||||
},
|
||||
events: {
|
||||
//初始化完成
|
||||
|
|
@ -6755,11 +6755,9 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
|
|||
multiple = typeof multiple !== "undefined" ? multiple : Config.upload.multiple;
|
||||
var mimetypeArr = new Array();
|
||||
//支持后缀和Mimetype格式,以,分隔
|
||||
if (mimetype && mimetype !== "*" && mimetype.indexOf("/") === -1)
|
||||
{
|
||||
if (mimetype && mimetype !== "*" && mimetype.indexOf("/") === -1) {
|
||||
var tempArr = mimetype.split(',');
|
||||
for (var i = 0; i < tempArr.length; i++)
|
||||
{
|
||||
for (var i = 0; i < tempArr.length; i++) {
|
||||
mimetypeArr.push({title: __('Files'), extensions: tempArr[i]});
|
||||
}
|
||||
mimetype = mimetypeArr;
|
||||
|
|
@ -9184,7 +9182,7 @@ define('validator',['validator-core', 'validator-lang'], function (Validator, un
|
|||
define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undefined, Upload, Validator) {
|
||||
var Form = {
|
||||
config: {
|
||||
fieldlisttpl: '<dd class="form-inline"><input type="text" name="<%=name%>[<%=index%>][key]" class="form-control" value="<%=row.key%>" size="10" /> <input type="text" name="<%=name%>[<%=index%>][value]" class="form-control" value="<%=row.value%>" size="30" /> <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span> <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span></dd>'
|
||||
fieldlisttpl: '<dd class="form-inline"><input type="text" name="<%=name%>[<%=index%>][key]" class="form-control" value="<%=row.key%>" size="10" /> <input type="text" name="<%=name%>[<%=index%>][value]" class="form-control" value="<%=row.value%>" size="40" /> <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span> <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span></dd>'
|
||||
},
|
||||
events: {
|
||||
validator: function (form, success, error, submit) {
|
||||
|
|
@ -10564,6 +10562,14 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
var ids = Table.api.selectedids(table);
|
||||
$(Table.config.disabledbtn, toolbar).toggleClass('disabled', !ids.length);
|
||||
});
|
||||
// 绑定TAB事件
|
||||
$('.panel-heading ul[data-field] li a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
var field = $(this).closest("ul").data("field");
|
||||
var value = $(this).data("value");
|
||||
$("select[name='" + field + "'] option[value='" + value + "']", table.closest(".bootstrap-table").find(".commonsearch-table")).prop("selected", true);
|
||||
table.bootstrapTable('refresh', {});
|
||||
return false;
|
||||
});
|
||||
// 刷新按钮事件
|
||||
$(toolbar).on('click', Table.config.refreshbtn, function () {
|
||||
table.bootstrapTable('refresh');
|
||||
|
|
@ -10830,9 +10836,8 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
var yes = typeof this.yes !== 'undefined' ? this.yes : 1;
|
||||
var no = typeof this.no !== 'undefined' ? this.no : 0;
|
||||
return "<a href='javascript:;' data-toggle='tooltip' title='" + __('Click to toggle') + "' class='btn-change' data-id='"
|
||||
+ row.id + "' data-params='" + this.field + "=" + (value ? no : yes) + "'><i class='fa fa-toggle-on " + (value == yes ? 'text-' + color : 'fa-flip-horizontal text-gray') + " fa-2x'></i></a>";
|
||||
}
|
||||
,
|
||||
+ row.id + "' data-params='" + this.field + "=" + (value == yes ? no : yes) + "'><i class='fa fa-toggle-on " + (value == yes ? 'text-' + color : 'fa-flip-horizontal text-gray') + " fa-2x'></i></a>";
|
||||
},
|
||||
url: function (value, row, index) {
|
||||
return '<div class="input-group input-group-sm" style="width:250px;margin:0 auto;"><input type="text" class="form-control input-sm" value="' + value + '"><span class="input-group-btn input-group-sm"><a href="' + value + '" target="_blank" class="btn btn-default btn-sm"><i class="fa fa-link"></i></a></span></div>';
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
define(['jquery', 'bootstrap', 'upload', 'validator'], function ($, undefined, Upload, Validator) {
|
||||
var Form = {
|
||||
config: {
|
||||
fieldlisttpl: '<dd class="form-inline"><input type="text" name="<%=name%>[<%=index%>][key]" class="form-control" value="<%=row.key%>" size="10" /> <input type="text" name="<%=name%>[<%=index%>][value]" class="form-control" value="<%=row.value%>" size="30" /> <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span> <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span></dd>'
|
||||
fieldlisttpl: '<dd class="form-inline"><input type="text" name="<%=name%>[<%=index%>][key]" class="form-control" value="<%=row.key%>" size="10" /> <input type="text" name="<%=name%>[<%=index%>][value]" class="form-control" value="<%=row.value%>" size="40" /> <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span> <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span></dd>'
|
||||
},
|
||||
events: {
|
||||
validator: function (form, success, error, submit) {
|
||||
|
|
|
|||
|
|
@ -173,6 +173,14 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
var ids = Table.api.selectedids(table);
|
||||
$(Table.config.disabledbtn, toolbar).toggleClass('disabled', !ids.length);
|
||||
});
|
||||
// 绑定TAB事件
|
||||
$('.panel-heading ul[data-field] li a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
var field = $(this).closest("ul").data("field");
|
||||
var value = $(this).data("value");
|
||||
$("select[name='" + field + "'] option[value='" + value + "']", table.closest(".bootstrap-table").find(".commonsearch-table")).prop("selected", true);
|
||||
table.bootstrapTable('refresh', {});
|
||||
return false;
|
||||
});
|
||||
// 刷新按钮事件
|
||||
$(toolbar).on('click', Table.config.refreshbtn, function () {
|
||||
table.bootstrapTable('refresh');
|
||||
|
|
@ -439,9 +447,8 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
var yes = typeof this.yes !== 'undefined' ? this.yes : 1;
|
||||
var no = typeof this.no !== 'undefined' ? this.no : 0;
|
||||
return "<a href='javascript:;' data-toggle='tooltip' title='" + __('Click to toggle') + "' class='btn-change' data-id='"
|
||||
+ row.id + "' data-params='" + this.field + "=" + (value ? no : yes) + "'><i class='fa fa-toggle-on " + (value == yes ? 'text-' + color : 'fa-flip-horizontal text-gray') + " fa-2x'></i></a>";
|
||||
}
|
||||
,
|
||||
+ row.id + "' data-params='" + this.field + "=" + (value == yes ? no : yes) + "'><i class='fa fa-toggle-on " + (value == yes ? 'text-' + color : 'fa-flip-horizontal text-gray') + " fa-2x'></i></a>";
|
||||
},
|
||||
url: function (value, row, index) {
|
||||
return '<div class="input-group input-group-sm" style="width:250px;margin:0 auto;"><input type="text" class="form-control input-sm" value="' + value + '"><span class="input-group-btn input-group-sm"><a href="' + value + '" target="_blank" class="btn btn-default btn-sm"><i class="fa fa-link"></i></a></span></div>';
|
||||
},
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ define(['jquery', 'bootstrap', 'plupload', 'template'], function ($, undefined,
|
|||
config: {
|
||||
container: document.body,
|
||||
classname: '.plupload:not([initialized])',
|
||||
previewtpl: '<li class="col-xs-3"><a href="<%=fullurl%>" data-url="<%=url%>" target="_blank" class="thumbnail"><img src="<%=fullurl%>" class="img-responsive"></a><a href="javascript:;" class="btn btn-danger btn-xs btn-trash"><i class="fa fa-trash"></i></a></li>',
|
||||
previewtpl: '<li class="col-xs-3"><a href="<%=fullurl%>" data-url="<%=url%>" target="_blank" class="thumbnail"><img src="<%=fullurl%>" onerror="this.src=\'https://tool.fastadmin.net/icon/\'+\'<%=fullurl%>\'.split(\'.\').pop()+\'.png\';this.onerror=null;" class="img-responsive"></a><a href="javascript:;" class="btn btn-danger btn-xs btn-trash"><i class="fa fa-trash"></i></a></li>',
|
||||
},
|
||||
events: {
|
||||
//初始化完成
|
||||
|
|
@ -184,11 +184,9 @@ define(['jquery', 'bootstrap', 'plupload', 'template'], function ($, undefined,
|
|||
multiple = typeof multiple !== "undefined" ? multiple : Config.upload.multiple;
|
||||
var mimetypeArr = new Array();
|
||||
//支持后缀和Mimetype格式,以,分隔
|
||||
if (mimetype && mimetype !== "*" && mimetype.indexOf("/") === -1)
|
||||
{
|
||||
if (mimetype && mimetype !== "*" && mimetype.indexOf("/") === -1) {
|
||||
var tempArr = mimetype.split(',');
|
||||
for (var i = 0; i < tempArr.length; i++)
|
||||
{
|
||||
for (var i = 0; i < tempArr.length; i++) {
|
||||
mimetypeArr.push({title: __('Files'), extensions: tempArr[i]});
|
||||
}
|
||||
mimetype = mimetypeArr;
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@ body {
|
|||
|
||||
/*预览区域*/
|
||||
.plupload-preview {
|
||||
padding:10px;
|
||||
padding:0 10px;
|
||||
margin-bottom:0;
|
||||
li {
|
||||
margin-bottom:10px;
|
||||
margin-top:10px;
|
||||
}
|
||||
.thumbnail {
|
||||
margin-bottom:10px;
|
||||
|
|
@ -214,6 +214,24 @@ body {
|
|||
padding: 4px 13px;
|
||||
}
|
||||
|
||||
.fieldlist dd {
|
||||
display: block;
|
||||
margin: 5px 0;
|
||||
input {
|
||||
display: inline-block;
|
||||
width: 300px;
|
||||
}
|
||||
input:first-child {
|
||||
width: 110px;
|
||||
}
|
||||
ins {
|
||||
width: 110px;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
/* 弹窗中的表单 */
|
||||
.form-layer {
|
||||
height:100%;min-height:150px;min-width:300px;
|
||||
|
|
@ -435,3 +453,26 @@ main.content {
|
|||
.copyright{padding:10px;line-height:30px;}
|
||||
}
|
||||
}
|
||||
|
||||
.pager {
|
||||
.pagination {
|
||||
margin: 0;
|
||||
}
|
||||
li {
|
||||
margin: 0 .4em;
|
||||
display: inline-block;
|
||||
&:first-child, &:last-child {
|
||||
> a, > span {
|
||||
padding: .5em 1.2em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pager li > a, .pager li > span {
|
||||
background: none;
|
||||
border: 1px solid #e6e6e6;
|
||||
border-radius: 0.25em;
|
||||
padding: .5em .93em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
|
@ -95,7 +95,7 @@ if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
|
|||
}
|
||||
$err = '';
|
||||
$mysqlHostname = isset($_POST['mysqlHost']) ? $_POST['mysqlHost'] : '127.0.0.1';
|
||||
$mysqlHostport = 3306;
|
||||
$mysqlHostport = isset($_POST['mysqlHostport']) ? $_POST['mysqlHostport'] : 3306;
|
||||
$hostArr = explode(':', $mysqlHostname);
|
||||
if (count($hostArr) > 1) {
|
||||
$mysqlHostname = $hostArr[0];
|
||||
|
|
@ -374,6 +374,11 @@ if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
|
|||
<label>MySQL 数据表前缀</label>
|
||||
<input type="text" name="mysqlPrefix" value="fa_">
|
||||
</div>
|
||||
|
||||
<div class="form-field">
|
||||
<label>MySQL 端口号</label>
|
||||
<input type="number" name="mysqlHostport" value="3306">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
|
|
@ -403,7 +408,9 @@ if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
|
|||
</div>
|
||||
</form>
|
||||
|
||||
<script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
|
||||
<!-- jQuery -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@2.1.4/dist/jquery.min.js"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('form :input:first').select();
|
||||
|
|
|
|||
Loading…
Reference in New Issue