mirror of
https://github.com/lxsang/antos-frontend.git
synced 2025-07-19 15:29:51 +02:00
fix
This commit is contained in:
@ -20,11 +20,11 @@ class Announcer
|
||||
@observable = {}
|
||||
|
||||
on: (evtName, callback) ->
|
||||
@observable[evtName] = { one: [], many: [] } unless @observable[evtName]
|
||||
@observable[evtName] = { one: new Set(), many: new Set() } unless @observable[evtName]
|
||||
@observable[evtName].many.push callback
|
||||
|
||||
one: (evtName, callback) ->
|
||||
@observable[evtName] = { one: [], many: [] } unless @observable[evtName]
|
||||
@observable[evtName] = { one: new Set(), many: new Set() } unless @observable[evtName]
|
||||
@observable[evtName].one.push callback
|
||||
|
||||
off: (evtName, callback) ->
|
||||
@ -53,7 +53,7 @@ class Announcer
|
||||
continue unless me.observable[evt]
|
||||
for f, i in me.observable[evt].one
|
||||
f data
|
||||
me.observable[evt].one = []
|
||||
me.observable[evt].one = new Set()
|
||||
for f, i in me.observable[evt].many
|
||||
f data
|
||||
|
||||
@ -68,7 +68,7 @@ Ant.OS.announcer =
|
||||
quota: 0
|
||||
listeners: {}
|
||||
on: (e, f, a) ->
|
||||
Ant.OS.announcer.listeners[a.pid] = [] unless Ant.OS.announcer.listeners[a.pid]
|
||||
Ant.OS.announcer.listeners[a.pid] = new Set() unless Ant.OS.announcer.listeners[a.pid]
|
||||
Ant.OS.announcer.listeners[a.pid].push { e: e, f: f }
|
||||
Ant.OS.announcer.observable.on e, f
|
||||
trigger: (e, d) -> Ant.OS.announcer.observable.trigger e, d
|
||||
|
@ -7,6 +7,7 @@ class MenuEntryTag extends Ant.OS.GUI.BaseTag
|
||||
@setopt "children", undefined
|
||||
@setopt "child", undefined
|
||||
@setopt "parent", undefined
|
||||
@setopt "rootid", undefined
|
||||
|
||||
on_data_changed: (data) ->
|
||||
@set k, v for k, v of data
|
||||
@ -110,7 +111,7 @@ class SimpleMenuEntryTag extends MenuEntryTag
|
||||
evt = { id: @aid(), data: e }
|
||||
e.preventDefault()
|
||||
children = @get("children")
|
||||
if @is_root() and @has_children()
|
||||
if @is_root() and @has_children() and not @get "context"
|
||||
$(@refs.submenu).show()
|
||||
else
|
||||
@submenuoff()
|
||||
@ -145,12 +146,32 @@ class MenuTag extends Ant.OS.GUI.BaseTag
|
||||
@setopt "parent", undefined
|
||||
@setopt "contentag", "afx-menu-entry"
|
||||
@setopt "items", []
|
||||
me = @
|
||||
@root.show = (e) ->
|
||||
me.showctxmenu e
|
||||
|
||||
showctxmenu: (e) ->
|
||||
return unless @get "context"
|
||||
#console.log
|
||||
$(@root)
|
||||
.css("top", e.clientY - 15 + "px")
|
||||
.css("left", e.clientX - 5 + "px")
|
||||
.show()
|
||||
|
||||
isctxmenu: () ->
|
||||
return @get "context"
|
||||
|
||||
mount: () ->
|
||||
me = @
|
||||
|
||||
on_context_changed: (v) ->
|
||||
$(@refs.container).removeClass("context")
|
||||
$(@refs.container).addClass("context") if v
|
||||
return unless v
|
||||
$(@refs.container).addClass("context")
|
||||
$(@root).hide()
|
||||
@observable.on "menuselect", (e) ->
|
||||
console.log e.data.item
|
||||
console.log e.data.item.get("rootid")
|
||||
|
||||
on_items_changed: (data) ->
|
||||
me = @
|
||||
@ -161,6 +182,7 @@ class MenuTag extends Ant.OS.GUI.BaseTag
|
||||
el[0].uify @observable
|
||||
el[0].set "data", item
|
||||
el[0].set "parent", me.get("parent")
|
||||
el[0].set "rootid", if me.get("parent") then me.get("parent").get("rootid") else me.aid()
|
||||
item.domel = el[0]
|
||||
$("<li>").appendTo(@refs.container).addClass("afx-corner-fix")
|
||||
|
||||
|
Reference in New Issue
Block a user