| 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@595 | 14   units[#units+1] = { id = unit.id, name = unit.name } | 
| bsw@525 | 15 end | 
| bsw@525 | 16 | 
| bsw@1468 | 17 ui.grid{ content = function() | 
| bsw@525 | 18 | 
| bsw@1468 | 19   ui.cell_main{ content = function() | 
| bsw@1468 | 20     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function() | 
| bsw@1468 | 21       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() | 
| bsw@1469 | 22         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = unit and unit.name or _"New organizational unit" } | 
| bsw@1468 | 23       end } | 
| bsw@1468 | 24       ui.container{ attr = { class = "mdl-card__content" }, content = function() | 
| bsw@1468 | 25         ui.form{ | 
| bsw@1468 | 26           attr = { class = "vertical section" }, | 
| bsw@1468 | 27           module = "admin", | 
| bsw@1468 | 28           action = "unit_update", | 
| bsw@1468 | 29           id = unit and unit.id, | 
| bsw@1468 | 30           record = unit, | 
| bsw@1468 | 31           routing = { | 
| bsw@1468 | 32             default = { | 
| bsw@1468 | 33               mode = "redirect", | 
| bsw@1468 | 34               modules = "admin", | 
| bsw@1468 | 35               view = "index" | 
| bsw@1468 | 36             } | 
| bsw@1468 | 37           }, | 
| bsw@1468 | 38           content = function() | 
| bsw@1468 | 39             ui.sectionRow( function() | 
| bsw@1468 | 40               ui.field.select{ | 
| bsw@1468 | 41                 label = _"Parent unit", | 
| bsw@1468 | 42                 name = "parent_id", | 
| bsw@1468 | 43                 foreign_records = units, | 
| bsw@1468 | 44                 foreign_id      = "id", | 
| bsw@1468 | 45                 foreign_name    = "name" | 
| bsw@1468 | 46               } | 
| bsw@1468 | 47               ui.field.text{     label = _"Name",         name = "name" } | 
| bsw@1468 | 48               ui.field.text{     label = _"Description",  name = "description", multiline = true } | 
| bsw@1468 | 49               ui.field.text{     label = _"External reference",  name = "external_reference" } | 
| bsw@1555 | 50               ui.field.text{     label = _"Attr",         name = "attr", value = unit and unit.attr or '{}' } | 
| bsw@1468 | 51               ui.field.boolean{  label = _"Active?",      name = "active", value = hint and true or nil } | 
| bsw@1468 | 52 | 
| bsw@1468 | 53               slot.put("<br />") | 
| bsw@1470 | 54               ui.submit{ | 
| bsw@1470 | 55                 attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect" }, | 
| bsw@1470 | 56                 text  = _"update unit" | 
| bsw@1470 | 57               } | 
| bsw@1468 | 58               slot.put(" ") | 
| bsw@1470 | 59               ui.link{ | 
| bsw@1470 | 60                 attr = { class = "mdl-button mdl-js-button" }, | 
| bsw@1470 | 61                 module = "admin", view = "index", content = _"cancel" | 
| bsw@1470 | 62               } | 
| bsw@1468 | 63             end ) | 
| bsw@1468 | 64           end | 
| bsw@1468 | 65         } | 
| bsw@1468 | 66       end } | 
| bsw@1468 | 67     end } | 
| bsw@1468 | 68   end } | 
| bsw@1468 | 69 end } |