liquid_feedback_frontend
annotate app/main/interest/_action/update.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 | 374bbc2ff102 | 
| children | 42547a48774d | 
| rev | line source | 
|---|---|
| bsw/jbe@0 | 1 local issue_id = assert(param.get("issue_id", atom.integer), "no issue id given") | 
| bsw/jbe@5 | 2 | 
| bsw/jbe@0 | 3 local interest = Interest:by_pk(issue_id, app.session.member.id) | 
| bsw/jbe@0 | 4 | 
| bsw@8 | 5 local issue = Issue:by_id(issue_id) | 
| bsw/jbe@5 | 6 | 
| bsw/jbe@5 | 7 if issue.closed then | 
| bsw/jbe@5 | 8 slot.put_into("error", _"This issue is already closed.") | 
| bsw/jbe@5 | 9 return false | 
| bsw/jbe@5 | 10 elseif issue.fully_frozen then | 
| bsw/jbe@5 | 11 slot.put_into("error", _"Voting for this issue has already begun.") | 
| bsw/jbe@5 | 12 return false | 
| bsw/jbe@5 | 13 end | 
| bsw/jbe@5 | 14 | 
| bsw/jbe@0 | 15 if param.get("delete", atom.boolean) then | 
| bsw/jbe@0 | 16 if interest then | 
| bsw/jbe@0 | 17 interest:destroy() | 
| bsw/jbe@0 | 18 slot.put_into("notice", _"Interest removed") | 
| bsw/jbe@0 | 19 else | 
| bsw/jbe@0 | 20 slot.put_into("notice", _"Interest not existant") | 
| bsw/jbe@0 | 21 end | 
| bsw/jbe@0 | 22 return | 
| bsw/jbe@0 | 23 end | 
| bsw/jbe@0 | 24 | 
| bsw/jbe@0 | 25 if not interest then | 
| bsw/jbe@0 | 26 interest = Interest:new() | 
| bsw/jbe@0 | 27 interest.issue_id = issue_id | 
| bsw/jbe@0 | 28 interest.member_id = app.session.member_id | 
| bsw/jbe@0 | 29 interest.autoreject = false | 
| bsw/jbe@0 | 30 end | 
| bsw/jbe@0 | 31 | 
| bsw/jbe@0 | 32 local autoreject = param.get("autoreject", atom.boolean) | 
| bsw/jbe@0 | 33 if autoreject ~= nil then | 
| bsw/jbe@0 | 34 interest.autoreject = autoreject | 
| bsw/jbe@0 | 35 end | 
| bsw/jbe@0 | 36 | 
| bsw/jbe@0 | 37 interest:save() | 
| bsw/jbe@0 | 38 | 
| bsw/jbe@0 | 39 slot.put_into("notice", _"Interest updated") |