bsw/jbe@0: local issue
bsw/jbe@0: local area
bsw/jbe@0:
bsw/jbe@0: local issue_id = param.get("issue_id", atom.integer)
bsw/jbe@0: if issue_id then
bsw/jbe@0: issue = Issue:new_selector():add_where{"id=?",issue_id}:single_object_mode():exec()
bsw/jbe@0: area = issue.area
bsw/jbe@0:
bsw/jbe@0: else
bsw/jbe@0: local area_id = param.get("area_id", atom.integer)
bsw/jbe@0: area = Area:new_selector():add_where{"id=?",area_id}:single_object_mode():exec()
bsw/jbe@0: end
bsw/jbe@0:
bsw/jbe@0: if issue_id then
bsw/jbe@19: slot.put_into("title", _"Add alternative initiative to issue")
bsw/jbe@0: else
bsw/jbe@0: slot.put_into("title", _"Create new issue")
bsw/jbe@0: end
bsw/jbe@0:
bsw/jbe@0: ui.form{
bsw/jbe@0: module = "initiative",
bsw/jbe@0: action = "create",
bsw/jbe@0: params = {
bsw/jbe@0: area_id = area.id,
bsw/jbe@0: issue_id = issue and issue.id or nil
bsw/jbe@0: },
bsw/jbe@0: attr = { class = "vertical" },
bsw/jbe@0: content = function()
bsw/jbe@0: ui.field.text{ label = _"Area", value = area.name }
bsw/jbe@52: slot.put("
")
bsw/jbe@0: if issue_id then
bsw/jbe@0: ui.field.text{ label = _"Issue", value = issue_id }
bsw/jbe@0: else
bsw@10: tmp = { { id = -1, name = _"Please choose a policy" } }
bsw@10: for i, allowed_policy in ipairs(area.allowed_policies) do
bsw@10: tmp[#tmp+1] = allowed_policy
bsw@10: end
bsw/jbe@0: ui.field.select{
bsw/jbe@0: label = _"Policy",
bsw/jbe@0: name = "policy_id",
bsw@10: foreign_records = tmp,
bsw/jbe@0: foreign_id = "id",
bsw@7: foreign_name = "name",
bsw@10: value = (area.default_policy or {}).id
bsw/jbe@0: }
bsw@64: ui.tag{
bsw@64: tag = "div",
bsw@64: content = function()
bsw@64: ui.tag{
bsw@64: tag = "label",
bsw@64: attr = { class = "ui_field_label" },
bsw@64: content = function() slot.put(" ") end,
bsw@64: }
bsw@64: ui.tag{
bsw@64: content = function()
bsw@64: ui.link{
bsw@64: text = _"Information about the available policies",
bsw@64: module = "policy",
bsw@64: view = "list"
bsw@64: }
bsw@64: slot.put(" ")
bsw@64: ui.link{
bsw@64: attr = { target = "_blank" },
bsw@64: text = _"(new window)",
bsw@64: module = "policy",
bsw@64: view = "list"
bsw@64: }
bsw@64: end
bsw@64: }
bsw@64: end
bsw@64: }
bsw/jbe@0: end
bsw/jbe@52: slot.put("
")
bsw/jbe@52: ui.field.text{ label = _"Title of initiative", name = "name" }
bsw/jbe@4: ui.field.text{ label = _"Discussion URL", name = "discussion_url" }
bsw/jbe@4: ui.field.select{
bsw/jbe@4: label = _"Wiki engine",
bsw/jbe@4: name = "formatting_engine",
bsw/jbe@4: foreign_records = {
bsw/jbe@4: { id = "rocketwiki", name = "RocketWiki" },
bsw/jbe@4: { id = "compat", name = _"Traditional wiki syntax" }
bsw/jbe@4: },
bsw/jbe@4: foreign_id = "id",
bsw/jbe@4: foreign_name = "name"
bsw/jbe@4: }
bsw@2: ui.field.text{ label = _"Draft", name = "draft", multiline = true, attr = { style = "height: 50ex;" } }
bsw/jbe@0: ui.submit{ text = _"Save" }
bsw/jbe@0: end
bsw/jbe@0: }