liquid_feedback_frontend

diff app/main/initiative/show_support.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
children d13b27a37ad5
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/app/main/initiative/show_support.lua	Sat Feb 20 22:10:31 2010 +0100
     1.3 @@ -0,0 +1,43 @@
     1.4 +local initiative = param.get("initiative", "table") or Initiative:by_id(param.get_id())
     1.5 +
     1.6 +-- TODO performance
     1.7 +local initiator = Initiator:by_pk(initiative.id, app.session.member.id)
     1.8 +
     1.9 +ui.partial{
    1.10 +  module = "initiative",
    1.11 +  view = "show_support",
    1.12 +  id = initiative.id,
    1.13 +  target = "initiative_" .. tostring(initiative.id) .. "_support",
    1.14 +  content = function()
    1.15 +    ui.container{
    1.16 +      attr = {
    1.17 +        class = "slot_support vote_info",
    1.18 +      },
    1.19 +      content = function()
    1.20 +        ui.container{
    1.21 +          attr = { class = "actions" },
    1.22 +          content = function()
    1.23 +            execute.view{
    1.24 +              module = "supporter",
    1.25 +              view = "_show_box",
    1.26 +              params = { initiative = initiative }
    1.27 +            }
    1.28 +            if initiator and initiator.accepted and not initiative.issue.half_frozen and not initiative.issue.closed and not initiative.revoked then
    1.29 +              ui.link{
    1.30 +                attr = { class = "action", style = "float: left;" },
    1.31 +                content = function()
    1.32 +                  ui.image{ static = "icons/16/script_delete.png" }
    1.33 +                  slot.put(_"Revoke initiative")
    1.34 +                end,
    1.35 +                module = "initiative",
    1.36 +                view = "revoke",
    1.37 +                id = initiative.id
    1.38 +              }
    1.39 +            end
    1.40 +          end
    1.41 +        }
    1.42 +      end
    1.43 +    }
    1.44 +    slot.put("<div style='clear: left;'></div>")
    1.45 +  end
    1.46 +}

Impressum / About Us