var toggleListAction = function(type) {
var execute = {
- add: function(params) {
+ add: function(callback, params) {
var boundries = getBoundriesForAList(params.fragment),
listParams = {klass: type === 'Bullet' ? 'list' : 'list.enum'},
action = this;
listParams.node1 = boundries.node1;
listParams.node2 = boundries.node2;
boundries.node1.document.transaction(function() {
- boundries.node1.document.createList(listParams);
+ var list = boundries.node1.document.createList(listParams),
+ item1 = list.object.getItem(0),
+ text = item1 ? item1.contents()[0] : undefined, //
+ doc = boundries.node1.document;
+
+ return doc.createFragment(doc.CaretFragment, {node: text, offset:0});
}, {
metadata: {
description: action.getState().description
- }
+ },
+ success: callback
});
} else {
throw new Error('Invalid boundries');
}
},
- remove: function(params) {
+ remove: function(callback, params) {
/* globals Node */
var current = params.fragment.node,
action = this;
}, {
metadata: {
description: action.getState().description
- }
+ },
+ success: callback
});
return true; // break
}
}.bind(this));
},
- changeType: function(params) {
+ changeType: function(callback, params) {
var node = params.fragment.node,
action = this;
node.document.transaction(function() {
}, {
metadata: {
description: action.getState().description
- }
+ },
+ success: callback
});
}
};
return false;
};
+ var label = type === 'Bullet' ? gettext('bull. list') : gettext('num. list');
return {
name: 'toggle' + type + 'List',
fragment: {type: 'context', name: 'fragment'}
},
stateDefaults: {
- label: type === 'Bullet' ? gettext('bull. list') : gettext('num. list')
+ label: label
},
getState: function(params) {
if(!params.fragment || !params.fragment.isValid()) {
if((list.getClass() === 'list' && type === 'Enum') || (list.getClass() === 'list.enum' && type === 'Bullet')) {
return {
allowed: true,
- description: interpolate(gettext('Change list type to %s'), [type]),
+ description: interpolate(gettext('Change list type to %s'), [label]),
execute: execute.changeType
};
}