liquid_feedback_frontend
annotate app/main/issue/show.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 | 7d0f4721d2f3 | 
| rev | line source | 
|---|---|
| bsw/jbe@0 | 1 local issue = Issue:by_id(param.get_id()) | 
| bsw/jbe@0 | 2 | 
| bsw/jbe@0 | 3 execute.view{ | 
| bsw/jbe@4 | 4 module = "issue", | 
| bsw/jbe@4 | 5 view = "_show_head", | 
| bsw/jbe@0 | 6 params = { issue = issue } | 
| bsw/jbe@0 | 7 } | 
| bsw/jbe@0 | 8 | 
| bsw/jbe@19 | 9 --[[ | 
| bsw/jbe@19 | 10 if not issue.fully_frozen and not issue.closed then | 
| bsw/jbe@19 | 11 slot.select("actions", function() | 
| bsw/jbe@19 | 12 ui.link{ | 
| bsw/jbe@19 | 13 content = function() | 
| bsw/jbe@19 | 14 ui.image{ static = "icons/16/script_add.png" } | 
| bsw/jbe@19 | 15 slot.put(_"Create alternative initiative") | 
| bsw/jbe@19 | 16 end, | 
| bsw/jbe@19 | 17 module = "initiative", | 
| bsw/jbe@19 | 18 view = "new", | 
| bsw/jbe@19 | 19 params = { issue_id = issue.id } | 
| bsw/jbe@19 | 20 } | 
| bsw/jbe@19 | 21 end) | 
| bsw/jbe@19 | 22 end | 
| bsw/jbe@19 | 23 --]] | 
| bsw/jbe@19 | 24 | 
| bsw/jbe@4 | 25 util.help("issue.show") | 
| bsw@2 | 26 | 
| bsw/jbe@19 | 27 if issue.state == "cancelled" then | 
| bsw/jbe@19 | 28 local policy = issue.policy | 
| bsw/jbe@19 | 29 ui.container{ | 
| bsw/jbe@19 | 30 attr = { class = "not_admitted_info" }, | 
| bsw/jbe@19 | 31 content = _("This issue has been cancelled. It failed the quorum of #{quorum}.", { quorum = format.percentage(policy.issue_quorum_num / policy.issue_quorum_den) }) | 
| bsw/jbe@19 | 32 } | 
| bsw@16 | 33 end | 
| bsw@16 | 34 | 
| bsw/jbe@19 | 35 ui.container{ | 
| bsw/jbe@19 | 36 attr = { class = "issue_initiative_list" }, | 
| bsw/jbe@19 | 37 content = function() | 
| bsw/jbe@19 | 38 execute.view{ | 
| bsw/jbe@19 | 39 module = "initiative", | 
| bsw/jbe@19 | 40 view = "_list", | 
| bsw/jbe@19 | 41 params = { | 
| bsw/jbe@19 | 42 initiatives_selector = issue:get_reference_selector("initiatives"), | 
| bsw/jbe@19 | 43 issue = issue, | 
| bsw/jbe@19 | 44 expandable = true, | 
| bsw/jbe@19 | 45 for_initiative_id = param.get("for_initiative_id", atom.number), | 
| bsw/jbe@19 | 46 show_for_issue = true | 
| bsw@3 | 47 } | 
| bsw/jbe@19 | 48 } | 
| bsw/jbe@19 | 49 end | 
| bsw/jbe@0 | 50 } | 
| bsw/jbe@0 | 51 | 
| bsw/jbe@19 | 52 slot.put("<br />") | 
| bsw/jbe@0 | 53 | 
| bsw/jbe@19 | 54 execute.view{ | 
| bsw/jbe@19 | 55 module = "issue", | 
| bsw/jbe@19 | 56 view = "show_tab", | 
| bsw/jbe@19 | 57 params = { issue = issue } | 
| bsw/jbe@19 | 58 } | 
| bsw/jbe@19 | 59 | 
| bsw/jbe@19 | 60 if issue.snapshot then | 
| bsw/jbe@19 | 61 slot.put("<br />") | 
| bsw/jbe@19 | 62 ui.field.timestamp{ label = _"Last snapshot:", value = issue.snapshot } | 
| bsw/jbe@19 | 63 end | 
| bsw/jbe@19 | 64 |