1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-30 18:59:22 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-08-21 19:05:44 +08:00
parent fc59317d85
commit 3534665b88
4 changed files with 27 additions and 13 deletions

View File

@ -10,6 +10,9 @@ import (
const (
SEND = "send"
FROM = "from"
TO = "to"
CC = "cc"
SUBJECT = "subject"
CONTENT = "content"
)
@ -17,25 +20,28 @@ const EMAIL = "email"
func init() {
const (
TO = "to"
ADMIN = "admin"
SERVICE = "service"
MAILBOX = "mailbox"
NL = "\r\n"
DF = ": "
)
Index.MergeCommands(ice.Commands{
EMAIL: {Name: "email name auto create website", Help: "邮件", Actions: ice.MergeActions(ice.Actions{
"website": {Help: "邮箱", Hand: func(m *ice.Message, arg ...string) {
// m.ProcessOpen(m.Cmdv("web.spide", EMAIL, "client.url"))
// m.EchoIFrame(m.Cmdv("web.spide", EMAIL, "client.url")).ProcessInner()
m.EchoIFrame("/chat/pod/20230511-golang-story/cmd/web.chat.email.client").ProcessInner()
EMAIL: {Name: "email name auto create mailbox", Help: "邮件", Actions: ice.MergeActions(ice.Actions{
MAILBOX: {Help: "邮箱", Hand: func(m *ice.Message, arg ...string) { m.EchoIFrame(mdb.Config(m, MAILBOX)).ProcessInner() }},
mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) {
mdb.HashInputs(m, arg)
switch arg[0] {
case CONTENT:
m.Push(arg[0], m.Option(ice.MSG_USERWEB))
}
}},
SEND: {Name: "send to*='shylinux@163.com' subject*=hi content*:textarea=hello", Help: "发送", Hand: func(m *ice.Message, arg ...string) {
SEND: {Name: "send to*='shylinux@163.com' cc subject*=hi content*:textarea=hello", Help: "发送", Hand: func(m *ice.Message, arg ...string) {
msg := m.Cmd("", m.OptionDefault(mdb.NAME, ADMIN))
if m.Warn(msg.Append(SERVICE) == "", ice.ErrNotValid, SERVICE) {
return
}
content := []byte(kit.JoinKV(DF, NL, "From", msg.Append(USERNAME), "To", m.Option(TO), "Subject", m.Option(SUBJECT), "Content-Type", "text/html; charset=UTF-8") + NL + NL + m.Option(CONTENT))
content := []byte(kit.JoinKV(DF, NL, kit.Simple(FROM, msg.Append(USERNAME), m.OptionSimple(TO, CC, SUBJECT), "Content-Type", "text/html; charset=UTF-8")...) + NL + NL + m.Option(CONTENT))
auth := smtp.PlainAuth("", msg.Append(USERNAME), msg.Append(PASSWORD), kit.Split(msg.Append(SERVICE), ice.DF)[0])
m.Logs(EMAIL, SEND, string(content)).Warn(smtp.SendMail(msg.Append(SERVICE), auth, msg.Append(USERNAME), kit.Split(m.Option(TO)), content))
}},

View File

@ -264,7 +264,13 @@ func AutoConfig(arg ...Any) *ice.Action {
}
} else if cmd.Actions[CREATE] != nil {
if inputs := []Any{}; cmd.Meta[CREATE] == nil {
kit.For(kit.Filters(kit.Split(HashField(m)), TIME, HASH), func(k string) { inputs = append(inputs, k) })
kit.For(kit.Filters(kit.Split(HashField(m)), TIME, HASH), func(k string) {
if kit.IsIn(k, kit.Split(Config(m, SHORT))...) {
inputs = append(inputs, k+"*")
} else {
inputs = append(inputs, k)
}
})
m.Design(CREATE, "创建", inputs...)
}
}

View File

@ -81,6 +81,11 @@ func init() {
aaa.AVATAR: {Hand: _header_users},
web.SHARE: {Hand: _header_share},
"webpack": {Hand: ctx.CmdHandler("webpack", "build")},
"email": {Name: "email to subject content", Hand: func(m *ice.Message, arg ...string) {
m.Options("volcano", web.UserHost(m), "version", web.RenderVersion(m))
m.Option(ice.MSG_USERWEB, kit.MergeURL(m.Option(ice.MSG_USERWEB), web.SHARE, m.Cmdx(web.SHARE, mdb.CREATE, mdb.TYPE, web.LOGIN)))
m.Cmdy(aaa.EMAIL, aaa.SEND, arg, aaa.CONTENT, nfs.Template(m, "email.html"))
}},
"theme": {Hand: func(m *ice.Message, arg ...string) {
if !tcp.IsLocalHost(m, m.Option(ice.MSG_USERIP)) {
return
@ -96,7 +101,7 @@ func init() {
return
}
msg := m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME))
kit.For([]string{aaa.USERNICK, aaa.LANGUAGE}, func(k string) { m.Option(k, msg.Append(k)) })
kit.For([]string{aaa.USERNICK, aaa.LANGUAGE, aaa.EMAIL}, func(k string) { m.Option(k, msg.Append(k)) })
kit.For([]string{aaa.AVATAR, aaa.BACKGROUND}, func(k string) { m.Option(k, web.RequireFile(m, msg.Append(k))) })
kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, kit.Split(m.R.Header.Get(web.AcceptLanguage), ",;")[0]) })
m.Echo(mdb.Config(m, TITLE)).Option(MENUS, mdb.Config(m, MENUS))

View File

@ -5,7 +5,6 @@ fieldset.macos.desktop>div.output>fieldset.macos { background-color:transparent;
fieldset.macos.desktop>div.output>fieldset.macos>div.output { background-color:transparent; }
fieldset.macos.desktop>div.output>fieldset.macos.menu { line-height:25px; border-radius:0; height:25px; width:100%; position:absolute; top:0; overflow:hidden; }
fieldset.macos.desktop>div.output>fieldset.macos.searchs { position:absolute; z-index:100; }
// fieldset.macos.desktop>div.output>fieldset.macos.searchs>form.option>div.item.icon.delete { display:none; }
fieldset.macos.desktop>div.output>fieldset.macos.searchs>form.option>div.item.keyword input { width:320px; background-color:transparent; border:#404141 solid 1px; }
fieldset.macos.desktop>div.output>fieldset.macos.searchs>form.option>div.item.keyword:hover { background-color:transparent; }
fieldset.macos.desktop>div.output>fieldset.macos.notifications { border-radius:0; height:calc(100% - 125px); width:250px; overflow:auto; position:absolute; top:25px; right:0; }
@ -40,7 +39,6 @@ fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item.icon
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:20px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:80px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>div.action>* { margin:10px 0px 10px 10px; }
// fieldset.macos.desktop>div.output>div.desktop>fieldset>div.action>div.item.icons>span.icon { margin-top:10px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>div.action>div.item:last-child { margin-right:120px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset.web.wiki.feel>div.status { display:none; }
fieldset.macos.desktop>div.output>div.desktop>fieldset.web.code.vimer>div.status { display:none; }
@ -75,7 +73,6 @@ body.light fieldset.macos.desktop>div.output>fieldset.macos.notifications { back
body.light fieldset.macos.desktop>div.output>fieldset.macos.notifications div.item { background-color:#daefff99; }
body.light fieldset.macos.desktop>div.output>div.desktop>fieldset { background-color:#dee1e6; }
body.light fieldset.macos.desktop>div.output>div.desktop fieldset input:not(:hover) { background-color:white; }
// body.light fieldset.macos.desktop>div.output>div.desktop fieldset input:not(:hover) { background-color:white; border:#e4e5e5 solid 1px; }
body.light fieldset.macos.desktop>div.output>div.desktop fieldset table.content tbody tr:nth-child(odd) { background-color:#f4f5f5; }
body.light fieldset.macos.desktop>div.output>div.desktop fieldset table.content tbody tr:nth-child(even) { background-color:white; }
body.light fieldset.macos.desktop>div.output>div.desktop fieldset>div.output.card>div.item { border:#d3d4d4 solid 1px; }