update
This commit is contained in:
0
application/admin/view/addon/add.html
Normal file
0
application/admin/view/addon/add.html
Normal file
134
application/admin/view/addon/config.html
Normal file
134
application/admin/view/addon/config.html
Normal file
@@ -0,0 +1,134 @@
|
||||
<form id="config-form" class="edit-form form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{if $addon.tips && $addon.tips.value}
|
||||
<div class="alert {$addon.tips.extend|default='alert-info-light'}" style="margin-bottom:10px;">
|
||||
{if $addon.tips.title}
|
||||
<b>{$addon.tips.title}</b><br>
|
||||
{/if}
|
||||
{$addon.tips.value}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="panel panel-default panel-intro">
|
||||
{if count($groupList)>1}
|
||||
<div class="panel-heading mb-3">
|
||||
<ul class="nav nav-tabs nav-group">
|
||||
<li class="active"><a href="#all" data-toggle="tab">全部</a></li>
|
||||
{foreach name="groupList" id="tab"}
|
||||
<li><a href="#tab-{$key}" title="{$tab}" data-toggle="tab">{$tab}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="panel-body no-padding">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
{foreach name="groupList" id="group" key="groupName"}
|
||||
<div class="tab-pane fade active in" id="tab-{$groupName}">
|
||||
|
||||
<table class="table table-striped table-config mb-0">
|
||||
<tbody>
|
||||
{foreach name="$addon.config" id="item"}
|
||||
{if ((!isset($item['group']) || $item['group']=='') && $groupName=='other') || (isset($item['group']) && $item['group']==$group)}
|
||||
<tr data-favisible="{$item.visible|default=''|htmlentities}" data-name="{$item.name}" class="{if $item.visible??''}hidden{/if}">
|
||||
<td width="15%">{$item.title}</td>
|
||||
<td>
|
||||
<div class="row">
|
||||
<div class="col-sm-8 col-xs-12">
|
||||
{switch $item.type}
|
||||
{case string}
|
||||
<input {$item.extend} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-tip="{$item.tip}"/>
|
||||
{/case}
|
||||
{case password}
|
||||
<input {$item.extend} type="password" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-tip="{$item.tip}"/>
|
||||
{/case}
|
||||
{case text}
|
||||
<textarea {$item.extend} name="row[{$item.name}]" class="form-control" data-rule="{$item.rule}" rows="5" data-tip="{$item.tip}">{$item.value|htmlentities}</textarea>
|
||||
{/case}
|
||||
{case array}
|
||||
<dl class="fieldlist" data-name="row[{$item.name}]">
|
||||
<dd>
|
||||
<ins>{:__('Array key')}</ins>
|
||||
<ins>{:__('Array value')}</ins>
|
||||
</dd>
|
||||
<dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
|
||||
<textarea name="row[{$item.name}]" cols="30" rows="5" class="hide">{$item.value|json_encode|htmlentities}</textarea>
|
||||
</dl>
|
||||
{/case}
|
||||
{case date}
|
||||
<input {$item.extend} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case time}
|
||||
<input {$item.extend} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case datetime}
|
||||
<input {$item.extend} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case number}
|
||||
<input {$item.extend} type="number" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case checkbox}
|
||||
{foreach name="item.content" item="vo"}
|
||||
<label for="row[{$item.name}][]-{$key}"><input id="row[{$item.name}][]-{$key}" name="row[{$item.name}][]" type="checkbox" value="{$key}" data-tip="{$item.tip}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
<span class="msg-box n-right" for="c-{$item.name}"></span>
|
||||
{/case}
|
||||
{case radio}
|
||||
{foreach name="item.content" item="vo"}
|
||||
<label for="row[{$item.name}]-{$key}"><input id="row[{$item.name}]-{$key}" name="row[{$item.name}]" type="radio" value="{$key}" data-tip="{$item.tip}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
<span class="msg-box n-right" for="c-{$item.name}"></span>
|
||||
{/case}
|
||||
{case value="select" break="0"}{/case}
|
||||
{case value="selects"}
|
||||
<select {$item.extend} name="row[{$item.name}]{$item.type=='selects'?'[]':''}" class="form-control selectpicker" data-tip="{$item.tip}" {$item.type=='selects'?'multiple':''}>
|
||||
{foreach name="item.content" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$item.value" }selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/case}
|
||||
{case value="image" break="0"}{/case}
|
||||
{case value="images"}
|
||||
<div class="form-inline">
|
||||
<input id="c-{$item.name}" class="form-control" size="35" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-tip="{$item.tip}">
|
||||
<span><button type="button" id="plupload-{$item.name}" class="btn btn-danger plupload" data-input-id="c-{$item.name}" data-mimetype="image/*" data-multiple="{$item.type=='image'?'false':'true'}" data-preview-id="p-{$item.name}"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-mimetype="image/*" data-multiple="{$item.type=='image'?'false':'true'}"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
<ul class="row list-inline plupload-preview" id="p-{$item.name}"></ul>
|
||||
</div>
|
||||
{/case}
|
||||
{case value="file" break="0"}{/case}
|
||||
{case value="files"}
|
||||
<div class="form-inline">
|
||||
<input id="c-{$item.name}" class="form-control" size="35" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-tip="{$item.tip}">
|
||||
<span><button type="button" id="plupload-{$item.name}" class="btn btn-danger plupload" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
{/case}
|
||||
{case bool}
|
||||
<label for="row[{$item.name}]-yes"><input id="row[{$item.name}]-yes" name="row[{$item.name}]" type="radio" value="1" {$item.value?'checked':''} data-tip="{$item.tip}" /> {:__('Yes')}</label>
|
||||
<label for="row[{$item.name}]-no"><input id="row[{$item.name}]-no" name="row[{$item.name}]" type="radio" value="0" {$item.value?'':'checked'} data-tip="{$item.tip}" /> {:__('No')}</label>
|
||||
{/case}
|
||||
{default /}{$item.value}
|
||||
{/switch}
|
||||
</div>
|
||||
<div class="col-sm-4"></div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{/foreach}
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2" style="width:15%;"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
303
application/admin/view/addon/index.html
Normal file
303
application/admin/view/addon/index.html
Normal file
@@ -0,0 +1,303 @@
|
||||
<style type="text/css">
|
||||
.layui-layer-pay .layui-layer-content {
|
||||
padding: 0;
|
||||
height: 600px !important;
|
||||
}
|
||||
|
||||
.layui-layer-pay {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.payimg {
|
||||
position: relative;
|
||||
width: 800px;
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.payimg .alipaycode {
|
||||
position: absolute;
|
||||
left: 265px;
|
||||
top: 442px;
|
||||
}
|
||||
|
||||
.payimg .wechatcode {
|
||||
position: absolute;
|
||||
left: 660px;
|
||||
top: 442px;
|
||||
}
|
||||
|
||||
.thumbnail img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .pull-right.search {
|
||||
min-width: 300px;
|
||||
}
|
||||
|
||||
a.title {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.releasetips {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.releasetips i {
|
||||
display: block;
|
||||
background: #f00;
|
||||
border-radius: 50%;
|
||||
width: 0.3em;
|
||||
height: 0.3em;
|
||||
top: 0px;
|
||||
right: -8px;
|
||||
position: absolute;
|
||||
box-shadow: 0px 0px 2px #f11414;
|
||||
}
|
||||
|
||||
.form-userinfo .breadcrumb {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.btn-toggle {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
{if $Think.config.fastadmin.api_url}
|
||||
<ul class="nav nav-tabs nav-category">
|
||||
<li class="active"><a href="javascript:;" data-id="">{:__('All')}</a></li>
|
||||
<li><a href="javascript:;" data-id="0">{:__('Uncategoried')}</a></li>
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" data-force-refresh="false"><i class="fa fa-refresh"></i> </a>
|
||||
{if $Think.config.fastadmin.api_url}
|
||||
<button type="button" id="faupload-addon" class="btn btn-danger faupload btn-mini-xs" data-url="addon/local" data-chunking="false" data-mimetype="zip,fastaddon" data-multiple="false"><i class="fa fa-upload"></i>
|
||||
{:__('Local install')}
|
||||
</button>
|
||||
<div class="btn-group">
|
||||
<a href="#" class="btn btn-info btn-switch active btn-mini-xs" data-type="all"><i class="fa fa-list"></i> {:__('All')}</a>
|
||||
<a href="#" class="btn btn-info btn-switch btn-mini-xs" data-type="free"><i class="fa fa-gift"></i> {:__('Free')}</a>
|
||||
<a href="#" class="btn btn-info btn-switch btn-mini-xs" data-type="price"><i class="fa fa-rmb"></i> {:__('Paying')}</a>
|
||||
<a href="#" class="btn btn-info btn-switch btn-mini-xs" data-type="local" data-url="addon/downloaded"><i class="fa fa-laptop"></i> {:__('Local addon')}</a>
|
||||
</div>
|
||||
<a class="btn btn-primary btn-userinfo btn-mini-xs" href="javascript:;"><i class="fa fa-user"></i> {:__('Userinfo')}</a>
|
||||
{/if}
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover" width="100%">
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script id="searchformtpl" type="text/html">
|
||||
<form action="" class="form-commonsearch hide">
|
||||
<div class="well" style="box-shadow:none;border-radius:2px;margin-bottom:10px;">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Title')}</label>
|
||||
<input class="operate" type="hidden" data-name="title" value="like"/>
|
||||
<input class="form-control" type="text" name="title" placeholder="" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Type')}</label>
|
||||
<input class="operate" type="hidden" data-name="type" value="="/>
|
||||
<input class="form-control" type="text" name="type" placeholder="all" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Category')}</label>
|
||||
<input type="hidden" class="operate" data-name="category_id" value="="/>
|
||||
<input class="form-control" name="category_id" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Version')}</label>
|
||||
<input type="hidden" class="operate" data-name="faversion" value="="/>
|
||||
<input class="form-control" name="faversion" type="text" value="{$Think.config.fastadmin.version}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="control-label"></label>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<input type="submit" class="btn btn-success btn-block" value="{:__('Submit')}"/>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<input type="reset" class="btn btn-primary btn-block" value="{:__('Reset')}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</script>
|
||||
<script id="logintpl" type="text/html">
|
||||
<div>
|
||||
<form class="form-horizontal">
|
||||
<fieldset>
|
||||
<div class="alert alert-dismissable alert-danger">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<strong>{:__('Warning')}</strong><br/>{:__('Login tips')}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-12">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="fa fa-user"></i></span>
|
||||
<input type="text" class="form-control" id="inputAccount" value=""
|
||||
placeholder="{:__('Your username or email')}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-12">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="fa fa-lock"></i></span>
|
||||
<input type="password" class="form-control" id="inputPassword" value=""
|
||||
placeholder="{:__('Your password')}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</script>
|
||||
<script id="userinfotpl" type="text/html">
|
||||
<div>
|
||||
<form class="form-horizontal form-userinfo">
|
||||
<fieldset>
|
||||
<div class="alert alert-dismissable alert-info-light">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<strong>{:__('Warning')}</strong><br/>{:__('Logined tips', '<%=username%>')}
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="breadcrumb"><a href="https://www.fastadmin.net/user/myaddon.html" target="_blank"><i class="fa fa-cube"></i> {:__('My addons')}</a></div>
|
||||
</form>
|
||||
</div>
|
||||
</script>
|
||||
<script id="uninstalltpl" type="text/html">
|
||||
<div class="">
|
||||
<div class=""><%=#__("Are you sure you want to unstall %s?", addon['title'])%>
|
||||
<p class="text-danger">{:__('Delete all the addon file and cannot be recovered!')} </p>
|
||||
{if config('app_debug')}
|
||||
<p class="text-danger"><input type="checkbox" name="droptables" id="droptables" data-name="<%=addon['name']%>"/> {:__('Delete all the addon database and cannot be recovered!')} </p>
|
||||
{/if}
|
||||
<p class="text-danger">{:__('Please backup important data manually before uninstall!')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script id="conflicttpl" type="text/html">
|
||||
<div class="alert alert-dismissable alert-danger">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<strong>{:__('Warning')}</strong> {:__('Conflict tips')}
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{:__('File')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%for(var i=0;i < conflictlist.length;i++){%>
|
||||
<tr>
|
||||
<th scope="row"><%=i+1%></th>
|
||||
<td><%=conflictlist[i]%></td>
|
||||
</tr>
|
||||
<%}%>
|
||||
</tbody>
|
||||
</table>
|
||||
</script>
|
||||
<!--@formatter:off-->
|
||||
<script id="operatetpl" type="text/html">
|
||||
<% var labelarr = ['primary', 'success', 'info', 'danger', 'warning']; %>
|
||||
<% var label = labelarr[item.id % 5]; %>
|
||||
<% var addon = item.addon; %>
|
||||
|
||||
<span class="operate" data-id="<%=item.id%>" data-name="<%=item.name%>">
|
||||
<% if(!addon){ %>
|
||||
<% if(typeof item.releaselist !="undefined" && item.releaselist.length>1){%>
|
||||
<span class="btn-group">
|
||||
<a href="javascript:;" class="btn btn-xs btn-primary btn-success btn-install"
|
||||
data-type="<%=item.price<=0?'free':'price';%>" data-donateimage="<%=item.donateimage%>"
|
||||
data-version="<%=item.version%>"><i class="fa fa-cloud-download"></i> {:__('Install')}</a>
|
||||
<a class="btn btn-xs btn-success dropdown-toggle" data-toggle="dropdown" href="javascript:;">
|
||||
<span class="fa fa-caret-down"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<% for(var j=0;j< item.releaselist.length;j++){ %>
|
||||
<li><a href="javascript:;" class="btn-install" data-type="<%=item.price<=0?'free':'price';%>"
|
||||
data-donateimage="<%=item.donateimage%>"
|
||||
data-version="<%=item.releaselist[j].version%>"><%=item.releaselist[j].version%></a></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</span>
|
||||
<% }else if(typeof item.releaselist !="undefined" && item.releaselist.length>0){%>
|
||||
<a href="javascript:;" class="btn btn-xs btn-primary btn-success btn-install"
|
||||
data-type="<%=item.price<=0?'free':'price';%>" data-donateimage="<%=item.donateimage%>"
|
||||
data-version="<%=item.version%>"><i class="fa fa-cloud-download"></i> {:__('Install')}</a>
|
||||
<% } %>
|
||||
|
||||
<% if(item.demourl){ %>
|
||||
<a href="<%=item.demourl%>" class="btn btn-xs btn-primary btn-info btn-demo" target="_blank">
|
||||
<i class="fa fa-flash"></i> {:__('Demo')}
|
||||
</a>
|
||||
<% } %>
|
||||
|
||||
<% if(item.button){ %>
|
||||
<a href="<%=item.url%>" class="btn btn-xs btn-primary btn-info" target="_blank">
|
||||
<%=item.button%>
|
||||
</a>
|
||||
<% } %>
|
||||
<% } else {%>
|
||||
<% if(addon.version!=item.version){%>
|
||||
<% if(typeof item.releaselist !="undefined" && item.releaselist.length>1){%>
|
||||
<span class="btn-group">
|
||||
<a href="javascript:;" class="btn btn-xs btn-info btn-success btn-upgrade"
|
||||
data-version="<%=item.version%>"><i class="fa fa-cloud"></i> {:__('Upgrade')}</a>
|
||||
<a class="btn btn-xs btn-info dropdown-toggle" data-toggle="dropdown"
|
||||
href="javascript:;">
|
||||
<span class="fa fa-caret-down"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<% for(var j=0;j< item.releaselist.length;j++){ %>
|
||||
<li><a href="javascript:;" class="btn-upgrade"
|
||||
data-version="<%=item.releaselist[j].version%>"><%=item.releaselist[j].version%></a></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</span>
|
||||
<% }else{%>
|
||||
<a href="javascript:;" class="btn btn-xs btn-info btn-upgrade" title="{:__('Upgrade')}" data-version="<%=item.version%>"><i
|
||||
class="fa fa-cloud"></i> {:__('Upgrade')}</a>
|
||||
<% }%>
|
||||
<% }%>
|
||||
<% if(addon.config){ %>
|
||||
<a href="javascript:;" class="btn btn-xs btn-primary btn-config" title="{:__('Setting')}"><i class="fa fa-pencil"></i>
|
||||
{:__('Setting')}</a>
|
||||
<% } %>
|
||||
<a href="javascript:;" class="btn btn-xs btn-danger btn-uninstall" title="{:__('Uninstall')}"><i class="fa fa-times"></i>
|
||||
{:__('Uninstall')}</a>
|
||||
<% } %>
|
||||
</span>
|
||||
</script>
|
||||
<!--@formatter:on-->
|
||||
52
application/admin/view/auth/admin/add.html
Normal file
52
application/admin/view/auth/admin/add.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<form id="add-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('group[]', $groupdata, null, ['class'=>'form-control selectpicker', 'data-rule'=>'required'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username" class="control-label col-xs-12 col-sm-2">{:__('Username')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="username" name="row[username]" value="" data-rule="required;mobile;" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">
|
||||
<label for="email" class="control-label col-xs-12 col-sm-2">{:__('Email')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="email" class="form-control" id="email" name="row[email]" value="" data-rule="required;email" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mobile" class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="mobile" name="row[mobile]" value="" data-rule="mobile" />
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="form-group">
|
||||
<label for="nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="nickname" name="row[nickname]" autocomplete="off" value="" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="password" class="form-control" id="password" name="row[password]" autocomplete="new-password" value="" data-rule="required;password" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
58
application/admin/view/auth/admin/edit.html
Normal file
58
application/admin/view/auth/admin/edit.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<form id="edit-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('group[]', $groupdata, $groupids, ['class'=>'form-control selectpicker', 'data-rule'=>'required'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username" class="control-label col-xs-12 col-sm-2">{:__('Username')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="username" name="row[username]" value="{$row.username|htmlentities}" data-rule="required;mobile" />
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="form-group">
|
||||
<label for="email" class="control-label col-xs-12 col-sm-2">{:__('Email')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="email" class="form-control" id="email" name="row[email]" value="{$row.email|htmlentities}" data-rule="required;email" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mobile" class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="mobile" name="row[mobile]" value="{$row.mobile|default=''|htmlentities}" data-rule="mobile" />
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="form-group">
|
||||
<label for="nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="nickname" name="row[nickname]" autocomplete="off" value="{$row.nickname|htmlentities}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="password" class="form-control" id="password" name="row[password]" autocomplete="new-password" value="" data-rule="password" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="loginfailure" class="control-label col-xs-12 col-sm-2">{:__('Loginfailure')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="number" class="form-control" id="loginfailure" name="row[loginfailure]" value="{$row.loginfailure}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
21
application/admin/view/auth/admin/index.html
Normal file
21
application/admin/view/auth/admin/index.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,add,delete')}
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('auth/admin/edit')}"
|
||||
data-operate-del="{:$auth->check('auth/admin/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
27
application/admin/view/auth/adminlog/detail.html
Normal file
27
application/admin/view/auth/adminlog/detail.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<style>
|
||||
.table-adminlog tr td {
|
||||
word-break: break-all;
|
||||
}
|
||||
</style>
|
||||
<table class="table table-striped table-adminlog">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="100">{:__('Title')}</th>
|
||||
<th>{:__('Content')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="row" id="vo" }
|
||||
<tr>
|
||||
<td>{:__($key)}</td>
|
||||
<td>{if $key=='createtime'}{$vo|datetime}{else/}{$vo|htmlentities}{/if}</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="hide layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="reset" class="btn btn-primary btn-embossed btn-close" onclick="Layer.closeAll();">{:__('Close')}</button>
|
||||
</div>
|
||||
</div>
|
||||
21
application/admin/view/auth/adminlog/index.html
Normal file
21
application/admin/view/auth/adminlog/index.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,delete')}
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-detail="{:$auth->check('auth/adminlog/index')}"
|
||||
data-operate-del="{:$auth->check('auth/adminlog/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
46
application/admin/view/auth/group/add.html
Normal file
46
application/admin/view/auth/group/add.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<form id="add-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<input type="hidden" name="row[rules]" value="" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Parent')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $groupdata, null, ['class'=>'form-control selectpicker', 'data-rule'=>'required'])}
|
||||
</div>
|
||||
</div>
|
||||
{if $level==2}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('City')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[city]', $cityList, null, ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="name" name="row[name]" value="" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" style="display: none;">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Permission')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<span class="text-muted"><input type="checkbox" name="" id="checkall" /> <label for="checkall"><span>{:__('Check all')}</span></label></span>
|
||||
<span class="text-muted"><input type="checkbox" name="" id="expandall" /> <label for="expandall"><span>{:__('Expand all')}</span></label></span>
|
||||
|
||||
<div id="treeview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
46
application/admin/view/auth/group/edit.html
Normal file
46
application/admin/view/auth/group/edit.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<form id="edit-form" class="form-horizontal form-ajax" role="form" method="POST" action="">
|
||||
{:token()}
|
||||
<input type="hidden" name="row[rules]" value="" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Parent')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $groupdata, $row['pid'], ['class'=>'form-control selectpicker', 'data-rule'=>'required', 'data-id'=>$row['id'], 'data-pid'=>$row['pid']])}
|
||||
</div>
|
||||
</div>
|
||||
{if $level==2}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('City')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[city]', $cityList, $row['city'], ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="name" name="row[name]" value="{$row.name|htmlentities}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" style="display: none;">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Permission')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<span class="text-muted"><input type="checkbox" name="" id="checkall" /> <label for="checkall"><span>{:__('Check all')}</span></label></span>
|
||||
<span class="text-muted"><input type="checkbox" name="" id="expandall" /> <label for="expandall"><span>{:__('Expand all')}</span></label></span>
|
||||
|
||||
<div id="treeview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2 col-xs-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
21
application/admin/view/auth/group/index.html
Normal file
21
application/admin/view/auth/group/index.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,add,delete')}
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('auth/group/edit')}"
|
||||
data-operate-del="{:$auth->check('auth/group/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
87
application/admin/view/auth/rule/add.html
Normal file
87
application/admin/view/auth/rule/add.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<form id="add-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Ismenu')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[ismenu]', ['1'=>__('Yes'), '0'=>__('No')])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Parent')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $ruledata, null, ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="name" name="row[name]" data-placeholder-node="{:__('Node tips')}" data-placeholder-menu="{:__('Menu tips')}" value="" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="title" name="row[title]" value="" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="menu">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Url')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="url" name="row[url]" value="" data-rule="" placeholder="{:__('Url tips')}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="icon" class="control-label col-xs-12 col-sm-2">{:__('Icon')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group input-groupp-md">
|
||||
<span class="input-group-addon"><i class="fa fa-circle-o" id="icon-style"></i></span>
|
||||
<input type="text" class="form-control" id="icon" name="row[icon]" value="fa fa-circle-o" />
|
||||
<a href="javascript:;" class="btn-search-icon input-group-addon">{:__('Search icon')}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Condition')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="condition" name="row[condition]"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="menu">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Menutype')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[menutype]', $menutypeList)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="menu">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Extend')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="extend" name="row[extend]"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="remark" name="row[remark]"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="weigh" class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="weigh" name="row[weigh]" value="0" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden layer-footer">
|
||||
<div class="col-xs-2"></div>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{include file="auth/rule/tpl" /}
|
||||
87
application/admin/view/auth/rule/edit.html
Normal file
87
application/admin/view/auth/rule/edit.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<form id="edit-form" class="form-horizontal form-ajax" role="form" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Ismenu')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[ismenu]', ['1'=>__('Yes'), '0'=>__('No')], $row['ismenu'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Parent')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $ruledata, $row['pid'], ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="name" name="row[name]" data-placeholder-node="{:__('Node tips')}" data-placeholder-menu="{:__('Menu tips')}" value="{$row.name|htmlentities}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="title" name="row[title]" value="{$row.title|htmlentities}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="menu">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Url')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="url" name="row[url]" value="{$row.url|htmlentities}" data-rule="" placeholder="{:__('Url tips')}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="icon" class="control-label col-xs-12 col-sm-2">{:__('Icon')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group input-groupp-md">
|
||||
<span class="input-group-addon"><i class="{$row.icon}" id="icon-style"></i></span>
|
||||
<input type="text" class="form-control" id="icon" name="row[icon]" value="{$row.icon}" />
|
||||
<a href="javascript:;" class="btn-search-icon input-group-addon">{:__('Search icon')}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Condition')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="condition" name="row[condition]">{$row.condition|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="menu">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Menutype')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[menutype]', $menutypeList, $row['menutype'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="menu">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Extend')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="extend" name="row[extend]">{$row.extend|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="remark" name="row[remark]">{$row.remark|__|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="weigh" class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="weigh" name="row[weigh]" value="{$row.weigh}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden layer-footer">
|
||||
<div class="col-xs-2"></div>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{include file="auth/rule/tpl" /}
|
||||
35
application/admin/view/auth/rule/index.html
Normal file
35
application/admin/view/auth/rule/index.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<style>
|
||||
.bootstrap-table tr td .text-muted {color:#888;}
|
||||
</style>
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" data-force-refresh="false"><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('auth/rule/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('auth/rule/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('auth/rule/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<div class="dropdown btn-group {:$auth->check('auth/rule/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="javascript:;" class="btn btn-danger btn-toggle-all"><i class="fa fa-plus"></i> {:__('Toggle all')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-bordered table-hover"
|
||||
data-operate-edit="{:$auth->check('auth/rule/edit')}"
|
||||
data-operate-del="{:$auth->check('auth/rule/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
43
application/admin/view/auth/rule/tpl.html
Normal file
43
application/admin/view/auth/rule/tpl.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<style>
|
||||
#chooseicon {
|
||||
margin:10px;
|
||||
}
|
||||
#chooseicon ul {
|
||||
margin:5px 0 0 0;
|
||||
}
|
||||
#chooseicon ul li{
|
||||
width:41px;height:42px;
|
||||
line-height:42px;
|
||||
border:1px solid #efefef;
|
||||
padding:1px;
|
||||
margin:1px;
|
||||
text-align: center;
|
||||
font-size:18px;
|
||||
}
|
||||
#chooseicon ul li:hover{
|
||||
border:1px solid #2c3e50;
|
||||
cursor:pointer;
|
||||
}
|
||||
</style>
|
||||
<script id="chooseicontpl" type="text/html">
|
||||
<div id="chooseicon">
|
||||
<div>
|
||||
<form onsubmit="return false;">
|
||||
<div class="input-group input-groupp-md">
|
||||
<div class="input-group-addon">{:__('Search icon')}</div>
|
||||
<input class="js-icon-search form-control" type="text" placeholder="">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="list-inline">
|
||||
<% for(var i=0; i<iconlist.length; i++){ %>
|
||||
<li data-font="<%=iconlist[i]%>" data-toggle="tooltip" title="<%=iconlist[i]%>">
|
||||
<i class="fa fa-<%=iconlist[i]%>"></i>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</script>
|
||||
100
application/admin/view/category/add.html
Normal file
100
application/admin/view/category/add.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="alert alert-warning-light">
|
||||
{:__('Category warmtips')}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="c-type" class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-type" data-rule="required" class="form-control selectpicker" name="row[type]">
|
||||
{foreach name="typeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value=""}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-pid" class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-pid" data-rule="required" class="form-control selectpicker" name="row[pid]">
|
||||
{foreach name="parentList" item="vo"}
|
||||
<option data-type="{$vo.type}" value="{$key}" {in name="key" value=""}selected{/in}>{$vo.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-flag" class="control-label col-xs-12 col-sm-2">{:__('Flag')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-flag" class="form-control selectpicker" multiple="" name="row[flag][]">
|
||||
{foreach name="flagList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value=""}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-image" class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-image" class="form-control" size="35" name="row[image]" type="text" value="">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-image"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-keywords" class="control-label col-xs-12 col-sm-2">{:__('Keywords')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-keywords" class="form-control" name="row[keywords]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-description" class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-description" class="form-control" name="row[description]"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-weigh" class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
96
application/admin/view/category/edit.html
Normal file
96
application/admin/view/category/edit.html
Normal file
@@ -0,0 +1,96 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label for="c-type" class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-type" data-rule="required" class="form-control selectpicker" name="row[type]">
|
||||
{foreach name="typeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.type"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-pid" class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-pid" data-rule="required" class="form-control selectpicker" name="row[pid]">
|
||||
{foreach name="parentList" item="vo"}
|
||||
<option data-type="{$vo.type}" class="{:$vo.type==$row.type||$vo.type=='all'?'':'hide'}" value="{$key}" {in name="key" value="$row.pid"}selected{/in}>{$vo.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-flag" class="control-label col-xs-12 col-sm-2">{:__('Flag')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-flag" class="form-control selectpicker" multiple="" name="row[flag][]">
|
||||
{foreach name="flagList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.flag"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-image" class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-image" class="form-control" size="35" name="row[image]" type="text" value="{$row.image}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-image"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-keywords" class="control-label col-xs-12 col-sm-2">{:__('Keywords')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-keywords" class="form-control" name="row[keywords]" type="text" value="{$row.keywords|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-description" class="control-label col-xs-12 col-sm-2">{:__('Description')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-description" class="form-control" name="row[description]">{$row.description|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-weigh" class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="{$row.weigh}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
36
application/admin/view/category/index.html
Normal file
36
application/admin/view/category/index.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#all" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="typeList" item="vo"}
|
||||
<li><a href="#{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,add,edit,del')}
|
||||
<div class="dropdown btn-group {:$auth->check('category/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('category/edit')}"
|
||||
data-operate-del="{:$auth->check('category/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
430
application/admin/view/command/add.html
Normal file
430
application/admin/view/command/add.html
Normal file
@@ -0,0 +1,430 @@
|
||||
<style>
|
||||
.relation-item {margin-top:10px;}
|
||||
legend {padding-bottom:5px;font-size:14px;font-weight:600;}
|
||||
label {font-weight:normal;}
|
||||
.form-control{padding:6px 8px;}
|
||||
#extend-zone .col-xs-2 {margin-top:10px;padding-right:0;}
|
||||
#extend-zone .col-xs-2:nth-child(6n+0) {padding-right:15px;}
|
||||
</style>
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#crud" data-toggle="tab">{:__('一键生成CRUD')}</a></li>
|
||||
<li><a href="#menu" data-toggle="tab">{:__('一键生成菜单')}</a></li>
|
||||
<li><a href="#min" data-toggle="tab">{:__('一键压缩打包')}</a></li>
|
||||
<li><a href="#api" data-toggle="tab">{:__('一键生成API文档')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="crud">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<form role="form">
|
||||
<input type="hidden" name="commandtype" value="crud" />
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="isrelation" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="当前只支持生成1对1关联模型,选中后请配置关联表和字段">
|
||||
<input name="isrelation" type="checkbox" value="1">
|
||||
关联模型
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="local" type="hidden" value="1">
|
||||
<label class="control-label" data-toggle="tooltip" title="默认模型生成在application/admin/model目录下,选中后将生成在application/common/model目录下">
|
||||
<input name="local" type="checkbox" value="0"> 全局模型类
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="delete" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="删除CRUD生成的相关文件">
|
||||
<input name="delete" type="checkbox" value="1"> 删除模式
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="force" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="选中后,如果已经存在同名文件将被覆盖。如果是删除将不再提醒">
|
||||
<input name="force" type="checkbox" value="1">
|
||||
强制覆盖模式
|
||||
</label>
|
||||
</div>
|
||||
<!--
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="menu" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="选中后,将同时生成后台菜单规则">
|
||||
<input name="menu" type="checkbox" value="1">
|
||||
生成菜单
|
||||
</label>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<legend>主表设置</legend>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<label>请选择主表</label>
|
||||
{:build_select('table',$tableList,null,['class'=>'form-control selectpicker', 'data-live-search'=>'true']);}
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>自定义控制器名</label>
|
||||
<input type="text" class="form-control" name="controller" data-toggle="tooltip" title="默认根据表名自动生成,如果需要放在二级目录请手动填写" placeholder="支持目录层级,以/分隔">
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>自定义模型名</label>
|
||||
<input type="text" class="form-control" name="model" data-toggle="tooltip" title="默认根据表名自动生成" placeholder="不支持目录层级">
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>显示字段(默认全部)</label>
|
||||
<select name="fields[]" id="fields" multiple style="height:30px;" class="form-control selectpicker"></select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group hide" id="relation-zone">
|
||||
<legend>关联表设置</legend>
|
||||
|
||||
<div class="row" style="margin-top:15px;">
|
||||
<div class="col-xs-12">
|
||||
<a href="javascript:;" class="btn btn-primary btn-sm btn-newrelation" data-index="1">追加关联模型</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="form-group" id="extend-zone">
|
||||
<legend>字段识别设置 <span style="font-size:12px;font-weight: normal;">(与之匹配的字段都将生成相应组件)</span></legend>
|
||||
<div class="row">
|
||||
<div class="col-xs-2">
|
||||
<label>复选框后缀</label>
|
||||
<input type="text" class="form-control" name="setcheckboxsuffix" placeholder="默认为set类型" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>单选框后缀</label>
|
||||
<input type="text" class="form-control" name="enumradiosuffix" placeholder="默认为enum类型" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>图片类型后缀</label>
|
||||
<input type="text" class="form-control" name="imagefield" placeholder="默认为image,images,avatar,avatars" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>文件类型后缀</label>
|
||||
<input type="text" class="form-control" name="filefield" placeholder="默认为file,files" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>日期时间后缀</label>
|
||||
<input type="text" class="form-control" name="intdatesuffix" placeholder="默认为time" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>开关后缀</label>
|
||||
<input type="text" class="form-control" name="switchsuffix" placeholder="默认为switch" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>城市选择后缀</label>
|
||||
<input type="text" class="form-control" name="citysuffix" placeholder="默认为city" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>动态下拉后缀(单)</label>
|
||||
<input type="text" class="form-control" name="selectpagesuffix" placeholder="默认为_id" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>动态下拉后缀(多)</label>
|
||||
<input type="text" class="form-control" name="selectpagessuffix" placeholder="默认为_ids" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>忽略的字段</label>
|
||||
<input type="text" class="form-control" name="ignorefields" placeholder="默认无" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>排序字段</label>
|
||||
<input type="text" class="form-control" name="sortfield" placeholder="默认为weigh" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>富文本编辑器</label>
|
||||
<input type="text" class="form-control" name="editorsuffix" placeholder="默认为content" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>选项卡过滤字段</label>
|
||||
<input type="text" class="form-control" name="headingfilterfield" placeholder="默认为status" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>标签后缀 <i class="fa fa-info-circle" data-toggle="tooltip" data-title="只支持1.3.0+版本"></i></label>
|
||||
<input type="text" class="form-control" name="tagsuffix" placeholder="默认为tag,tags" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>JSON后缀 <i class="fa fa-info-circle" data-toggle="tooltip" data-title="只支持1.3.0+版本"></i></label>
|
||||
<input type="text" class="form-control" name="jsonsuffix" placeholder="默认为json" />
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>固定列数量 <i class="fa fa-info-circle" data-toggle="tooltip" data-title="只支持1.3.0+版本,大于0时为右侧固定列数量,小于0时为左侧固定列数量"></i></label>
|
||||
<input type="text" class="form-control" name="fixedcolumns" placeholder="默认不启用" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>生成命令行</legend>
|
||||
<textarea class="form-control" data-toggle="tooltip" title="如果在线执行命令失败,可以将命令复制到命令行进行执行" rel="command" rows="1" placeholder="请点击生成命令行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>返回结果</legend>
|
||||
<textarea class="form-control" rel="result" rows="5" placeholder="请点击立即执行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button type="button" class="btn btn-info btn-embossed btn-command">{:__('生成命令行')}</button>
|
||||
<button type="button" class="btn btn-success btn-embossed btn-execute">{:__('立即执行')}</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="menu">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<form role="form">
|
||||
<input type="hidden" name="commandtype" value="menu" />
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="allcontroller" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="将删除全部的菜单规则,重新按控制器进行生成,请做好备份,谨慎选择">
|
||||
<input name="allcontroller" data-toggle="collapse" data-target="#controller" type="checkbox" value="1"> 一键生成全部控制器
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="delete" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="删除控制器菜单规则">
|
||||
<input name="delete" type="checkbox" value="1"> 删除模式
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="force" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="如果菜单规则已经存在则覆盖">
|
||||
<input name="force" type="checkbox" value="1"> 强制覆盖模式
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group in" id="controller">
|
||||
<legend>控制器设置</legend>
|
||||
|
||||
<div class="row" style="margin-top:15px;">
|
||||
<div class="col-xs-12">
|
||||
<input type="text" name="controllerfile" class="form-control selectpage" style="width:720px;" data-source="command/get_controller_list" data-multiple="true" name="controller" placeholder="请选择控制器" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>生成命令行</legend>
|
||||
<textarea class="form-control" rel="command" rows="1" placeholder="请点击生成命令行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>返回结果</legend>
|
||||
<textarea class="form-control" rel="result" rows="5" placeholder="请点击立即执行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button type="button" class="btn btn-info btn-embossed btn-command">{:__('生成命令行')}</button>
|
||||
<button type="button" class="btn btn-success btn-embossed btn-execute">{:__('立即执行')}</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="min">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<form role="form">
|
||||
<input type="hidden" name="commandtype" value="min" />
|
||||
<div class="form-group">
|
||||
<legend>基础设置</legend>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<label>请选择压缩模块</label>
|
||||
<select name="module" class="form-control selectpicker">
|
||||
<option value="all" selected>全部</option>
|
||||
<option value="backend">后台Backend</option>
|
||||
<option value="frontend">前台Frontend</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>请选择压缩资源</label>
|
||||
<select name="resource" class="form-control selectpicker">
|
||||
<option value="all" selected>全部</option>
|
||||
<option value="js">JS</option>
|
||||
<option value="css">CSS</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>请选择压缩模式</label>
|
||||
<select name="optimize" class="form-control selectpicker">
|
||||
<option value="">无</option>
|
||||
<option value="uglify">uglify</option>
|
||||
<option value="closure">closure</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group in">
|
||||
<legend>控制器设置</legend>
|
||||
|
||||
<div class="row" style="margin-top:15px;">
|
||||
<div class="col-xs-12">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>生成命令行</legend>
|
||||
<textarea class="form-control" rel="command" rows="1" placeholder="请点击生成命令行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>返回结果</legend>
|
||||
<textarea class="form-control" rel="result" rows="5" placeholder="请点击立即执行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button type="button" class="btn btn-info btn-embossed btn-command">{:__('生成命令行')}</button>
|
||||
<button type="button" class="btn btn-success btn-embossed btn-execute">{:__('立即执行')}</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="api">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<form role="form">
|
||||
<input type="hidden" name="commandtype" value="api" />
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<input checked="" name="force" type="hidden" value="0">
|
||||
<label class="control-label" data-toggle="tooltip" title="如果已经存在则覆盖">
|
||||
<input name="force" type="checkbox" value="1">
|
||||
覆盖模式
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<legend>文档设置</legend>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<label>请输入接口URL</label>
|
||||
<input type="text" name="url" class="form-control" placeholder="API URL,可留空" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>接口生成文件</label>
|
||||
<input type="text" name="output" class="form-control" placeholder="留空则使用api.html" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>模板文件</label>
|
||||
<input type="text" name="template" class="form-control" placeholder="如果不清楚请留空" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>文档语言</label>
|
||||
<select name="language" class="form-control">
|
||||
<option value="" selected>请选择语言</option>
|
||||
<option value="zh-cn">中文</option>
|
||||
<option value="en">英文</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="margin-top:10px;">
|
||||
<div class="col-xs-3">
|
||||
<label>文档标题</label>
|
||||
<input type="text" name="title" class="form-control" placeholder="默认为{$site.name}" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>文档作者</label>
|
||||
<input type="text" name="author" class="form-control" placeholder="默认为{$site.name}" />
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>生成模块</label>
|
||||
<select name="module" class="form-control selectpicker">
|
||||
<option value="" selected>请选择模块</option>
|
||||
<option value="api">API</option>
|
||||
<option value="backend">后台</option>
|
||||
<option value="frontend">前台</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<label>生成插件文档</label>
|
||||
<select name="addon" class="form-control selectpicker" data-live-search="true">
|
||||
<option value="" selected>请选择插件</option>
|
||||
{foreach name=":get_addon_list()" id="item"}
|
||||
<option value="{$item.name}">{$item.title}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>生成命令行</legend>
|
||||
<textarea class="form-control" rel="command" rows="1" placeholder="请点击生成命令行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<legend>返回结果</legend>
|
||||
<textarea class="form-control" rel="result" rows="5" placeholder="请点击立即执行"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button type="button" class="btn btn-info btn-embossed btn-command">{:__('生成命令行')}</button>
|
||||
<button type="button" class="btn btn-success btn-embossed btn-execute">{:__('立即执行')}</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script id="relationtpl" type="text/html">
|
||||
<div class="row relation-item">
|
||||
<div class="col-xs-2">
|
||||
<label>请选择关联表</label>
|
||||
<select name="relation[<%=index%>][relation]" class="form-control relationtable" data-live-search="true"></select>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>请选择关联类型</label>
|
||||
<select name="relation[<%=index%>][relationmode]" class="form-control relationmode"></select>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>关联外键</label>
|
||||
<select name="relation[<%=index%>][relationforeignkey]" class="form-control relationforeignkey"></select>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>关联主键</label>
|
||||
<select name="relation[<%=index%>][relationprimarykey]" class="form-control relationprimarykey"></select>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label>请选择显示字段</label>
|
||||
<select name="relation[<%=index%>][relationfields][]" multiple class="form-control relationfields"></select>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<label> </label>
|
||||
<a href="javascript:;" class="btn btn-danger btn-block btn-removerelation">移除</a>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
42
application/admin/view/command/detail.html
Normal file
42
application/admin/view/command/detail.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{:__('Title')}</th>
|
||||
<th>{:__('Content')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{:__('Type')}</td>
|
||||
<td>{$row.type}({$row.type_text})</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{:__('Params')}</td>
|
||||
<td>{$row.params}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{:__('Command')}</td>
|
||||
<td>{$row.command}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{:__('Content')}</td>
|
||||
<td>
|
||||
<textarea class="form-control" name="" id="" cols="60" rows="10">{$row.content}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{:__('Executetime')}</td>
|
||||
<td>{$row.executetime|datetime}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{:__('Status')}</td>
|
||||
<td>{$row.status_text}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="hide layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="reset" class="btn btn-primary btn-embossed btn-close" onclick="Layer.closeAll();">{:__('Close')}</button>
|
||||
</div>
|
||||
</div>
|
||||
25
application/admin/view/command/index.html
Normal file
25
application/admin/view/command/index.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('command/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('command/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover"
|
||||
data-operate-detail="{:$auth->check('command/detail')}"
|
||||
data-operate-execute="{:$auth->check('command/execute')}"
|
||||
data-operate-del="{:$auth->check('command/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
77
application/admin/view/common/control.html
Normal file
77
application/admin/view/common/control.html
Normal file
@@ -0,0 +1,77 @@
|
||||
<style>
|
||||
.skin-list li{
|
||||
float:left; width: 33.33333%; padding: 5px;
|
||||
}
|
||||
.skin-list li a{
|
||||
display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4);
|
||||
}
|
||||
.skin-list li a span{
|
||||
display: block;
|
||||
float:left;
|
||||
}
|
||||
.skin-list li.active a {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.skin-list li.active p {
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
<!-- Control Sidebar -->
|
||||
<aside class="control-sidebar control-sidebar-dark">
|
||||
<!-- Create the tabs -->
|
||||
<ul class="nav nav-tabs nav-justified control-sidebar-tabs">
|
||||
<li class="active"><a href="#control-sidebar-setting-tab" data-toggle="tab" aria-expanded="true"><i class="fa fa-wrench"></i></a></li>
|
||||
<li><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li>
|
||||
<li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li>
|
||||
</ul>
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<!-- Home tab content -->
|
||||
<div class="tab-pane active" id="control-sidebar-setting-tab">
|
||||
<h4 class="control-sidebar-heading">{:__('Layout Options')}</h4>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-config="multiplenav" {if $Think.config.fastadmin.multiplenav}checked{/if} class="pull-right"> {:__('Multiple Nav')}</label><p>{:__("Toggle the top menu state (multiple or single)")}</p></div>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-config="multipletab" {if $Think.config.fastadmin.multipletab}checked{/if} class="pull-right"> {:__('Multiple Tab')}</label><p>{:__("Always show multiple tab when multiple nav is set")}</p></div>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-layout="sidebar-collapse" class="pull-right"> {:__('Toggle Sidebar')}</label><p>{:__("Toggle the left sidebar's state (open or collapse)")}</p></div>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-enable="expandOnHover" class="pull-right"> {:__('Sidebar Expand on Hover')}</label><p>{:__('Let the sidebar mini expand on hover')}</p></div>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-menu="show-submenu" class="pull-right"> {:__('Show sub menu')}</label><p>{:__('Always show sub menu')}</p></div>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-controlsidebar="control-sidebar-open" class="pull-right"> {:__('Toggle Right Sidebar Slide')}</label><p>{:__('Toggle between slide over content and push content effects')}</p></div>
|
||||
<div class="form-group"><label class="control-sidebar-subheading"><input type="checkbox" data-sidebarskin="toggle" class="pull-right"> {:__('Toggle Right Sidebar Skin')}</label><p>{:__('Toggle between dark and light skins for the right sidebar')}</p></div>
|
||||
<h4 class="control-sidebar-heading">{:__('Skins')}</h4>
|
||||
<ul class="list-unstyled clearfix skin-list">
|
||||
<li><a href="javascript:;" data-skin="skin-blue" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #4e73df;"></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Blue</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-purple" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #605ca8;"></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Purple</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-green" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 7px;" class="bg-green-active"></span><span class="bg-green" style="width: 80%; height: 7px;"></span></div><div><span style="width: 20%; height: 20px; background: #000;"></span><span style="width: 80%; height: 20px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Green</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-red" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 7px;" class="bg-red-active"></span><span class="bg-red" style="width: 80%; height: 7px;"></span></div><div><span style="width: 20%; height: 20px; background: #000;"></span><span style="width: 80%; height: 20px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Red</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-yellow" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 7px;" class="bg-yellow-active"></span><span class="bg-yellow" style="width: 80%; height: 7px;"></span></div><div><span style="width: 20%; height: 20px; background: #000;"></span><span style="width: 80%; height: 20px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Yellow</p></li>
|
||||
|
||||
<li><a href="javascript:;" data-skin="skin-blue-light" class="clearfix full-opacity-hover"><div><span style="width: 100%; height: 7px; background: #4e73df;"></span></div><div><span style="width: 100%; height: 20px; background: #f9fafc;"></span></div></a><p class="text-center no-margin" style="font-size: 12px">Blue Light</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black-light" class="clearfix full-opacity-hover"><div><span style="width: 100%; height: 7px; background: #000;"></span></div><div><span style="width: 100%; height: 20px; background: #f9fafc;"></span></div></a><p class="text-center no-margin" style="font-size: 12px">Black Light</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-purple-light" class="clearfix full-opacity-hover"><div><span style="width: 100%; height: 7px; background: #605ca8;"></span></div><div><span style="width: 100%; height: 20px; background: #f9fafc;"></span></div></a><p class="text-center no-margin" style="font-size: 12px">Purple Light</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-green-light" class="clearfix full-opacity-hover"><div><span style="width: 100%; height: 7px;" class="bg-green"></span></div><div><span style="width: 100%; height: 20px; background: #f9fafc;"></span></div></a><p class="text-center no-margin" style="font-size: 12px">Green Light</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-red-light" class="clearfix full-opacity-hover"><div><span style="width: 100%; height: 7px;" class="bg-red"></span></div><div><span style="width: 100%; height: 20px; background: #f9fafc;"></span></div></a><p class="text-center no-margin" style="font-size: 12px">Red Light</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-yellow-light" class="clearfix full-opacity-hover"><div><span style="width: 100%; height: 7px;" class="bg-yellow"></span></div><div><span style="width: 100%; height: 20px; background: #f9fafc;"></span></div></a><p class="text-center no-margin" style="font-size: 12px">Yellow Light</p></li>
|
||||
|
||||
<li><a href="javascript:;" data-skin="skin-black-blue" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"><span style="width: 100%; height: 3px; margin-top:10px; background: #4e73df;"></span></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black Blue</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black-purple" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"><span style="width: 100%; height: 3px; margin-top:10px; background: #605ca8;"></span></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black Purple</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black-green" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"><span style="width: 100%; height: 3px; margin-top:10px;" class="bg-green"></span></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black Green</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black-red" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"><span style="width: 100%; height: 3px; margin-top:10px;" class="bg-red"></span></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black Red</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black-yellow" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"><span style="width: 100%; height: 3px; margin-top:10px;" class="bg-yellow"></span></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black Yellow</p></li>
|
||||
<li><a href="javascript:;" data-skin="skin-black-pink" class="clearfix full-opacity-hover"><div><span style="width: 20%; height: 27px; background: #000;"><span style="width: 100%; height: 3px; margin-top:10px; background: #f5549f;"></span></span><span style="width: 80%; height: 27px; background: #f4f5f7;"></span></div></a><p class="text-center no-margin">Black Pink</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.tab-pane -->
|
||||
<!-- Home tab content -->
|
||||
<div class="tab-pane" id="control-sidebar-home-tab">
|
||||
<h4 class="control-sidebar-heading">{:__('Home')}</h4>
|
||||
</div>
|
||||
<!-- /.tab-pane -->
|
||||
<!-- Settings tab content -->
|
||||
<div class="tab-pane" id="control-sidebar-settings-tab">
|
||||
<h4 class="control-sidebar-heading">{:__('Setting')}</h4>
|
||||
</div>
|
||||
<!-- /.tab-pane -->
|
||||
</div>
|
||||
</aside>
|
||||
<!-- /.control-sidebar -->
|
||||
128
application/admin/view/common/header.html
Normal file
128
application/admin/view/common/header.html
Normal file
@@ -0,0 +1,128 @@
|
||||
<!-- Logo -->
|
||||
<a href="javascript:;" class="logo">
|
||||
<!-- 迷你模式下Logo的大小为50X50 -->
|
||||
<span class="logo-mini">{$site.name|mb_substr=0,4,'utf-8'|mb_strtoupper='utf-8'|htmlentities}</span>
|
||||
<!-- 普通模式下Logo -->
|
||||
<span class="logo-lg">{$site.name|htmlentities}</span>
|
||||
</a>
|
||||
|
||||
<!-- 顶部通栏样式 -->
|
||||
<nav class="navbar navbar-static-top">
|
||||
|
||||
<!--第一级菜单-->
|
||||
<div id="firstnav">
|
||||
<!-- 边栏切换按钮-->
|
||||
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
|
||||
<span class="sr-only">{:__('Toggle navigation')}</span>
|
||||
</a>
|
||||
|
||||
<!--如果不想在顶部显示角标,则给ul加上disable-top-badge类即可-->
|
||||
<ul class="nav nav-tabs nav-addtabs disable-top-badge hidden-xs" role="tablist">
|
||||
{$navlist}
|
||||
</ul>
|
||||
|
||||
<div class="navbar-custom-menu">
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
<li class="hidden-xs">
|
||||
<a href="__PUBLIC__" target="_blank"><i class="fa fa-home" style="font-size:14px;"></i> {:__('Home')}</a>
|
||||
</li>
|
||||
|
||||
<!-- 清除缓存 -->
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:;" data-toggle="dropdown" title="{:__('Wipe cache')}">
|
||||
<i class="fa fa-trash"></i> {:__('Wipe cache')}
|
||||
</a>
|
||||
<ul class="dropdown-menu wipecache">
|
||||
<li><a href="javascript:;" data-type="all"><i class="fa fa-trash fa-fw"></i> {:__('Wipe all cache')}</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="javascript:;" data-type="content"><i class="fa fa-file-text fa-fw"></i> {:__('Wipe content cache')}</a></li>
|
||||
<li><a href="javascript:;" data-type="template"><i class="fa fa-file-image-o fa-fw"></i> {:__('Wipe template cache')}</a></li>
|
||||
<li><a href="javascript:;" data-type="addons"><i class="fa fa-rocket fa-fw"></i> {:__('Wipe addons cache')}</a></li>
|
||||
<li><a href="javascript:;" data-type="browser"><i class="fa fa-chrome fa-fw"></i> {:__('Wipe browser cache')}
|
||||
<span data-toggle="tooltip" data-title="{:__('Wipe browser cache tips')}"><i class="fa fa-info-circle"></i></span>
|
||||
</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<!-- 多语言列表 -->
|
||||
{if $Think.config.lang_switch_on}
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-language"></i></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="{$config['language']=='zh-cn'?'active':''}">
|
||||
<a href="?ref=addtabs&lang=zh-cn">简体中文</a>
|
||||
</li>
|
||||
<li class="{$config['language']=='en'?'active':''}">
|
||||
<a href="?ref=addtabs&lang=en">English</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
|
||||
<!-- 全屏按钮 -->
|
||||
<li class="hidden-xs">
|
||||
<a href="#" data-toggle="fullscreen"><i class="fa fa-arrows-alt"></i></a>
|
||||
</li>
|
||||
|
||||
<!-- 账号信息下拉框 -->
|
||||
<li class="dropdown user user-menu">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<img src="{$admin.avatar|cdnurl|htmlentities}" class="user-image" alt="">
|
||||
<span class="hidden-xs">{$admin.nickname|htmlentities}</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<!-- User image -->
|
||||
<li class="user-header">
|
||||
<img src="{$admin.avatar|cdnurl|htmlentities}" class="img-circle" alt="">
|
||||
|
||||
<p>
|
||||
{$admin.nickname|htmlentities}
|
||||
<small>{$admin.logintime|date="Y-m-d H:i:s",###}</small>
|
||||
</p>
|
||||
</li>
|
||||
<li class="user-body">
|
||||
<div class="visible-xs">
|
||||
<div class="pull-left">
|
||||
<a href="__PUBLIC__" target="_blank"><i class="fa fa-home" style="font-size:14px;"></i> {:__('Home')}</a>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<a href="javascript:;" data-type="all" class="wipecache"><i class="fa fa-trash fa-fw"></i> {:__('Wipe all cache')}</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<!-- Menu Footer-->
|
||||
<li class="user-footer">
|
||||
<div class="pull-left">
|
||||
<a href="general/profile" class="btn btn-primary addtabsit"><i class="fa fa-user"></i>
|
||||
{:__('Profile')}</a>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<a href="{:url('index/logout')}" class="btn btn-danger"><i class="fa fa-sign-out"></i>
|
||||
{:__('Logout')}</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- 控制栏切换按钮 -->
|
||||
<li class="hidden-xs">
|
||||
<a href="javascript:;" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $Think.config.fastadmin.multiplenav}
|
||||
<!--第二级菜单,只有在multiplenav开启时才显示-->
|
||||
<div id="secondnav">
|
||||
<ul class="nav nav-tabs nav-addtabs disable-top-badge" role="tablist">
|
||||
{if $fixedmenu}
|
||||
<li role="presentation" id="tab_{$fixedmenu.id}" class="{:$referermenu?'':'active'}"><a href="#con_{$fixedmenu.id}" node-id="{$fixedmenu.id}" aria-controls="{$fixedmenu.id}" role="tab" data-toggle="tab"><i class="fa fa-dashboard fa-fw"></i> <span>{$fixedmenu.title}</span> <span class="pull-right-container"> </span></a></li>
|
||||
{/if}
|
||||
{if $referermenu}
|
||||
<li role="presentation" id="tab_{$referermenu.id}" class="active"><a href="#con_{$referermenu.id}" node-id="{$referermenu.id}" aria-controls="{$referermenu.id}" role="tab" data-toggle="tab"><i class="fa fa-list fa-fw"></i> <span>{$referermenu.title}</span> <span class="pull-right-container"> </span></a> <i class="close-tab fa fa-remove"></i></li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</nav>
|
||||
39
application/admin/view/common/menu.html
Normal file
39
application/admin/view/common/menu.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!-- 左侧菜单栏 -->
|
||||
<section class="sidebar">
|
||||
<!-- 管理员信息 -->
|
||||
<div class="user-panel hidden-xs">
|
||||
<div class="pull-left image">
|
||||
<a href="general/profile" class="addtabsit"><img src="{$admin.avatar|cdnurl|htmlentities}" class="img-circle" /></a>
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{$admin.nickname|htmlentities}</p>
|
||||
<i class="fa fa-circle text-success"></i> {:__('Online')}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 菜单搜索 -->
|
||||
<form action="" method="get" class="sidebar-form" onsubmit="return false;">
|
||||
<div class="input-group">
|
||||
<input type="text" name="q" class="form-control" placeholder="{:__('Search menu')}">
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i>
|
||||
</button>
|
||||
</span>
|
||||
<div class="menuresult list-group sidebar-form hide">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- 移动端一级菜单 -->
|
||||
<div class="mobilenav visible-xs">
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 左侧菜单栏 -->
|
||||
<ul class="sidebar-menu {if $Think.config.fastadmin.show_submenu}show-submenu{/if}">
|
||||
|
||||
<!-- 菜单可以在 后台管理->权限管理->菜单规则 中进行增删改排序 -->
|
||||
{$menulist}
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
25
application/admin/view/common/meta.html
Normal file
25
application/admin/view/common/meta.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<meta charset="utf-8">
|
||||
<title>{$title|default=''}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="referrer" content="never">
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
|
||||
<link rel="shortcut icon" href="__CDN__/assets/img/favicon.ico" />
|
||||
<!-- Loading Bootstrap -->
|
||||
<link href="__CDN__/assets/css/backend{$Think.config.app_debug?'':'.min'}.css?v={$Think.config.site.version}" rel="stylesheet">
|
||||
|
||||
{if $Think.config.fastadmin.adminskin}
|
||||
<link href="__CDN__/assets/css/skins/{$Think.config.fastadmin.adminskin}.css?v={$Think.config.site.version}" rel="stylesheet">
|
||||
{/if}
|
||||
|
||||
<!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="__CDN__/assets/js/html5shiv.js"></script>
|
||||
<script src="__CDN__/assets/js/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<script type="text/javascript">
|
||||
var require = {
|
||||
config: {$config|json_encode}
|
||||
};
|
||||
</script>
|
||||
1
application/admin/view/common/script.html
Normal file
1
application/admin/view/common/script.html
Normal file
@@ -0,0 +1 @@
|
||||
<script src="__CDN__/assets/js/require{$Think.config.app_debug?'':'.min'}.js" data-main="__CDN__/assets/js/require-backend{$Think.config.app_debug?'':'.min'}.js?v={$site.version|htmlentities}"></script>
|
||||
403
application/admin/view/dashboard/index.html
Normal file
403
application/admin/view/dashboard/index.html
Normal file
@@ -0,0 +1,403 @@
|
||||
<style type="text/css">
|
||||
.sm-st {
|
||||
background: #fff;
|
||||
padding: 20px;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.sm-st-icon {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
display: inline-block;
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
font-size: 30px;
|
||||
background: #eee;
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.sm-st-info {
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.sm-st-info span {
|
||||
display: block;
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.orange {
|
||||
background: #fa8564 !important;
|
||||
}
|
||||
|
||||
.tar {
|
||||
background: #45cf95 !important;
|
||||
}
|
||||
|
||||
.sm-st .green {
|
||||
background: #86ba41 !important;
|
||||
}
|
||||
|
||||
.pink {
|
||||
background: #AC75F0 !important;
|
||||
}
|
||||
|
||||
.yellow-b {
|
||||
background: #fdd752 !important;
|
||||
}
|
||||
|
||||
.stat-elem {
|
||||
|
||||
background-color: #fff;
|
||||
padding: 18px;
|
||||
border-radius: 40px;
|
||||
|
||||
}
|
||||
|
||||
.stat-info {
|
||||
text-align: center;
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
margin-top: -5px;
|
||||
padding: 8px;
|
||||
-webkit-box-shadow: 0 1px 0px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: 0 1px 0px rgba(0, 0, 0, 0.05);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.stat-icon {
|
||||
text-align: center;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.st-red {
|
||||
background-color: #F05050;
|
||||
}
|
||||
|
||||
.st-green {
|
||||
background-color: #27C24C;
|
||||
}
|
||||
|
||||
.st-violet {
|
||||
background-color: #7266ba;
|
||||
}
|
||||
|
||||
.st-blue {
|
||||
background-color: #23b7e5;
|
||||
}
|
||||
|
||||
.stats .stat-icon {
|
||||
color: #28bb9c;
|
||||
display: inline-block;
|
||||
font-size: 26px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 50px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.stat {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.stat .value {
|
||||
font-size: 20px;
|
||||
line-height: 24px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.stat .name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.stat.lg .value {
|
||||
font-size: 26px;
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
.stat-col {
|
||||
margin:0 0 10px 0;
|
||||
}
|
||||
.stat.lg .name {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.stat-col .progress {
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.stat-col .progress-bar {
|
||||
line-height: 2px;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 30px 0;
|
||||
}
|
||||
|
||||
|
||||
#statistics .panel {
|
||||
min-height: 150px;
|
||||
}
|
||||
|
||||
#statistics .panel h5 {
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null, false)}
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#one" data-toggle="tab">{:__('Dashboard')}</a></li>
|
||||
<li><a href="#two" data-toggle="tab">{:__('Custom')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-3 col-xs-6">
|
||||
<div class="sm-st clearfix">
|
||||
<span class="sm-st-icon st-red"><i class="fa fa-users"></i></span>
|
||||
<div class="sm-st-info">
|
||||
<span>{$totaluser}</span>
|
||||
{:__('Total user')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3 col-xs-6">
|
||||
<div class="sm-st clearfix">
|
||||
<span class="sm-st-icon st-violet"><i class="fa fa-magic"></i></span>
|
||||
<div class="sm-st-info">
|
||||
<span>{$totaladdon}</span>
|
||||
{:__('Total addon')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3 col-xs-6">
|
||||
<div class="sm-st clearfix">
|
||||
<span class="sm-st-icon st-blue"><i class="fa fa-leaf"></i></span>
|
||||
<div class="sm-st-info">
|
||||
<span>{$attachmentnums}</span>
|
||||
{:__('Total attachment')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3 col-xs-6">
|
||||
<div class="sm-st clearfix">
|
||||
<span class="sm-st-icon st-green"><i class="fa fa-user"></i></span>
|
||||
<div class="sm-st-info">
|
||||
<span>{$totaladmin}</span>
|
||||
{:__('Total admin')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div id="echart" class="btn-refresh" style="height:300px;width:100%;"></div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card sameheight-item stats">
|
||||
<div class="card-block">
|
||||
<div class="row row-sm stats-container">
|
||||
<div class="col-xs-6 stat-col">
|
||||
<div class="stat-icon"><i class="fa fa-rocket"></i></div>
|
||||
<div class="stat">
|
||||
<div class="value"> {$todayusersignup}</div>
|
||||
<div class="name"> {:__('Today user signup')}</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 stat-col">
|
||||
<div class="stat-icon"><i class="fa fa-vcard"></i></div>
|
||||
<div class="stat">
|
||||
<div class="value"> {$todayuserlogin}</div>
|
||||
<div class="name"> {:__('Today user login')}</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 stat-col">
|
||||
<div class="stat-icon"><i class="fa fa-calendar"></i></div>
|
||||
<div class="stat">
|
||||
<div class="value"> {$threednu}</div>
|
||||
<div class="name"> {:__('Three dnu')}</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 stat-col">
|
||||
<div class="stat-icon"><i class="fa fa-calendar-plus-o"></i></div>
|
||||
<div class="stat">
|
||||
<div class="value"> {$sevendnu}</div>
|
||||
<div class="name"> {:__('Seven dnu')}</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 stat-col">
|
||||
<div class="stat-icon"><i class="fa fa-user-circle"></i></div>
|
||||
<div class="stat">
|
||||
<div class="value"> {$sevendau}</div>
|
||||
<div class="name"> {:__('Seven dau')}</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 stat-col">
|
||||
<div class="stat-icon"><i class="fa fa-user-circle-o"></i></div>
|
||||
<div class="stat">
|
||||
<div class="value"> {$thirtydau}</div>
|
||||
<div class="name"> {:__('Thirty dau')}</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 20%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" style="margin-top:15px;" id="statistics">
|
||||
|
||||
<div class="col-lg-12">
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-3">
|
||||
<div class="panel bg-blue-gradient no-border">
|
||||
<div class="panel-body">
|
||||
<div class="panel-title">
|
||||
<span class="label label-primary pull-right">{:__('Real time')}</span>
|
||||
<h5>{:__('Working addon count')}</h5>
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="no-margins">{$totalworkingaddon}</h1>
|
||||
<div class="font-bold"><i class="fa fa-magic"></i>
|
||||
<small>{:__('Working addon count tips')}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-3">
|
||||
<div class="panel bg-teal-gradient no-border">
|
||||
<div class="panel-body">
|
||||
<div class="ibox-title">
|
||||
<span class="label label-primary pull-right">{:__('Real time')}</span>
|
||||
<h5>{:__('Database count')}</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h1 class="no-margins">{$dbtablenums}</h1>
|
||||
<div class="font-bold"><i class="fa fa-database"></i>
|
||||
<small>{:__('Database table nums')}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h1 class="no-margins">{$dbsize|format_bytes=###,'',0}</h1>
|
||||
<div class="font-bold"><i class="fa fa-filter"></i>
|
||||
<small>{:__('Database size')}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-md-3">
|
||||
<div class="panel bg-purple-gradient no-border">
|
||||
<div class="panel-body">
|
||||
<div class="ibox-title">
|
||||
<span class="label label-primary pull-right">{:__('Real time')}</span>
|
||||
<h5>{:__('Attachment count')}</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h1 class="no-margins">{$attachmentnums}</h1>
|
||||
<div class="font-bold"><i class="fa fa-files-o"></i>
|
||||
<small>{:__('Attachment nums')}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h1 class="no-margins">{$attachmentsize|format_bytes=###,'',0}</h1>
|
||||
<div class="font-bold"><i class="fa fa-filter"></i>
|
||||
<small>{:__('Attachment size')}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-3">
|
||||
<div class="panel bg-green-gradient no-border">
|
||||
<div class="panel-body">
|
||||
<div class="ibox-title">
|
||||
<span class="label label-primary pull-right">{:__('Real time')}</span>
|
||||
<h5>{:__('Picture count')}</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h1 class="no-margins">{$picturenums}</h1>
|
||||
<div class="font-bold"><i class="fa fa-picture-o"></i>
|
||||
<small>{:__('Picture nums')}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h1 class="no-margins">{$picturesize|format_bytes=###,'',0}</h1>
|
||||
<div class="font-bold"><i class="fa fa-filter"></i>
|
||||
<small>{:__('Picture size')}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="two">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
{:__('Custom zone')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
82
application/admin/view/general/area/add.html
Normal file
82
application/admin/view/general/area/add.html
Normal file
@@ -0,0 +1,82 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-pid" class="form-control" name="row[pid]" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Shortname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-shortname" class="form-control" name="row[shortname]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Mergename')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mergename" class="form-control" name="row[mergename]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Level')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-level" class="form-control" name="row[level]" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pinyin')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-pinyin" class="form-control" name="row[pinyin]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Code')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-code" class="form-control" name="row[code]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Zip')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-zip" class="form-control" name="row[zip]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('First')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-first" class="form-control" name="row[first]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Encoded')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-encoded" class="form-control" name="row[encoded]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Lng')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-lng" class="form-control" name="row[lng]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Lat')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-lat" class="form-control" name="row[lat]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
23
application/admin/view/general/area/edit.html
Normal file
23
application/admin/view/general/area/edit.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Encoded')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-encoded" class="form-control" name="row[encoded]" type="text" value="{$row.encoded|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
26
application/admin/view/general/area/index.html
Normal file
26
application/admin/view/general/area/index.html
Normal file
@@ -0,0 +1,26 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<!--<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('general/area/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('general/area/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!--<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('general/area/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('general/area/edit')}"
|
||||
data-operate-del="false"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
62
application/admin/view/general/attachment/add.html
Normal file
62
application/admin/view/general/attachment/add.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<form id="add-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action="">
|
||||
{if $config.upload.cdnurl}
|
||||
<div class="form-group">
|
||||
<label for="c-third" class="control-label col-xs-12 col-sm-2">{:__('Upload to third')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[third]" id="c-third" class="form-control"/>
|
||||
<ul class="row list-inline faupload-preview" id="p-third"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="c-third" class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div style="width:180px;display:inline-block;">
|
||||
<select name="category-third" id="category-third" class="form-control selectpicker">
|
||||
<option value="">{:__('Please select category')}</option>
|
||||
{foreach name="categoryList" id="item"}
|
||||
<option value="{$key}">{$item}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" id="faupload-third" class="btn btn-danger faupload" data-multiple="true" data-input-id="c-third" data-preview-id="p-third"><i class="fa fa-upload"></i> {:__("Upload to third")}</button>
|
||||
{if $config.upload.chunking}
|
||||
<button type="button" id="faupload-third-chunking" class="btn btn-danger faupload" data-chunking="true" data-maxsize="1gb" data-multiple="true" data-input-id="c-third" data-preview-id="p-third"><i class="fa fa-upload"></i> {:__("Upload to third by chunk")}</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="c-local" class="control-label col-xs-12 col-sm-2">{:__('Upload to local')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[local]" id="c-local" class="form-control"/>
|
||||
<ul class="row list-inline faupload-preview" id="p-local"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="c-local" class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div style="width:180px;display:inline-block;">
|
||||
<select name="category-local" id="category-local" class="form-control selectpicker">
|
||||
<option value="">{:__('Please select category')}</option>
|
||||
{foreach name="categoryList" id="item"}
|
||||
<option value="{$key}">{$item}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<button type="button" id="faupload-local" class="btn btn-primary faupload" data-input-id="c-local" data-multiple="true" data-preview-id="p-local" data-url="{:url('ajax/upload')}"><i class="fa fa-upload"></i> {:__("Upload to local")}</button>
|
||||
{if $config.upload.chunking}
|
||||
<button type="button" id="faupload-local-chunking" class="btn btn-primary faupload" data-chunking="true" data-maxsize="1gb" data-input-id="c-local" data-multiple="true" data-preview-id="p-local" data-url="{:url('ajax/upload')}"><i class="fa fa-upload"></i> {:__("Upload to local by chunk")}</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group hidden layer-footer">
|
||||
<div class="col-xs-2"></div>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
89
application/admin/view/general/attachment/edit.html
Normal file
89
application/admin/view/general/attachment/edit.html
Normal file
@@ -0,0 +1,89 @@
|
||||
|
||||
|
||||
<form id="edit-form" class="form-horizontal form-ajax" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="c-url" class="control-label col-xs-12 col-sm-2">{:__('Category')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<select name="row[category]" class="form-control">
|
||||
<option value="">{:__('Please select category')}</option>
|
||||
{foreach name="categoryList" id="item"}
|
||||
<option value="{$key}" {if $key==$row.category}selected{/if}>{$item}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-url" class="control-label col-xs-12 col-sm-2">{:__('Url')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[url]" value="{$row.url|htmlentities}" id="c-url" class="form-control" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-imagewidth" class="control-label col-xs-12 col-sm-2">{:__('Imagewidth')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[imagewidth]" value="{$row.imagewidth}" id="c-imagewidth" class="form-control" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-imageheight" class="control-label col-xs-12 col-sm-2">{:__('Imageheight')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[imageheight]" value="{$row.imageheight}" id="c-imageheight" class="form-control" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-imagetype" class="control-label col-xs-12 col-sm-2">{:__('Imagetype')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[imagetype]" value="{$row.imagetype|htmlentities}" id="c-imagetype" class="form-control" required />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-imageframes" class="control-label col-xs-12 col-sm-2">{:__('Imageframes')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="number" name="row[imageframes]" value="{$row.imageframes}" id="c-imageframes" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-filename" class="control-label col-xs-12 col-sm-2">{:__('Filename')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[filename]" value="{$row.filename|htmlentities}" id="c-filename" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-filesize" class="control-label col-xs-12 col-sm-2">{:__('Filesize')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="number" name="row[filesize]" value="{$row.filesize}" id="c-filesize" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-mimetype" class="control-label col-xs-12 col-sm-2">{:__('Mimetype')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[mimetype]" value="{$row.mimetype|htmlentities}" id="c-mimetype" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-extparam" class="control-label col-xs-12 col-sm-2">{:__('Extparam')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[extparam]" value="{$row.extparam|htmlentities}" id="c-extparam" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-uploadtime" class="control-label col-xs-12 col-sm-2">{:__('Uploadtime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="datetime" name="row[uploadtime]" value="{$row.uploadtime|datetime}" id="c-uploadtime" class="form-control datetimepicker" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-storage" class="control-label col-xs-12 col-sm-2">{:__('Storage')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" name="row[storage]" value="{$row.storage}" id="c-storage" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hide layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
53
application/admin/view/general/attachment/index.html
Normal file
53
application/admin/view/general/attachment/index.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs" data-field="category">
|
||||
<li class="active"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="categoryList" item="vo"}
|
||||
<li><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
<li class="pull-right dropdown filter-type">
|
||||
<a href="javascript:" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-filter"></i> {:__('Filter Type')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li class="active"><a href="javascript:" data-value="">{:__('All')}</a></li>
|
||||
{foreach name="mimetypeList" id="item"}
|
||||
<li><a href="javascript:" data-value="{$key}">{$item}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,add,edit,del')}
|
||||
<a class="btn btn-info btn-classify dropdown-toggle btn-disabled disabled {:$auth->check('general/attachment/edit')?'':'hide'}"><i class="fa fa-arrow-right"></i> {:__('Classify')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('general/attachment/edit')}"
|
||||
data-operate-del="{:$auth->check('general/attachment/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script id="typetpl" type="text/html">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<select name="category" class="form-control">
|
||||
<option value="">{:__('Please select category')}</option>
|
||||
{foreach name="categoryList" id="item"}
|
||||
<option value="{$key}">{$item}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
47
application/admin/view/general/attachment/select.html
Normal file
47
application/admin/view/general/attachment/select.html
Normal file
@@ -0,0 +1,47 @@
|
||||
<style>
|
||||
#one .commonsearch-table{
|
||||
padding-top:15px!important;
|
||||
}
|
||||
</style>
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs" data-field="category">
|
||||
<li class="active"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="categoryList" item="vo"}
|
||||
<li><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
{if stripos(request()->get('mimetype'),'image/')===false}
|
||||
<li class="pull-right dropdown filter-type">
|
||||
<a href="javascript:" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-filter"></i> {:__('Filter Type')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li class="active"><a href="javascript:" data-value="">{:__('All')}</a></li>
|
||||
{foreach name="mimetypeList" id="item"}
|
||||
<li><a href="javascript:" data-value="{$key}">{$item}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body no-padding">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh')}
|
||||
<span><button type="button" id="faupload-image" class="btn btn-success faupload" data-mimetype="{$mimetype|default=''|htmlentities}" data-multiple="true"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
{if request()->get('multiple') == 'true'}
|
||||
<a class="btn btn-danger btn-choose-multi"><i class="fa fa-check"></i> {:__('Choose')}</a>
|
||||
{/if}
|
||||
</div>
|
||||
<table id="table" class="table table-bordered table-hover table-nowrap" width="100%">
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
356
application/admin/view/general/config/index.html
Normal file
356
application/admin/view/general/config/index.html
Normal file
@@ -0,0 +1,356 @@
|
||||
<style type="text/css">
|
||||
@media (max-width: 375px) {
|
||||
.edit-form tr td input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.edit-form tr th:first-child, .edit-form tr td:first-child {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.edit-form tr th:nth-last-of-type(-n+2), .edit-form tr td:nth-last-of-type(-n+2) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.edit-form table > tbody > tr td a.btn-delcfg {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.edit-form table > tbody > tr:hover td a.btn-delcfg {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.edit-form table tr th:nth-last-child(-n + 2), .edit-form table tr td:nth-last-child(-n + 2) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.edit-form table tr td .msg-box {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="panel panel-default panel-intro">
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null, false)}
|
||||
<ul class="nav nav-tabs">
|
||||
{foreach $siteList as $index=>$vo}
|
||||
<li class="{$vo.active?'active':''}"><a href="#tab-{$vo.name}" data-toggle="tab">{:__($vo.title)}</a></li>
|
||||
{/foreach}
|
||||
{if $Think.config.app_debug}
|
||||
<li data-toggle="tooltip" title="{:__('Add new config')}">
|
||||
<a href="#addcfg" data-toggle="tab"><i class="fa fa-plus"></i></a>
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<!--@formatter:off-->
|
||||
{foreach $siteList as $index=>$vo}
|
||||
<div class="tab-pane fade {$vo.active ? 'active in' : ''}" id="tab-{$vo.name}">
|
||||
<div class="widget-body no-padding">
|
||||
<form id="{$vo.name}-form" class="edit-form form-horizontal" role="form" data-toggle="validator" method="POST" action="{:url('general.config/edit')}">
|
||||
{:token()}
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="15%">{:__('Title')}</th>
|
||||
<th width="68%">{:__('Value')}</th>
|
||||
{if $Think.config.app_debug}
|
||||
<th width="15%">{:__('Name')}</th>
|
||||
<th width="2%"></th>
|
||||
{/if}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $vo.list as $item}
|
||||
<tr data-favisible="{$item.visible|default=''|htmlentities}" data-name="{$item.name}" class="{if $item.visible??''}hidden{/if}">
|
||||
<td>{$item.title}</td>
|
||||
<td>
|
||||
<div class="row">
|
||||
<div class="col-sm-8 col-xs-12">
|
||||
{switch $item.type}
|
||||
{case string}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-tip="{$item.tip}"/>
|
||||
{/case}
|
||||
{case password}
|
||||
<input {$item.extend_html} type="password" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-tip="{$item.tip}"/>
|
||||
{/case}
|
||||
{case text}
|
||||
<textarea {$item.extend_html} name="row[{$item.name}]" class="form-control" data-rule="{$item.rule}" rows="5" data-tip="{$item.tip}">{$item.value|htmlentities}</textarea>
|
||||
{/case}
|
||||
{case editor}
|
||||
<textarea {$item.extend_html} name="row[{$item.name}]" id="editor-{$item.name}" class="form-control editor" data-rule="{$item.rule}" rows="5" data-tip="{$item.tip}">{$item.value|htmlentities}</textarea>
|
||||
{/case}
|
||||
{case array}
|
||||
<dl {$item.extend_html} class="fieldlist" data-name="row[{$item.name}]">
|
||||
<dd>
|
||||
<ins>{:isset($item["setting"]["key"])&&$item["setting"]["key"]?$item["setting"]["key"]:__('Array key')}</ins>
|
||||
<ins>{:isset($item["setting"]["value"])&&$item["setting"]["value"]?$item["setting"]["value"]:__('Array value')}</ins>
|
||||
</dd>
|
||||
<dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
|
||||
<textarea name="row[{$item.name}]" class="form-control hide" cols="30" rows="5">{$item.value|htmlentities}</textarea>
|
||||
</dl>
|
||||
{/case}
|
||||
{case date}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case time}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case datetime}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case datetimerange}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimerange" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case number}
|
||||
<input {$item.extend_html} type="number" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case checkbox}
|
||||
<div class="checkbox">
|
||||
{foreach name="item.content" item="vo"}
|
||||
<label for="row[{$item.name}][]-{$key}"><input id="row[{$item.name}][]-{$key}" name="row[{$item.name}][]" type="checkbox" value="{$key}" data-tip="{$item.tip}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/case}
|
||||
{case radio}
|
||||
<div class="radio">
|
||||
{foreach name="item.content" item="vo"}
|
||||
<label for="row[{$item.name}]-{$key}"><input id="row[{$item.name}]-{$key}" name="row[{$item.name}]" type="radio" value="{$key}" data-tip="{$item.tip}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/case}
|
||||
{case value="select" break="0"}{/case}
|
||||
{case value="selects"}
|
||||
<select {$item.extend_html} name="row[{$item.name}]{$item.type=='selects'?'[]':''}" class="form-control selectpicker" data-tip="{$item.tip}" {$item.type=='selects'?'multiple':''}>
|
||||
{foreach name="item.content" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$item.value" }selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
{/case}
|
||||
{case value="image" break="0"}{/case}
|
||||
{case value="images"}
|
||||
<div class="form-inline">
|
||||
<input id="c-{$item.name}" class="form-control" size="50" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-tip="{$item.tip}">
|
||||
<span><button type="button" id="faupload-{$item.name}" class="btn btn-danger faupload" data-input-id="c-{$item.name}" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="{$item.type=='image'?'false':'true'}" data-preview-id="p-{$item.name}"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-mimetype="image/*" data-multiple="{$item.type=='image'?'false':'true'}"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
<span class="msg-box n-right" for="c-{$item.name}"></span>
|
||||
<ul class="row list-inline faupload-preview" id="p-{$item.name}"></ul>
|
||||
</div>
|
||||
{/case}
|
||||
{case value="file" break="0"}{/case}
|
||||
{case value="files"}
|
||||
<div class="form-inline">
|
||||
<input id="c-{$item.name}" class="form-control" size="50" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-tip="{$item.tip}">
|
||||
<span><button type="button" id="faupload-{$item.name}" class="btn btn-danger faupload" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
<span class="msg-box n-right" for="c-{$item.name}"></span>
|
||||
</div>
|
||||
{/case}
|
||||
{case switch}
|
||||
<input id="c-{$item.name}" name="row[{$item.name}]" type="hidden" value="{:$item.value?1:0}">
|
||||
<a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-{$item.name}" data-yes="1" data-no="0">
|
||||
<i class="fa fa-toggle-on text-success {if !$item.value}fa-flip-horizontal text-gray{/if} fa-2x"></i>
|
||||
</a>
|
||||
{/case}
|
||||
{case bool}
|
||||
<label for="row[{$item.name}]-yes"><input id="row[{$item.name}]-yes" name="row[{$item.name}]" type="radio" value="1" {$item.value?'checked':''} data-tip="{$item.tip}" /> {:__('Yes')}</label>
|
||||
<label for="row[{$item.name}]-no"><input id="row[{$item.name}]-no" name="row[{$item.name}]" type="radio" value="0" {$item.value?'':'checked'} data-tip="{$item.tip}" /> {:__('No')}</label>
|
||||
{/case}
|
||||
{case city}
|
||||
<div style="position:relative">
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control" data-toggle="city-picker" data-tip="{$item.tip}" data-rule="{$item.rule}" />
|
||||
</div>
|
||||
{/case}
|
||||
{case value="selectpage" break="0"}{/case}
|
||||
{case value="selectpages"}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control selectpage" data-source="{:url('general.config/selectpage')}?id={$item.id}" data-primary-key="{$item.setting.primarykey}" data-field="{$item.setting.field}" data-multiple="{$item.type=='selectpage'?'false':'true'}" data-tip="{$item.tip}" data-rule="{$item.rule}" />
|
||||
{/case}
|
||||
{case custom}
|
||||
{$item.extend_html}
|
||||
{/case}
|
||||
{/switch}
|
||||
</div>
|
||||
<div class="col-sm-4"></div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
{if $Think.config.app_debug}
|
||||
<td>{php}echo "{\$site.". $item['name'] . "}";{/php}</td>
|
||||
<td>{if $item['id']>18}<a href="javascript:;" class="btn-delcfg text-muted" data-name="{$item.name}"><i class="fa fa-times"></i></a>{/if}</td>
|
||||
{/if}
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div class="layer-footer">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</td>
|
||||
{if $Think.config.app_debug}
|
||||
<td></td>
|
||||
<td></td>
|
||||
{/if}
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
<div class="tab-pane fade" id="addcfg">
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="{:url('general.config/add')}">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<select name="row[group]" class="form-control selectpicker">
|
||||
{foreach name="groupList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="basic" }selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<select name="row[type]" id="c-type" class="form-control selectpicker">
|
||||
{foreach name="typeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="string" }selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="name" name="row[name]" value="" data-rule="required; length(3~30); remote(general/config/check)"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="title" class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="title" name="row[title]" value="" data-rule="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden tf tf-selectpage tf-selectpages">
|
||||
<label for="c-selectpage-table" class="control-label col-xs-12 col-sm-2">{:__('Selectpage table')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<select id="c-selectpage-table" name="row[setting][table]" class="form-control selectpicker" data-live-search="true">
|
||||
<option value="">{:__('Please select table')}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden tf tf-selectpage tf-selectpages">
|
||||
<label for="c-selectpage-primarykey" class="control-label col-xs-12 col-sm-2">{:__('Selectpage primarykey')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<select name="row[setting][primarykey]" class="form-control selectpicker" id="c-selectpage-primarykey"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden tf tf-selectpage tf-selectpages">
|
||||
<label for="c-selectpage-field" class="control-label col-xs-12 col-sm-2">{:__('Selectpage field')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<select name="row[setting][field]" class="form-control selectpicker" id="c-selectpage-field"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden tf tf-selectpage tf-selectpages">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Selectpage conditions')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<dl class="fieldlist" data-name="row[setting][conditions]">
|
||||
<dd>
|
||||
<ins>{:__('Field title')}</ins>
|
||||
<ins>{:__('Field value')}</ins>
|
||||
</dd>
|
||||
|
||||
<dd><a href="javascript:;" class="append btn btn-sm btn-success"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
|
||||
<textarea name="row[setting][conditions]" class="form-control hide" cols="30" rows="5"></textarea>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden tf tf-array">
|
||||
<label for="c-array-key" class="control-label col-xs-12 col-sm-2">{:__('Array key')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" name="row[setting][key]" class="form-control" id="c-array-key">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden tf tf-array">
|
||||
<label for="c-array-value" class="control-label col-xs-12 col-sm-2">{:__('Array value')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" name="row[setting][value]" class="form-control" id="c-array-value">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="value" class="control-label col-xs-12 col-sm-2">{:__('Value')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="value" name="row[value]" value="" data-rule=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hide" id="add-content-container">
|
||||
<label for="content" class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<textarea name="row[content]" id="content" cols="30" rows="5" class="form-control" data-rule="required(content)">value1|title1
|
||||
value2|title2</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tip" class="control-label col-xs-12 col-sm-2">{:__('Tip')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="tip" name="row[tip]" value="" data-rule=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="rule" class="control-label col-xs-12 col-sm-2">{:__('Rule')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="input-group pull-left">
|
||||
<input type="text" class="form-control" id="rule" name="row[rule]" value="" data-tip="{:__('Rule tips')}"/>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown" type="button">{:__('Choose')}</button>
|
||||
<ul class="dropdown-menu pull-right rulelist">
|
||||
{volist name="ruleList" id="item"}
|
||||
<li><a href="javascript:;" data-value="{$key}">{$item}<span class="text-muted">({$key})</span></a></li>
|
||||
{/volist}
|
||||
</ul>
|
||||
</span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="rule"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="visible" class="control-label col-xs-12 col-sm-2">{:__('Visible condition')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="visible" name="row[visible]" value="" data-rule=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="extend" class="control-label col-xs-12 col-sm-2">{:__('Extend')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<textarea name="row[extend]" id="extend" cols="30" rows="5" class="form-control" data-tip="{:__('Extend tips')}" data-rule="required(extend)" data-msg-extend="当类型为自定义时,扩展属性不能为空"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{if !$Think.config.app_debug}
|
||||
<button type="button" class="btn btn-primary disabled">{:__('Only work at development environment')}</button>
|
||||
{else/}
|
||||
<button type="submit" class="btn btn-primary btn-embossed">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<!--@formatter:on-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
44
application/admin/view/general/grade/add.html
Normal file
44
application/admin/view/general/grade/add.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if $isSuperAdmin}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":4}' class="form-control selectpage" name="row[group_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
{else/}
|
||||
<input type="hidden" name="row[group_id]" value="{$group_id}">
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Grade')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-grade" data-rule="required" class="form-control" name="row[grade]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Class')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-class" data-rule="required" class="form-control" name="row[class]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="normal"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
44
application/admin/view/general/grade/edit.html
Normal file
44
application/admin/view/general/grade/edit.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if $isSuperAdmin}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":4}' class="form-control selectpage" name="row[group_id]" type="text" value="{$row.group_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
{else/}
|
||||
<input type="hidden" name="row[group_id]" value="{$row.group_id}">
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Grade')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-grade" data-rule="required" class="form-control" name="row[grade]" type="text" value="{$row.grade|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Class')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-class" data-rule="required" class="form-control" name="row[class]" type="text" value="{$row.class|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
35
application/admin/view/general/grade/index.html
Normal file
35
application/admin/view/general/grade/index.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('general/grade/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('general/grade/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('general/grade/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('general/grade/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('general/grade/edit')}"
|
||||
data-operate-del="{:$auth->check('general/grade/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
52
application/admin/view/general/identifier/add.html
Normal file
52
application/admin/view/general/identifier/add.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":4}' class="form-control selectpage" name="row[group_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">编号前缀:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-prefix" data-rule="required;letters;length(2~3);" class="form-control" name="row[prefix]" type="text" value="" placeholder="前缀(2~3个大写英文)">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">编号长度:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-length" data-rule="required;integer(+)" class="form-control" name="row[length]" type="number" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">初始数字:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-first" data-rule="required;integer(+)" class="form-control" name="row[first]" type="number" value="1">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">生成数量:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-number" data-rule="required;integer(+)" class="form-control" name="row[number]" type="number" value="">
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="normal"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
35
application/admin/view/general/identifier/edit.html
Normal file
35
application/admin/view/general/identifier/edit.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<input type="hidden" name="row[id]" value="{$row.id}">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":4}' class="form-control selectpage" name="row[group_id]" type="text" value="{$row.group_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Identifier')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-identifier" class="form-control" name="row[identifier]" type="text" value="{$row.identifier|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
45
application/admin/view/general/identifier/index.html
Normal file
45
application/admin/view/general/identifier/index.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<!--<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs" data-field="status">
|
||||
<li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>-->
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('general/identifier/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('general/identifier/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('general/identifier/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('general/identifier/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('general/identifier/edit')}"
|
||||
data-operate-del="{:$auth->check('general/identifier/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
118
application/admin/view/general/profile/index.html
Normal file
118
application/admin/view/general/profile/index.html
Normal file
@@ -0,0 +1,118 @@
|
||||
<style>
|
||||
.profile-avatar-container {
|
||||
position: relative;
|
||||
width: 100px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.profile-avatar-container .profile-user-img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.profile-avatar-container .profile-avatar-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.profile-avatar-container:hover .profile-avatar-text {
|
||||
display: block;
|
||||
position: absolute;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
background: #444;
|
||||
opacity: .6;
|
||||
color: #fff;
|
||||
top: 0;
|
||||
left: 0;
|
||||
line-height: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.profile-avatar-container button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
opacity: 0;
|
||||
}
|
||||
</style>
|
||||
<div class="row animated fadeInRight">
|
||||
<div class="col-md-4">
|
||||
<div class="box box-primary">
|
||||
<div class="panel-heading">
|
||||
{:__('Profile')}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
<form id="update-form" role="form" data-toggle="validator" method="POST" action="{:url('general.profile/update')}">
|
||||
{:token()}
|
||||
<input type="hidden" id="c-avatar" name="row[avatar]" value="{$admin.avatar|htmlentities}"/>
|
||||
<div class="box-body box-profile">
|
||||
|
||||
<div class="profile-avatar-container">
|
||||
<img class="profile-user-img img-responsive img-circle" src="{$admin.avatar|cdnurl|htmlentities}" alt="">
|
||||
<div class="profile-avatar-text img-circle">{:__('Click to edit')}</div>
|
||||
<button type="button" id="faupload-avatar" class="faupload" data-input-id="c-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button>
|
||||
</div>
|
||||
|
||||
<h3 class="profile-username text-center">{$admin.nickname|htmlentities}</h3>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="username" class="control-label">{:__('Username')}:</label>
|
||||
<input type="text" class="form-control" id="username" name="row[username]" value="{$admin.username|htmlentities}" disabled/>
|
||||
</div>
|
||||
<!--<div class="form-group">
|
||||
<label for="mobile" class="control-label">{:__('Mobile')}:</label>
|
||||
<input type="text" class="form-control" id="mobile" name="row[mobile]" value="{$admin.mobile|htmlentities}" disabled/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email" class="control-label">{:__('Email')}:</label>
|
||||
<input type="text" class="form-control" id="email" name="row[email]" value="{$admin.email|htmlentities}" data-rule="required;email"/>
|
||||
</div>-->
|
||||
<div class="form-group">
|
||||
<label for="nickname" class="control-label">{:__('Nickname')}:</label>
|
||||
<input type="text" class="form-control" id="nickname" name="row[nickname]" value="{$admin.nickname|htmlentities}" data-rule="required"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password" class="control-label">{:__('Password')}:</label>
|
||||
<input type="password" class="form-control" id="password" placeholder="{:__('Leave password blank if dont want to change')}" autocomplete="new-password" name="row[password]" value="" data-rule="password"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">{:__('Submit')}</button>
|
||||
<button type="reset" class="btn btn-default">{:__('Reset')}</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="panel panel-default panel-intro panel-nav">
|
||||
<div class="panel-heading">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#one" data-toggle="tab"><i class="fa fa-list"></i> {:__('Admin log')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh')}
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap" width="100%">
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
57
application/admin/view/general/shiyou/add.html
Normal file
57
application/admin/view/general/shiyou/add.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if $isSuperAdmin}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<!--<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage?isTree=1&isHtml=1" class="form-control selectpage" name="row[group_id]" type="text" value="">-->
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":3}' class="form-control selectpage" name="row[group_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
{else/}
|
||||
<input type="hidden" name="row[group_id]" value="{$group_id}">
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mobile" data-rule="required;mobile" class="form-control" name="row[mobile]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-password" type="password" class="form-control" name="row[password]" autocomplete="new-password" value="" data-rule="required;password" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Gender')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[gender]', ['1'=>__('Male'), '0'=>__('Female')], 0)}
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="normal"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
57
application/admin/view/general/shiyou/edit.html
Normal file
57
application/admin/view/general/shiyou/edit.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if $isSuperAdmin}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<!--<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage?isTree=1&isHtml=1" class="form-control selectpage" name="row[group_id]" type="text" value="{$row.group_id|htmlentities}">-->
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":3}' class="form-control selectpage" name="row[group_id]" type="text" value="{$row.group_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
{else/}
|
||||
<input type="hidden" name="row[group_id]" value="{$row.group_id}">
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mobile" data-rule="required;mobile" class="form-control" name="row[mobile]" type="text" value="{$row.mobile|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-password" type="password" class="form-control" name="row[password]" autocomplete="new-password" value="" data-rule="password" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Gender')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[gender]', ['1'=>__('Male'), '0'=>__('Female')], $row['gender'])}
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
36
application/admin/view/general/shiyou/index.html
Normal file
36
application/admin/view/general/shiyou/index.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('general/shiyou/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('general/shiyou/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('general/shiyou/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('general/shiyou/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('general/shiyou/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('general/shiyou/edit')}"
|
||||
data-operate-del="{:$auth->check('general/shiyou/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
113
application/admin/view/general/student/add.html
Normal file
113
application/admin/view/general/student/add.html
Normal file
@@ -0,0 +1,113 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if $isSuperAdmin}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":4}' class="form-control selectpage" name="row[group_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
{else/}
|
||||
<input type="hidden" name="row[group_id]" value="{$group_id}">
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Grade.name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-grade_id" data-rule="required" min="0" data-source="general/grade/selectpage" data-params='{"orderBy[1]":["class","ASC"]}' data-order-by="grade" class="form-control selectpage" name="row[grade_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Identifier')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-identifier" data-rule="required" class="form-control" name="row[identifier]" type="text" value="">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><a type="button" class="btn btn-primary btn-refresh disabled"><i class="fa fa-refresh"></i></a></span>
|
||||
</div>
|
||||
</div>
|
||||
<!--<input id="c-identifier" data-rule="required" data-source="general/identifier/index" data-field="identifier" data-primary-key="identifier" data-params='{"custom[status]":"normal"}' class="form-control selectpage" name="row[identifier]" type="text" value="">-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mobile" data-rule="required;mobile" class="form-control" name="row[mobile]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-password" type="password" class="form-control" name="row[password]" autocomplete="new-password" value="" data-rule="required;password" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-avatar" class="form-control" size="50" name="row[avatar]" type="text" value="">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-avatar" class="btn btn-danger faupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-avatar"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-avatar"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Gender')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[gender]', ['1'=>__('Male'), '0'=>__('Female')], 0)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Birthday')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-birthday" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-date-min-date="{:date('Y-m-d',strtotime('-14 years'))}" data-date-max-date="now" name="row[birthday]" type="text" value="{:date('Y-m-d')}">
|
||||
<!--<input id="c-birthday" data-rule="required;integer(+);range(5~17)" class="form-control" name="row[birthday]" type="number" value="">-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Age')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-age" class="form-control " name="row[age]" type="text" value="0" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[type]', $typeList, null, ['id'=>'c-type','class'=>'form-control', 'required'=>'', 'readonly'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Disabled')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[disabled]', ['1'=>__('Yes'), '0'=>__('No')], 0)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="normal"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
108
application/admin/view/general/student/edit.html
Normal file
108
application/admin/view/general/student/edit.html
Normal file
@@ -0,0 +1,108 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if $isSuperAdmin}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Group_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-group_id" data-rule="required" min="0" data-source="auth/group/selectpage" data-params='{"custom[level]":4}' class="form-control selectpage" name="row[group_id]" type="text" value="{$row.group_id|htmlentities}" disabled>
|
||||
<!--<input id="c-group_id" data-rule="required" class="form-control" name="row[group_id]" type="text" value="{$row.group_id|htmlentities}" disabled>-->
|
||||
</div>
|
||||
</div>
|
||||
{else/}
|
||||
<input type="hidden" name="row[group_id]" value="{$row.group_id}">
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Grade.name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-grade_id" data-rule="required" min="0" data-source="general/grade/selectpage" data-params='{"orderBy[1]":["class","ASC"]}' data-order-by="grade" class="form-control selectpage" name="row[grade_id]" type="text" value="{$row.grade_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Identifier')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-identifier" data-rule="required" class="form-control" name="row[identifier]" type="text" value="{$row.identifier|htmlentities}" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-mobile" data-rule="required;mobile" class="form-control" name="row[mobile]" type="text" value="{$row.mobile|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-password" type="password" class="form-control" name="row[password]" autocomplete="new-password" value="" data-rule="password" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-avatar" class="form-control" size="50" name="row[avatar]" type="text" value="{$row.avatar|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-avatar" class="btn btn-danger faupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-avatar"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-avatar"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Gender')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[gender]', ['1'=>__('Male'), '0'=>__('Female')], $row['gender'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Birthday')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-birthday" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-date-min-date="{:date('Y-m-d',strtotime('-14 years'))}" data-date-max-date="now" name="row[birthday]" type="text" value="{$row.birthday}">
|
||||
<!--<input id="c-birthday" data-rule="required;integer(+);range(5~17)" class="form-control" name="row[birthday]" type="number" value="{$row.birthday}">-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Age')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-age" class="form-control " name="row[age]" type="text" value="{$row.age|htmlentities}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[type]', $typeList, $row['type'], ['id'=>'c-type','class'=>'form-control', 'required'=>'', 'readonly'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Disabled')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[disabled]', ['1'=>__('Yes'), '0'=>__('No')], $row['disabled'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
35
application/admin/view/general/student/index.html
Normal file
35
application/admin/view/general/student/index.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('general/student/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('general/student/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('general/student/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('general/student/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('general/student/edit')}"
|
||||
data-operate-del="{:$auth->check('general/student/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
53
application/admin/view/index/forgot_password.html
Normal file
53
application/admin/view/index/forgot_password.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
<meta content="telephone=no" name="format-detection" />
|
||||
<meta name="renderer" content="webkit">
|
||||
<title>登录</title>
|
||||
<meta name="keywords" content=""/>
|
||||
<meta name="description" content=""/>
|
||||
{include file="common/meta" /}
|
||||
<link rel="stylesheet" href="__CDN__/assets/css/jquery-weui.min.css" />
|
||||
<link rel="stylesheet" href="__CDN__/assets/css/reset.css" />
|
||||
<link rel="stylesheet" href="__CDN__/assets/css/style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="login_bg">
|
||||
<div class="clearfix">
|
||||
<div class="w50">
|
||||
<div class="login_main">
|
||||
<p class="title">和平海报</p>
|
||||
<p class="small_title">数据管理工作台 <span>Management System</span></p>
|
||||
<form action="" method="post" id="login-form">
|
||||
<div id="errtips" class="hide"></div>
|
||||
<div class="login_part">
|
||||
<p class="name">{:__('Forgot Password')}</p>
|
||||
{:token()}
|
||||
<div class="item m-list-flex">
|
||||
<input type="text" placeholder="账号" maxlength="11" id="mobile" name="mobile" value="" autocomplete="off" data-rule="{:__('Mobile')}:required;mobile">
|
||||
</div>
|
||||
<div class="item m-list-flex">
|
||||
<input type="password" placeholder="新密码" name="password" value="" autocomplete="off" data-rule="{:__('Password')}:required;password">
|
||||
</div>
|
||||
<div class="item m-list-flex">
|
||||
<input type="text" class="m-cell-bd" placeholder="验证码" value="" maxlength="6" name="code">
|
||||
<a href="javascript:;" class="send send_code">获取验证码</a>
|
||||
<a href="javascript:;" class="send code_number" style="display: none">60s</a>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn" style="padding: 0;">{:__('Reset Password')}</button>
|
||||
<p class="tip"><span class="return_login">返回登录</span></p>
|
||||
</div>
|
||||
</form>
|
||||
<p class="business">域展科技</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="common/script" /}
|
||||
</body>
|
||||
</html>
|
||||
56
application/admin/view/index/index.html
Normal file
56
application/admin/view/index/index.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<!-- 加载样式及META信息 -->
|
||||
{include file="common/meta" /}
|
||||
</head>
|
||||
<body class="hold-transition {$Think.config.fastadmin.adminskin|default='skin-black-blue'} sidebar-mini {:$Think.cookie.sidebar_collapse?'sidebar-collapse':''} fixed {:$Think.config.fastadmin.multipletab?'multipletab':''} {:$Think.config.fastadmin.multiplenav?'multiplenav':''}" id="tabs">
|
||||
|
||||
<div class="wrapper">
|
||||
|
||||
<!-- 头部区域 -->
|
||||
<header id="header" class="main-header">
|
||||
{if preg_match('/\/admin\/|\/admin\.php|\/admin_d75KABNWt\.php/i', url())}
|
||||
<div class="alert alert-danger-light text-center" style="margin-bottom:0;border:none;">
|
||||
{:__('Security tips')}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{include file='common/header' /}
|
||||
</header>
|
||||
|
||||
<!-- 左侧菜单栏 -->
|
||||
<aside class="main-sidebar">
|
||||
{include file='common/menu' /}
|
||||
</aside>
|
||||
|
||||
<!-- 主体内容区域 -->
|
||||
<div class="content-wrapper tab-content tab-addtabs">
|
||||
{if $fixedmenu}
|
||||
<div role="tabpanel" class="tab-pane {:$referermenu?'':'active'}" id="con_{$fixedmenu.id}">
|
||||
<iframe src="{$fixedmenu.url}?addtabs=1" width="100%" height="100%" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling-x="no" scrolling-y="auto" allowtransparency="yes"></iframe>
|
||||
</div>
|
||||
{/if}
|
||||
{if $referermenu}
|
||||
<div role="tabpanel" class="tab-pane active" id="con_{$referermenu.id}">
|
||||
<iframe src="{$referermenu.url}?addtabs=1" width="100%" height="100%" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling-x="no" scrolling-y="auto" allowtransparency="yes"></iframe>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- 底部链接,默认隐藏 -->
|
||||
<footer class="main-footer hide">
|
||||
<div class="pull-right hidden-xs">
|
||||
</div>
|
||||
<strong>Copyright © 2017-{:date("Y")} <a href="__PUBLIC__">{$site.name}</a>.</strong> All rights reserved.
|
||||
</footer>
|
||||
|
||||
<!-- 右侧控制栏 -->
|
||||
<div class="control-sidebar-bg"></div>
|
||||
{include file="common/control" /}
|
||||
</div>
|
||||
|
||||
<!-- 加载JS脚本 -->
|
||||
{include file="common/script" /}
|
||||
</body>
|
||||
</html>
|
||||
48
application/admin/view/index/login.html
Normal file
48
application/admin/view/index/login.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
<meta content="telephone=no" name="format-detection" />
|
||||
<meta name="renderer" content="webkit">
|
||||
<title>登录</title>
|
||||
<meta name="keywords" content=""/>
|
||||
<meta name="description" content=""/>
|
||||
{include file="common/meta" /}
|
||||
<link rel="stylesheet" href="__CDN__/assets/css/jquery-weui.min.css" />
|
||||
<link rel="stylesheet" href="__CDN__/assets/css/reset.css" />
|
||||
<link rel="stylesheet" href="__CDN__/assets/css/style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="login_bg">
|
||||
<div class="clearfix">
|
||||
<div class="w50">
|
||||
<div class="login_main">
|
||||
<p class="title">和平海报</p>
|
||||
<p class="small_title">数据管理工作台 <span>Management System</span></p>
|
||||
<form action="" method="post" id="login-form">
|
||||
<div id="errtips" class="hide"></div>
|
||||
<div class="login_part">
|
||||
<p class="name">企业客户登录</p>
|
||||
{:token()}
|
||||
<div class="item m-list-flex">
|
||||
<input type="text" placeholder="账号" maxlength="11" name="mobile" value="" autocomplete="off" data-rule="{:__('Mobile')}:required;mobile">
|
||||
</div>
|
||||
<div class="item m-list-flex">
|
||||
<input type="password" placeholder="密码" name="password" value="" autocomplete="off" data-rule="{:__('Password')}:required;password">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn" style="padding: 0;">{:__('Sign in')}</button>
|
||||
<p class="tip">注:输入十次密码错误将被锁定 <span class="forgot_password">忘记密码</span></p>
|
||||
</div>
|
||||
</form>
|
||||
<p class="business">域展科技</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="common/script" /}
|
||||
</body>
|
||||
</html>
|
||||
45
application/admin/view/layout/default.html
Normal file
45
application/admin/view/layout/default.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
{include file="common/meta" /}
|
||||
</head>
|
||||
|
||||
<body class="inside-header inside-aside {:defined('IS_DIALOG') && IS_DIALOG ? 'is-dialog' : ''}">
|
||||
<div id="main" role="main">
|
||||
<div class="tab-content tab-addtabs">
|
||||
<div id="content">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<section class="content-header hide">
|
||||
<h1>
|
||||
{:__('Dashboard')}
|
||||
<small>{:__('Control panel')}</small>
|
||||
</h1>
|
||||
</section>
|
||||
{if !IS_DIALOG && !$Think.config.fastadmin.multiplenav && $Think.config.fastadmin.breadcrumb}
|
||||
<!-- RIBBON -->
|
||||
<div id="ribbon">
|
||||
<ol class="breadcrumb pull-left">
|
||||
{if condition="$auth->check('dashboard')"}
|
||||
<li><a href="dashboard" class="addtabsit"><i class="fa fa-dashboard"></i> {:__('Dashboard')}</a></li>
|
||||
{/if}
|
||||
</ol>
|
||||
<ol class="breadcrumb pull-right">
|
||||
{foreach $breadcrumb as $vo}
|
||||
<li><a href="javascript:;" data-url="{$vo.url}">{$vo.title}</a></li>
|
||||
{/foreach}
|
||||
</ol>
|
||||
</div>
|
||||
<!-- END RIBBON -->
|
||||
{/if}
|
||||
<div class="content">
|
||||
{__CONTENT__}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="common/script" /}
|
||||
</body>
|
||||
</html>
|
||||
41
application/admin/view/user/group/add.html
Normal file
41
application/admin/view/user/group/add.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<input type="hidden" name="row[rules]" />
|
||||
<div class="form-group">
|
||||
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Permission')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<span class="text-muted"><input type="checkbox" name="" id="checkall" /> <label for="checkall"><small>{:__('Check all')}</small></label></span>
|
||||
<span class="text-muted"><input type="checkbox" name="" id="expandall" /> <label for="expandall"><small>{:__('Expand all')}</small></label></span>
|
||||
|
||||
<div id="treeview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="normal"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
var nodeData = {:json_encode($nodeList); };
|
||||
</script>
|
||||
41
application/admin/view/user/group/edit.html
Normal file
41
application/admin/view/user/group/edit.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<input type="hidden" name="row[rules]" value="{$row.rules}" />
|
||||
<div class="form-group">
|
||||
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Permission')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<span class="text-muted"><input type="checkbox" name="" id="checkall" /> <label for="checkall"><small>{:__('Check all')}</small></label></span>
|
||||
<span class="text-muted"><input type="checkbox" name="" id="expandall" /> <label for="expandall"><small>{:__('Expand all')}</small></label></span>
|
||||
|
||||
<div id="treeview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
var nodeData = {:json_encode($nodeList); };
|
||||
</script>
|
||||
28
application/admin/view/user/group/index.html
Normal file
28
application/admin/view/user/group/index.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,add,edit,del')}
|
||||
<div class="dropdown btn-group {:$auth->check('user/group/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user/group/edit')}"
|
||||
data-operate-del="{:$auth->check('user/group/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
53
application/admin/view/user/rule/add.html
Normal file
53
application/admin/view/user/rule/add.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Ismenu')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[ismenu]', ['1'=>__('Yes'), '0'=>__('No')])}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $ruledata, null, ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" data-placeholder-node="{:__('Node tips')}" data-placeholder-menu="{:__('Menu tips')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-title" class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" class="form-control" name="row[title]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="remark" name="row[remark]"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-weigh" class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
52
application/admin/view/user/rule/edit.html
Normal file
52
application/admin/view/user/rule/edit.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Ismenu')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[ismenu]', ['1'=>__('Yes'), '0'=>__('No')], $row['ismenu'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Parent')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $ruledata, $row['pid'], ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-name" class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" placeholder="{:__('Controller/Action')}" value="{$row.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-title" class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="remark" class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea class="form-control" id="remark" name="row[remark]">{$row.remark|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-weigh" class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="{$row.weigh}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
28
application/admin/view/user/rule/index.html
Normal file
28
application/admin/view/user/rule/index.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,add,edit,del')}
|
||||
<div class="dropdown btn-group {:$auth->check('user/rule/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user/rule/edit')}"
|
||||
data-operate-del="{:$auth->check('user/rule/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
151
application/admin/view/user/user/edit.html
Normal file
151
application/admin/view/user/user/edit.html
Normal file
@@ -0,0 +1,151 @@
|
||||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<input type="hidden" name="row[id]" value="{$row.id}">
|
||||
<div class="form-group">
|
||||
<label for="c-group_id" class="control-label col-xs-12 col-sm-2">{:__('Group')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{$groupList}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-username" class="control-label col-xs-12 col-sm-2">{:__('Username')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-username" data-rule="required" class="form-control" name="row[username]" type="text" value="{$row.username|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-nickname" class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-nickname" data-rule="required" class="form-control" name="row[nickname]" type="text" value="{$row.nickname|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-password" class="control-label col-xs-12 col-sm-2">{:__('Password')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-password" data-rule="password" class="form-control" name="row[password]" type="password" value="" placeholder="{:__('Leave password blank if dont want to change')}" autocomplete="new-password" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-email" class="control-label col-xs-12 col-sm-2">{:__('Email')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-email" data-rule="" class="form-control" name="row[email]" type="text" value="{$row.email|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-mobile" class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-mobile" data-rule="" class="form-control" name="row[mobile]" type="text" value="{$row.mobile|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-avatar" class="control-label col-xs-12 col-sm-2">{:__('Avatar')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-avatar" data-rule="" class="form-control" size="50" name="row[avatar]" type="text" value="{$row.avatar}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-avatar" class="btn btn-danger faupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-avatar"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-avatar"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-level" class="control-label col-xs-12 col-sm-2">{:__('Level')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-level" data-rule="required" class="form-control" name="row[level]" type="number" value="{$row.level}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-gender" class="control-label col-xs-12 col-sm-2">{:__('Gender')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[gender]', ['1'=>__('Male'), '0'=>__('Female')], $row['gender'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-birthday" class="control-label col-xs-12 col-sm-2">{:__('Birthday')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-birthday" data-rule="" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[birthday]" type="text" value="{$row.birthday}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-bio" class="control-label col-xs-12 col-sm-2">{:__('Bio')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-bio" data-rule="" class="form-control" name="row[bio]" type="text" value="{$row.bio|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-money" class="control-label col-xs-12 col-sm-2">{:__('Money')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-money" data-rule="required" class="form-control" name="row[money]" type="number" value="{$row.money}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-score" class="control-label col-xs-12 col-sm-2">{:__('Score')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-score" data-rule="required" class="form-control" name="row[score]" type="number" value="{$row.score}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-successions" class="control-label col-xs-12 col-sm-2">{:__('Successions')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-successions" data-rule="required" class="form-control" name="row[successions]" type="number" value="{$row.successions}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-maxsuccessions" class="control-label col-xs-12 col-sm-2">{:__('Maxsuccessions')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-maxsuccessions" data-rule="required" class="form-control" name="row[maxsuccessions]" type="number" value="{$row.maxsuccessions}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-prevtime" class="control-label col-xs-12 col-sm-2">{:__('Prevtime')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-prevtime" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[prevtime]" type="text" value="{$row.prevtime|datetime}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-logintime" class="control-label col-xs-12 col-sm-2">{:__('Logintime')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-logintime" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[logintime]" type="text" value="{$row.logintime|datetime}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-loginip" class="control-label col-xs-12 col-sm-2">{:__('Loginip')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-loginip" data-rule="required" class="form-control" name="row[loginip]" type="text" value="{$row.loginip}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-loginfailure" class="control-label col-xs-12 col-sm-2">{:__('Loginfailure')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-loginfailure" data-rule="required" class="form-control" name="row[loginfailure]" type="number" value="{$row.loginfailure}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-joinip" class="control-label col-xs-12 col-sm-2">{:__('Joinip')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-joinip" data-rule="required" class="form-control" name="row[joinip]" type="text" value="{$row.joinip}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-jointime" class="control-label col-xs-12 col-sm-2">{:__('Jointime')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input id="c-jointime" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[jointime]" type="text" value="{$row.jointime|datetime}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="content" class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('Hidden')], $row['status'])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
28
application/admin/view/user/user/index.html
Normal file
28
application/admin/view/user/user/index.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh,edit,del')}
|
||||
<div class="dropdown btn-group {:$auth->check('user/user/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user/user/edit')}"
|
||||
data-operate-del="{:$auth->check('user/user/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user