bsw/jbe@0: function ui.order(args) bsw/jbe@0: local name = args.name or "order" bsw/jbe@0: local current_order = atom.string:load(cgi.params[name]) or args.options[1].name bsw/jbe@0: local id = param.get_id_cgi() bsw/jbe@0: local params = param.get_all_cgi() bsw/jbe@0: ui.container{ bsw/jbe@0: attr = { class = "ui_order" }, bsw/jbe@0: content = function() bsw/jbe@0: ui.container{ bsw/jbe@0: attr = { class = "ui_order_head" }, bsw/jbe@0: content = function() bsw/jbe@0: slot.put(_"Order by") bsw/jbe@0: slot.put(": ") bsw/jbe@0: for i, option in ipairs(args.options) do bsw/jbe@0: params[name] = option.name bsw/jbe@0: local attr = {} bsw/jbe@0: if current_order == option.name then bsw/jbe@0: attr.class = "active" bsw/jbe@0: args.selector:add_order_by(option.order_by) bsw/jbe@0: end bsw/jbe@0: ui.link{ bsw/jbe@0: attr = attr, bsw/jbe@0: module = request.get_module(), bsw/jbe@0: view = request.get_view(), bsw/jbe@0: id = id, bsw/jbe@0: params = params, bsw/jbe@0: content = option.label bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: ui.container{ bsw/jbe@0: attr = { class = "ui_order_content" }, bsw/jbe@0: content = function() bsw/jbe@0: args.content() bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: end