diff --git a/build/css/ox.ui.css b/build/css/ox.ui.css index 194bdcd3..21e98a6b 100644 --- a/build/css/ox.ui.css +++ b/build/css/ox.ui.css @@ -537,7 +537,7 @@ Lists background: rgb(24, 24, 24); cursor: ew-resize; } -.OxTextList .OxBar .OxSelect { +.OxTextList .OxBar .OxButton { position: absolute; right: 0px; width: 11px; diff --git a/build/js/ox.ui.js b/build/js/ox.ui.js index 2ec44ac7..e4f717f5 100644 --- a/build/js/ox.ui.js +++ b/build/js/ox.ui.js @@ -2598,6 +2598,9 @@ requires } $.each(result.data.items, function(i, v) { var pos = offset + i; + if (Ox.isUndefined(v.id)) { + v.id = pos; + } self.$items[pos] = new Ox.ListItem({ construct: self.options.construct, data: v, @@ -2962,10 +2965,11 @@ requires that.$titles[getColumnPositionById(self.options.columns[self.selectedColumn].id)].css({ width: (self.options.columns[self.selectedColumn].width - 25) + "px" }); - that.$select = $("
") - .addClass("OxSelect") - .html(oxui.symbols.select) - .appendTo(that.$bar.$element); + that.$select = new Ox.Button({ + style: "symbol", + type: "image", + value: "select" + }).appendTo(that.$bar.$element); // Body @@ -4083,6 +4087,7 @@ requires length = self.options.elements.length, dimensions = oxui.getDimensions(self.options.orientation), edges = oxui.getEdges(self.options.orientation); + Ox.print("dimensions, edges", dimensions, edges) $.each(self.options.elements, function(i, v) { var element = v.element .css({ diff --git a/demos/test/list.js b/demos/test/list.js index 232dbcef..65aff415 100644 --- a/demos/test/list.js +++ b/demos/test/list.js @@ -1,6 +1,7 @@ $(function() { Ox.theme("modern"); var $body = $("body"), + $document = $(document), app = new Ox.App({ requestURL: "http://blackbook.local:8000/api/" // requestURL: "http://lion.oil21.org:8000/api/" @@ -33,6 +34,106 @@ $(function() { ], size: "large" }), + groups = [ + { + id: "director", + title: "Director" + }, + { + id: "country", + title: "Country" + }, + { + id: "year", + title: "Year" + }, + /* + { + id: "language", + title: "Language" + }, + { + id: "genre", + title: "Genre" + } + */ + ], + elements = [], + documentWidth = $document.width(); + Ox.print("documentWidth", documentWidth) + $.each(groups, function(i, v) { + var size = documentWidth / 3 + (documentWidth % 3 > i); + elements.push({ + element: new Ox.TextList({ + columns: [ + { + align: "left", + id: "name", + operator: "+", + title: "Name", + visible: true, + width: size - 72 + }, + { + align: "right", + id: "items", + operator: "-", + title: "Items", + visible: true, + width: 60 + } + ], + id: "group_" + v.id, + request: function(options) { + delete options.keys; + app.request("find", $.extend(options, { + group: v.id, + query: { + conditions: [ + { + key: "country", + value: "", + operator: "" + } + ], + operator: "" + } + }), options.callback); + }, + sort: [ + { + key: "name", + operator: "+" + } + ] + }), + size: size + }); + }); + Ox.print("elements", elements) + var $groups = new Ox.SplitPanel({ + elements: elements, + orientation: "horizontal" + }), + $listbar = Ox.Bar({ + size: 24 + }); + $select = Ox.Select({ + id: "selectView", + items: [ + { + checked: true, + id: "list", + title: "View: List" + }, + { + id: "icons", + title: "View: Icons" + } + ] + }).css({ + margin: "4px" + }).width(128).appendTo($listbar); $list = new Ox.TextList({ columns: [ { @@ -138,10 +239,14 @@ $(function() { } ] }), - $main = Ox.SplitPanel({ + $right = Ox.SplitPanel({ elements: [ { - element: $menu, + element: $groups, + size: 128 + }, + { + element: $listbar, size: 24 }, { @@ -149,5 +254,17 @@ $(function() { } ], orientation: "vertical" + }) + $main = Ox.SplitPanel({ + elements: [ + { + element: $menu, + size: 24 + }, + { + element: $right + } + ], + orientation: "vertical" }).appendTo($body); });