| rev | line source | 
| bsw@525 | 1 local id = param.get_id() | 
| bsw@525 | 2 | 
| bsw/jbe@1309 | 3 local hint = not id | 
| bsw/jbe@1309 | 4 | 
| bsw@525 | 5 local unit = Unit:by_id(id) | 
| bsw@525 | 6 | 
| bsw@1184 | 7 ui.titleAdmin(_"Organizational unit") | 
| bsw@525 | 8 | 
| bsw@595 | 9 local units = { | 
| bsw@595 | 10   { id = nil, name = "" } | 
| bsw@595 | 11 } | 
| bsw@595 | 12 | 
| bsw@595 | 13 for i, unit in ipairs(Unit:get_flattened_tree()) do | 
| bsw@1832 | 14   local name = "" | 
| bsw@1832 | 15   for j = 2, unit.depth do | 
| bsw@1832 | 16     name = name .. utf8.char(160).. utf8.char(160).. utf8.char(160).. utf8.char(160) | 
| bsw@1832 | 17   end | 
| bsw@1832 | 18   local name = name .. unit.name | 
| bsw@1832 | 19   units[#units+1] = { id = unit.id, name = name } | 
| bsw@525 | 20 end | 
| bsw@525 | 21 | 
| bsw@1468 | 22 ui.grid{ content = function() | 
| bsw@525 | 23 | 
| bsw@1468 | 24   ui.cell_main{ content = function() | 
| bsw@1468 | 25     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function() | 
| bsw@1468 | 26       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() | 
| bsw@1469 | 27         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = unit and unit.name or _"New organizational unit" } | 
| bsw@1468 | 28       end } | 
| bsw@1468 | 29       ui.container{ attr = { class = "mdl-card__content" }, content = function() | 
| bsw@1468 | 30         ui.form{ | 
| bsw@1468 | 31           attr = { class = "vertical section" }, | 
| bsw@1468 | 32           module = "admin", | 
| bsw@1468 | 33           action = "unit_update", | 
| bsw@1468 | 34           id = unit and unit.id, | 
| bsw@1468 | 35           record = unit, | 
| bsw@1468 | 36           routing = { | 
| bsw@1468 | 37             default = { | 
| bsw@1468 | 38               mode = "redirect", | 
| bsw@1468 | 39               modules = "admin", | 
| bsw@1468 | 40               view = "index" | 
| bsw@1468 | 41             } | 
| bsw@1468 | 42           }, | 
| bsw@1468 | 43           content = function() | 
| bsw@1468 | 44             ui.sectionRow( function() | 
| bsw@1468 | 45               ui.field.select{ | 
| bsw@1468 | 46                 label = _"Parent unit", | 
| bsw@1468 | 47                 name = "parent_id", | 
| bsw@1468 | 48                 foreign_records = units, | 
| bsw@1468 | 49                 foreign_id      = "id", | 
| bsw@1468 | 50                 foreign_name    = "name" | 
| bsw@1468 | 51               } | 
| bsw@1468 | 52               ui.field.text{     label = _"Name",         name = "name" } | 
| bsw@1468 | 53               ui.field.text{     label = _"Description",  name = "description", multiline = true } | 
| bsw@1468 | 54               ui.field.text{     label = _"External reference",  name = "external_reference" } | 
| bsw@1555 | 55               ui.field.text{     label = _"Attr",         name = "attr", value = unit and unit.attr or '{}' } | 
| bsw@1468 | 56               ui.field.boolean{  label = _"Active?",      name = "active", value = hint and true or nil } | 
| bsw@1468 | 57 | 
| bsw@1468 | 58               slot.put("<br />") | 
| bsw@1470 | 59               ui.submit{ | 
| bsw@1470 | 60                 attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" }, | 
| bsw@1470 | 61                 text  = _"update unit" | 
| bsw@1470 | 62               } | 
| bsw@1468 | 63               slot.put(" ") | 
| bsw@1470 | 64               ui.link{ | 
| bsw@1470 | 65                 attr = { class = "mdl-button mdl-js-button" }, | 
| bsw@1470 | 66                 module = "admin", view = "index", content = _"cancel" | 
| bsw@1470 | 67               } | 
| bsw@1468 | 68             end ) | 
| bsw@1468 | 69           end | 
| bsw@1468 | 70         } | 
| bsw@1468 | 71       end } | 
| bsw@1468 | 72     end } | 
| bsw@1468 | 73   end } | 
| bsw@1468 | 74 end } |