diff --git a/build/js/ox.js b/build/js/ox.js
index ab96a7e5..28a56c96 100644
--- a/build/js/ox.js
+++ b/build/js/ox.js
@@ -1172,7 +1172,7 @@ Ox.formatDate = function() {
};
}();
-Ox.formatDuration = function(sec, day, dec) {
+Ox.formatDuration = function(sec, dec, format) {
/*
>>> Ox.formatDuration(123456.789, 3)
1:10:17:36.789
@@ -1185,17 +1185,37 @@ Ox.formatDuration = function(sec, day, dec) {
>>> Ox.formatDuration(3599.999)
01:00:00
*/
- var dec = arguments.length == 3 ? dec : (Ox.isNumber(day) ? day : 0),
- day = arguments.length == 3 ? day : (Ox.isBoolean(day) ? day : false),
+ var format = arguments.length == 3 ? format : (Ox.isString(dec) ? dec : "short"),
+ dec = (arguments.length == 3 || Ox.isNumber(dec)) ? dec : 0,
sec = dec ? sec : Math.round(sec),
- arr = [
- Math.floor(sec / 86400),
- Ox.pad(Math.floor(sec % 86400 / 3600), 2),
- Ox.pad(Math.floor(sec % 3600 / 60), 2),
- Ox.pad(Ox.formatNumber(sec % 60, dec, true), dec ? dec + 3 : 2)
- ];
- !arr[0] && !day && arr.shift();
- return arr.join(":");
+ val = [
+ Math.floor(sec / 31536000),
+ Math.floor(sec % 31536000 / 86400),
+ Math.floor(sec % 86400 / 3600),
+ Math.floor(sec % 3600 / 60),
+ format == "short" ? Ox.formatNumber(sec % 60, dec) : sec % 60
+ ],
+ str = {
+ medium: ["y", "d", "h", "m", "s"],
+ long: ["year", "day", "hour", "minute", "second"]
+ },
+ pad = [0, 3, 2, 2, dec ? dec + 3 : 2];
+ while (!val[0] && val.length > (format == "short" ? 3 : 1)) {
+ val.shift();
+ str.medium.shift();
+ str.long.shift();
+ pad.shift();
+ }
+ while (format != "short" && !val[val.length - 1] && val.length > 1) {
+ val.pop();
+ str.medium.pop();
+ str.long.pop();
+ }
+ return $.map(val, function(v, i) {
+ return format == "short" ? Ox.pad(v, pad[i]) :
+ v + (format == "long" ? " " : "") + str[format][i] +
+ (format == "long" && v != 1 ? "s" : "");
+ }).join(format == "short" ? ":" : " ");
};
Ox.formatNumber = function(num, dec) {
diff --git a/build/js/ox.ui.js b/build/js/ox.ui.js
index 6ca6ee7f..3f0a8499 100644
--- a/build/js/ox.ui.js
+++ b/build/js/ox.ui.js
@@ -1557,7 +1557,7 @@ requires
style: "default", // can be default, symbol or tab
type: "text",
value: "",
- values: []
+ values: [] // fixme: shouldn't this go into self.values?
})
.options($.extend(options, {
value: $.isArray(options.value) ?
diff --git a/demos/test/list.css b/demos/test/list.css
index fec51a4d..bb75e1db 100644
--- a/demos/test/list.css
+++ b/demos/test/list.css
@@ -4,4 +4,5 @@
#totals {
margin-top: 2px;
font-size: 9px;
+ color: rgb(192, 192, 192);
}
\ No newline at end of file
diff --git a/demos/test/list.html b/demos/test/list.html
index 5577b1b9..f7b28d88 100644
--- a/demos/test/list.html
+++ b/demos/test/list.html
@@ -1,4 +1,4 @@
-
+
oxjs List Demo
@@ -10,6 +10,5 @@
-
-
+
\ No newline at end of file
diff --git a/demos/test/list.js b/demos/test/list.js
index c2a17fa7..d9c7e93e 100644
--- a/demos/test/list.js
+++ b/demos/test/list.js
@@ -133,7 +133,7 @@ $(function() {
operator: "-",
title: "Year",
visible: true,
- width: 80
+ width: 60
},
{
align: "right",
@@ -198,25 +198,131 @@ $(function() {
}),
$toolBar = Ox.Bar({
- size: 24
- }),
+ size: 24
+ }),
+
+ $button = Ox.Button({
+ id: "groupsButton",
+ value: ["Show Groups", "Hide Groups"]
+ }).css({
+ float: "left",
+ margin: "4px"
+ }).width(80).appendTo($toolBar),
$select = Ox.Select({
- id: "selectView",
+ id: "viewSelect",
items: [
{
checked: true,
id: "list",
- title: "View: List"
+ title: "View as List"
},
{
id: "icons",
- title: "View: Icons"
- }
+ title: "View as Icons"
+ },
+ {
+ id: "clips",
+ title: "View with Clips"
+ },
+ {
+ id: "timelines",
+ title: "View with Timelines"
+ },
+ {
+ id: "timelines",
+ title: "View with Maps"
+ },
+ {
+ id: "timelines",
+ title: "View with Calendars"
+ },
+ {
+ id: "timelines",
+ title: "View as Clips"
+ },
+ {
+ id: "timelines",
+ title: "View on Map"
+ },
+ {
+ id: "timelines",
+ title: "View on Calendar"
+ },
]
}).css({
+ float: "left",
margin: "4px"
- }).width(128).appendTo($toolBar);
+ }).width(120).appendTo($toolBar);
+
+ $input = new Ox.Input({
+ autocomplete: {
+ "Find: All": [],
+ "Find: Title": [
+ "A bout de souffle",
+ "Casino",
+ "Diaries, Notes and Sketches",
+ "L'age d'or",
+ "Far From Heaven",
+ "In girum imus nocte et consumimur igni",
+ "It Felt Like a Kiss",
+ "Mulholland Dr.",
+ "Querelle",
+ "Vertigo"
+ ],
+ "Find: Director": [
+ "Luis Buñuel",
+ "Adam Curtis",
+ "Guy Debord",
+ "Rainer Werner Fassbinder",
+ "Jean-Luc Godard",
+ "Todd Haynes",
+ "Alfred Hitchcock",
+ "David Lynch",
+ "Jonas Mekas",
+ "Martin Scorsese"
+ ],
+ "Find: Country": [
+ "Austria",
+ "Canada",
+ "France",
+ "Germany",
+ "Italy",
+ "Japan",
+ "Spain",
+ "Switzerland",
+ "UK",
+ "USA"
+ ],
+ "Find: Cinematographer": []
+ },
+ clear: true,
+ highlight: false,
+ id: "find",
+ label: [
+ "Find: All",
+ "Find: Title",
+ "Find: Director",
+ "Find: Country",
+ "Find: Year",
+ "Find: Language",
+ "Find: Genre",
+ "Find: Writer",
+ "Find: Producer",
+ "Find: Cinematographer",
+ "Find: Editor",
+ "Find: Actor",
+ "Find: Character",
+ "Find: Name",
+ "Find: Keyword",
+ "Find: Summary",
+ "Find: Dialog",
+ ],
+ labelWidth: 85
+ }).css({
+ float: "right",
+ margin: "4px"
+ }).width(300).appendTo($toolBar);
$contentPanel = new Ox.SplitPanel({
elements: [
@@ -289,7 +395,7 @@ $(function() {
]
},
],
- size: "large"
+ size: "medium"
}),
$mainPanel = new Ox.SplitPanel({
@@ -308,7 +414,7 @@ $(function() {
elements: [
{
element: $mainMenu,
- size: 24
+ size: 20
},
{
element: $mainPanel
@@ -363,13 +469,15 @@ $(function() {
});
Ox.Event.bind(null, "load_list", function(event, data) {
- Ox.print(data)
- var dhms = ["day", "hour", "minute", "second"],
- html = [
+ Ox.print("data", data)
+ var html = [
data.items + " movie" + (data.items != 1 ? "s" : ""),
- $.map(Ox.formatDuration(data.runtime).split(":"), function(v, i) {
- return v + " " + dhms[i] + ((v != "1" && v != "01") ? "s" : "");
- }).join(" "),
+ Ox.formatDuration(data.runtime, "long"),
+ Ox.formatDuration(data.runtime, "medium"),
+ Ox.formatDuration(data.runtime, 3, "short"),
+ data.files + " file" + (data.files != 1 ? "s" : ""),
+ Ox.formatDuration(data.duration, "short"),
+ Ox.formatValue(data.size, "B"),
Ox.formatValue(data.pixels, "px")
];
$totals.html(html.join(", "));