liquid_feedback_frontend

view app/main/initiative/add_initiator.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 72c5e0ee7c98
children 701a5cf6b067
line source
1 local initiative = Initiative:by_id(param.get("initiative_id"))
3 slot.put_into("title", _"Invite an initiator to initiative")
5 slot.select("actions", function()
6 ui.link{
7 content = function()
8 ui.image{ static = "icons/16/cancel.png" }
9 slot.put(_"Cancel")
10 end,
11 module = "initiative",
12 view = "show",
13 id = initiative.id,
14 params = {
15 tab = "initiators"
16 }
17 }
18 end)
20 util.help("initiative.add_initiator", _"Invite an initiator to initiative")
22 ui.form{
23 attr = { class = "vertical" },
24 module = "initiative",
25 action = "add_initiator",
26 params = {
27 initiative_id = initiative.id,
28 },
29 routing = {
30 ok = {
31 mode = "redirect",
32 module = "initiative",
33 view = "show",
34 id = initiative.id,
35 params = {
36 tab = "initiators",
37 }
38 }
39 },
40 content = function()
41 local records = {
42 {
43 id = "-1",
44 name = _"Choose member"
45 }
46 }
47 local contact_members = app.session.member:get_reference_selector("saved_members"):add_order_by("name"):exec()
48 for i, record in ipairs(contact_members) do
49 records[#records+1] = record
50 end
51 ui.field.select{
52 label = _"Member",
53 name = "member_id",
54 foreign_records = records,
55 foreign_id = "id",
56 foreign_name = "name"
57 }
58 ui.submit{ text = _"Save" }
59 end
60 }

Impressum / About Us