mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
tce add base.html
This commit is contained in:
parent
2b834d28e0
commit
5348baeb2b
@ -2382,7 +2382,9 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
|
||||
}
|
||||
if len(arg) > 3 {
|
||||
for _, v := range group.Commands[item].Shares[arg[2]] {
|
||||
if arg[3] == v {
|
||||
match, e := regexp.MatchString(v, arg[3])
|
||||
m.Assert(e)
|
||||
if match {
|
||||
m.Echo("ok")
|
||||
return
|
||||
}
|
||||
|
@ -602,17 +602,16 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
r := m.Data["request"].(*http.Request) // {{{
|
||||
w := m.Data["response"].(http.ResponseWriter)
|
||||
|
||||
m.Option("message", "")
|
||||
if !m.Options("file") {
|
||||
m.Option("file", m.Cap("directory"))
|
||||
}
|
||||
dir := m.Option("file")
|
||||
|
||||
if !m.Options("username") {
|
||||
m.Option("username", "")
|
||||
}
|
||||
|
||||
m.Option("right", "")
|
||||
m.Option("message", "")
|
||||
aaa := m.Find("aaa").Cmd("login", m.Option("sessid"))
|
||||
if aaa.Result(0) == "error: " {
|
||||
m.Option("sessid", "")
|
||||
@ -620,15 +619,20 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
} else {
|
||||
m.Option("username", aaa.Result(0))
|
||||
msg := m.Spawn(m.Target())
|
||||
msg.Cmd("right", "check", aaa.Cap("group"), "command", "/upload", "file", dir)
|
||||
msg.Cmd("right", "check", aaa.Cap("group"), "command", "/upload", "file", m.Option("file"))
|
||||
if msg.Result(0) == "ok" {
|
||||
m.Option("right", aaa.Cap("group"))
|
||||
} else {
|
||||
m.Option("message", "your do not have the right of", dir)
|
||||
m.Option("message", "your do not have the right of", m.Option("file"))
|
||||
}
|
||||
}
|
||||
|
||||
if m.Option("method") == "POST" {
|
||||
if !m.Options("right") {
|
||||
m.Echo("you do not have the rightt, please contact manager!")
|
||||
return
|
||||
}
|
||||
|
||||
if m.Options("notshareto") {
|
||||
msg := m.Spawn(m.Target())
|
||||
msg.Cmd("right", "del", m.Option("notshareto"), "command", "/upload", "file", m.Option("sharefile"))
|
||||
@ -641,7 +645,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
m.Append("link", "hello")
|
||||
return
|
||||
} else if m.Options("content") {
|
||||
name := path.Join(dir, m.Option("filename"))
|
||||
name := path.Join(m.Option("file"), m.Option("filename"))
|
||||
if _, e := os.Stat(name); e != nil {
|
||||
f, e := os.Create(name)
|
||||
m.Assert(e)
|
||||
@ -657,7 +661,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
file, header, e := r.FormFile("file")
|
||||
m.Assert(e)
|
||||
|
||||
name := path.Join(dir, header.Filename)
|
||||
name := path.Join(m.Option("file"), header.Filename)
|
||||
|
||||
if _, e := os.Stat(name); e != nil {
|
||||
f, e := os.Create(name)
|
||||
@ -672,6 +676,19 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
}
|
||||
}
|
||||
|
||||
if !m.Options("right") {
|
||||
w.Header().Add("Content-Type", "text/html")
|
||||
tmpl := template.Must(template.Must(template.ParseGlob(m.Conf("template_dir") + "/common/*.html")).ParseGlob(m.Conf("template_dir") + "upload.html"))
|
||||
m.Assert(tmpl)
|
||||
|
||||
tmpl.ExecuteTemplate(w, "head", m.Meta)
|
||||
tmpl.ExecuteTemplate(w, "login", m.Meta)
|
||||
m.Option("message", "your do not have the right, please contact manager")
|
||||
tmpl.ExecuteTemplate(w, "message", m.Meta)
|
||||
tmpl.ExecuteTemplate(w, "tail", m.Meta)
|
||||
return
|
||||
}
|
||||
|
||||
file := m.Option("file")
|
||||
s, e := os.Stat(file)
|
||||
if m.Assert(e); !s.IsDir() {
|
||||
@ -736,46 +753,41 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
m.Assert(tmpl)
|
||||
|
||||
tmpl.ExecuteTemplate(w, "head", m.Meta)
|
||||
if m.Options("right") {
|
||||
tmpl.ExecuteTemplate(w, "userinfo", m.Meta)
|
||||
tmpl.ExecuteTemplate(w, "userinfo", m.Meta)
|
||||
|
||||
msg := m.Spawn(m.Target())
|
||||
msg := m.Spawn(m.Target())
|
||||
|
||||
index := msg.Target().Index
|
||||
if index != nil && index[m.Option("right")] != nil {
|
||||
for k, v := range index[m.Option("right")].Index {
|
||||
// for k, v := range index {
|
||||
for i, j := range v.Commands {
|
||||
for v, n := range j.Shares {
|
||||
for _, nn := range n {
|
||||
match, e := regexp.MatchString(nn, dir)
|
||||
m.Log("fuck", nil, "why %s %s", nn, dir)
|
||||
m.Assert(e)
|
||||
if match {
|
||||
msg.Add("append", "group", k)
|
||||
msg.Add("append", "command", i)
|
||||
msg.Add("append", "argument", v)
|
||||
msg.Add("append", "value", nn)
|
||||
msg.Add("append", "delete", "delete")
|
||||
}
|
||||
index := msg.Target().Index
|
||||
if index != nil && index[m.Option("right")] != nil {
|
||||
for k, v := range index[m.Option("right")].Index {
|
||||
// for k, v := range index {
|
||||
for i, j := range v.Commands {
|
||||
for v, n := range j.Shares {
|
||||
for _, nn := range n {
|
||||
match, e := regexp.MatchString(nn, m.Option("file"))
|
||||
m.Log("fuck", nil, "why %s %s", nn, m.Option("file"))
|
||||
m.Assert(e)
|
||||
if match {
|
||||
msg.Add("append", "group", k)
|
||||
msg.Add("append", "command", i)
|
||||
msg.Add("append", "argument", v)
|
||||
msg.Add("append", "value", nn)
|
||||
msg.Add("append", "delete", "delete")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tmpl.ExecuteTemplate(w, "share", msg.Meta)
|
||||
|
||||
tmpl.ExecuteTemplate(w, "upload", m.Meta)
|
||||
} else {
|
||||
tmpl.ExecuteTemplate(w, "login", m.Meta)
|
||||
}
|
||||
|
||||
tmpl.ExecuteTemplate(w, "share", msg.Meta)
|
||||
tmpl.ExecuteTemplate(w, "upload", m.Meta)
|
||||
|
||||
switch m.Option("cmd") {
|
||||
case "git":
|
||||
branch := m.Find("nfs").Cmd("git", "-C", dir, "branch")
|
||||
branch := m.Find("nfs").Cmd("git", "-C", m.Option("file"), "branch")
|
||||
m.Option("branch", branch.Result(0))
|
||||
status := m.Find("nfs").Cmd("git", "-C", dir, "status")
|
||||
status := m.Find("nfs").Cmd("git", "-C", m.Option("file"), "status")
|
||||
m.Option("status", status.Result(0))
|
||||
tmpl.ExecuteTemplate(w, "git", m.Meta)
|
||||
}
|
||||
@ -785,9 +797,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
}
|
||||
|
||||
tmpl.ExecuteTemplate(w, "list", m.Meta)
|
||||
if m.Options("right") {
|
||||
tmpl.ExecuteTemplate(w, "create", m.Meta)
|
||||
}
|
||||
tmpl.ExecuteTemplate(w, "create", m.Meta)
|
||||
tmpl.ExecuteTemplate(w, "tail", m.Meta)
|
||||
delete(m.Meta, "result")
|
||||
delete(m.Meta, "append")
|
||||
@ -899,6 +909,16 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心",
|
||||
msg.Cmd("get", "method", "POST", "evaluating_add/", "questions", qs)
|
||||
m.Add("append", "hi", "hello")
|
||||
}},
|
||||
"/demo": &ctx.Command{Name: "/demo", Help: "应用示例", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||
w := m.Data["response"].(http.ResponseWriter)
|
||||
|
||||
w.Header().Add("Content-Type", "text/html")
|
||||
tmpl := template.Must(template.ParseGlob(m.Conf("template_dir") + "/common/*.html"))
|
||||
m.Assert(tmpl)
|
||||
|
||||
tmpl.ExecuteTemplate(w, "head", m.Meta)
|
||||
tmpl.ExecuteTemplate(w, "tail", m.Meta)
|
||||
}},
|
||||
},
|
||||
}
|
||||
|
||||
|
35
usr/template/common/base.html
Normal file
35
usr/template/common/base.html
Normal file
@ -0,0 +1,35 @@
|
||||
{{define "head"}}
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="favicon.ico" type="image/x-icon"/>
|
||||
<style>
|
||||
legend {
|
||||
font-size:16px;
|
||||
font-weight:bold;
|
||||
}
|
||||
th {
|
||||
cursor:pointer;
|
||||
background-color:lightgray;
|
||||
}
|
||||
code {
|
||||
font-size:14px;
|
||||
}
|
||||
.message {
|
||||
color:red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{{end}}
|
||||
|
||||
{{define "message"}}
|
||||
<fieldset class="message"><legend>message</legend>
|
||||
<pre>{{index . "message"}}</pre>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "tail"}}
|
||||
<script src="library/context.js"></script>
|
||||
</body>
|
||||
{{end}}
|
@ -43,34 +43,34 @@
|
||||
<input type="submit">
|
||||
</form>
|
||||
<table>
|
||||
<colgroup>
|
||||
{{range .append}}
|
||||
<col class="{{.}}">
|
||||
{{end}}
|
||||
</colgroup>
|
||||
<tr>
|
||||
{{range .append}}
|
||||
<th class="{{.}}">{{.}}</th>
|
||||
{{end}}
|
||||
</tr>
|
||||
|
||||
{{$meta := .}}
|
||||
{{if .append}}
|
||||
{{$first := index .append 0}}
|
||||
{{range $i, $k := index . $first}}
|
||||
<tr>
|
||||
{{range $key := index $meta "append"}}
|
||||
<td class="{{$key}}">
|
||||
{{if eq $key "delete"}}
|
||||
<button onclick="return deleteshare(event, '{{index $meta "value" $i}}', '{{index $meta "group" $i}}')">delete</button>
|
||||
{{else}}
|
||||
<code>{{index $meta $key $i}}</code>
|
||||
{{end}}
|
||||
</td>
|
||||
{{end}}
|
||||
</tr>
|
||||
<colgroup>
|
||||
{{range .append}}
|
||||
<col class="{{.}}">
|
||||
{{end}}
|
||||
</colgroup>
|
||||
<tr>
|
||||
{{range .append}}
|
||||
<th class="{{.}}">{{.}}</th>
|
||||
{{end}}
|
||||
</tr>
|
||||
|
||||
{{$meta := .}}
|
||||
{{if .append}}
|
||||
{{$first := index .append 0}}
|
||||
{{range $i, $k := index . $first}}
|
||||
<tr>
|
||||
{{range $key := index $meta "append"}}
|
||||
<td class="{{$key}}">
|
||||
{{if eq $key "delete"}}
|
||||
<button onclick="return deleteshare(event, '{{index $meta "value" $i}}', '{{index $meta "group" $i}}')">delete</button>
|
||||
{{else}}
|
||||
<code>{{index $meta $key $i}}</code>
|
||||
{{end}}
|
||||
</td>
|
||||
{{end}}
|
||||
</tr>
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
</table>
|
||||
</fieldset>
|
||||
<script>
|
||||
|
@ -1,16 +1,66 @@
|
||||
{{define "head"}}
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
{{define "git"}}
|
||||
<fieldset><legend>branch</legend>
|
||||
<pre>{{index . "branch"}}</pre>
|
||||
</fieldset>
|
||||
<fieldset><legend>status</legend>
|
||||
<pre>{{index . "status"}}</pre>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "upload"}}
|
||||
<fieldset><legend>upload</legend>
|
||||
<form method="POST" action="/upload" enctype="multipart/form-data">
|
||||
<input type="file" name="file"><input type="submit">
|
||||
</form>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "list"}}
|
||||
<fieldset><legend><input type="text" id="dir" value="{{index .file 0}}" onkeydown="return Change(event)"></legend>
|
||||
<table>
|
||||
<colgroup>
|
||||
{{range .append}}
|
||||
<col class="{{.}}">
|
||||
{{end}}
|
||||
</colgroup>
|
||||
<tr>
|
||||
{{$sort := index . "sort" 0}}
|
||||
{{$reverse := index . "reverse" 0}}
|
||||
{{range .append}}
|
||||
{{if eq $sort .}}
|
||||
<th class="{{.}} sort" onclick="list('{{.}}')">{{.}}</th>
|
||||
{{else if eq $reverse .}}
|
||||
<th class="{{.}} reverse" onclick="list('{{.}}')">{{.}}</th>
|
||||
{{else if eq . "path"}}
|
||||
{{else}}
|
||||
<th class="{{.}}" onclick="list('{{.}}')">{{.}}</th>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</tr>
|
||||
|
||||
{{$meta := .}}
|
||||
{{if .append}}
|
||||
{{$first := index .append 0}}
|
||||
{{range $i, $k := index . $first}}
|
||||
<tr>
|
||||
{{range $key := index $meta "append"}}
|
||||
{{if eq $key "name"}}
|
||||
<td class="{{$key}}">
|
||||
<a href="/upload?file={{index $meta "path" $i}}"><code>{{index $meta $key $i}}</code></a>
|
||||
</td>
|
||||
{{else if eq $key "path"}}
|
||||
{{else}}
|
||||
<td class="{{$key}}">
|
||||
<code>{{index $meta $key $i}}</code>
|
||||
</td>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</tr>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</table>
|
||||
</fieldset>
|
||||
<style>
|
||||
legend {
|
||||
font-size:16px;
|
||||
font-weight:bold;
|
||||
}
|
||||
th {
|
||||
cursor:pointer;
|
||||
background-color:lightgray;
|
||||
}
|
||||
.time {
|
||||
padding-right:20px;
|
||||
}
|
||||
@ -28,104 +78,9 @@
|
||||
.reverse {
|
||||
color:green;
|
||||
}
|
||||
.message {
|
||||
color:red;
|
||||
}
|
||||
code {
|
||||
font-size:14px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{{end}}
|
||||
|
||||
{{define "git"}}
|
||||
<fieldset><legend>branch</legend>
|
||||
<pre>{{index . "branch"}}</pre>
|
||||
</fieldset>
|
||||
<fieldset><legend>status</legend>
|
||||
<pre>{{index . "status"}}</pre>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "upload"}}
|
||||
<fieldset><legend>upload</legend>
|
||||
<form method="POST" action="/upload" enctype="multipart/form-data">
|
||||
<input type="file" name="file"><input type="submit">
|
||||
</form>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "message"}}
|
||||
<fieldset class="message"><legend>message</legend>
|
||||
<pre>{{index . "message"}}</pre>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "list"}}
|
||||
<fieldset><legend><input type="text" id="dir" value="{{index .file 0}}" onkeydown="return Change(event)"></legend>
|
||||
<table>
|
||||
<colgroup>
|
||||
{{range .append}}
|
||||
<col class="{{.}}">
|
||||
{{end}}
|
||||
</colgroup>
|
||||
<tr>
|
||||
{{$sort := index . "sort" 0}}
|
||||
{{$reverse := index . "reverse" 0}}
|
||||
{{range .append}}
|
||||
{{if eq $sort .}}
|
||||
<th class="{{.}} sort" onclick="list('{{.}}')">{{.}}</th>
|
||||
{{else if eq $reverse .}}
|
||||
<th class="{{.}} reverse" onclick="list('{{.}}')">{{.}}</th>
|
||||
{{else if eq . "path"}}
|
||||
{{else}}
|
||||
<th class="{{.}}" onclick="list('{{.}}')">{{.}}</th>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</tr>
|
||||
<script>
|
||||
var file = '{{index .file 0}}';
|
||||
</script>
|
||||
|
||||
{{$meta := .}}
|
||||
{{if .append}}
|
||||
{{$first := index .append 0}}
|
||||
{{range $i, $k := index . $first}}
|
||||
<tr>
|
||||
{{range $key := index $meta "append"}}
|
||||
{{if eq $key "name"}}
|
||||
<td class="{{$key}}">
|
||||
<a href="/upload?file={{index $meta "path" $i}}"><code>{{index $meta $key $i}}</code></a>
|
||||
</td>
|
||||
{{else if eq $key "path"}}
|
||||
{{else}}
|
||||
<td class="{{$key}}">
|
||||
<code>{{index $meta $key $i}}</code>
|
||||
</td>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</tr>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</table>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "create"}}
|
||||
<fieldset><legend>create</legend>
|
||||
<form method="POST" action="/upload">
|
||||
<table>
|
||||
<tr><td>filename:</td><td><input type="text" name="filename" required><input type="submit"></td></tr>
|
||||
<tr><td>content:</td><td><textarea rows="5" cols="80" name="content" required></textarea></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
||||
{{define "tail"}}
|
||||
<script src="library/context.js"></script>
|
||||
<script>
|
||||
var file = '{{index .file 0}}';
|
||||
function Change(event) {
|
||||
if (event.keyCode == 13) {
|
||||
ctx.Search("file", event.target.value);
|
||||
@ -138,5 +93,15 @@
|
||||
location.assign(location.href)
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
{{end}}
|
||||
|
||||
{{define "create"}}
|
||||
<fieldset><legend>create</legend>
|
||||
<form method="POST" action="/upload">
|
||||
<table>
|
||||
<tr><td>filename:</td><td><input type="text" name="filename" required><input type="submit"></td></tr>
|
||||
<tr><td>content:</td><td><textarea rows="5" cols="80" name="content" required></textarea></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</fieldset>
|
||||
{{end}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user