mirror of
https://github.com/lxsang/antos-frontend.git
synced 2024-11-08 05:58:22 +01:00
enable sendmail in blogger
This commit is contained in:
parent
8a9941f6ed
commit
9b75bc4ca2
2
Makefile
2
Makefile
@ -113,7 +113,7 @@ pkgar:
|
||||
test -f $(BUILDDIR)/packages/$$PKG/main.js && uglifyjs $(BUILDDIR)/packages/$$PKG/main.js --compress --mangle --output $(BUILDDIR)/packages/$$PKG/main.js;\
|
||||
test -f $(BUILDDIR)/packages/$$PKG/main.css && uglifycss --output $(BUILDDIR)/packages/$$PKG/main.css $(BUILDDIR)/packages/$$PKG/main.css;\
|
||||
cd $(BUILDDIR)/packages/$$PKG && zip -r "$$PKG.zip" ./ ; \
|
||||
cd ../../ && (mkdir repo/$$PKG || true) && mv packages/$$PKG/"$$PKG.zip" repo/$$PKG && touch repo/$$PKG/$$PKG.md && rm -r packages/$$PKG
|
||||
cd ../../ && (test -d repo/$$PKG || mkdir repo/$$PKG) && mv packages/$$PKG/"$$PKG.zip" repo/$$PKG && touch repo/$$PKG/$$PKG.md && rm -r packages/$$PKG
|
||||
|
||||
uglify:
|
||||
# uglify antos.js
|
||||
|
@ -4,7 +4,7 @@ jsfiles = katex/katex.js katex/auto-render.js
|
||||
|
||||
cssfiles = main.css katex/katex.css
|
||||
|
||||
copyfiles = scheme.html cvsection.html package.json katex/fonts
|
||||
copyfiles = scheme.html cvsection.html package.json katex/fonts api/sendmail.lua sendmail.html
|
||||
|
||||
|
||||
PKG_NAME=Blogger
|
||||
|
17
src/packages/Blogger/api/sendmail.lua
Normal file
17
src/packages/Blogger/api/sendmail.lua
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
local data = ...
|
||||
print(data.content)
|
||||
for k,v in pairs(data.to) do
|
||||
print("sent to:"..v)
|
||||
local to = v
|
||||
local from = "From: xsang.le@gmail.com\n"
|
||||
local suject = "Subject: " .. data.title .. "\n"
|
||||
local content = data.content.."\n"
|
||||
local cmd = 'echo "' .. utils.escape(from .. suject .. content) .. '"| sendmail ' .. to
|
||||
--print(cmd)
|
||||
local r = os.execute(cmd)
|
||||
if not r then
|
||||
print("Cannot send mail to: "..v)
|
||||
end
|
||||
end
|
||||
return "Email sent"
|
@ -105,4 +105,72 @@ class BloggerCVSectionDiaglog extends this.OS.GUI.BaseDialog
|
||||
container = @find "editor-container"
|
||||
children = ($ container).children()
|
||||
cheight = ($ container).height() - 30
|
||||
($ children[1]).css("height", cheight + "px")
|
||||
($ children[1]).css("height", cheight + "px")
|
||||
|
||||
# this dialog is for send mail
|
||||
class BloggerSendmailDiaglog extends this.OS.GUI.BaseDialog
|
||||
constructor: () ->
|
||||
super "BloggerCVSectionDiaglog"
|
||||
|
||||
init: () ->
|
||||
@render "#{@path()}/sendmail.html"
|
||||
@subdb = new @.parent._api.DB("subscribers")
|
||||
|
||||
main: () ->
|
||||
# get db
|
||||
me = @
|
||||
@maillinglist = @find "email-list"
|
||||
title = (new RegExp "^#+(.*)\n", "g").exec @data.content
|
||||
(@find "mail-title").value = title[1]
|
||||
content = (@data.content.substring 0, 500) + "..."
|
||||
(@find "contentarea").value = BloggerSendmailDiaglog.template.format @data.id, content, @data.id
|
||||
|
||||
@subdb.find {}, (d) ->
|
||||
return me.error __("Cannot fetch subscribers data: {0}", d.error) if d.error
|
||||
for v in d.result
|
||||
v.text = v.name
|
||||
v.switch = true
|
||||
v.checked = true
|
||||
|
||||
me.maillinglist.set "items", d.result
|
||||
|
||||
(@find "bt-sendmail").set "onbtclick", (e) ->
|
||||
items = me.maillinglist.get "items"
|
||||
emails = []
|
||||
emails.push v.email for v in items when v.checked is true
|
||||
return me.notify __("No email selected") if emails.length is 0
|
||||
# send the email
|
||||
data =
|
||||
path: "#{me.parent.path()}/sendmail.lua",
|
||||
parameters:
|
||||
to: emails,
|
||||
title: (me.find "mail-title").value,
|
||||
content: (me.find "contentarea").value
|
||||
me._api.post "system/apigateway", data, (d) ->
|
||||
me.notify "Sendmail: {0}".format d
|
||||
me.quit()
|
||||
, (e, s) ->
|
||||
console.log e
|
||||
me.error __("Error sending mail: {0}", e.responseText)
|
||||
|
||||
|
||||
|
||||
BloggerSendmailDiaglog.template = """
|
||||
Hello,
|
||||
|
||||
Xuan Sang LE has just published a new post on his blog: https://blog.lxsang.me/post/id/{0}
|
||||
|
||||
==========
|
||||
{1}
|
||||
==========
|
||||
|
||||
|
||||
Read the full article via:
|
||||
https://blog.lxsang.me/post/id/{2}
|
||||
|
||||
You receive this email because you have been subscribed to his blog.
|
||||
|
||||
Have a nice day,
|
||||
|
||||
Sent from Blogger, an AntOS application
|
||||
"""
|
@ -183,6 +183,17 @@ class Blogger extends this.OS.GUI.BaseApplication
|
||||
SimpleMDE.togglePreview e
|
||||
#/console.log me.select ".editor-preview editor-preview-active"
|
||||
renderMathInElement me.find "editor-container"
|
||||
},
|
||||
"|",
|
||||
{
|
||||
name: __("Send mail"),
|
||||
className: "fa fa-paper-plane",
|
||||
action: (e) ->
|
||||
sel = me.bloglist.get "selected"
|
||||
return me.error __("No post selected") unless sel
|
||||
me.openDialog new BloggerSendmailDiaglog(), (d) ->
|
||||
console.log "test"
|
||||
, __("Send mail"), { content: me.editor.value(), id: sel.id }
|
||||
}
|
||||
]
|
||||
@bloglist.set "onlistselect", (e) ->
|
||||
|
@ -6,7 +6,7 @@
|
||||
"author": "Xuan Sang LE",
|
||||
"email": "xsang.le@gmail.com"
|
||||
},
|
||||
"version":"0.0.3-a",
|
||||
"version":"0.0.6-a",
|
||||
"category":"Internet",
|
||||
"iconclass":"fa fa-book",
|
||||
"mimes":["none"]
|
||||
|
20
src/packages/Blogger/sendmail.html
Normal file
20
src/packages/Blogger/sendmail.html
Normal file
@ -0,0 +1,20 @@
|
||||
<afx-app-window data-id = "blogger-send-mail-win" apptitle="Send mail" width="500" height="400" resizable = "false">
|
||||
<afx-hbox>
|
||||
<afx-menu data-width="150" data-id="email-list"></afx-menu>
|
||||
<afx-resizer data-width="3"></afx-resizer>
|
||||
<div data-width="5"></div>
|
||||
<afx-vbox >
|
||||
<div data-height="5"></div>
|
||||
<afx-label data-height="20" text = "__(Title)"></afx-label>
|
||||
<input type = "text" data-height="20" name="title" data-id = "mail-title"/>
|
||||
<afx-label data-height = "20" text = "Content" />
|
||||
<textarea name="content" data-id = "contentarea" />
|
||||
<div data-height="5"></div>
|
||||
<afx-hbox data-height = "30">
|
||||
<div></div>
|
||||
<afx-button iconclass = "fa fa-paper-plane" data-id = "bt-sendmail" data-width="60" text = "__(Send)"/>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
<div data-width="5"></div>
|
||||
</afx-hbox>
|
||||
</afx-app-window>
|
Loading…
Reference in New Issue
Block a user