From e9f00c2995c5772a241f4ea6bc26197ea680cfd4 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Tue, 10 Mar 2020 12:16:18 +0000 Subject: [PATCH] subscribe button in search tab --- .../com/muwire/gui/SearchTabController.groovy | 5 +++++ .../com/muwire/gui/SearchTabModel.groovy | 1 + .../views/com/muwire/gui/SearchTabView.groovy | 18 +++++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/gui/griffon-app/controllers/com/muwire/gui/SearchTabController.groovy b/gui/griffon-app/controllers/com/muwire/gui/SearchTabController.groovy index 3d6d7fa8..34a508f2 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/SearchTabController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/SearchTabController.groovy @@ -107,6 +107,11 @@ class SearchTabController { mvcGroup.createMVCGroup("browse", groupId, params) } + @ControllerAction + void subscribe() { + + } + @ControllerAction void chat() { def sender = view.selectedSender() diff --git a/gui/griffon-app/models/com/muwire/gui/SearchTabModel.groovy b/gui/griffon-app/models/com/muwire/gui/SearchTabModel.groovy index 6e7144aa..2ad0a2ee 100644 --- a/gui/griffon-app/models/com/muwire/gui/SearchTabModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/SearchTabModel.groovy @@ -25,6 +25,7 @@ class SearchTabModel { @Observable boolean viewCommentActionEnabled @Observable boolean viewCertificatesActionEnabled @Observable boolean chatActionEnabled + @Observable boolean subscribeActionEnabled @Observable boolean groupedByFile Core core diff --git a/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy b/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy index c83e2e88..6dbdaf89 100644 --- a/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/SearchTabView.groovy @@ -74,6 +74,7 @@ class SearchTabView { closureColumn(header : "Sender", preferredWidth : 500, type: String, read : {row -> row.getHumanReadableName()}) closureColumn(header : "Results", preferredWidth : 20, type: Integer, read : {row -> model.sendersBucket[row].size()}) closureColumn(header : "Browse", preferredWidth : 20, type: Boolean, read : {row -> model.sendersBucket[row].first().browse}) + closureColumn(header : "Feed", preferredWidth : 20, type : Boolean, read : {row -> model.sendersBucket[row].first().feed}) closureColumn(header : "Chat", preferredWidth : 20, type : Boolean, read : {row -> model.sendersBucket[row].first().chat}) closureColumn(header : "Trust", preferredWidth : 50, type: String, read : { row -> model.core.trustService.getLevel(row.destination).toString() @@ -85,6 +86,7 @@ class SearchTabView { gridLayout(rows: 1, cols : 2) panel (border : etchedBorder()){ button(text : "Browse Host", enabled : bind {model.browseActionEnabled}, browseAction) + button(text : "Subscribe", enabled : bind {model.subscribeActionEnabled}, subscribeAction) button(text : "Chat", enabled : bind{model.chatActionEnabled}, chatAction) } panel (border : etchedBorder()){ @@ -156,6 +158,14 @@ class SearchTabView { } count }) + closureColumn(header : "Feeds", preferredWidth : 20, type : Integer, read : { + int count = 0 + model.hashBucket[it].each { + if (it.feed) + count++ + } + count + }) closureColumn(header : "Chat Hosts", preferredWidth : 20, type : Integer, read : { int count = 0 model.hashBucket[it].each { @@ -187,6 +197,7 @@ class SearchTabView { tableModel(list : model.senders2) { closureColumn(header : "Sender", preferredWidth : 350, type : String, read : {it.sender.getHumanReadableName()}) closureColumn(header : "Browse", preferredWidth : 20, type : Boolean, read : {it.browse}) + closureColumn(header : "Feed", preferredWidth : 20, type: Boolean, read : {it.feed}) closureColumn(header : "Chat", preferredWidth : 20, type : Boolean, read : {it.chat}) closureColumn(header : "Comment", preferredWidth : 20, type : Boolean, read : {it.comment != null}) closureColumn(header : "Certificates", preferredWidth : 20, type: Integer, read : {it.certificates}) @@ -200,6 +211,7 @@ class SearchTabView { gridLayout(rows : 1, cols : 2) panel (border : etchedBorder()) { button(text : "Browse Host", enabled : bind {model.browseActionEnabled}, browseAction) + button(text : "Subscribe", enabled : bind {model.subscribeActionEnabled}, subscribeAction) button(text : "Chat", enabled : bind{model.chatActionEnabled}, chatAction) button(text : "View Comment", enabled : bind {model.viewCommentActionEnabled}, showCommentAction) button(text : "View Certificates", enabled : bind {model.viewCertificatesActionEnabled}, viewCertificatesAction) @@ -308,6 +320,7 @@ class SearchTabView { if (result == null) { model.viewCommentActionEnabled = false model.viewCertificatesActionEnabled = false + model.subscribeActionEnabled = false return } else { model.viewCommentActionEnabled = result.comment != null @@ -326,12 +339,13 @@ class SearchTabView { if (row < 0) { model.trustButtonsEnabled = false model.browseActionEnabled = false - model.chatActionEnabled = false + model.subscribeActionEnabled = false return } else { Persona sender = model.senders[row] model.browseActionEnabled = model.sendersBucket[sender].first().browse model.chatActionEnabled = model.sendersBucket[sender].first().chat + model.subscribeActionEnabled = model.sendersBucket[sender].first().feed model.trustButtonsEnabled = true model.results.clear() model.results.addAll(model.sendersBucket[sender]) @@ -386,6 +400,7 @@ class SearchTabView { if (row < 0 || model.senders2[row] == null) { model.browseActionEnabled = false model.chatActionEnabled = false + model.subscribeActionEnabled = false model.viewCertificatesActionEnabled = false model.trustButtonsEnabled = false model.viewCommentActionEnabled = false @@ -393,6 +408,7 @@ class SearchTabView { } model.browseActionEnabled = model.senders2[row].browse model.chatActionEnabled = model.senders2[row].chat + model.subscribeActionEnabled = model.senders2[row].feed model.trustButtonsEnabled = true model.viewCommentActionEnabled = model.senders2[row].comment != null model.viewCertificatesActionEnabled = model.senders2[row].certificates > 0