This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new ed151c23 Add banner display to Agenda
ed151c23 is described below

commit ed151c23a0bca37866568b1b5545469fa7fc9bd3
Author: Sebb <[email protected]>
AuthorDate: Thu Oct 3 14:11:25 2024 +0100

    Add banner display to Agenda
---
 www/board/agenda/routes.rb                 |  3 +++
 www/board/agenda/views/layout/header.js.rb | 10 ++++++++++
 www/board/agenda/views/layout/main.js.rb   |  3 ++-
 www/board/agenda/views/models/agenda.js.rb |  6 ++++++
 www/board/agenda/views/router.js.rb        |  2 +-
 5 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/www/board/agenda/routes.rb b/www/board/agenda/routes.rb
index 985f2bcb..0368d1bc 100755
--- a/www/board/agenda/routes.rb
+++ b/www/board/agenda/routes.rb
@@ -397,6 +397,9 @@ get %r{/(\d\d\d\d-\d\d-\d\d).json} do |date|
         agenda = agenda.select {|item| committees.include? item['title']}
       end
 
+      # Add banner (or nil) to the first entry
+      # must always update the entry as they may be cached
+      agenda.first['banner'] = Status.banner
       agenda
     end
   ensure
diff --git a/www/board/agenda/views/layout/header.js.rb 
b/www/board/agenda/views/layout/header.js.rb
index f484928f..4db1db1c 100644
--- a/www/board/agenda/views/layout/header.js.rb
+++ b/www/board/agenda/views/layout/header.js.rb
@@ -22,6 +22,16 @@ class Header < Vue
 
       _span.clock! "\u231B" if Header.clock_counter > 0
 
+      if @@banner # is there a banner?
+        if @@banner['href'] # is there a link?
+          _div.navbar_brand {
+            _a @@banner['msg'], href: @@banner['href']
+          }
+        else # just show the text
+          _div.navbar_brand @@banner['msg']
+        end
+      end
+
       _ul.nav.nav_pills.navbar_right do
 
         # pending count
diff --git a/www/board/agenda/views/layout/main.js.rb 
b/www/board/agenda/views/layout/main.js.rb
index 6c9616f6..b3b01e77 100644
--- a/www/board/agenda/views/layout/main.js.rb
+++ b/www/board/agenda/views/layout/main.js.rb
@@ -15,7 +15,7 @@ class Main < Vue
       _p 'Not found'
     else
 
-      _Header item: @item
+      _Header item: @item, banner: @banner
 
       _main do
         if Agenda.index[0].text # don't display page while bootstrapping
@@ -62,6 +62,7 @@ class Main < Vue
     @item = route.item
     @buttons = route.buttons
     @options = route.options
+    @banner = route.banner
 
     unless Main.item and route.item and Main.item.view == route.item.view
       Main.view = nil
diff --git a/www/board/agenda/views/models/agenda.js.rb 
b/www/board/agenda/views/models/agenda.js.rb
index 4c9334e5..83498baa 100644
--- a/www/board/agenda/views/models/agenda.js.rb
+++ b/www/board/agenda/views/models/agenda.js.rb
@@ -12,6 +12,10 @@ class Agenda
   Vue.util.defineReactive @@approved, '?'
   @@color = 'blank'
 
+  def self.banner
+    @@banner
+  end
+
   # (re)-load an agenda, creating instances for each item, and linking
   # each instance to their next and previous items.
   def self.load(list, digest)
@@ -21,6 +25,8 @@ class Agenda
     @@index = []
     prev = nil
 
+    @@banner = list.first.banner
+
     list.each do |item|
       item = Agenda.new(item)
       item.prev = prev
diff --git a/www/board/agenda/views/router.js.rb 
b/www/board/agenda/views/router.js.rb
index c9fbeaa6..f559fd5d 100644
--- a/www/board/agenda/views/router.js.rb
+++ b/www/board/agenda/views/router.js.rb
@@ -179,6 +179,6 @@ class Router
       end
     end
 
-    return {item: item, buttons: buttons, options: options}
+    return {item: item, buttons: buttons, options: options, banner: 
Agenda.banner}
   end
 end

Reply via email to