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
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 |