jbe/bsw@0: function ui_deprecated.multiselect(args)
jbe/bsw@0: local record = assert(slot.get_state_table(), "ui_deprecated.multiselect was not called within a form.").form_record
jbe/bsw@0: local name = args.name
jbe/bsw@0: local relationship = args.relationship
jbe/bsw@0:
jbe/bsw@0: local foreign_records = relationship.foreign_records
jbe/bsw@0:
jbe/bsw@0: local selector = relationship.connected_by_model:new_selector()
jbe/bsw@0: selector:add_where{ relationship.connected_by_my_id .. ' = ?', record[relationship.my_id] }
jbe/bsw@0: local connected_by_records = selector:exec()
jbe/bsw@0:
jbe/bsw@0: local connections = {}
jbe/bsw@0: for i, connected_by_record in ipairs(connected_by_records) do
jbe/bsw@0: connections[connected_by_record[relationship.connected_by_foreign_id]] = connected_by_record
jbe/bsw@0: end
jbe/bsw@0:
jbe/bsw@0: local html = {}
jbe/bsw@0:
jbe/bsw@0: if args.type == "checkboxes" then
jbe/bsw@0: for i, foreign_record in ipairs(foreign_records) do
jbe/bsw@0: local selected = ''
jbe/bsw@0: if connections[foreign_record[relationship.foreign_id]] then
jbe/bsw@0: selected = ' checked="1"'
jbe/bsw@0: end
jbe/bsw@0: html[#html + 1] = ' ' .. convert.to_human(foreign_record[relationship.foreign_name], "string") .. '
\n'
jbe/bsw@0: end
jbe/bsw@0:
jbe/bsw@0: else
jbe/bsw@0: html[#html + 1] = ''
jbe/bsw@0:
jbe/bsw@0: end
jbe/bsw@0:
jbe/bsw@0: slot.put('