瀏覽代碼

添加标签库

unknown 7 年之前
父節點
當前提交
a18686dcc3
共有 2 個文件被更改,包括 365 次插入0 次删除
  1. 110 0
      src/jy/admin/rule.go
  2. 255 0
      src/web/templates/admin/rule_taglist.html

+ 110 - 0
src/jy/admin/rule.go

@@ -3,18 +3,33 @@ package admin
 
 import (
 	. "jy/mongodbutil"
+	"regexp"
+	"strings"
 	"time"
 
 	"github.com/gin-gonic/gin"
 )
 
+var Date_Short_Layout = "2006-01-02"
+
 func init() {
+	//rulepre
 	Admin.GET("/rulepre", func(c *gin.Context) {
 		version := c.Query("version")
 		c.HTML(200, "rule_prelist.html", gin.H{"version": version})
 	})
 	Admin.POST("/rulepre/data", RulePreData)
 	Admin.POST("/rulepre/save", RulePreSave)
+
+	//ruletag
+	Admin.GET("/ruletag", func(c *gin.Context) {
+		version := c.Query("version")
+		c.HTML(200, "rule_taglist.html", gin.H{"version": version})
+	})
+	Admin.POST("/ruletag/data", RuleTagData)
+	Admin.POST("/ruletag/save", RuleTagSave)
+	Admin.POST("/ruletag/del", RuleTagDel)
+	Admin.POST("/ruletag/editsave", RuleTagEditSave)
 }
 
 //前置规则列表
@@ -45,3 +60,98 @@ func RulePreSave(c *gin.Context) {
 		c.JSON(200, gin.H{"rep": false})
 	}
 }
+
+//标签库列表
+func RuleTagData(c *gin.Context) {
+	version, _ := c.GetPostForm("version")
+	data, _ := Mgo.Find("rule_tag", `{"version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
+	for _, d := range *data {
+		timeStr := time.Unix(d["intime"].(int64), 0).Format(Date_Short_Layout)
+		d["intime"] = timeStr
+	}
+	c.JSON(200, gin.H{"data": data})
+}
+
+//添加标签
+func RuleTagSave(c *gin.Context) {
+	name, _ := c.GetPostForm("name")
+	version, _ := c.GetPostForm("version")
+	contentStr, _ := c.GetPostForm("content")
+	username, _ := c.GetPostForm("username")
+	tp, _ := c.GetPostForm("tp")
+	content := strings.Split(contentStr, ",")
+	data, _ := Mgo.FindOne("rule_tag", `{"name":"`+name+`"}`)
+	if len(*data) > 0 { //判重,防止添加name相同的标签
+		c.JSON(200, gin.H{"rep": false})
+		return
+	}
+	if tp == "正则" { //验证是否是正则
+		for _, ct := range content {
+			_, err := regexp.Compile(ct)
+			if err != nil {
+				c.JSON(200, gin.H{"rep": false})
+				return
+			}
+		}
+	}
+	save := map[string]interface{}{
+		"name":    name,
+		"version": version,
+		"content": content,
+		"creater": username,
+		"intime":  time.Now().Unix(),
+		"type":    tp,
+	}
+	b := Mgo.Save("rule_tag", save)
+	if b != "" {
+		c.JSON(200, gin.H{"rep": true})
+	} else {
+		c.JSON(200, gin.H{"rep": false})
+	}
+}
+
+//删除标签
+func RuleTagDel(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	b := Mgo.Del("rule_tag", `{"_id":"`+_id+`"}`)
+	if b {
+		c.JSON(200, gin.H{"rep": true})
+	} else {
+		c.JSON(200, gin.H{"rep": false})
+	}
+}
+
+//编辑保存
+func RuleTagEditSave(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	contentStr, _ := c.GetPostForm("content")
+	content := strings.Split(contentStr, ",")
+	data, _ := Mgo.FindOne("rule_tag", `{"_id":"`+_id+`"}`)
+	if (*data)["type"] == "正则" { //验证是否是正则
+		for _, ct := range content {
+			_, err := regexp.Compile(ct)
+			if err != nil {
+				c.JSON(200, gin.H{"rep": false})
+				return
+			}
+		}
+	}
+	if len(*data) > 0 {
+		set := map[string]interface{}{
+			"name":    (*data)["name"],
+			"version": (*data)["version"],
+			"creater": (*data)["creater"],
+			"intime":  (*data)["intime"],
+			"type":    (*data)["type"],
+			"content": content,
+		}
+		b := Mgo.Update("rule_tag", `{"_id":"`+_id+`"}`, set, false, false)
+		if b {
+			c.JSON(200, gin.H{"rep": true})
+		} else {
+			c.JSON(200, gin.H{"rep": false})
+		}
+	} else {
+		c.JSON(200, gin.H{"rep": false})
+	}
+}

+ 255 - 0
src/web/templates/admin/rule_taglist.html

@@ -0,0 +1,255 @@
+{{template "inc"}}
+<!-- Main Header -->
+{{template "header"}}
+<!-- Left side column. 权限菜单 -->
+{{template "memu"}}
+
+<!-- Content Wrapper. Contains page content -->
+<div class="content-wrapper">
+	<section class="content-header">
+		<h1>
+			<small><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-info-addtag">新增标签</button></small>
+		</h1>
+		<ol class="breadcrumb">
+		  <li><a href="/admin/version"><i class="fa fa-dashboard"></i> 版本控制</a></li>
+		  <li><a href="/admin/version">版本管理</a></li>
+		  <li class="active"><a href="#">标签库</a></li>
+		</ol>
+    </section>
+  <!-- Main content -->
+  <section class="content">
+      <div class="row">
+	      <div class="col-xs-12">
+	        <div class="box">
+		        <div class="box-body">
+		            <table id="dataTable" class="table table-bordered table-hover">
+		              <thead>
+		              <tr>
+		                <th>名称</th>
+						<th>创建人</th>
+						<th>创建时间</th>
+						<th>类型</th>
+						<th>内容</th>
+						<th>操作</th>
+		              </tr>
+		              </thead>
+		            </table>
+		        </div>
+	          <!-- /.box-body -->
+	        </div>
+        <!-- /.box -->
+		</div>
+	</div>
+  </section>
+</div>
+<!--新增标签--> 
+<div class="modal fade" id="modal-info-addtag">
+  	<div class="modal-dialog">
+	    <form id="add-dataform" class="form-horizontal" role="form">
+		<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>
+		    </div>
+		    <div class="modal-body">
+		     	<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">名称:</label>
+				    <div class="col-sm-10">
+				      <input id="add-name" type="text" class="form-control" placeholder="请输名称">
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">版本:</label>
+				    <div class="col-sm-10">
+				      <input id="add-version" type="text" value="{{.version}}" class="form-control" disabled>
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">类型:</label>
+				    <div class="col-sm-10" id="add-checkbox">
+				      <input type="radio" name="tp" id="add-str" value="str">字符串</input>&nbsp;&nbsp;&nbsp;&nbsp;
+					  <input type="radio" name="tp" id="add-reg" value="reg">正则</input>
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">内容:</label>
+				    <div class="col-sm-10">
+				      <textarea id="add-content" class="form-control" placeholder="内容"></textarea>
+					</div>
+				</div>
+		    </div>
+		    <div class="modal-footer">
+		        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="reset()">取消</button>
+		        <button type="button" class="btn btn-primary" onclick="addsave()">保存</button>
+	    	</div>
+		</div>
+	    <!-- /.modal-content -->
+	    </form>
+  	</div>
+  <!-- /.modal-dialog -->
+</div>
+<!-- /.modal -->
+<!--编辑标签--> 
+<div class="modal fade" id="modal-info-edittag">
+  	<div class="modal-dialog">
+	    <form id="edit-dataform" class="form-horizontal" role="form">
+		<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>
+		    </div>
+		    <div class="modal-body">
+		     	<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">名称:</label>
+				    <div class="col-sm-10">
+				      <input id="edit-name" type="text" class="form-control" disabled>
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">内容:</label>
+				    <div class="col-sm-10">
+				      <textarea id="edit-content" class="form-control" placeholder="内容"></textarea>
+					</div>
+				</div>
+		    </div>
+		    <div class="modal-footer">
+		        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="reset()">取消</button>
+		        <button type="button" class="btn btn-primary" onclick="editsave()">保存</button>
+	    	</div>
+			<div class="modal-footer">
+		         <input id="edit-id" type="hidden" class="form-control" name="_id">
+	    	</div>
+		</div>
+	    <!-- /.modal-content -->
+	    </form>
+  	</div>
+  <!-- /.modal-dialog -->
+</div>
+<!-- /.modal -->
+
+<!-- footer -->
+{{template "footer"}}
+
+<script>
+menuActive("version")
+$(function () {
+	ttabletag=$('#dataTable').DataTable({
+		"paging"      : false,
+		"lengthChange": false,
+		"searching"   : true,
+		"ordering"    : false,
+		"info"        : true,
+		"autoWidth"   : false,
+		"paging"	  : true,
+		
+		"ajax": {
+			"url": "/admin/ruletag/data",
+			"type": "post",
+			"data":{"version":{{ .version}} }
+		 },
+		"language": {
+            "url": "../res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+            { "data": "name"},
+			{ "data": "creater"},
+			{ "data": "intime"},
+			{ "data": "type"},
+			{ "data": "content"},
+			{ "data": "_id",render:function(val,a,row){
+				return  "<a href='#' onclick='edit(\""+val+"\",\""+row["name"]+"\",\""+row["content"]+"\")'><i class='fa fa-fw fa-edit text-yellow'></i></a> &nbsp;"+
+						"<a href='#' onclick='del(\""+val+"\")'><i class='fa fa-fw fa-trash text-red'></i></a>"
+			}}
+       	]
+	});
+	//ttabletag.on('init.dt', function () {});
+})
+//新建保存
+function addsave(){
+	name=$("#add-name").val();
+	version=$("#add-version").val();
+	content=$("#add-content").val();
+	tp = "";
+	$("#add-checkbox input[type=radio]").each(function(){
+		if($(this).prop("checked")){
+			tp = $(this).val();
+		}
+	});
+	if(name==""||content=="" || tp == ""){
+		alert("表单填写不完整!");
+		return false;
+	}
+	if(tp == "str"){
+		tp = "字符串";
+	}else{
+		tp = "正则";
+	}
+	$.ajax({
+		url:"/admin/ruletag/save",
+		type:"post",
+		data:{"name":name,"version":version,"tp":tp,
+		"content":content,"username":{{index (session "user") "name" }}},
+		success:function(r){
+			if(r.rep){
+				$("#add-dataform")[0].reset();
+				$("#modal-info-addtag").modal("hide");
+				ttabletag.ajax.reload();
+			}else{
+				$("#add-dataform")[0].reset();
+				$("#modal-info-addtag").modal("hide");
+				alert("保存失败");
+			}
+		}
+	})
+}
+//编辑
+function edit(_id,name,content){
+	$("#edit-name").val(name);
+	$("#edit-content").val(content);
+	$("#edit-id").val(_id);
+	$("#modal-info-edittag").modal("show");
+}
+//编辑保存
+function editsave(){
+	_id=$("#edit-id").val();
+	content=$("#edit-content").val();
+	if(content==""){
+		alert("表单填写不完整!");
+		return false;
+	}
+	$.ajax({
+		url:"/admin/ruletag/editsave",
+		type:"post",
+		data:{"_id":_id,"content":content},
+		success:function(r){
+			if(r.rep){
+				$("#edit-dataform")[0].reset();
+				$("#modal-info-edittag").modal("hide");
+				ttabletag.ajax.reload();
+			}else{
+				alert("保存失败");
+			}
+		}
+	})
+}
+//删除
+function del(_id){
+	showConfirm("确定删除?", function() {
+		$.ajax({
+			url:"/admin/ruletag/del",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				if(r.rep){				
+					ttabletag.ajax.reload();
+				}else{
+					showTip("删除失败", 1000, function() {});
+				}
+			}
+		})
+	});
+}
+ 
+</script>