add shortcut support to application

This commit is contained in:
Xuan Sang LE
2018-02-27 00:55:02 +01:00
parent 10dbe6ea99
commit c1781d1741
12 changed files with 112 additions and 31 deletions

View File

@ -165,6 +165,19 @@ class Blogger extends this.OS.GUI.BaseApplication
return unless sel
me.editor.value atob(sel.content)
me.inputtags.value = sel.tags
(me.find "blog-publish").set "swon", (if sel.publish then true else false)
@.bloglist.set "onitemclose", (e) ->
me.openDialog "YesNoDialog", (b) ->
return unless b
me.blogdb.delete e.item.item.id, (r) ->
return me.error "Cannot delete: #{r.error}" if r.error
me.bloglist.remove e.item.item, true
me.bloglist.set "selected", -1
me.clearEditor()
, "Delete a post" ,
{ iconclass: "fa fa-question-circle", text: "Do you really want to delete this post ?" }
return false
@on "vboxchange", () ->
me.resizeContent()
@ -300,16 +313,21 @@ class Blogger extends this.OS.GUI.BaseApplication
utime: d.timestamp()
utimestr: d.toString()
rendered: me.editor.options.previewRender(content).asBase64()
publish: if ((@find "blog-publish").get "swon") then 1 else 0
data.id = sel.id if sel
#save the data
@blogdb.save data, (r) ->
return me.error "Cannot save blog: #{r.error}" if r.error
me.loadBlogs()
clearEditor:() ->
@.editor.value ""
@.inputtags.value = ""
(@.find "blog-publish").set "swon", false
# load blog
loadBlogs: () ->
me = @
selidx = @bloglist.get "selidx"
cond =
order:
ctime: "DESC"
@ -323,20 +341,12 @@ class Blogger extends this.OS.GUI.BaseApplication
v.detail = [
{ text: "Created: #{v.ctimestr}", class: "blog-dates" },
{ text: "Updated: #{v.utimestr}", class: "blog-dates" }]
me.bloglist.set "onitemclose", (e) ->
me.openDialog "YesNoDialog", (b) ->
return unless b
me.blogdb.delete e.item.item.id, (r) ->
return me.error "Cannot delete: #{r.error}" if r.error
me.bloglist.remove e.item.item, true
me.bloglist.set "selected", -1
me.editor.value ""
me.inputtags.value = ""
, "Delete a post" ,
{ iconclass: "fa fa-question-circle", text: "Do you really want to delete this post ?" }
return false
me.bloglist.set "items", r.result
if selidx isnt -1
me.bloglist.set "selected", selidx
else
me.clearEditor()
me.bloglist.set "selected", -1
resizeContent: () ->
container = @find "editor-container"
children = ($ container).children()

View File

@ -61,7 +61,13 @@
<textarea data-id="markarea" ></textarea>
</div>
<afx-label text = "Tags:" style="font-weight:bold;" data-height="25" ></afx-label>
<input type = "text" data-id = "input-tags" data-height="25"/>
<afx-hbox data-height="25">
<input type = "text" data-id = "input-tags" />
<div data-width="5"></div>
<afx-switch data data-id = "blog-publish" data-width="30"></afx-switch>
<div data-width="5"></div>
</afx-hbox>
<div data-height="5"></div>
</afx-vbox>
</afx-hbox>

View File

@ -104,6 +104,9 @@ class NotePad extends this.OS.GUI.BaseApplication
, "Close tab", { text: "Close without saving ?" }
return false
#@tabarea.set "closable", true
@bindKey "META-O", () -> me.actionFile "#{me.name}-Open"
@bindKey "CTRL-S", () -> me.actionFile "#{me.name}-Save"
@bindKey "META-S", () -> me.actionFile "#{me.name}-Saveas"
@open @currfile
open: (file) ->
@ -188,6 +191,7 @@ class NotePad extends this.OS.GUI.BaseApplication
@currfile.selected = false
file.selected = true
#console.log cnt
@fileview.set "preventUpdate", true
@tabarea.push file, true
#@currfile = @file
#TODO: fix problem : @tabarea.set "selected", cnt
@ -239,11 +243,11 @@ class NotePad extends this.OS.GUI.BaseApplication
menu = [{
text: "File",
child: [
{ text: "Open", dataid: "#{@name}-Open" },
{ text: "Save", dataid: "#{@name}-Save" },
{ text: "Save as", dataid: "#{@name}-Saveas" }
{ text: "Open", dataid: "#{@name}-Open", shortcut: "META-O" },
{ text: "Save", dataid: "#{@name}-Save", shortcut: "CTRL-S" },
{ text: "Save as", dataid: "#{@name}-Saveas", shortcut: "META-S" }
],
onmenuselect: (e) -> me.actionFile e
onmenuselect: (e) -> me.actionFile e.item.data.dataid
}]
menu
@ -254,7 +258,7 @@ class NotePad extends this.OS.GUI.BaseApplication
me.currfile.setPath "#{d}/#{n}"
me.save me.currfile
, "Save as", { file: me.currfile }
switch e.item.data.dataid
switch e
when "#{@name}-Open"
@openDialog "FileDiaLog", ( d, f ) ->
me.open "#{d}/#{f}".asFileHandler()