forked from 0x2620/pandora
update embed dialog
This commit is contained in:
parent
3e7cc90040
commit
a59d1d5129
1 changed files with 50 additions and 23 deletions
|
@ -52,7 +52,7 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
{
|
||||
id: 'list',
|
||||
title: Ox._('List'),
|
||||
description: Ox._('Embed a List Icon and Description'),
|
||||
description: Ox._('Embed a List Icon with Description'),
|
||||
inputs: ['list']
|
||||
},
|
||||
{
|
||||
|
@ -65,13 +65,13 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
id: 'map',
|
||||
title: Ox._('Map'),
|
||||
description: Ox._('Embed a Map View'),
|
||||
inputs: ['switch', 'item', 'find', 'sort', 'title']
|
||||
inputs: ['mapMode', 'item', 'find', 'sort', 'title']
|
||||
},
|
||||
{
|
||||
id: 'calendar',
|
||||
title: Ox._('Calendar'),
|
||||
description: Ox._('Embed a calendar view'),
|
||||
inputs: ['switch', 'item', 'find', 'sort', 'title']
|
||||
description: Ox._('Embed a Calendar View'),
|
||||
inputs: ['mapMode', 'item', 'find', 'sort', 'title']
|
||||
},
|
||||
{
|
||||
id: 'document',
|
||||
|
@ -84,14 +84,14 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
title: Ox._('Edit'),
|
||||
description: Ox._('Embed an Edited Video'),
|
||||
inputs: [
|
||||
'edit', 'position',
|
||||
'edit', 'editMode', 'position',
|
||||
'showTimeline', 'showAnnotations', 'matchRatio'
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'text',
|
||||
title: Ox._('Text'),
|
||||
description: Ox._('Embed text icon and description'),
|
||||
description: Ox._('Embed a Text Icon with Description'),
|
||||
inputs: ['text']
|
||||
}
|
||||
].map(function(item, index) {
|
||||
|
@ -215,7 +215,8 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
timeline: data.timeline && data.timeline != 'default' ? data.timeline : void 0,
|
||||
showAnnotations: data.showAnnotations || void 0,
|
||||
showLayers: data.showAnnotations && data.showLayers ? data.showLayers : void 0,
|
||||
matchRatio: Ox.contains(['video', 'edit'], view) ? data.matchRatio || void 0 : void 0
|
||||
matchRatio: Ox.contains(['video', 'edit'], view) ? data.matchRatio || void 0 : void 0,
|
||||
showInfo: Ox.contains(['list', 'text'], view) || (view == 'edit' && !!$input.editMode.value()) || void 0
|
||||
}, true),
|
||||
position = (
|
||||
data.position ? [data.position] : []
|
||||
|
@ -231,7 +232,7 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
: '/'
|
||||
)
|
||||
+ (
|
||||
Ox.contains(['info', 'video', 'timeline'], view) || data.switch == 'item' ? data.item
|
||||
Ox.contains(['info', 'video', 'timeline'], view) || data.mapMode == 'item' ? data.item
|
||||
: view == 'list' ? 'list==' + data.list
|
||||
: view == 'document' ? 'documents/' + data.document
|
||||
: view == 'edit' ? 'edits/' + data.edit
|
||||
|
@ -240,7 +241,7 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
)
|
||||
+ (
|
||||
Ox.contains(['info', 'timeline'], view) ? '/' + view
|
||||
: Ox.contains(['grid', 'map', 'calendar'], view) ? (data.switch == 'item' ? '/' : '') + view
|
||||
: Ox.contains(['grid', 'map', 'calendar'], view) ? (data.mapMode == 'item' ? '/' : '') + view
|
||||
: ''
|
||||
)
|
||||
+ (
|
||||
|
@ -382,7 +383,7 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
})
|
||||
.appendTo($form);
|
||||
|
||||
$input.switch = Ox.Select({
|
||||
$input.mapMode = Ox.Select({
|
||||
items: [
|
||||
{id: 'item', title: Ox._(pandora.site.itemName.singular)},
|
||||
{id: 'find', title: Ox._('Query')}
|
||||
|
@ -475,6 +476,24 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
})
|
||||
.appendTo($form);
|
||||
|
||||
$input.editMode = Ox.Select({
|
||||
items: [
|
||||
{id: 'icon', title: Ox._('Icon and Description')},
|
||||
{id: 'video', title: Ox._('Video')}
|
||||
],
|
||||
label: 'Embed',
|
||||
labelWidth: labelWidth,
|
||||
width: formWidth
|
||||
})
|
||||
.css(css)
|
||||
.bindEvent({
|
||||
change: function() {
|
||||
updateForm();
|
||||
updateHTML();
|
||||
}
|
||||
})
|
||||
.appendTo($form);
|
||||
|
||||
$input.position = Ox.Input({
|
||||
label: Ox._('Position'),
|
||||
labelWidth: labelWidth,
|
||||
|
@ -791,13 +810,20 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
advanced && view == 'video' && $input.showAnnotations.options('value') ? 'show' : 'hide'
|
||||
]();
|
||||
if (Ox.contains(['map', 'calendar'], view)) {
|
||||
$input.switch.options({
|
||||
$input.mapMode.options({
|
||||
label: Ox._('{0} for', [
|
||||
Ox.getObjectById(views, $list.options('selected')[0]).title
|
||||
])
|
||||
});
|
||||
$input.item[$input.switch.value() == 'item' ? 'show' : 'hide']();
|
||||
$input.find[$input.switch.value() == 'find' ? 'show' : 'hide']();
|
||||
$input.item[$input.mapMode.value() == 'item' ? 'show' : 'hide']();
|
||||
$input.find[$input.mapMode.value() == 'find' ? 'show' : 'hide']();
|
||||
} else if (view == 'edit') {
|
||||
[
|
||||
'position', 'showTimeline', 'timeline', 'showAnnotations',
|
||||
'showLayersLabel', 'showLayers', 'matchRatio'
|
||||
].forEach(function(key) {
|
||||
$input[key][$input.editMode.value() == 'video' ? 'show' : 'hide'];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -841,7 +867,7 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
} else {
|
||||
options.view = 'text';
|
||||
}
|
||||
options.switch = !ui.item ? 'list' : 'item';
|
||||
options.mapMode = !ui.item ? 'list' : 'item';
|
||||
options.item = ui.item;
|
||||
options.document = ui.documentsSelection[ui.item][0] || '';
|
||||
options.list = ui._list;
|
||||
|
@ -896,12 +922,13 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
|
||||
function validatePoint(key) {
|
||||
// key can be position, in, out, annotation
|
||||
var hasInAndOut = $input['in'].options('value') !== '';
|
||||
if ($input[key].value()) {
|
||||
var hasInAndOut = $input['in'].options('value') !== '',
|
||||
value = $input[key].value();
|
||||
if (value) {
|
||||
if (key == 'position') {
|
||||
$input.position.options({
|
||||
value: limitPoint(
|
||||
data.value,
|
||||
value,
|
||||
hasInAndOut ? $input['in'].options('value') : 0,
|
||||
hasInAndOut ? $input.out.options('value') : duration
|
||||
)
|
||||
|
@ -909,28 +936,28 @@ pandora.ui.embedDialog = function(/*[url, ]callback*/) {
|
|||
$input.annotation.options({value: ''});
|
||||
} else if (key == 'in') {
|
||||
$input['in'].options({
|
||||
value: limitPoint(data.value, 0, duration)
|
||||
value: limitPoint(value, 0, duration)
|
||||
});
|
||||
if ($input.out.options('value') === '') {
|
||||
$input.out.options({value: Ox.formatDuration(duration)});
|
||||
} else if (
|
||||
Ox.parseDuration($input.out.options('value'))
|
||||
< Ox.parseDuration(data.value)
|
||||
< Ox.parseDuration(value)
|
||||
) {
|
||||
$input.out.options({value: data.value});
|
||||
$input.out.options({value: value});
|
||||
}
|
||||
$input.annotation.options({value: ''});
|
||||
} else if (key == 'out') {
|
||||
$input.out.options({
|
||||
value: limitPoint(data.value, 0, duration)
|
||||
value: limitPoint(value, 0, duration)
|
||||
});
|
||||
if ($input['in'].options('value') === '') {
|
||||
$input['in'].options({value: Ox.formatDuration(0)});
|
||||
} else if (
|
||||
Ox.parseDuration($input['in'].options('value'))
|
||||
> Ox.parseDuration(data.value)
|
||||
> Ox.parseDuration(value)
|
||||
) {
|
||||
$input['in'].options({value: data.value});
|
||||
$input['in'].options({value: value});
|
||||
}
|
||||
$input.annotation.options({value: ''});
|
||||
} else if (key == 'annotation') {
|
||||
|
|
Loading…
Reference in a new issue