1
0
Fork 0
forked from 0x2620/oxjs

update video editor

This commit is contained in:
rlx 2012-01-12 16:09:05 +05:30
commit b2e8b2ac82
9 changed files with 623 additions and 485 deletions

View file

@ -28,7 +28,9 @@ Ox.ArrayEditable = function(options, self) {
anyclick: anyclick,
doubleclick: doubleclick,
key_delete: deleteItem,
key_enter: editItem,
key_enter: function() {
that.editItem();
},
key_escape: selectNone,
key_down: self.options.type == 'input' ? selectLast : selectNext,
key_left: self.options.type == 'input' ? selectPrevious : selectFirst,
@ -81,23 +83,12 @@ Ox.ArrayEditable = function(options, self) {
var $target = $(e.target),
$parent = $target.parent();
if ($parent.is('.OxEditableElement')) {
that.editItem(self.options.selected);
that.editItem();
} else if(!$target.is('.OxInput')) {
that.triggerEvent('add');
}
}
function editItem() {
if (self.selected > -1) {
Ox.forEach(self.$items, function($item) {
if ($item.data('position') == self.selected) {
$item.triggerEvent('doubleclick');
return false;
}
});
}
}
function getSelectedId() {
return self.selected > -1 ? self.options.items[self.selected].id : '';
}
@ -131,18 +122,21 @@ Ox.ArrayEditable = function(options, self) {
.data({position: i})
.bindEvent({
blur: function(data) {
that.gainFocus();
that.triggerEvent('blur', data);
},
cancel: function(data) {
that.gainFocus();
Ox.print("GAINING FOCUS!")
that.triggerEvent('blur', data);
},
edit: function(data) {
self.editing = true;
that.triggerEvent('edit', data);
},
submit: function(data) {
Ox.Log("AE", "SUBMIT", data);
submit(i, data.value);
that.gainFocus();
submitItem(i, data.value);
}
})
.appendTo(that);
@ -161,6 +155,7 @@ Ox.ArrayEditable = function(options, self) {
self.selected = idOrPosition;
self.options.selected = getSelectedId();
}
Ox.print('SELECT ITEM', self.options.selected, self.selected);
that.find('.OxSelected').removeClass('OxSelected');
self.selected > -1 && self.$items[self.selected].addClass('OxSelected');
triggerSelectEvent();
@ -191,14 +186,13 @@ Ox.ArrayEditable = function(options, self) {
}
}
function submit(position, value) {
function submitItem(position, value) {
var item = self.options.items[position];
if (value === '') {
deleteItem();
} /*else if (item.value === value) {
} else if (item.value === value) {
that.triggerEvent('blur');
} else*/ {
} else {
that.triggerEvent('submit', {
id: item.id,
value: value
@ -246,15 +240,24 @@ Ox.ArrayEditable = function(options, self) {
};
that.blurItem = function() {
Ox.Log('AE', 'bI', self.selected);
self.selected > -1 && self.$items[self.selected].options({editing: false});
self.options.selected && self.$items[self.selected].options({
editing: false
});
};
that.editItem = function(id) {
Ox.Log('AE', 'editItem', id);
self.options.selected = id;
self.selected = getSelectedPosition();
editItem();
that.editItem = function() {
if (self.options.selected) {
Ox.forEach(self.$items, function($item) {
if ($item.data('position') == self.selected) {
$item.triggerEvent('doubleclick');
return false;
}
});
}
};
that.reloadItems = function() {
renderItems();
};
that.removeItem = function(position) {