liquid_feedback_frontend

annotate app/main/issue/_show_vote_later_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
rev   line source
bsw@16 1 local issue = param.get("issue", "table")
bsw@16 2
bsw@16 3
bsw@16 4 if issue.closed and issue.half_frozen then
bsw@16 5 return
bsw@16 6 end
bsw@16 7
bsw@16 8 local interest = Interest:by_pk(issue.id, app.session.member.id)
bsw@16 9
bsw@16 10 if not interest then
bsw@16 11 return
bsw@16 12 end
bsw@16 13
bsw@16 14 if interest.voting_requested ~= nil then
bsw@16 15 slot.select("actions", function()
bsw@16 16
bsw@16 17 ui.container{
bsw@16 18 attr = { class = "voting_requested vote_info"},
bsw@16 19 content = function()
bsw@16 20 ui.container{
bsw@16 21 attr = {
bsw@16 22 class = "head head_active",
bsw@16 23 onclick = "document.getElementById('voting_requested_content').style.display = 'block';"
bsw@16 24 },
bsw@16 25 content = function()
bsw@16 26 if interest.voting_requested == false then
bsw@16 27 ui.image{
bsw@16 28 static = "icons/16/clock_play.png"
bsw@16 29 }
bsw@16 30 slot.put(_"You want to vote later")
bsw@16 31 ui.image{
bsw@16 32 static = "icons/16/dropdown.png"
bsw@16 33 }
bsw@16 34 end
bsw@16 35 end
bsw@16 36 }
bsw@16 37 ui.container{
bsw@16 38 attr = { class = "content", id = "voting_requested_content" },
bsw@16 39 content = function()
bsw@16 40 ui.container{
bsw@16 41 attr = {
bsw@16 42 class = "close",
bsw@16 43 style = "cursor: pointer;",
bsw@16 44 onclick = "document.getElementById('voting_requested_content').style.display = 'none';"
bsw@16 45 },
bsw@16 46 content = function()
bsw@16 47 ui.image{ static = "icons/16/cross.png" }
bsw@16 48 end
bsw@16 49 }
bsw@16 50 ui.link{
bsw/jbe@19 51 text = _"Remove my request to vote later",
bsw/jbe@19 52 module = "interest",
bsw/jbe@19 53 action = "update_voting_requested",
bsw/jbe@19 54 params = { issue_id = issue.id, voting_requested = nil },
bsw@16 55 routing = { default = { mode = "redirect", module = "issue", view = "show", id = issue.id } }
bsw@16 56 }
bsw@16 57 slot.put("<br />")
bsw@16 58 end
bsw@16 59 }
bsw@16 60 end
bsw@16 61 }
bsw@16 62 end)
bsw@16 63 else
bsw@16 64 if not issue.closed and not issue.half_frozen then
bsw@16 65 ui.link{
bsw/jbe@19 66 image = { static = "icons/16/clock_play.png" },
bsw/jbe@19 67 text = _"Vote later",
bsw@16 68 module = "interest",
bsw@16 69 action = "update_voting_requested",
bsw@16 70 params = {
bsw@16 71 issue_id = issue.id,
bsw@16 72 voting_requested = false
bsw@16 73 },
bsw@16 74 routing = { default = { mode = "redirect", module = "issue", view = "show", id = issue.id } }
bsw@16 75 }
bsw@16 76 end
bsw@16 77 end

Impressum / About Us