liquid_feedback_frontend

view app/main/issue/_details.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 4b2af207cefa
line source
1 local issue = param.get("issue", "table")
3 local policy = issue.policy
4 ui.form{
5 record = issue,
6 readonly = true,
7 attr = { class = "vertical" },
8 content = function()
9 ui.field.text{ label = _"Population", name = "population" }
10 ui.field.text{ label = _"State", name = "state" }
11 ui.field.timestamp{ label = _"Created at", name = "created" }
12 ui.field.text{ label = _"Admission time", value = policy.admission_time }
13 ui.field.text{
14 label = _"Issue quorum",
15 value = format.percentage(policy.issue_quorum_num / policy.issue_quorum_den)
16 }
17 ui.field.timestamp{ label = _"Accepted at", name = "accepted" }
18 ui.field.text{ label = _"Discussion time", value = policy.discussion_time }
19 ui.field.vote_now{ label = _"Vote now", name = "vote_now" }
20 ui.field.vote_later{ label = _"Vote later", name = "vote_later" }
21 ui.field.timestamp{ label = _"Half frozen at", name = "half_frozen" }
22 ui.field.text{ label = _"Verification time", value = policy.verification_time }
23 ui.field.text{
24 label = _"Initiative quorum",
25 value = format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den)
26 }
27 ui.field.timestamp{ label = _"Fully frozen at", name = "fully_frozen" }
28 ui.field.text{ label = _"Voting time", value = policy.voting_time }
29 ui.field.timestamp{ label = _"Closed", name = "closed" }
30 end
31 }
32 ui.form{
33 record = issue.policy,
34 readonly = true,
35 content = function()
36 end
37 }

Impressum / About Us