rev |
line source |
bsw/jbe@0
|
1 local initiative = Initiative:new_selector():add_where{ "id = ?", param.get_id()}:single_object_mode():exec()
|
bsw/jbe@0
|
2
|
bsw/jbe@0
|
3 slot.put_into("html_head", '<link rel="alternate" type="application/rss+xml" title="RSS" href="../show/' .. tostring(initiative.id) .. '.rss" />')
|
bsw/jbe@0
|
4
|
bsw/jbe@0
|
5 execute.view{
|
bsw/jbe@0
|
6 module = "supporter",
|
bsw/jbe@0
|
7 view = "_show_box",
|
bsw/jbe@0
|
8 params = { initiative = initiative }
|
bsw/jbe@0
|
9 }
|
bsw/jbe@0
|
10
|
bsw/jbe@0
|
11 execute.view{
|
bsw/jbe@0
|
12 module = "delegation",
|
bsw/jbe@0
|
13 view = "_show_box",
|
bsw/jbe@0
|
14 params = { issue_id = initiative.issue_id }
|
bsw/jbe@0
|
15 }
|
bsw/jbe@0
|
16
|
bsw/jbe@0
|
17
|
bsw/jbe@0
|
18 slot.select("path", function()
|
bsw/jbe@0
|
19 ui.link{
|
bsw/jbe@0
|
20 content = _"Area '#{name}'":gsub("#{name}", initiative.issue.area.name),
|
bsw/jbe@0
|
21 module = "area",
|
bsw/jbe@0
|
22 view = "show",
|
bsw/jbe@0
|
23 id = initiative.issue.area.id
|
bsw/jbe@0
|
24 }
|
bsw/jbe@0
|
25 ui.container{ content = "::" }
|
bsw/jbe@0
|
26 ui.link{
|
bsw/jbe@0
|
27 content = _"Issue ##{id} (#{policy_name})":gsub("#{id}", initiative.issue.id):gsub("#{policy_name}", initiative.issue.policy.name),
|
bsw/jbe@0
|
28 module = "issue",
|
bsw/jbe@0
|
29 view = "show",
|
bsw/jbe@0
|
30 id = initiative.issue.id
|
bsw/jbe@0
|
31 }
|
bsw/jbe@0
|
32 end)
|
bsw/jbe@0
|
33
|
bsw/jbe@0
|
34 slot.put_into("title", encode.html(_"Initiative: '#{name}'":gsub("#{name}", initiative.shortened_name) ))
|
bsw/jbe@0
|
35
|
bsw/jbe@0
|
36 slot.select("actions", function()
|
bsw/jbe@0
|
37
|
bsw/jbe@0
|
38 ui.twitter("http://example.com/i" .. tostring(initiative.id) .. " " .. initiative.name)
|
bsw/jbe@0
|
39
|
bsw/jbe@0
|
40 end)
|
bsw/jbe@0
|
41
|
bsw/jbe@0
|
42
|
bsw/jbe@0
|
43 ui.container{
|
bsw/jbe@0
|
44 attr = { id = "add_suggestion_form", class = "hidden_inline_form" },
|
bsw/jbe@0
|
45 content = function()
|
bsw/jbe@0
|
46
|
bsw/jbe@0
|
47 ui.link{
|
bsw/jbe@0
|
48 content = _"Close",
|
bsw/jbe@0
|
49 attr = {
|
bsw/jbe@0
|
50 onclick = "document.getElementById('add_suggestion_form').style.display='none';return(false)",
|
bsw/jbe@0
|
51 style = "float: right;"
|
bsw/jbe@0
|
52 }
|
bsw/jbe@0
|
53 }
|
bsw/jbe@0
|
54
|
bsw/jbe@0
|
55 ui.field.text{ attr = { class = "head" }, value = _"Add new suggestion" }
|
bsw/jbe@0
|
56
|
bsw/jbe@0
|
57
|
bsw/jbe@0
|
58 ui.form{
|
bsw/jbe@0
|
59 module = "suggestion",
|
bsw/jbe@0
|
60 action = "add",
|
bsw/jbe@0
|
61 params = { initiative_id = initiative.id },
|
bsw/jbe@0
|
62 routing = {
|
bsw/jbe@0
|
63 default = {
|
bsw/jbe@0
|
64 mode = "redirect",
|
bsw/jbe@0
|
65 module = "initiative",
|
bsw/jbe@0
|
66 view = "show",
|
bsw/jbe@0
|
67 id = initiative.id,
|
bsw/jbe@0
|
68 params = { tab = "suggestion" }
|
bsw/jbe@0
|
69 }
|
bsw/jbe@0
|
70 },
|
bsw/jbe@0
|
71 attr = { class = "vertical" },
|
bsw/jbe@0
|
72 content = function()
|
bsw/jbe@0
|
73 ui.field.text{ label = _"Name", name = "name" }
|
bsw/jbe@0
|
74 ui.field.text{ label = _"Description", name = "description", multiline = true }
|
bsw/jbe@0
|
75 ui.field.select{
|
bsw/jbe@0
|
76 label = _"Degree",
|
bsw/jbe@0
|
77 name = "degree",
|
bsw/jbe@0
|
78 foreign_records = {
|
bsw/jbe@0
|
79 { id = 1, name = _"should"},
|
bsw/jbe@0
|
80 { id = 2, name = _"must"},
|
bsw/jbe@0
|
81 },
|
bsw/jbe@0
|
82 foreign_id = "id",
|
bsw/jbe@0
|
83 foreign_name = "name"
|
bsw/jbe@0
|
84 }
|
bsw/jbe@0
|
85 ui.submit{ text = _"Commit suggestion" }
|
bsw/jbe@0
|
86 end
|
bsw/jbe@0
|
87 }
|
bsw/jbe@0
|
88 end
|
bsw/jbe@0
|
89 }
|
bsw/jbe@0
|
90
|
bsw/jbe@0
|
91
|
bsw/jbe@0
|
92 ui.tabs{
|
bsw/jbe@0
|
93 {
|
bsw/jbe@0
|
94 name = "current_draft",
|
bsw/jbe@0
|
95 label = _"Current draft",
|
bsw/jbe@0
|
96 content = function()
|
bsw/jbe@0
|
97 execute.view{ module = "draft", view = "_show", params = { draft = initiative.current_draft } }
|
bsw/jbe@0
|
98 if Initiator:by_pk(initiative.id, app.session.member.id) then
|
bsw/jbe@0
|
99 ui.link{
|
bsw/jbe@0
|
100 content = function()
|
bsw/jbe@0
|
101 ui.image{ static = "icons/16/script_add.png" }
|
bsw/jbe@0
|
102 slot.put(_"Add new draft")
|
bsw/jbe@0
|
103 end,
|
bsw/jbe@0
|
104 module = "draft",
|
bsw/jbe@0
|
105 view = "new",
|
bsw/jbe@0
|
106 params = { initiative_id = initiative.id }
|
bsw/jbe@0
|
107 }
|
bsw/jbe@0
|
108 end
|
bsw/jbe@0
|
109 end
|
bsw/jbe@0
|
110 },
|
bsw/jbe@0
|
111 {
|
bsw/jbe@0
|
112 name = "details",
|
bsw/jbe@0
|
113 label = _"Details",
|
bsw/jbe@0
|
114 content = function()
|
bsw/jbe@0
|
115 ui.form{
|
bsw/jbe@0
|
116 attr = { class = "vertical" },
|
bsw/jbe@0
|
117 record = initiative,
|
bsw/jbe@0
|
118 readonly = true,
|
bsw/jbe@0
|
119 content = function()
|
bsw/jbe@0
|
120 ui.field.text{ label = _"Issue policy", value = initiative.issue.policy.name }
|
bsw/jbe@0
|
121 ui.field.text{
|
bsw/jbe@0
|
122 label = _"Created at",
|
bsw/jbe@0
|
123 value = tostring(initiative.created)
|
bsw/jbe@0
|
124 }
|
bsw/jbe@0
|
125 ui.field.text{
|
bsw/jbe@0
|
126 label = _"Created at",
|
bsw/jbe@0
|
127 value = format.timestamp(initiative.created)
|
bsw/jbe@0
|
128 }
|
bsw/jbe@0
|
129 ui.field.date{ label = _"Revoked at", name = "revoked" }
|
bsw/jbe@0
|
130 ui.field.boolean{ label = _"Admitted", name = "admitted" }
|
bsw/jbe@0
|
131 end
|
bsw/jbe@0
|
132 }
|
bsw/jbe@0
|
133 end
|
bsw/jbe@0
|
134 },
|
bsw/jbe@0
|
135 {
|
bsw/jbe@0
|
136 name = "suggestion",
|
bsw/jbe@0
|
137 label = _"Suggestions",
|
bsw/jbe@0
|
138 content = function()
|
bsw/jbe@0
|
139 execute.view{ module = "suggestion", view = "_list", params = { suggestions_selector = initiative:get_reference_selector("suggestions") } }
|
bsw/jbe@0
|
140 slot.put("<br />")
|
bsw/jbe@0
|
141 if not initiative.issue.frozen and not initiative.issue.closed then
|
bsw/jbe@0
|
142 ui.link{
|
bsw/jbe@0
|
143 content = function()
|
bsw/jbe@0
|
144 ui.image{ static = "icons/16/comment_add.png" }
|
bsw/jbe@0
|
145 slot.put(_"Add new suggestion")
|
bsw/jbe@0
|
146 end,
|
bsw/jbe@0
|
147 attr = { onclick = "document.getElementById('add_suggestion_form').style.display='block';return(false)" },
|
bsw/jbe@0
|
148 static = "#"
|
bsw/jbe@0
|
149 }
|
bsw/jbe@0
|
150 end
|
bsw/jbe@0
|
151 end
|
bsw/jbe@0
|
152 },
|
bsw/jbe@0
|
153 {
|
bsw/jbe@0
|
154 name = "supporter",
|
bsw/jbe@0
|
155 label = _"Supporter",
|
bsw/jbe@0
|
156 content = function()
|
bsw/jbe@0
|
157 execute.view{ module = "member", view = "_list", params = { members_selector = initiative:get_reference_selector("supporting_members") } }
|
bsw/jbe@0
|
158 end
|
bsw/jbe@0
|
159 },
|
bsw/jbe@0
|
160 {
|
bsw/jbe@0
|
161 name = "initiators",
|
bsw/jbe@0
|
162 label = _"Initiators",
|
bsw/jbe@0
|
163 content = function()
|
bsw/jbe@0
|
164 execute.view{ module = "member", view = "_list", params = { members_selector = initiative:get_reference_selector("initiating_members") } }
|
bsw/jbe@0
|
165 end
|
bsw/jbe@0
|
166 },
|
bsw/jbe@0
|
167 {
|
bsw/jbe@0
|
168 name = "drafts",
|
bsw/jbe@0
|
169 label = _"Old drafts",
|
bsw/jbe@0
|
170 content = function()
|
bsw/jbe@0
|
171 execute.view{ module = "draft", view = "_list", params = { drafts = initiative.drafts } }
|
bsw/jbe@0
|
172 end
|
bsw/jbe@0
|
173 },
|
bsw/jbe@0
|
174 }
|
bsw/jbe@0
|
175
|
bsw/jbe@0
|
176
|