misc fixes
This commit is contained in:
parent
7ca9a4a9e7
commit
b77852296b
7 changed files with 28 additions and 44 deletions
|
@ -90,14 +90,14 @@ Ox.Progressbar = function(options, self) {
|
||||||
if (self.options.showCancelButton) {
|
if (self.options.showCancelButton) {
|
||||||
self.$cancelButton = Ox.Button(Ox.extend({
|
self.$cancelButton = Ox.Button(Ox.extend({
|
||||||
style: 'symbol',
|
style: 'symbol',
|
||||||
tooltip: self.options.showRestartButton
|
|
||||||
? ['Cancel', 'Restart'] : 'Cancel',
|
|
||||||
type: 'image'
|
type: 'image'
|
||||||
}, self.options.showRestartButton ? {
|
}, self.options.showRestartButton ? {
|
||||||
|
tooltip: ['Cancel', 'Restart'],
|
||||||
value: 'close',
|
value: 'close',
|
||||||
values: ['close', 'redo']
|
values: ['close', 'redo']
|
||||||
} : {
|
} : {
|
||||||
title: 'close'
|
title: 'close',
|
||||||
|
tooltip: 'Cancel'
|
||||||
}))
|
}))
|
||||||
.bindEvent({
|
.bindEvent({
|
||||||
click: toggleCancelled
|
click: toggleCancelled
|
||||||
|
|
|
@ -367,13 +367,7 @@ Ox.URL = function(options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseDuration(str) {
|
function parseDuration(str) {
|
||||||
var parts = str.split(':').reverse();
|
return Ox.parseDuration(str);
|
||||||
while (parts.length > 3) {
|
|
||||||
parts.pop();
|
|
||||||
}
|
|
||||||
return parts.reduce(function(prev, curr, i) {
|
|
||||||
return prev + (parseFloat(curr) || 0) * Math.pow(60, i);
|
|
||||||
}, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseFind(str) {
|
function parseFind(str) {
|
||||||
|
@ -445,16 +439,6 @@ Ox.URL = function(options) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseTime(str) {
|
|
||||||
var split = str.split(':').reverse();
|
|
||||||
while (split.length > 3) {
|
|
||||||
split.pop();
|
|
||||||
}
|
|
||||||
return Ox.formatDuration(split.reduce(function(prev, curr, i) {
|
|
||||||
return prev + (parseFloat(curr) || 0) * Math.pow(60, i);
|
|
||||||
}, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseURL(str, callback) {
|
function parseURL(str, callback) {
|
||||||
// fixme: removing trailing slash makes it impossible to search for '/'
|
// fixme: removing trailing slash makes it impossible to search for '/'
|
||||||
str = str.replace(/(^\/|\/$)/g, '');
|
str = str.replace(/(^\/|\/$)/g, '');
|
||||||
|
@ -633,7 +617,7 @@ Ox.URL = function(options) {
|
||||||
} else if (type == 'integer') {
|
} else if (type == 'integer') {
|
||||||
value = Math.round(str) || 0;
|
value = Math.round(str) || 0;
|
||||||
} else if (type == 'time') {
|
} else if (type == 'time') {
|
||||||
value = parseTime(value);
|
value = Ox.formatDurarion(Ox.parseDuration(value));
|
||||||
} else if (type == 'year') {
|
} else if (type == 'year') {
|
||||||
value = Math.round(str) || 1970;
|
value = Math.round(str) || 1970;
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,12 +83,19 @@ Ox.CollapsePanel = function(options, self) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCollapsed() {
|
function toggleCollapsed() {
|
||||||
|
// show/hide is needed in case the collapsed content
|
||||||
|
// grows vertically when shrinking the panel horizontally
|
||||||
var marginTop;
|
var marginTop;
|
||||||
self.options.collapsed = !self.options.collapsed;
|
self.options.collapsed = !self.options.collapsed;
|
||||||
marginTop = self.options.collapsed ? -that.$content.height() : 0;
|
marginTop = self.options.collapsed ? -that.$content.height() : 0;
|
||||||
|
!self.options.collapsed && that.css({
|
||||||
|
marginTop: -that.$content.height() + 'px'
|
||||||
|
}).show();
|
||||||
that.$content.animate({
|
that.$content.animate({
|
||||||
marginTop: marginTop + 'px'
|
marginTop: marginTop + 'px'
|
||||||
}, 200);
|
}, 250, function() {
|
||||||
|
self.options.collapsed && that.hide();
|
||||||
|
});
|
||||||
that.triggerEvent('toggle', {
|
that.triggerEvent('toggle', {
|
||||||
collapsed: self.options.collapsed
|
collapsed: self.options.collapsed
|
||||||
});
|
});
|
||||||
|
|
|
@ -20,14 +20,14 @@ Ox.AnnotationPanel = function(options, self) {
|
||||||
|
|
||||||
self = self || {};
|
self = self || {};
|
||||||
var that = Ox.Element({}, self)
|
var that = Ox.Element({}, self)
|
||||||
.defaults({
|
.defaults({
|
||||||
id: '',
|
id: '',
|
||||||
items: [],
|
items: [],
|
||||||
title: '',
|
title: '',
|
||||||
type: 'text',
|
type: 'text',
|
||||||
width: 0
|
width: 0
|
||||||
})
|
})
|
||||||
.options(options || {});
|
.options(options || {});
|
||||||
|
|
||||||
self.selected = -1;
|
self.selected = -1;
|
||||||
|
|
||||||
|
@ -58,6 +58,8 @@ Ox.AnnotationPanel = function(options, self) {
|
||||||
self.$annotations = Ox.List({
|
self.$annotations = Ox.List({
|
||||||
construct: function(data) {
|
construct: function(data) {
|
||||||
var $item = Ox.Element()
|
var $item = Ox.Element()
|
||||||
|
.addClass('OxAnnotation OxTarget')
|
||||||
|
.css({padding: '4px 4px 0 4px'})
|
||||||
.append(
|
.append(
|
||||||
Ox.Editable({
|
Ox.Editable({
|
||||||
type: 'textarea',
|
type: 'textarea',
|
||||||
|
@ -73,9 +75,7 @@ Ox.AnnotationPanel = function(options, self) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.append($('<div>').css({height: '4px'}))
|
.append($('<div>').css({height: '4px'}));
|
||||||
.css({padding: '4px 4px 0 4px'})
|
|
||||||
.addClass('OxAnnotation OxTarget');
|
|
||||||
return $item;
|
return $item;
|
||||||
},
|
},
|
||||||
items: self.options.items,
|
items: self.options.items,
|
||||||
|
@ -155,8 +155,7 @@ Ox.AnnotationPanel = function(options, self) {
|
||||||
deselectItems <f> deselectItems
|
deselectItems <f> deselectItems
|
||||||
@*/
|
@*/
|
||||||
that.deselectItems = function() {
|
that.deselectItems = function() {
|
||||||
if(self.$annotations.options('selected'))
|
self.$annotations.options('selected', []);
|
||||||
self.$annotations.options('selected',[]);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return that;
|
return that;
|
||||||
|
|
|
@ -175,8 +175,8 @@ Ox.LargeVideoTimeline = function(options, self) {
|
||||||
function setSubtitles() {
|
function setSubtitles() {
|
||||||
self.$subtitles = [];
|
self.$subtitles = [];
|
||||||
self.options.subtitles.forEach(function(subtitle, i) {
|
self.options.subtitles.forEach(function(subtitle, i) {
|
||||||
var found = self.options.find &&
|
var found = self.options.find
|
||||||
subtitle.text.toLowerCase().indexOf(self.options.find.toLowerCase()) > -1;
|
&& subtitle.text.toLowerCase().indexOf(self.options.find.toLowerCase()) > -1;
|
||||||
self.$subtitles[i] = $('<div>')
|
self.$subtitles[i] = $('<div>')
|
||||||
.addClass('OxSubtitle' + (found ? ' OxHighlight' : ''))
|
.addClass('OxSubtitle' + (found ? ' OxHighlight' : ''))
|
||||||
.css({
|
.css({
|
||||||
|
@ -227,7 +227,7 @@ Ox.LargeVideoTimeline = function(options, self) {
|
||||||
} else if (key == 'position') {
|
} else if (key == 'position') {
|
||||||
setPosition();
|
setPosition();
|
||||||
} else if (key == 'subtitles') {
|
} else if (key == 'subtitles') {
|
||||||
|
// ...
|
||||||
} else if (key == 'width') {
|
} else if (key == 'width') {
|
||||||
setWidth();
|
setWidth();
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,6 @@ Bars
|
||||||
rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 100%
|
rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.1) 100%
|
||||||
),
|
),
|
||||||
-webkit-linear-gradient(top, rgb(224, 224, 224), rgb(192, 192, 192));
|
-webkit-linear-gradient(top, rgb(224, 224, 224), rgb(192, 192, 192));
|
||||||
background-size: 32px 32px, 16px 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.OxThemeClassic .OxResizebar > .OxLine {
|
.OxThemeClassic .OxResizebar > .OxLine {
|
||||||
|
|
|
@ -71,7 +71,6 @@ Ox.parseHTML = (function() {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tab = '\t';
|
tab = '\t';
|
||||||
|
|
||||||
return function(html, tags, wikilinks) {
|
return function(html, tags, wikilinks) {
|
||||||
var matches = [],
|
var matches = [],
|
||||||
tags = tags || defaultTags;
|
tags = tags || defaultTags;
|
||||||
|
@ -94,17 +93,14 @@ Ox.parseHTML = (function() {
|
||||||
html = Ox.encodeHTML(html);
|
html = Ox.encodeHTML(html);
|
||||||
html = Ox.parseURLs(html);
|
html = Ox.parseURLs(html);
|
||||||
html = Ox.parseEmailAddresses(html);
|
html = Ox.parseEmailAddresses(html);
|
||||||
//Ox.print('Ox.parseHTML', html, 'matches', matches);
|
|
||||||
matches.forEach(function(match, i) {
|
matches.forEach(function(match, i) {
|
||||||
html = html.replace(new RegExp(tab + i + tab, 'gi'), match);
|
html = html.replace(new RegExp(tab + i + tab, 'gi'), match);
|
||||||
});
|
});
|
||||||
//html = html.replace(/\n/g, '<br/>\n');
|
|
||||||
html = html.replace(/\n\n/g, '<br/><br/>');
|
html = html.replace(/\n\n/g, '<br/><br/>');
|
||||||
// close extra opening (and remove extra closing) tags
|
// close extra opening (and remove extra closing) tags
|
||||||
// note: this converts '"' to '"'
|
// note: this converts '"' to '"'
|
||||||
return Ox.element('<div>').html(html).html();
|
return Ox.element('<div>').html(html).html();
|
||||||
}
|
}
|
||||||
|
|
||||||
}());
|
}());
|
||||||
|
|
||||||
/*@
|
/*@
|
||||||
|
@ -132,7 +128,6 @@ Ox.parseURL <f> Takes a URL, returns its components
|
||||||
'?a=0&b=1'
|
'?a=0&b=1'
|
||||||
@*/
|
@*/
|
||||||
Ox.parseURL = (function() {
|
Ox.parseURL = (function() {
|
||||||
// fixme: leak memory, like now, or create every time? ... benchmark??
|
|
||||||
var a = document.createElement('a'),
|
var a = document.createElement('a'),
|
||||||
keys = ['hash', 'host', 'hostname', 'origin',
|
keys = ['hash', 'host', 'hostname', 'origin',
|
||||||
'pathname', 'port', 'protocol', 'search'];
|
'pathname', 'port', 'protocol', 'search'];
|
||||||
|
|
Loading…
Reference in a new issue