From d9bd567271fb9895e15a64203bb970dfa0d5fd38 Mon Sep 17 00:00:00 2001 From: Xuan Sang LE Date: Mon, 5 Mar 2018 23:49:25 +0100 Subject: [PATCH] update MarketPlace --- src/packages/MarketPlace/dialog.coffee | 50 ++++++++++++++++++++++---- src/packages/MarketPlace/main.coffee | 6 ---- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/packages/MarketPlace/dialog.coffee b/src/packages/MarketPlace/dialog.coffee index a7d6b95..a2f1fd5 100644 --- a/src/packages/MarketPlace/dialog.coffee +++ b/src/packages/MarketPlace/dialog.coffee @@ -9,18 +9,54 @@ class RepositoryDialog extends this.OS.GUI.BaseDialog main: () -> me = @ @list = @find "repo-list" - ls = ({ text: v.name, iconclass: "fa fa-link", url: v.url - } for v in @systemsetting.system.repositories) - @url = @find "repo-url" - @list.set "onlistselect", (e) -> - ($ me.url).html e.data.url - @list.set "items", ls + @list.set "onlistdbclick", (e) -> + selidx = me.list.get "selidx" + return unless selidx >= 0 + sel = me.systemsetting.system.repositories[selidx] + me.openDialog "PromptDialog", (e) -> + m = e.match /\[([^\]]*)\]\s*(.*)/ + return me.error "Wrong format: it should be [name] url" if not m or m.length isnt 3 + sel.name = m[1] + sel.text = sel.name + sel.url = m[2] + me.refreshList() + , "Edit repository", { label: "Format : [name]url", value: "[#{e.data.text}] #{e.data.url}" } + (@find "btadd").set "onbtclick", (e) -> + me.openDialog "PromptDialog", (e) -> + m = e.match /\[([^\]]*)\]\s*(.*)/ + return me.error "Wrong format: it should be [name] url" if not m or m.length isnt 3 + me.systemsetting.system.repositories.push { + name: m[1], + url: m[2], + text: m[1], + i: me.systemsetting.system.repositories.length + } + me.refreshList() + , "Add repository", { label: "Format : [name]url" } + (@find "btdel").set "onbtclick", (e) -> + selidx = me.list.get "selidx" + return unless selidx >= 0 + me.systemsetting.system.repositories.splice selidx, selidx + me.refreshList() + (@find "btquit").set "onbtclick", (e) -> me.quit() + @refreshList() + refreshList: () -> + ls = ({ + text: v.name, + iconclass: "fa fa-link", + url: v.url, + complex: true, + detail: [{ text: v.url }] + } for v in @systemsetting.system.repositories) + @list.set "items", ls + onexit: (e) -> + @parent.repo.set "items", @systemsetting.system.repositories + @parent.dialog = undefined if @parent RepositoryDialog.scheme = """ -
diff --git a/src/packages/MarketPlace/main.coffee b/src/packages/MarketPlace/main.coffee index 4e193e5..0f740f6 100644 --- a/src/packages/MarketPlace/main.coffee +++ b/src/packages/MarketPlace/main.coffee @@ -7,12 +7,6 @@ class MarketPlace extends this.OS.GUI.BaseApplication me = @ @installdir = @systemsetting.system.pkgpaths.user # test repository - @systemsetting.system.repositories.push { - text: "Antos repository" - url: "https://os.localhost:9195/repo/packages.json" - name: "Antos repository" - selected:true - } if @systemsetting.system.repositories.length is 0 @repo = @find "repo" @repo.set "onlistselect", (e) -> return unless e.data