liquid_feedback_frontend

diff app/main/interest/_show_box.lua @ 19:00d1004545f1

Dynamic interface using XMLHttpRequests, and many other changes

Bugfixes:
- Only allow voting on admitted initiatives
- Repaired issue search
- Don't display delegations for closed issues on member page
- Don't show revoke link in initiative, when issue is already half_frozen
- Localization for voting JavaScript
- Display author of suggestions

Disclosure of voting data after voting is finished:
- Possibility to inspect every ballot including preferences
- Show number of voters preferring one initiative to another initiative

Interface behaviour changes:
- Reversed default order of drafts
- Default order of suggestions changed
- Show new drafts of initiatives only once per day in timeline

Accessibility:
- Barrier-free voting implemented
- POST links are now accessible without JavaScript
- Changed gray for unsatisfied supporters in bar graph to a lighter gray

Other interface improvements:
- Optical enhancements
- Dynamic interface using XMLHttpRequests
- Show usage terms in about section
- Show own membership in area listing
- Show uninformed supporters greyed out and marked with yellow question mark
- Warning box in non-admitted initiatives
- When voted, don't display voting notice and change label of voting link
- Show object counts in more tabulator heads
- Enlarged member statement input field

Miscellaneous:
- Code cleanup
- Added README file containing installation instructions
- Use new WebMCP function ui.filters{...} instead of own ui.filter and ui.order functions
author bsw/jbe
date Sat Feb 20 22:10:31 2010 +0100 (2010-02-20)
parents 559c6be0e1e9
children ca006681befc
line diff
     1.1 --- a/app/main/interest/_show_box.lua	Tue Feb 02 00:31:06 2010 +0100
     1.2 +++ b/app/main/interest/_show_box.lua	Sat Feb 20 22:10:31 2010 +0100
     1.3 @@ -11,7 +11,7 @@
     1.4      content = function()
     1.5          ui.container{
     1.6            attr = { 
     1.7 -            class = "head head_active",
     1.8 +            class = "head head_active" .. (interest.autoreject and " head_autoreject" or ""),
     1.9              onclick = "document.getElementById('interest_content').style.display = 'block';"
    1.10            },
    1.11            content = function()
    1.12 @@ -19,6 +19,13 @@
    1.13                static = "icons/16/eye.png"
    1.14              }
    1.15              slot.put(_"Your are interested")
    1.16 +
    1.17 +            if interest.autoreject then
    1.18 +              ui.image{
    1.19 +                static = "icons/16/thumb_down_red.png"
    1.20 +              }
    1.21 +            end
    1.22 +
    1.23              ui.image{
    1.24                static = "icons/16/dropdown.png"
    1.25              }
    1.26 @@ -40,10 +47,10 @@
    1.27              }
    1.28              if issue.state ~= "finished" and issue.state ~= "cancelled" and issue.state ~= "voting" then
    1.29                ui.link{
    1.30 -                content = _"Remove my interest",
    1.31 -                module = "interest",
    1.32 -                action = "update",
    1.33 -                params = { issue_id = issue.id, delete = true },
    1.34 +                text    = _"Remove my interest",
    1.35 +                module  = "interest",
    1.36 +                action  = "update",
    1.37 +                params  = { issue_id = issue.id, delete = true },
    1.38                  routing = { default = { mode = "redirect", module = "issue", view = "show", id = issue.id } }
    1.39                }
    1.40                slot.put("<br />")
    1.41 @@ -53,10 +60,10 @@
    1.42                ui.field.text{ value = _"Autoreject is on." }
    1.43                if issue.state ~= "finished" and issue.state ~= "cancelled" then
    1.44                  ui.link{
    1.45 -                  content = _"Remove autoreject",
    1.46 -                  module = "interest",
    1.47 -                  action = "update",
    1.48 -                  params = { issue_id = issue.id, autoreject = false },
    1.49 +                  text    = _"Remove autoreject",
    1.50 +                  module  = "interest",
    1.51 +                  action  = "update",
    1.52 +                  params  = { issue_id = issue.id, autoreject = false },
    1.53                    routing = { default = { mode = "redirect", module = "issue", view = "show", id = issue.id } }
    1.54                  }
    1.55                end
    1.56 @@ -64,10 +71,10 @@
    1.57                ui.field.text{ value = _"Autoreject is off." }
    1.58                if issue.state ~= "finished" and issue.state ~= "cancelled" then
    1.59                  ui.link{
    1.60 -                  content = _"Set autoreject",
    1.61 -                  module = "interest",
    1.62 -                  action = "update",
    1.63 -                  params = { issue_id = issue.id, autoreject = true },
    1.64 +                  text    = _"Set autoreject",
    1.65 +                  module  = "interest",
    1.66 +                  action  = "update",
    1.67 +                  params  = { issue_id = issue.id, autoreject = true },
    1.68                    routing = { default = { mode = "redirect", module = "issue", view = "show", id = issue.id } }
    1.69                  }
    1.70                end
    1.71 @@ -80,13 +87,11 @@
    1.72  else
    1.73    if not issue.closed and not issue.fully_frozen then
    1.74      ui.link{
    1.75 -      content = function()
    1.76 -        ui.image{ static = "icons/16/user_add.png" }
    1.77 -        slot.put(_"Add my interest")
    1.78 -      end,
    1.79 -      module = "interest",
    1.80 -      action = "update",
    1.81 -      params = { issue_id = issue.id },
    1.82 +      image   = { static = "icons/16/user_add.png" },
    1.83 +      text    = _"Add my interest",
    1.84 +      module  = "interest",
    1.85 +      action  = "update",
    1.86 +      params  = { issue_id = issue.id },
    1.87        routing = { default = { mode = "redirect", module = "issue", view = "show", id = issue.id } }
    1.88      }
    1.89    end

Impressum / About Us