liquid_feedback_frontend

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

Impressum / About Us