refactor, fix bug and update i18n(management), to be continue

This commit is contained in:
shiqstone
2021-04-21 12:22:34 +08:00
parent d9e2b0bc8b
commit cb70c35037
20 changed files with 690 additions and 462 deletions

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>附件管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.attachment_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet" type="text/css">
@@ -24,61 +24,61 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "attach"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">附件管理</strong>
<strong class="box-title">{{i18n .Lang "mgr.attachment_mgr"}}</strong>
</div>
</div>
<div class="box-body">
<form>
<div class="form-group">
<label>文件名称</label>
<input type="text" value="{{.Model.FileName}}" class="form-control input-readonly" readonly placeholder="文件名称">
<label>{{i18n .Lang "mgr.file_name"}}</label>
<input type="text" value="{{.Model.FileName}}" class="form-control input-readonly" readonly>
</div>
<div class="form-group">
<label>是否存在</label>
<label>{{i18n .Lang "mgr.is_exist"}}</label>
{{if .Model.IsExist }}
<input type="text" value="存在" class="form-control input-readonly" readonly placeholder="项目名称">
<input type="text" value="{{i18n .Lang "mgr.exist"}}" class="form-control input-readonly" readonly>
{{else}}
<input type="text" value="已删除" class="form-control input-readonly" readonly placeholder="项目名称">
<input type="text" value="{{i18n .Lang "mgr.deleted"}}" class="form-control input-readonly" readonly>
{{end}}
</div>
<div class="form-group">
<label>项目/文章名称</label>
<input type="text" value="{{.Model.BookName}}" class="form-control input-readonly" readonly placeholder="项目名称">
<label>{{i18n .Lang "mgr.proj_blog_name"}}</label>
<input type="text" value="{{.Model.BookName}}" class="form-control input-readonly" readonly>
</div>
{{if ne .Model.BookId 0}}
<div class="form-group">
<label>文档名称</label>
<input type="text" value="{{.Model.DocumentName}}" class="form-control input-readonly" readonly placeholder="文档名称">
<label>{{i18n .Lang "mgr.doc_name"}}</label>
<input type="text" value="{{.Model.DocumentName}}" class="form-control input-readonly" readonly>
</div>
{{end}}
<div class="form-group">
<label>文件路径</label>
<input type="text" value="{{.Model.FilePath}}" class="form-control input-readonly" readonly placeholder="文件路径">
<label>{{i18n .Lang "mgr.file_path"}}</label>
<input type="text" value="{{.Model.FilePath}}" class="form-control input-readonly" readonly>
</div>
<div class="form-group">
<label>下载路径</label>
<input type="text" value="{{.Model.HttpPath}}" class="form-control input-readonly" readonly placeholder="文件路径">
<label>{{i18n .Lang "mgr.download_path"}}</label>
<input type="text" value="{{.Model.HttpPath}}" class="form-control input-readonly" readonly>
</div>
<div class="form-group">
<label>文件大小</label>
<input type="text" value="{{.Model.FileShortSize}}" class="form-control input-readonly" readonly placeholder="文件路径">
<label>{{i18n .Lang "mgr.file_size"}}</label>
<input type="text" value="{{.Model.FileShortSize}}" class="form-control input-readonly" readonly>
</div>
<div class="form-group">
<label>上传时间</label>
<input type="text" value="{{date_format .Model.CreateTime "2006-01-02 15:04:05"}}" class="form-control input-readonly" readonly placeholder="文件路径">
<label>{{i18n .Lang "mgr.upload_time"}}</label>
<input type="text" value="{{date_format .Model.CreateTime "2006-01-02 15:04:05"}}" class="form-control input-readonly" readonly>
</div>
<div class="form-group">
<label>用户账号</label>
<input type="text" value="{{ .Model.Account }}" class="form-control input-readonly" readonly placeholder="文件路径">
<label>{{i18n .Lang "uc.account"}}</label>
<input type="text" value="{{ .Model.Account }}" class="form-control input-readonly" readonly>
</div>
<div class="form-group">
<a href="{{urlfor "ManagerController.AttachList" }}" class="btn btn-success btn-sm">返回</a>
<a href="{{urlfor "ManagerController.AttachList" }}" class="btn btn-success btn-sm">{{i18n .Lang "common.back"}}</a>
{{if .Model.IsExist }}
<a href="{{.Model.LocalHttpPath}}" class="btn btn-default btn-sm" target="_blank" title="下载到本地">下载</a>
<a href="{{.Model.LocalHttpPath}}" class="btn btn-default btn-sm" target="_blank" title="{{i18n .Lang "mgr.download_title"}}">{{i18n .Lang "mgr.download"}}</a>
{{end}}
</div>
</form>

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>附件管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.attachment_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet" type="text/css">
@@ -24,11 +24,11 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "attach"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">附件管理</strong>
<strong class="box-title">{{i18n .Lang "mgr.attachment_mgr"}}</strong>
</div>
</div>
<div class="box-body">
@@ -37,11 +37,11 @@
<thead>
<tr>
<th>#</th>
<th>附件名称</th>
<th>项目/文章名称</th>
<th>文件大小</th>
<th>是否存在</th>
<th>操作</th>
<th>{{i18n .Lang "mgr.attachment_name"}}</th>
<th>{{i18n .Lang "mgr.proj_blog_name"}}</th>
<th>{{i18n .Lang "mgr.file_size"}}</th>
<th>{{i18n .Lang "mgr.is_exist"}}</th>
<th>{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
@@ -51,15 +51,15 @@
<td>{{$item.FileName}}</td>
<td>{{$item.BookName}}</td>
<td>{{$item.FileShortSize}}</td>
<td>{{ if $item.IsExist }} {{else}}{{end}}</td>
<td>{{ if $item.IsExist }} {{i18n $.Lang "commont.yes"}}{{else}}{{i18n $.Lang "common.no"}}{{end}}</td>
<td>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" data-id="{{$item.AttachmentId}}" data-loading-text="删除中...">删除</button>
<a href="{{urlfor "ManagerController.AttachDetailed" ":id" $item.AttachmentId}}" class="btn btn-success btn-sm">详情</a>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" data-id="{{$item.AttachmentId}}" data-loading-text="{{i18n $.Lang "message.processing"}}">{{i18n $.Lang "common.delete"}}</button>
<a href="{{urlfor "ManagerController.AttachDetailed" ":id" $item.AttachmentId}}" class="btn btn-success btn-sm">{{i18n $.Lang "common.detail"}}</a>
</td>
</tr>
{{else}}
<tr><td class="text-center" colspan="6">暂无数据</td></tr>
<tr><td class="text-center" colspan="6">{{i18n .Lang "message.no_data"}}</td></tr>
{{end}}
</tbody>
</table>
@@ -97,7 +97,7 @@
}
},
error : function () {
layer.msg("服务器异常");
layer.msg({{i18n .Lang "message.system_error"}});
},
complete : function () {
$this.button("reset");

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>项目管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.project_mgrt"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet" type="text/css">
@@ -24,11 +24,11 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "books"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">项目列表</strong>
<strong class="box-title">{{i18n .Lang "mgr.proj_list"}}</strong>
</div>
</div>
<div class="box-body" id="bookList">
@@ -38,7 +38,7 @@
<div class="list-item">
<div class="book-title">
<div class="pull-left">
<a href="{{urlfor "ManagerController.EditBook" ":key" $item.Identify}}" title="编辑项目" data-toggle="tooltip">
<a href="{{urlfor "ManagerController.EditBook" ":key" $item.Identify}}" title="{{i18n .Lang "mgr.edit_proj"}}" data-toggle="tooltip">
{{if eq $item.PrivatelyOwned 0}}
<i class="fa fa-unlock" aria-hidden="true"></i>
{{else}}
@@ -49,16 +49,16 @@
</div>
<div class="pull-right">
<div class="btn-group">
<a href="{{urlfor "DocumentController.Edit" ":key" $item.Identify ":id" ""}}" class="btn btn-default" target="_blank">编辑</a>
<a href="{{urlfor "DocumentController.Edit" ":key" $item.Identify ":id" ""}}" class="btn btn-default" target="_blank">{{i18n $.Lang "common.edit"}}</a>
<a href="javascript:;" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</a>
<ul class="dropdown-menu">
<li><a href="{{urlfor "DocumentController.Index" ":key" $item.Identify}}" target="_blank">阅读</a></li>
<li><a href="{{urlfor "ManagerController.EditBook" ":key" $item.Identify}}">设置</a></li>
<li><a href="javascript:deleteBook('{{$item.BookId}}');">删除</a> </li>
<li><a href="{{urlfor "DocumentController.Index" ":key" $item.Identify}}" target="_blank">{{i18n $.Lang "common.read"}}</a></li>
<li><a href="{{urlfor "ManagerController.EditBook" ":key" $item.Identify}}">{{i18n $.Lang "common.setting"}}</a></li>
<li><a href="javascript:deleteBook('{{$item.BookId}}');">{{i18n $.Lang "common.delete"}}</a> </li>
</ul>
</div>
{{/*<a href="{{urlfor "DocumentController.Index" ":key" $item.Identify}}" title="查看文档" data-toggle="tooltip" target="_blank"><i class="fa fa-eye"></i> </a>*/}}
@@ -70,26 +70,26 @@
{{if eq $item.Description ""}}
&nbsp;
{{else}}
<a href="{{urlfor "ManagerController.EditBook" ":key" $item.Identify}}" title="编辑项目" style="font-size: 12px;" target="_blank">
<a href="{{urlfor "ManagerController.EditBook" ":key" $item.Identify}}" title="{{i18n .Lang "mgr.edit_proj"}}" style="font-size: 12px;" target="_blank">
{{$item.Description}}
</a>
{{end}}
</div>
<div class="info">
<span title="创建时间" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-clock-o"></i>
<span title="{{i18n $.Lang "mgr.create_time"}}" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-clock-o"></i>
{{date_format $item.CreateTime "2006-01-02 15:04:05"}}
</span>
<span title="创建者" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-user"></i> {{if eq $item.RealName "" }}{{$item.CreateName}}{{else}}{{$item.RealName}}{{end}}</span>
<span title="文档数量" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-pie-chart"></i> {{$item.DocCount}}</span>
<span title="{{i18n $.Lang "mgr.creator"}}" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-user"></i> {{if eq $item.RealName "" }}{{$item.CreateName}}{{else}}{{$item.RealName}}{{end}}</span>
<span title="{{i18n $.Lang "mgr.doc_amount"}}" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-pie-chart"></i> {{$item.DocCount}}</span>
{{if ne $item.LastModifyText ""}}
<span title="最后编辑" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-pencil"></i> 最后编辑: {{$item.LastModifyText}}</span>
<span title="{{i18n $.Lang "mgr.last_edit"}}" data-toggle="tooltip" data-placement="bottom"><i class="fa fa-pencil"></i> {{i18n .Lang "mgr.last_edit"}}: {{$item.LastModifyText}}</span>
{{end}}
</div>
</div>
{{else}}
<div class="text-center">暂无数据</div>
<div class="text-center">{{i18n .Lang "message.no_data"}}</div>
{{end}}
</div>
<nav class="pagination-container">
@@ -109,17 +109,17 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">删除项目</h4>
<h4 class="modal-title">{{i18n .Lang "mgr.delete_project"}}</h4>
</div>
<div class="modal-body">
<span style="font-size: 14px;font-weight: 400;">确定删除项目吗?</span>
<span style="font-size: 14px;font-weight: 400;">{{i18n .Lang "message.confirm_delete_project"}}</span>
<p></p>
<p class="text error-message">删除项目后将无法找回。</p>
<p class="text error-message">{{i18n .Lang "message.warning_delete_project"}}</p>
</div>
<div class="modal-footer">
<span id="form-error-message2" class="error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" id="btnDeleteBook" class="btn btn-primary" data-loading-text="删除中...">确定删除</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" id="btnDeleteBook" class="btn btn-primary" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.confirm"}}</button>
</div>
</div>
</form>
@@ -155,7 +155,7 @@
$("#btnDeleteBook").button("reset");
},
error : function () {
showError("服务器异常","#form-error-message2");
showError({{i18n .Lang "message.system_error"}},"#form-error-message2");
$("#btnDeleteBook").button("reset");
}
});

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>配置文件 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.config_file"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -18,11 +18,11 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "config"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title"> 配置管理</strong>
<strong class="box-title"> {{i18n .Lang "mgr.config_mgr"}}</strong>
</div>
</div>
<div class="box-body">
@@ -32,7 +32,7 @@
</div>
<div class="form-group">
<button type="submit" id="btnSaveConfigFile" class="btn btn-success" data-loading-text="保存中...">保存修改</button>
<button type="submit" id="btnSaveConfigFile" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.save"}}</button>
<span id="form-error-message" class="error-message"></span>
</div>
</form>

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>编辑项目 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.edit_proj"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -22,18 +22,18 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "books"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title"> 项目设置</strong>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#transferBookModal">转让项目</button>
<strong class="box-title"> {{i18n .Lang "blog.project_setting"}}</strong>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#transferBookModal">{{i18n .Lang "blog.handover_project"}}</button>
{{if eq .Model.PrivatelyOwned 1}}
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#changePrivatelyOwnedModal" style="margin-right: 5px;">转为公有</button>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#changePrivatelyOwnedModal" style="margin-right: 5px;">{{i18n .Lang "blog.make_public"}}</button>
{{else}}
<button type="button" class="btn btn-danger btn-sm pull-right" data-toggle="modal" data-target="#changePrivatelyOwnedModal" style="margin-right: 5px;">转为私有</button>
<button type="button" class="btn btn-danger btn-sm pull-right" data-toggle="modal" data-target="#changePrivatelyOwnedModal" style="margin-right: 5px;">{{i18n .Lang "blog.make_private"}}</button>
{{end}}
<button type="button" class="btn btn-danger btn-sm pull-right" style="margin-right: 5px;" data-toggle="modal" data-target="#deleteBookModal">删除项目</button>
<button type="button" class="btn btn-danger btn-sm pull-right" style="margin-right: 5px;" data-toggle="modal" data-target="#deleteBookModal">{{i18n .Lang "blog.delete_project"}}</button>
</div>
</div>
<div class="box-body" style="padding-right: 200px;">
@@ -41,66 +41,66 @@
<form method="post" id="bookEditForm" action="{{urlfor "ManagerController.EditBook" ":key" .Model.Identify}}">
<input type="hidden" name="identify" value="{{.Model.Identify}}">
<div class="form-group">
<label>标题</label>
<input type="text" class="form-control" name="book_name" id="bookName" placeholder="项目名称" value="{{.Model.BookName}}">
<label>{{i18n .Lang "mgr.proj_name"}}</label>
<input type="text" class="form-control" name="book_name" id="bookName" placeholder="{{i18n .Lang "mgr.proj_name"}}" value="{{.Model.BookName}}">
</div>
<div class="form-group">
<label>标识</label>
<input type="text" class="form-control" value="{{urlfor "DocumentController.Index" ":key" .Model.Identify}}" disabled placeholder="项目标识">
<label>{{i18n .Lang "blog.project_id"}}</label>
<input type="text" class="form-control" value="{{urlfor "DocumentController.Index" ":key" .Model.Identify}}" disabled placeholder="{{i18n .Lang "blog.project_id"}}">
</div>
<div class="form-group">
<label>项目空间</label>
<label>{{i18n .Lang "common.project_space"}}</label>
<select class="js-data-example-ajax form-control" multiple="multiple" name="itemId">
<option value="{{.Model.ItemId}}" selected="selected">{{.Model.ItemName}}</option>
</select>
</div>
<div class="form-group">
<label>历史记录数量</label>
<input type="text" class="form-control" name="history_count" value="{{.Model.HistoryCount}}" placeholder="历史记录数量">
<p class="text">当开启文档历史时,该值会限制每个文档保存的历史数量</p>
<label>{{i18n .Lang "blog.history_record_amount"}}</label>
<input type="text" class="form-control" name="history_count" value="{{.Model.HistoryCount}}" placeholder="{{i18n .Lang "blog.history_record_amount"}}">
<p class="text">{{i18n .Lang "message.history_record_amount_desc"}}</p>
</div>
<div class="form-group">
<label>公司标识</label>
<input type="text" class="form-control" name="publisher" value="{{.Model.Publisher}}" placeholder="公司名称">
<p class="text">导出文档PDF文档时显示的页脚</p>
<label>{{i18n .Lang "blog.corp_id"}}</label>
<input type="text" class="form-control" name="publisher" value="{{.Model.Publisher}}" placeholder="{{i18n $.Lang "blog.corp_id"}}">
<p class="text">{{i18n .Lang "message.corp_id_desc"}}</p>
</div>
<div class="form-group">
<label>排序</label>
<input type="number" min="0" class="form-control" value="{{.Model.OrderIndex}}" name="order_index" placeholder="项目排序">
<p class="text">只能是数字,序号越大排序越靠前</p>
<label>{{i18n .Lang "blog.project_order"}}</label>
<input type="number" min="0" class="form-control" value="{{.Model.OrderIndex}}" name="order_index" placeholder="{{i18n .Lang "blog.project_order"}}">
<p class="text">{{i18n .Lang "message.project_order_desc"}}</p>
</div>
<div class="form-group">
<label>描述</label>
<textarea rows="3" class="form-control" name="description" style="height: 90px" placeholder="项目描述">{{.Model.Description}}</textarea>
<p class="text">描述信息不超过500个字符</p>
<label>{{i18n .Lang "blog.project_desc"}}</label>
<textarea rows="3" class="form-control" name="description" style="height: 90px" placeholder="{{i18n .Lang "blog.project_desc"}}">{{.Model.Description}}</textarea>
<p class="text">{{i18n .Lang "message.project_desc_placeholder"}}</p>
</div>
<div class="form-group">
<label>标签</label>
<input type="text" class="form-control" name="label" placeholder="项目标签" value="{{.Model.Label}}">
<p class="text">最多允许添加10个标签多个标签请用“;”分割</p>
<label>{{i18n .Lang "blog.project_label"}}</label>
<input type="text" class="form-control" name="label" placeholder="{{i18n .Lang "blog.project_label"}}" value="{{.Model.Label}}">
<p class="text">{{i18n .Lang "message.project_label_desc"}}</p>
</div>
{{if eq .Model.PrivatelyOwned 1}}
<div class="form-group">
<label>访问令牌</label>
<label>{{i18n .Lang "blog.access_token"}}</label>
<div class="row">
<div class="col-sm-10">
<input type="text" name="token" id="token" class="form-control" placeholder="访问令牌" readonly value="{{.Model.PrivateToken}}">
<div class="col-sm-9">
<input type="text" name="token" id="token" class="form-control" placeholder="{{i18n .Lang "blog.access_token"}}" readonly value="{{.Model.PrivateToken}}">
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-success btn-sm" id="createToken" data-loading-text="生成" data-action="create">生成</button>
<button type="button" class="btn btn-danger btn-sm" id="deleteToken" data-loading-text="删除" data-action="delete">删除</button>
<div class="col-sm-3">
<button type="button" class="btn btn-success btn-sm" id="createToken" data-loading-text="{{i18n .Lang "common.generate"}}" data-action="create">{{i18n .Lang "common.generate"}}</button>
<button type="button" class="btn btn-danger btn-sm" id="deleteToken" data-loading-text="{{i18n .Lang "common.delete"}}" data-action="delete">{{i18n .Lang "common.delete"}}</button>
</div>
</div>
</div>
<div class="form-group">
<label>访问密码</label>
<input type="text" name="bPassword" id="bPassword" class="form-control" placeholder="访问密码" value="{{.Model.BookPassword}}">
<p class="text">没有访问权限访问项目时需要提供的密码</p>
<label>{{i18n $.Lang "blog.access_pass"}}</label>
<input type="text" name="bPassword" id="bPassword" class="form-control" placeholder="{{i18n $.Lang "blog.access_pass"}}" value="{{.Model.BookPassword}}">
<p class="text">{{i18n $.Lang "message.access_pass_desc"}}</p>
</div>
{{end}}
<div class="form-group">
<label for="autoRelease">自动发布</label>
<label for="autoRelease">{{i18n $.Lang "blog.auto_publish"}}</label>
<div class="controls">
<div class="switch switch-small" data-on="primary" data-off="info">
<input type="checkbox" id="autoRelease" name="auto_release"{{if .Model.AutoRelease }} checked{{end}} data-size="small">
@@ -108,38 +108,38 @@
</div>
</div>
<div class="form-group">
<label for="autoRelease">开启导出</label>
<label for="autoRelease">{{i18n $.Lang "blog.enable_export"}}</label>
<div class="controls">
<div class="switch switch-small" data-on="primary" data-off="info">
<input type="checkbox" id="isDownload" name="is_download"{{if .Model.IsDownload }} checked{{end}} data-size="small" placeholder="开启导出">
<input type="checkbox" id="isDownload" name="is_download"{{if .Model.IsDownload }} checked{{end}} data-size="small" placeholder="{{i18n $.Lang "blog.enable_export"}}">
</div>
</div>
</div>
<div class="form-group">
<label for="autoRelease">开启分享</label>
<label for="autoRelease">{{i18n $.Lang "blog.enable_share"}}</label>
<div class="controls">
<div class="switch switch-small" data-on="primary" data-off="info">
<input type="checkbox" id="enableShare" name="enable_share"{{if .Model.IsEnableShare }} checked{{end}} data-size="small" placeholder="开启分享">
<input type="checkbox" id="enableShare" name="enable_share"{{if .Model.IsEnableShare }} checked{{end}} data-size="small" placeholder="{{i18n $.Lang "blog.enable_share"}}">
</div>
</div>
</div>
<div class="form-group">
<label for="autoRelease">设置第一篇文档为默认首页</label>
<label for="autoRelease">{{i18n $.Lang "blog.set_first_as_home"}}</label>
<div class="controls">
<div class="switch switch-small" data-on="primary" data-off="info">
<input type="checkbox" id="is_use_first_document" name="is_use_first_document"{{if .Model.IsUseFirstDocument }} checked{{end}} data-size="small" placeholder="设置第一篇文档为默认首页">
<input type="checkbox" id="is_use_first_document" name="is_use_first_document"{{if .Model.IsUseFirstDocument }} checked{{end}} data-size="small" placeholder="{{i18n $.Lang "blog.set_first_as_home"}}">
</div>
</div>
</div>
<div class="form-group">
<button type="submit" id="btnSaveBookInfo" class="btn btn-success" data-loading-text="保存中...">保存修改</button>
<button type="submit" id="btnSaveBookInfo" class="btn btn-success" data-loading-text="{{i18n $.Lang "common.processing"}}">{{i18n $.Lang "common.save"}}</button>
<span id="form-error-message" class="error-message"></span>
</div>
</form>
</div>
<div class="form-right">
<label>
<img src="{{.Model.Cover}}" onerror="this.src='/static/images/book.png'" alt="封面" style="max-width: 120px;border: 1px solid #999" id="headimgurl">
<img src="{{.Model.Cover}}" onerror="this.src='/static/images/book.png'" alt="{{i18n .Lang "blog.cover"}}" style="max-width: 120px;border: 1px solid #999" id="headimgurl">
</label>
</div>
<div class="clearfix"></div>
@@ -160,27 +160,27 @@
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">
{{if eq .Model.PrivatelyOwned 0}}
转为私有
{{i18n $.Lang "blog.make_private"}}
{{else}}
转为共有
{{i18n $.Lang "blog.make_public"}}
{{end}}
</h4>
</div>
<div class="modal-body">
{{if eq .Model.PrivatelyOwned 0}}
<span style="font-size: 14px;font-weight: 400;">确定将项目转为私有吗?</span>
<span style="font-size: 14px;font-weight: 400;">{{i18n $.Lang "message.confirm_into_private"}}</span>
<p></p>
<p class="text error-message">转为私有后需要通过阅读令牌才能访问该项目。</p>
<p class="text error-message">{{i18n $.Lang "message.into_private_notice"}}</p>
{{else}}
<span style="font-size: 14px;font-weight: 400;"> 确定将项目转为公有吗?</span>
<span style="font-size: 14px;font-weight: 400;">{{i18n $.Lang "message.confirm_into_public"}}</span>
<p></p>
<p class="text error-message">转为公有后所有人都可以访问该项目。</p>
<p class="text error-message">{{i18n $.Lang "message.into_public_notice"}}</p>
{{end}}
</div>
<div class="modal-footer">
<span class="error-message" id="form-error-message1"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-primary" data-loading-text="正在保存..." id="btnChangePrivatelyOwned">确定</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-primary" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnChangePrivatelyOwned">{{i18n .Lang "common.confirm"}}</button>
</div>
</div>
</form>
@@ -195,17 +195,17 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">删除项目</h4>
<h4 class="modal-title">{{i18n .Lang "blog.delete_project"}}</h4>
</div>
<div class="modal-body">
<span style="font-size: 14px;font-weight: 400;">确定删除项目吗?</span>
<span style="font-size: 14px;font-weight: 400;">{{i18n .Lang "message.confirm_delete_project"}}</span>
<p></p>
<p class="text error-message">删除项目后将无法找回。</p>
<p class="text error-message">{{i18n .Lang "message.warning_delete_project"}}</p>
</div>
<div class="modal-footer">
<span id="form-error-message2" class="error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" id="btnDeleteBook" class="btn btn-primary" data-loading-text="正在删除...">确定删除</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" id="btnDeleteBook" class="btn btn-primary" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.confirm_delete"}}</button>
</div>
</div>
</form>
@@ -218,21 +218,21 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">项目转让</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n $.Lang "blog.handover_project"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-2 control-label">接收账号</label>
<label class="col-sm-2 control-label">{{i18n $.Lang "blog.recipient_account"}}</label>
<div class="col-sm-10">
<input type="text" name="account" class="form-control" placeholder="接收者账号" id="receiveAccount" maxlength="50">
<input type="text" name="account" class="form-control" placeholder="{{i18n $.Lang "blog.recipient_account"}}" id="receiveAccount" maxlength="50">
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="modal-footer">
<span id="form-error-message3" class="error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" id="btnTransferBook" daata-loading-text="正在转让..." class="btn btn-primary">确定转让</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" id="btnTransferBook" daata-loading-text="{{i18n $.Lang "message.processing"}}" class="btn btn-primary">{{i18n $.Lang "common.comfirm"}}</button>
</div>
</div>
</form>
@@ -274,7 +274,7 @@
},
error : function () {
btn.button("reset");
alert("服务器错误");
alert({{i18n $.Lang "message.system_error"}});
}
}) ;
});
@@ -285,20 +285,20 @@
beforeSubmit : function () {
var bookName = $.trim($("#bookName").val());
if (bookName === "") {
return showError("项目名称不能为空");
return showError("{{i18n $.Lang "message.project_name_empty"}}");
}
$("#btnSaveBookInfo").button("loading");
},
success : function (res) {
if(res.errcode === 0){
showSuccess("保存成功")
showSuccess("{{i18n $.Lang "message.success"}}")
}else{
showError("保存失败")
showError("{{i18n $.Lang "message.failed"}}")
}
$("#btnSaveBookInfo").button("reset");
},
error : function () {
showError("服务错误");
showError("{{i18n $.Lang "message.system_error"}}");
$("#btnSaveBookInfo").button("reset");
}
});
@@ -319,7 +319,7 @@
beforeSubmit : function () {
var account = $.trim($("#receiveAccount").val());
if (account === ""){
return showError("接受者账号不能为空","#form-error-message3")
return showError("{{i18n $.Lang "message.receive_account_empty"}}","#form-error-message3")
}
$("#btnTransferBook").button("loading");
},
@@ -349,12 +349,12 @@
$("#btnChangePrivatelyOwned").button("reset");
},
error :function () {
showError("服务器异常","#form-error-message1");
showError("{{i18n $.Lang "message.system_error"}}","#form-error-message1");
$("#btnChangePrivatelyOwned").button("reset");
}
});
$('.js-data-example-ajax').select2({
language: "zh-CN",
language: "{{i18n $.Lang "common.js_lang"}}",
minimumInputLength : 1,
minimumResultsForSearch: Infinity,
maximumSelectionLength:1,

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>编辑用户 - Powered by MinDoc</title>
<title>{{i18n .Lang "uc.edit_user"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -23,47 +23,47 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "users"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title"> 编辑用户</strong>
<strong class="box-title"> {{i18n .Lang "uc.edit_user"}}</strong>
</div>
</div>
<div class="box-body col-lg-6 col-sm-12">
<form method="post" id="saveMemberInfoForm">
<div class="form-group">
<label>用户账号</label>
<input type="text" class="form-control" name="account" disabled placeholder="用户账号" value="{{.Model.Account}}">
<label>{{i18n .Lang "uc.username"}}</label>
<input type="text" class="form-control" name="account" disabled placeholder="{{i18n .Lang "uc.username"}}" value="{{.Model.Account}}">
</div>
<div class="form-group">
<label>真实姓名</label>
<input type="text" name="real_name" class="form-control" value="{{.Model.RealName}}" placeholder="真实姓名">
<label>{{i18n .Lang "uc.realname"}}</label>
<input type="text" name="real_name" class="form-control" value="{{.Model.RealName}}" placeholder="{{i18n .Lang "uc.realname"}}">
</div>
<div class="form-group">
<label>用户密码</label>
<input type="password" class="form-control" name="password1" placeholder="用户密码" maxlength="50">
<p style="color: #999;font-size: 12px;">不修改密码请留空,只支持本地用户修改密码</p>
<label>{{i18n .Lang "uc.password"}}</label>
<input type="password" class="form-control" name="password1" placeholder="{{i18n .Lang "uc.password"}}" maxlength="50">
<p style="color: #999;font-size: 12px;">{{i18n .Lang "uc.pwd_tips"}}</p>
</div>
<div class="form-group">
<label>确认密码</label>
<input type="password" class="form-control" name="password2" placeholder="确认密码" maxlength="50">
<label>{{i18n .Lang "uc.confirm_pwd"}}</label>
<input type="password" class="form-control" name="password2" placeholder="{{i18n .Lang "uc.confirm_pwd"}}" maxlength="50">
</div>
<div class="form-group">
<label>用户邮箱 <strong class="text-danger">*</strong></label>
<input type="email" class="form-control" name="email" placeholder="用户邮箱" value="{{.Model.Email}}" maxlength="50">
<label>{{i18n .Lang "uc.email"}} <strong class="text-danger">*</strong></label>
<input type="email" class="form-control" name="email" placeholder="{{i18n .Lang "uc.email"}}" value="{{.Model.Email}}" maxlength="50">
</div>
<div class="form-group">
<label>手机号码</label>
<input type="text" class="form-control" name="phone" placeholder="手机号码" maxlength="50" value="{{.Model.Phone}}">
<label>{{i18n .Lang "uc.mobile"}}</label>
<input type="text" class="form-control" name="phone" placeholder="{{i18n .Lang "uc.mobile"}}" maxlength="50" value="{{.Model.Phone}}">
</div>
<div class="form-group">
<label class="description">描述</label>
<textarea class="form-control" rows="3" title="描述" name="description" id="description" maxlength="500" >{{.Model.Description}}</textarea>
<p style="color: #999;font-size: 12px;">描述不能超过500字</p>
<label class="description">{{i18n .Lang "uc.description"}}</label>
<textarea class="form-control" rows="3" title="{{i18n .Lang "uc.description"}}" name="description" id="description" maxlength="500" >{{.Model.Description}}</textarea>
<p style="color: #999;font-size: 12px;">{{i18n .Lang "uc.description_tips"}}</p>
</div>
<div class="form-group">
<button type="submit" id="btnMemberInfo" class="btn btn-success" data-loading-text="保存中...">保存修改</button>
<button type="submit" id="btnMemberInfo" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.save"}}</button>
<span id="form-error-message" class="error-message"></span>
</div>
</form>
@@ -92,15 +92,15 @@
var password1 = $.trim($then.find("input[name='password1']").val());
var password2 = $.trim($then.find("input[name='password2']").val());
if (email === ""){
return showError("用户邮箱不能为空!");
return showError({{i18n .Lang "message.email_empty"}});
}
if (password1 !== "" && password1 !== password2){
return showError("确认密码不正确!");
return showError({{i18n .Lang "message.wrong_confirm_pwd"}});
}
$("#btnMemberInfo").button("loading");
},success : function (res) {
if(res.errcode === 0) {
showSuccess("保存成功")
showSuccess({{i18n .Lang "message.success"}})
}else{
showError(res.message);
}

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>用户中心 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.dashboard_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -24,40 +24,40 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "index"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">仪表盘</strong>
<strong class="box-title">{{i18n .Lang "mgr.dashboard_mgr"}}</strong>
</div>
</div>
<div class="box-body manager">
<a href="{{urlfor "ManagerController.Books"}}" class="dashboard-item">
<span class="fa fa-book" aria-hidden="true"></span>
<span class="fa-class">项目数量</span>
<span class="fa-class">{{i18n .Lang "mgr.proj_amount"}}</span>
<span class="fa-class">{{.Model.BookNumber}}</span>
</a>
<div class="dashboard-item">
<span class="fa fa-file-text-o" aria-hidden="true"></span>
<span class="fa-class">文章数量</span>
<span class="fa-class">{{i18n .Lang "mgr.blog_amount"}}</span>
<span class="fa-class">{{.Model.DocumentNumber}}</span>
</div>
<a href="{{urlfor "ManagerController.Users"}}" class="dashboard-item">
<span class="fa fa-users" aria-hidden="true"></span>
<span class="fa-class">会员数量</span>
<span class="fa-class">{{i18n .Lang "mgr.member_amount"}}</span>
<span class="fa-class">{{.Model.MemberNumber}}</span>
</a>
<!--
{{/*
<div class="dashboard-item">
<span class="fa fa-comments-o" aria-hidden="true"></span>
<span class="fa-class"></span>
<span class="fa-class">{{i18n .Lang "mgr.comment_amount"}}</span>
<span class="fa-class">{{.Model.CommentNumber}}</span>
</div>
*/}}-->
<a href="{{urlfor "ManagerController.AttachList" }}" class="dashboard-item">
<span class="fa fa-cloud-download" aria-hidden="true"></span>
<span class="fa-class">附件数量</span>
<span class="fa-class">{{i18n .Lang "mgr.attachment_amount"}}</span>
<span class="fa-class">{{.Model.AttachmentNumber}}</span>
</a>
</div>

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>项目空间管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.project_space_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet" type="text/css">
@@ -18,13 +18,13 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "itemsets"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">项目空间管理</strong>
<strong class="box-title">{{i18n .Lang "mgr.project_space_mgr"}}</strong>
{{if eq .Member.Role 0}}
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addItemsetsDialogModal"><i class="fa fa-plus" aria-hidden="true"></i> 创建项目空间</button>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addItemsetsDialogModal"><i class="fa fa-plus" aria-hidden="true"></i> {{i18n .Lang "mgr.create_proj_space"}}</button>
{{end}}
</div>
</div>
@@ -34,10 +34,10 @@
<thead>
<tr>
<th width="10%">#</th>
<th width="30%">项目空间名称</th>
<th width="20%">项目空间标识</th>
<th width="20%">项目数量</th>
<th>操作</th>
<th width="30%">{{i18n .Lang "mgr.proj_space_name"}}</th>
<th width="20%">{{i18n .Lang "mgr.proj_space_id"}}</th>
<th width="20%">{{i18n .Lang "mgr.proj_amount"}}</th>
<th>{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
@@ -48,15 +48,15 @@
<td>{{$item.ItemKey}}</td>
<td>{{$item.BookNumber}}</td>
<td>
<button type="button" class="btn btn-sm btn-default" data-id="{{$item.ItemId}}" data-method="edit" data-name="{{$item.ItemName}}" data-key="{{$item.ItemKey}}">编辑</button>
<button type="button" class="btn btn-sm btn-default" data-id="{{$item.ItemId}}" data-method="edit" data-name="{{$item.ItemName}}" data-key="{{$item.ItemKey}}">{{i18n $.Lang "common.edit"}}</button>
{{if ne $item.ItemId 1}}
<button type="button" data-method="delete" class="btn btn-danger btn-sm" data-id="{{$item.ItemId}}" data-loading-text="删除中...">删除</button>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" data-id="{{$item.ItemId}}" data-loading-text="{{i18n $.Lang "message.processing"}}">{{i18n $.Lang "common.delete"}}</button>
{{end}}
<a href="{{urlfor "ItemsetsController.List" ":key" $item.ItemKey}}" class="btn btn-success btn-sm" target="_blank">详情</a>
<a href="{{urlfor "ItemsetsController.List" ":key" $item.ItemKey}}" class="btn btn-success btn-sm" target="_blank">{{i18n $.Lang "common.detail"}}</a>
</td>
</tr>
{{else}}
<tr><td class="text-center" colspan="6">暂无数据</td></tr>
<tr><td class="text-center" colspan="6">{{i18n .Lang "message.no_data"}}</td></tr>
{{end}}
</tbody>
</table>
@@ -77,28 +77,28 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">创建项目空间</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "mgr.create_proj_space"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-3 control-label" for="account">项目空间名称<span class="error-message">*</span></label>
<div class="col-sm-9">
<input type="text" name="itemName" class="form-control" placeholder="项目空间名称" id="itemName" maxlength="50">
<label class="col-sm-4 control-label" for="account">{{i18n .Lang "mgr.proj_space_name"}}<span class="error-message">*</span></label>
<div class="col-sm-8">
<input type="text" name="itemName" class="form-control" placeholder="{{i18n .Lang "mgr.proj_space_name"}}" id="itemName" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="itemKey">项目空间标识<span class="error-message">*</span></label>
<div class="col-sm-9">
<input type="text" name="itemKey" id="itemKey" class="form-control" placeholder="项目空间标识" maxlength="50">
<p class="text">项目空间标识只能由字母和数字组成且在2-100字符之间</p>
<label class="col-sm-4 control-label" for="itemKey">{{i18n .Lang "mgr.proj_space_id"}}<span class="error-message">*</span></label>
<div class="col-sm-8">
<input type="text" name="itemKey" id="itemKey" class="form-control" placeholder="{{i18n .Lang "mgr.proj_space_id"}}" maxlength="50">
<p class="text">{{i18n .Lang "message.proj_space_id_tips"}}</p>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="modal-footer">
<span id="create-form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnAddItemsets">保存
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnAddItemsets">{{i18n .Lang "common.save"}}
</button>
</div>
</div>
@@ -112,27 +112,27 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">编辑项目空间</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "mgr.edit_proj_space"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-3 control-label" for="itemName">项目空间名称<span class="error-message">*</span></label>
<div class="col-sm-9">
<input type="text" name="itemName" id="itemName" class="form-control" placeholder="项目空间名称" maxlength="50">
<label class="col-sm-4 control-label" for="itemName">{{i18n .Lang "mgr.proj_space_name"}}<span class="error-message">*</span></label>
<div class="col-sm-8">
<input type="text" name="itemName" id="itemName" class="form-control" placeholder="{{i18n .Lang "mgr.proj_space_name"}}" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="itemKey">项目空间标识<span class="error-message">*</span></label>
<div class="col-sm-9">
<input type="text" name="itemKey" id="itemKey" class="form-control" placeholder="项目空间标识" maxlength="50">
<label class="col-sm-4 control-label" for="itemKey">{{i18n .Lang "mgr.proj_space_id"}}<span class="error-message">*</span></label>
<div class="col-sm-8">
<input type="text" name="itemKey" id="itemKey" class="form-control" placeholder="{{i18n .Lang "mgr.proj_space_id"}}" maxlength="50">
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="modal-footer">
<span id="edit-form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnEditItemsets">保存
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnEditItemsets">{{i18n .Lang "common.save"}}
</button>
</div>
</div>
@@ -166,10 +166,10 @@
var $itemKey = addItemsetsDialogForm.find("input[name='itemKey']").val();
if ($itemName == "") {
showError("项目空间名称不能为空","#create-form-error-message");
showError("{{i18n .Lang "message.proj_space_name_empty"}}","#create-form-error-message");
}
if ($itemKey == "") {
showError("项目空间标识不能为空","#create-form-error-message");
showError("{{i18n .Lang "message.proj_space_id_empty"}}","#create-form-error-message");
}
$("#btnAddItemsets").button("loading");
showError("","#create-form-error-message");
@@ -183,7 +183,7 @@
}
},
error: function () {
showError("服务器异常","#create-form-error-message");
showError({{i18n .Lang "message.system_error"}},"#create-form-error-message");
},
complete: function () {
$("#btnAddItemsets").button("reset");
@@ -196,10 +196,10 @@
var $itemKey = editItemsetsDialogForm.find("input[name='itemKey']").val();
if ($itemName == "") {
showError("项目空间名称不能为空","#edit-form-error-message");
showError("{{i18n .Lang "message.proj_space_name_empty"}}","#edit-form-error-message");
}
if ($itemKey == "") {
showError("项目空间标识不能为空","#edit-form-error-message");
showError("{{i18n .Lang "message.proj_space_id_empty"}}","#edit-form-error-message");
}
$("#btnEditItemsets").button("loading");
showError("","#edit-form-error-message");
@@ -213,7 +213,7 @@
}
},
error: function () {
showError("服务器异常","#edit-form-error-message");
showError({{i18n .Lang "message.system_error"}},"#edit-form-error-message");
},
complete: function () {
$("#btnEditItemsets").button("reset");
@@ -237,7 +237,7 @@
}
},
error : function () {
layer.msg("服务器异常");
layer.msg({{i18n .Lang "message.system_error"}});
},
complete : function () {
$this.button("reset");

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>标签管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.label_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet" type="text/css">
@@ -24,11 +24,11 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "label"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">标签管理</strong>
<strong class="box-title">{{i18n .Lang "mgr.label_mgr"}}</strong>
</div>
</div>
<div class="box-body">
@@ -37,9 +37,9 @@
<thead>
<tr>
<th width="10%">#</th>
<th width="55%">标签名称</th>
<th width="20%">使用数量</th>
<th>操作</th>
<th width="55%">{{i18n .Lang "mgr.label_name"}}</th>
<th width="20%">{{i18n .Lang "mgr.used_quantity"}}</th>
<th>{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
@@ -49,13 +49,13 @@
<td>{{$item.LabelName}}</td>
<td>{{$item.BookNumber}}</td>
<td>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" data-id="{{$item.LabelId}}" data-loading-text="删除中...">删除</button>
<a href="{{urlfor "LabelController.Index" ":key" $item.LabelName}}" class="btn btn-success btn-sm" target="_blank">详情</a>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" data-id="{{$item.LabelId}}" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.delete"}}</button>
<a href="{{urlfor "LabelController.Index" ":key" $item.LabelName}}" class="btn btn-success btn-sm" target="_blank">{{i18n .Lang "common.detail"}}</a>
</td>
</tr>
{{else}}
<tr><td class="text-center" colspan="6">暂无数据</td></tr>
<tr><td class="text-center" colspan="6">{{i18n .Lang "message.no_data"}}</td></tr>
{{end}}
</tbody>
</table>
@@ -92,7 +92,7 @@
}
},
error : function () {
layer.msg("服务器异常");
layer.msg({{i18n .Lang "message.system_error"}});
},
complete : function () {
$this.button("reset");

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>配置管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.config_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -23,75 +23,75 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "setting"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title"> 配置管理</strong>
<strong class="box-title"> {{i18n .Lang "mgr.config_mgr"}}</strong>
</div>
</div>
<div class="box-body">
<form method="post" id="gloablEditForm" action="{{urlfor "ManagerController.Setting"}}">
<div class="form-group">
<label>网站标题</label>
<input type="text" class="form-control" name="SITE_NAME" id="siteName" placeholder="网站标题" value="{{.SITE_NAME}}">
<label>{{i18n .Lang "mgr.site_name"}}</label>
<input type="text" class="form-control" name="SITE_NAME" id="siteName" placeholder="{{i18n .Lang "mgr.site_name"}}" value="{{.SITE_NAME}}">
</div>
<div class="form-group">
<label>域名备案</label>
<input type="text" class="form-control" name="site_beian" id="siteName" placeholder="域名备案" value="{{.site_beian}}" maxlength="50">
<label>{{i18n .Lang "mgr.domain_icp"}}</label>
<input type="text" class="form-control" name="site_beian" id="siteName" placeholder="{{i18n .Lang "mgr.domain_icp"}}" value="{{.site_beian}}" maxlength="50">
</div>
<div class="form-group">
<label>网站描述</label>
<textarea rows="3" class="form-control" name="site_description" style="height: 90px" placeholder="网站描述">{{.site_description}}</textarea>
<p class="text">描述信息不超过500个字符</p>
<label>{{i18n .Lang "mgr.site_desc"}}</label>
<textarea rows="3" class="form-control" name="site_description" style="height: 90px" placeholder="{{i18n .Lang "mgr.site_desc"}}">{{.site_description}}</textarea>
<p class="text">{{i18n .Lang "mgr.site_desc_tips"}}</p>
</div>
<div class="form-group">
<label>启用匿名访问</label>
<label>{{i18n .Lang "mgr.enable_anonymous_access"}}</label>
<div class="radio">
<label class="radio-inline">
<input type="radio" {{if eq .ENABLE_ANONYMOUS "true"}}checked{{end}} name="ENABLE_ANONYMOUS" value="true">开启<span class="text"></span>
<input type="radio" {{if eq .ENABLE_ANONYMOUS "true"}}checked{{end}} name="ENABLE_ANONYMOUS" value="true">{{i18n .Lang "mgr.enable"}}<span class="text"></span>
</label>
<label class="radio-inline">
<input type="radio" {{if eq .ENABLE_ANONYMOUS "false"}}checked{{end}} name="ENABLE_ANONYMOUS" value="false">关闭<span class="text"></span>
<input type="radio" {{if eq .ENABLE_ANONYMOUS "false"}}checked{{end}} name="ENABLE_ANONYMOUS" value="false">{{i18n .Lang "mgr.disable"}}<span class="text"></span>
</label>
</div>
</div>
<div class="form-group">
<label>启用注册</label>
<label>{{i18n .Lang "mgr.enable_register"}}</label>
<div class="radio">
<label class="radio-inline">
<input type="radio" {{if eq .ENABLED_REGISTER "true"}}checked{{end}} name="ENABLED_REGISTER" value="true">开启<span class="text"></span>
<input type="radio" {{if eq .ENABLED_REGISTER "true"}}checked{{end}} name="ENABLED_REGISTER" value="true">{{i18n .Lang "mgr.enable"}}<span class="text"></span>
</label>
<label class="radio-inline">
<input type="radio" {{if eq .ENABLED_REGISTER "false"}}checked{{end}} name="ENABLED_REGISTER" value="false">关闭<span class="text"></span>
<input type="radio" {{if eq .ENABLED_REGISTER "false"}}checked{{end}} name="ENABLED_REGISTER" value="false">{{i18n .Lang "mgr.disable"}}<span class="text"></span>
</label>
</div>
</div>
<div class="form-group">
<label>启用验证码</label>
<label>{{i18n .Lang "mgr.enable_captcha"}}</label>
<div class="radio">
<label class="radio-inline">
<input type="radio" {{if eq .ENABLED_CAPTCHA "true"}}checked{{end}} name="ENABLED_CAPTCHA" value="true">开启<span class="text"></span>
<input type="radio" {{if eq .ENABLED_CAPTCHA "true"}}checked{{end}} name="ENABLED_CAPTCHA" value="true">{{i18n .Lang "mgr.enable"}}<span class="text"></span>
</label>
<label class="radio-inline">
<input type="radio" {{if eq .ENABLED_CAPTCHA "false"}}checked{{end}} name="ENABLED_CAPTCHA" value="false">关闭<span class="text"></span>
<input type="radio" {{if eq .ENABLED_CAPTCHA "false"}}checked{{end}} name="ENABLED_CAPTCHA" value="false">{{i18n .Lang "mgr.disable"}}<span class="text"></span>
</label>
</div>
</div>
<div class="form-group">
<label>启用文档历史</label>
<label>{{i18n .Lang "mgr.enable_doc_his"}}</label>
<div class="radio">
<label class="radio-inline">
<input type="radio" {{if eq .ENABLE_DOCUMENT_HISTORY "true"}}checked{{end}} name="ENABLE_DOCUMENT_HISTORY" value="true">开启<span class="text"></span>
<input type="radio" {{if eq .ENABLE_DOCUMENT_HISTORY "true"}}checked{{end}} name="ENABLE_DOCUMENT_HISTORY" value="true">{{i18n .Lang "mgr.enable"}}<span class="text"></span>
</label>
<label class="radio-inline">
<input type="radio" {{if eq .ENABLE_DOCUMENT_HISTORY "false"}}checked{{end}} name="ENABLE_DOCUMENT_HISTORY" value="false">关闭<span class="text"></span>
<input type="radio" {{if eq .ENABLE_DOCUMENT_HISTORY "false"}}checked{{end}} name="ENABLE_DOCUMENT_HISTORY" value="false">{{i18n .Lang "mgr.disable"}}<span class="text"></span>
</label>
</div>
</div>
<div class="form-group">
<button type="submit" id="btnSaveBookInfo" class="btn btn-success" data-loading-text="保存中...">保存修改</button>
<button type="submit" id="btnSaveBookInfo" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.save"}}</button>
<span id="form-error-message" class="error-message"></span>
</div>
</form>
@@ -117,12 +117,12 @@
var title = $.trim($("#siteName").val());
if (title === ""){
return showError("网站标题不能为空");
return showError({{i18n .Lang "message.site_name_empty"}});
}
$("#btnSaveBookInfo").button("loading");
},success : function (res) {
if(res.errcode === 0) {
showSuccess("保存成功")
showSuccess({{i18n .Lang "message.success"}})
}else{
showError(res.message);
}

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>团队管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.team_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -23,15 +23,15 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "team"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title"> 团队管理</strong>
<strong class="box-title"> {{i18n .Lang "mgr.team_mgr"}}</strong>
{{if eq .Member.Role 0}}
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal"
data-target="#addTeamDialogModal"><i class="fa fa-user-plus" aria-hidden="true"></i>
创建团队
{{i18n .Lang "mgr.create_team"}}
</button>
{{end}}
</div>
@@ -39,16 +39,16 @@
<div class="box-body">
<div class="users-list" id="teamList">
<template v-if="lists.length <= 0">
<div class="text-center">暂无数据</div>
<div class="text-center">{{i18n .Lang "message.no_data"}}</div>
</template>
<template v-else>
<table class="table">
<thead>
<tr>
<th>团队名称</th>
<th width="150px">成员数量</th>
<th width="150px">项目数量</th>
<th align="center" width="220px">操作</th>
<th>{{i18n .Lang "mgr.team_name"}}</th>
<th width="150px">{{i18n .Lang "mgr.member_amount"}}</th>
<th width="150px">{{i18n .Lang "mgr.proj_amount"}}</th>
<th align="center" width="260px">{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
@@ -57,10 +57,10 @@
<td>${item.member_count}</td>
<td>${item.book_count}</td>
<td>
<a :href="'{{urlfor "ManagerController.TeamBookList" ":id" ""}}' + item.team_id" class="btn btn-primary btn-sm">项目</a>
<a :href="'{{urlfor "ManagerController.TeamMemberList" ":id" ""}}' + item.team_id" type="button" class="btn btn-success btn-sm">成员</a>
<button type="button" class="btn btn-sm btn-default" @click="editTeam(item.team_id)">编辑</button>
<button type="button" class="btn btn-danger btn-sm" @click="deleteTeam(item.team_id,$event)" data-loading-text="删除中">删除</button>
<a :href="'{{urlfor "ManagerController.TeamBookList" ":id" ""}}' + item.team_id" class="btn btn-primary btn-sm">{{i18n .Lang "mgr.proj"}}</a>
<a :href="'{{urlfor "ManagerController.TeamMemberList" ":id" ""}}' + item.team_id" type="button" class="btn btn-success btn-sm">{{i18n .Lang "mgr.member"}}</a>
<button type="button" class="btn btn-sm btn-default" @click="editTeam(item.team_id)">{{i18n .Lang "common.edit"}}</button>
<button type="button" class="btn btn-danger btn-sm" @click="deleteTeam(item.team_id,$event)" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.delete"}}</button>
</td>
</tr>
</tbody>
@@ -85,22 +85,22 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">创建团队</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "mgr.create_team"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-2 control-label" for="account">团队名称<span
<label class="col-sm-2 control-label" for="account">{{i18n .Lang "mgr.team_name"}}<span
class="error-message">*</span></label>
<div class="col-sm-10">
<input type="text" name="teamName" class="form-control" placeholder="团队名称" id="teamName" maxlength="50">
<input type="text" name="teamName" class="form-control" placeholder="{{i18n .Lang "mgr.team_name"}}" id="teamName" maxlength="50">
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="modal-footer">
<span id="form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnAddTeam">保存
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnAddTeam">{{i18n .Lang "common.save"}}
</button>
</div>
</div>
@@ -115,21 +115,21 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">编辑团队</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "mgr.edit_team"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-2 control-label" for="account">团队名称<span class="error-message">*</span></label>
<label class="col-sm-2 control-label" for="account">{{i18n .Lang "mgr.team_name"}}<span class="error-message">*</span></label>
<div class="col-sm-10">
<input type="text" name="teamName" class="form-control" placeholder="团队名称" maxlength="50">
<input type="text" name="teamName" class="form-control" placeholder="{{i18n .Lang "mgr.team_name"}}" maxlength="50">
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="modal-footer">
<span id="form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnEditTeam">保存
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnEditTeam">{{i18n .Lang "common.save"}}
</button>
</div>
</div>
@@ -139,6 +139,8 @@
<script src="{{cdnjs "/static/jquery/1.12.4/jquery.min.js"}}"></script>
<script src="{{cdnjs "/static/bootstrap/js/bootstrap.min.js"}}"></script>
<script src="{{cdnjs "/static/vuejs/vue.min.js"}}"></script>
<script src="{{cdnjs "/static/js/jquery.form.js"}}" type="text/javascript"></script>
@@ -156,7 +158,7 @@
beforeSubmit: function () {
var account = $.trim($("#addTeamDialogForm #teamName").val());
if (account === "") {
return showError("团队名称不能为空");
return showError({{i18n .Lang "message.team_name_empty"}});
}
$("#btnAddTeam").button("loading");
return true;
@@ -170,7 +172,7 @@
}
},
error: function () {
showError("服务器异常");
showError({{i18n .Lang "message.system_error"}});
},
complete: function () {
$("#btnAddTeam").button("reset");
@@ -184,7 +186,7 @@
beforeSubmit: function () {
var account = $.trim(editTeamDialogModal.find("input[name='teamName']").val());
if (account === "") {
return showError("团队名称不能为空");
return showError({{i18n .Lang "message.team_name_empty"}});
}
$("#btnEditTeam").button("loading");
return true;
@@ -203,7 +205,7 @@
}
},
error: function () {
showError("服务器异常");
showError({{i18n .Lang "message.system_error"}});
},
complete: function () {
$("#btnEditTeam").button("reset");

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>团队项目 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.team_proj"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet" type="text/css">
@@ -19,12 +19,12 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "team"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">{{.Model.TeamName}} - 团队项目</strong>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addTeamBookDialogModal"><i class="fa fa-book" aria-hidden="true"></i> 添加项目</button>
<strong class="box-title">{{.Model.TeamName}} - {{i18n .Lang "mgr.team_proj"}}</strong>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addTeamBookDialogModal"><i class="fa fa-book" aria-hidden="true"></i> {{i18n .Lang "mgr.add_proj"}}</button>
</div>
</div>
<div class="box-body">
@@ -32,15 +32,15 @@
<table class="table">
<thead>
<tr>
<th>项目名称</th>
<th>项目作者</th>
<th>加入时间</th>
<th>操作</th>
<th>{{i18n .Lang "mgr.proj_name"}}</th>
<th>{{i18n .Lang "mgr.proj_author"}}</th>
<th>{{i18n .Lang "mgr.join_time"}}</th>
<th>{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
<template v-if="lists.length <= 0">
<tr class="text-center"><td colspan="4">暂无数据</td></tr>
<tr class="text-center"><td colspan="4">{{i18n .Lang "message.no_data"}}</td></tr>
</template>
<template v-else>
<tr v-for="item in lists">
@@ -48,7 +48,7 @@
<td>${item.book_member_name}</td>
<td>${(new Date(item.create_time)).format("yyyy-MM-dd hh:mm:ss")}</td>
<td>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" @click="deleteTeamBook(item.team_relationship_id)" data-loading-text="删除中...">删除</button>
<button type="button" data-method="delete" class="btn btn-danger btn-sm" @click="deleteTeamBook(item.team_relationship_id)" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.delete"}}</button>
</td>
</tr>
</template>
@@ -73,11 +73,11 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">加入项目</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "mgr.join_proj"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-3 control-label">项目名称</label>
<label class="col-sm-3 control-label">{{i18n .Lang "mgr.proj_name"}}</label>
<div class="col-sm-9">
<select class="js-data-example-ajax form-control" multiple="multiple" name="bookId" id="bookId"></select>
</div>
@@ -86,8 +86,8 @@
</div>
<div class="modal-footer">
<span id="form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnAddBook">保存</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnAddBook">{{i18n .Lang "common.save"}}</button>
</div>
</div>
</form>
@@ -109,7 +109,7 @@
beforeSubmit : function () {
var memberId = $.trim($("#bookId").val());
if(memberId === ""){
return showError("项目不能为空");
return showError({{i18n .Lang "message.proj_empty"}});
}
$("#btnAddBook").button("loading");
},
@@ -128,7 +128,7 @@
$(this).find("form").html(modalCache);
}).on("show.bs.modal",function () {
$('.js-data-example-ajax').select2({
language: "zh-CN",
language: {{i18n .Lang "common.js_lang"}},
minimumInputLength : 1,
minimumResultsForSearch: Infinity,
maximumSelectionLength:1,
@@ -179,7 +179,7 @@
}
},
error : function () {
layer.msg("服务器异常");
layer.msg({{i18n .Lang "message.system_error"}});
}
});
}

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>团队用户管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.team_member_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -21,28 +21,28 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "team"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title">{{.Model.TeamName}} - 成员管理</strong>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addTeamMemberDialogModal"><i class="fa fa-user-plus" aria-hidden="true"></i> 添加成员</button>
<strong class="box-title">{{.Model.TeamName}} - {{i18n .Lang "mgr.member_mgr"}}</strong>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addTeamMemberDialogModal"><i class="fa fa-user-plus" aria-hidden="true"></i> {{i18n .Lang "mgr.add_member"}}</button>
</div>
</div>
<div class="box-body">
<div class="users-list" id="teamMemberList">
<template v-if="lists.length <= 0">
<div class="text-center">暂无数据</div>
<div class="text-center">{{i18n .Lang "message.no_data"}}</div>
</template>
<template v-else>
<table class="table">
<thead>
<tr>
<th width="80">头像</th>
<th width="100">账号</th>
<th width="100">姓名</th>
<th width="150">角色</th>
<th width="80px">操作</th>
<th width="80">{{i18n .Lang "uc.avatar"}}</th>
<th width="100">{{i18n .Lang "uc.username"}}</th>
<th width="100">{{i18n .Lang "uc.realname"}}</th>
<th width="150">{{i18n .Lang "uc.role"}}</th>
<th width="80px">{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
@@ -53,17 +53,17 @@
<td>
<div class="btn-group">
<button type="button" class="btn btn-default btn-sm" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
角色${item.role_name}
{{i18n .Lang "uc.role"}}${item.role_name}
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="javascript:;" @click="setTeamMemberRole(item.member_id,1)">管理员 <p class="text">拥有阅读、写作和管理权限</p></a> </li>
<li><a href="javascript:;" @click="setTeamMemberRole(item.member_id,2)">编辑者 <p class="text">拥有阅读和写作权限</p></a> </li>
<li><a href="javascript:;" @click="setTeamMemberRole(item.member_id,3)">观察者 <p class="text">拥有阅读权限</p></a> </li>
<li><a href="javascript:;" @click="setTeamMemberRole(item.member_id,1)">{{i18n .Lang "common.administrator"}} <p class="text">{{i18n .Lang "common.admin_right"}}</p></a> </li>
<li><a href="javascript:;" @click="setTeamMemberRole(item.member_id,2)">{{i18n .Lang "common.editor"}} <p class="text">{{i18n .Lang "common.editor_right"}}</p></a> </li>
<li><a href="javascript:;" @click="setTeamMemberRole(item.member_id,3)">{{i18n .Lang "common.observer"}} <p class="text">{{i18n .Lang "common.observer_right"}}</p></a> </li>
</ul>
</div>
</td>
<td>
<button type="button" class="btn btn-danger btn-sm" @click="deleteMember(item.member_id,$event)" data-loading-text="删除中">删除</button>
<button type="button" class="btn btn-danger btn-sm" @click="deleteMember(item.member_id,$event)" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.delete"}}</button>
</td>
</tr>
</tbody>
@@ -87,22 +87,22 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">添加成员</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "mgr.add_member"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-2 control-label">账号</label>
<label class="col-sm-2 control-label">{{i18n .Lang "uc.username"}}</label>
<div class="col-sm-10">
<select class="js-data-example-ajax form-control" multiple="multiple" name="memberId" id="memberId"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">角色</label>
<label class="col-sm-2 control-label">{{i18n .Lang "uc.role"}}</label>
<div class="col-sm-10">
<select name="roleId" class="form-control">
<option value="1">管理员</option>
<option value="2">编辑者</option>
<option value="3">观察者</option>
<option value="1">{{i18n .Lang "common.administrator"}}</option>
<option value="2">{{i18n .Lang "common.editor"}}</option>
<option value="3">{{i18n .Lang "common.observer"}}</option>
</select>
</div>
</div>
@@ -111,8 +111,8 @@
</div>
<div class="modal-footer">
<span id="form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnAddMember">保存</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnAddMember">{{i18n .Lang "common.save"}}</button>
</div>
</div>
</form>
@@ -137,7 +137,7 @@
beforeSubmit : function () {
var memberId = $.trim($("#memberId").val());
if(memberId === ""){
return showError("账号不能为空");
return showError({{i18n .Lang "message.account_empty"}});
}
$("#btnAddMember").button("loading");
},
@@ -155,7 +155,7 @@
$(this).find("form").html(modalCache);
}).on("show.bs.modal",function () {
$('.js-data-example-ajax').select2({
language: "zh-CN",
language: {{i18n .Lang "common.js_lang"}},
minimumInputLength : 1,
minimumResultsForSearch: Infinity,
maximumSelectionLength:1,

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>用户管理 - Powered by MinDoc</title>
<title>{{i18n .Lang "mgr.user_mgr"}} - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
@@ -27,33 +27,33 @@
{{template "widgets/header.tpl" .}}
<div class="container manual-body">
<div class="row">
{{template "manager/widgets.tpl" "users"}}
{{template "manager/widgets.tpl" .}}
<div class="page-right">
<div class="m-box">
<div class="box-head">
<strong class="box-title"> 成员管理</strong>
<strong class="box-title"> {{i18n .Lang "mgr.member_mgr"}}</strong>
{{if eq .Member.Role 0}}
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addMemberDialogModal"><i class="fa fa-user-plus" aria-hidden="true"></i> 添加成员</button>
<button type="button" class="btn btn-success btn-sm pull-right" data-toggle="modal" data-target="#addMemberDialogModal"><i class="fa fa-user-plus" aria-hidden="true"></i> {{i18n .Lang "mgr.add_member"}}</button>
{{end}}
</div>
</div>
<div class="box-body">
<div class="users-list" id="userList">
<template v-if="lists.length <= 0">
<div class="text-center">暂无数据</div>
<div class="text-center">{{i18n .Lang "message.no_data"}}</div>
</template>
<template v-else>
<table class="table">
<thead>
<tr>
<th width="80">ID</th>
<th width="80">头像</th>
<th>账号</th>
<th>姓名</th>
<th>角色</th>
<th>类型</th>
<th>状态</th>
<th>操作</th>
<th width="80">{{i18n .Lang "uc.avatar"}}</th>
<th>{{i18n .Lang "uc.username"}}</th>
<th>{{i18n .Lang "uc.realname"}}</th>
<th>{{i18n .Lang "uc.role"}}</th>
<th>{{i18n .Lang "uc.type"}}</th>
<th>{{i18n .Lang "uc.status"}}</th>
<th>{{i18n .Lang "common.operate"}}</th>
</tr>
</thead>
<tbody>
@@ -64,7 +64,7 @@
<td>${item.real_name}</td>
<td>
<template v-if="item.role == 0">
超级管理员
{{i18n $.Lang "uc.super_admin"}}
</template>
<template v-else-if="item.member_id == {{.Member.MemberId}}">
${item.role_name}
@@ -75,8 +75,8 @@
${item.role_name}
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="javascript:;" @click="setMemberRole(item.member_id,1)">管理员</a> </li>
<li><a href="javascript:;" @click="setMemberRole(item.member_id,2)">普通用户</a> </li>
<li><a href="javascript:;" @click="setMemberRole(item.member_id,1)">{{i18n $.Lang "uc.admin"}}</a> </li>
<li><a href="javascript:;" @click="setMemberRole(item.member_id,2)">{{i18n $.Lang "uc.user"}}</a> </li>
</ul>
</div>
</template>
@@ -86,10 +86,10 @@
</td>
<td>
<template v-if="item.status == 0">
<span class="label label-success">正常</span>
<span class="label label-success">{{i18n .Lang "uc.normal"}}</span>
</template>
<template v-else>
<span class="label label-danger">禁用</span>
<span class="label label-danger">{{i18n .Lang "uc.disable"}}</span>
</template>
</td>
@@ -99,15 +99,15 @@
</template>
<template v-else-if="item.role != 0">
<a :href="'{{urlfor "ManagerController.EditMember" ":id" ""}}' + item.member_id" class="btn btn-sm btn-default" @click="editMember(item.member_id)">
编辑
{{i18n .Lang "common.edit"}}
</a>
<template v-if="item.status == 0">
<button type="button" class="btn btn-danger btn-sm" @click="setMemberStatus(item.member_id,1,$event)" data-loading-text="启用中...">禁用</button>
<button type="button" class="btn btn-danger btn-sm" @click="setMemberStatus(item.member_id,1,$event)" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "uc.disable"}}</button>
</template>
<template v-else>
<button type="button" class="btn btn-success btn-sm" @click="setMemberStatus(item.member_id,0,$event)" data-loading-text="禁用中...">启用</button>
<button type="button" class="btn btn-success btn-sm" @click="setMemberStatus(item.member_id,0,$event)" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "uc.enable"}}</button>
</template>
<button type="button" class="btn btn-danger btn-sm" @click="deleteMember(item.member_id,$event)" data-loading-text="删除中">删除</button>
<button type="button" class="btn btn-danger btn-sm" @click="deleteMember(item.member_id,$event)" data-loading-text="{{i18n .Lang "message.processing"}}">{{i18n .Lang "common.delete"}}</button>
</template>
</td>
</tr>
@@ -131,51 +131,51 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">创建用户</h4>
<h4 class="modal-title" id="myModalLabel">{{i18n .Lang "uc.create_user"}}</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label class="col-sm-2 control-label" for="account">账号<span class="error-message">*</span></label>
<label class="col-sm-2 control-label" for="account">{{i18n .Lang "uc.username"}}<span class="error-message">*</span></label>
<div class="col-sm-10">
<input type="text" name="account" class="form-control" placeholder="用户账号" id="account" maxlength="50">
<input type="text" name="account" class="form-control" placeholder="{{i18n .Lang "uc.username"}}" id="account" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="password1">密码<span class="error-message">*</span></label>
<label class="col-sm-2 control-label" for="password1">{{i18n .Lang "uc.password"}}<span class="error-message">*</span></label>
<div class="col-sm-10">
<input type="password" class="form-control" placeholder="用户密码" name="password1" id="password1" maxlength="50">
<input type="password" class="form-control" placeholder="{{i18n .Lang "uc.password"}}" name="password1" id="password1" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="password2">确认密码<span class="error-message">*</span></label>
<label class="col-sm-2 control-label" for="password2">{{i18n .Lang "uc.confirm_pwd"}}<span class="error-message">*</span></label>
<div class="col-sm-10">
<input type="password" class="form-control" placeholder="确认密码" name="password2" id="password2" maxlength="50">
<input type="password" class="form-control" placeholder="{{i18n .Lang "uc.confirm_pwd"}}" name="password2" id="password2" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="email">邮箱<span class="error-message">*</span></label>
<label class="col-sm-2 control-label" for="email">{{i18n .Lang "uc.email"}}<span class="error-message">*</span></label>
<div class="col-sm-10">
<input type="email" class="form-control" placeholder="邮箱" name="email" id="email" maxlength="50">
<input type="email" class="form-control" placeholder="{{i18n .Lang "uc.email"}}" name="email" id="email" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">真实姓名</label>
<label class="col-sm-2 control-label">{{i18n .Lang "uc.realname"}}</label>
<div class="col-sm-10">
<input type="text" name="real_name" class="form-control" value="" placeholder="真实姓名">
<input type="text" name="real_name" class="form-control" value="" placeholder="{{i18n .Lang "uc.realname"}}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">手机号</label>
<label class="col-sm-2 control-label">{{i18n .Lang "uc.mobile"}}</label>
<div class="col-sm-10">
<input type="text" class="form-control" placeholder="手机号" name="phone" maxlength="50">
<input type="text" class="form-control" placeholder="{{i18n .Lang "uc.mobile"}}" name="phone" maxlength="50">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">角色</label>
<label class="col-sm-2 control-label">{{i18n .Lang "uc.role"}}</label>
<div class="col-sm-10">
<select name="role" class="form-control">
<option value="1">管理员</option>
<option value="2">普通用户</option>
<option value="1">{{i18n .Lang "uc.admin"}}</option>
<option value="2">{{i18n .Lang "uc.user"}}</option>
</select>
</div>
</div>
@@ -186,8 +186,8 @@
</div>
<div class="modal-footer">
<span id="form-error-message"></span>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="submit" class="btn btn-success" data-loading-text="保存中..." id="btnAddMember">保存</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{i18n .Lang "common.cancel"}}</button>
<button type="submit" class="btn btn-success" data-loading-text="{{i18n .Lang "message.processing"}}" id="btnAddMember">{{i18n .Lang "common.save"}}</button>
</div>
</div>
</form>
@@ -209,20 +209,20 @@
beforeSubmit : function () {
var account = $.trim($("#account").val());
if(account === ""){
return showError("账号不能为空");
return showError({{i18n .Lang "message.account_empty"}});
}
var password1 = $.trim($("#password1").val());
var password2 = $("#password2").val();
if (password1 === "") {
return showError("密码不能为空");
return showError({{i18n .Lang "message.password_empty"}});
}
if (password1 !== password2) {
return showError("确认密码不正确");
return showError({{i18n .Lang "message.confirm_pwd_empty"}});
}
var email = $.trim($("#email").val());
if (email === "") {
return showError("邮箱不能为空");
return showError({{i18n .Lang "message.email_empty"}});
}
$("#btnAddMember").button("loading");
return true;
@@ -237,7 +237,7 @@
$("#btnAddMember").button("reset");
},
error : function () {
showError("服务器异常");
showError({{i18n .Lang "message.system_error"}});
$("#btnAddMember").button("reset");
}
});
@@ -270,7 +270,7 @@
}
}
} else {
alert("操作失败" + res.message);
alert("{{i18n .Lang "message.failed"}}" + res.message);
}
}
})
@@ -295,7 +295,7 @@
}
}
}else{
alert("操作失败" + res.message);
alert("{{i18n .Lang "message.failed"}}" + res.message);
}
}
})
@@ -319,7 +319,7 @@
}
}
} else {
alert("操作失败" + res.message);
alert("{{i18n .Lang "message.failed"}}" + res.message);
}
}
});

View File

@@ -1,15 +1,15 @@
<div class="page-left">
<ul class="menu">
<li{{if eq "index" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Index"}}" class="item"><i class="fa fa-dashboard" aria-hidden="true"></i> 仪表盘</a> </li>
<li{{if eq "users" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Users" }}" class="item"><i class="fa fa-user" aria-hidden="true"></i> 用户管理</a> </li>
<li{{if eq "team" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Team" }}" class="item"><i class="fa fa-group" aria-hidden="true"></i> 团队管理</a> </li>
<li{{if eq "books" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Books" }}" class="item"><i class="fa fa-book" aria-hidden="true"></i> 项目管理</a> </li>
<li{{if eq "itemsets" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Itemsets" }}" class="item"><i class="fa fa-archive" aria-hidden="true"></i> 项目空间管理</a> </li>
<li{{if eq "index" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Index"}}" class="item"><i class="fa fa-dashboard" aria-hidden="true"></i> {{i18n .Lang "mgr.dashboard_menu"}}</a> </li>
<li{{if eq "users" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Users" }}" class="item"><i class="fa fa-user" aria-hidden="true"></i> {{i18n .Lang "mgr.user_menu"}}</a> </li>
<li{{if eq "team" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Team" }}" class="item"><i class="fa fa-group" aria-hidden="true"></i> {{i18n .Lang "mgr.team_menu"}}</a> </li>
<li{{if eq "books" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Books" }}" class="item"><i class="fa fa-book" aria-hidden="true"></i> {{i18n .Lang "mgr.project_menu"}}</a> </li>
<li{{if eq "itemsets" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Itemsets" }}" class="item"><i class="fa fa-archive" aria-hidden="true"></i> {{i18n .Lang "mgr.project_space_menu"}}</a> </li>
{{/*<li><a href="{{urlfor "ManagerController.Comments" }}" class="item"><i class="fa fa-comments-o" aria-hidden="true"></i> </a> </li>*/}}
<li{{if eq "setting" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Setting" }}" class="item"><i class="fa fa-cogs" aria-hidden="true"></i> 配置管理</a> </li>
{{/*<li{{if eq "config" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.Config" }}" class="item"><i class="fa fa-file" aria-hidden="true"></i> </a> </li>*/}}
<li{{if eq "attach" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.AttachList" }}" class="item"><i class="fa fa-cloud-upload" aria-hidden="true"></i> 附件管理</a> </li>
<li{{if eq "label" .}} class="active"{{end}}><a href="{{urlfor "ManagerController.LabelList" }}" class="item"><i class="fa fa-bookmark" aria-hidden="true"></i> 标签管理</a> </li>
{{/*<li><a href="{{urlfor "ManagerController.Comments" }}" class="item"><i class="fa fa-comments-o" aria-hidden="true"></i> {{i18n .Lang "mgr.comment_menu"}}</a> </li>*/}}
<li{{if eq "setting" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Setting" }}" class="item"><i class="fa fa-cogs" aria-hidden="true"></i> {{i18n .Lang "mgr.config_menu"}}</a> </li>
{{/*<li{{if eq "config" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.Config" }}" class="item"><i class="fa fa-file" aria-hidden="true"></i> {{i18n .Lang "mgr.config_file"}}</a> </li>*/}}
<li{{if eq "attach" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.AttachList" }}" class="item"><i class="fa fa-cloud-upload" aria-hidden="true"></i> {{i18n .Lang "mgr.attachment_menu"}}</a> </li>
<li{{if eq "label" .Action}} class="active"{{end}}><a href="{{urlfor "ManagerController.LabelList" }}" class="item"><i class="fa fa-bookmark" aria-hidden="true"></i> {{i18n .Lang "mgr.label_menu"}}</a> </li>
</ul>
</div>