(function() {
var activate, blur, change, save, template;
template = function(values) {
var element;
element = $('').addClass('form-control');
$.each(values, function(index, value) {
return $('').attr('value', value).text(value).appendTo(element);
});
return element;
};
save = function(event, options) {
var cmsField, content, element;
element = $(event.currentTarget);
cmsField = element.data('scrivitoEditorsCmsField');
content = element.val();
if (content === '') {
content = null;
}
return cmsField.scrivito('save', content).done(function() {
cmsField.trigger('scrivito_editors:save');
if (options != null ? options.blur : void 0) {
return cmsField.trigger('scrivito_editors:blur');
}
});
};
change = function(event) {
return save(event);
};
blur = function(event) {
return save(event, {
blur: true
});
};
activate = function(element) {
var cmsField;
cmsField = $(element);
return cmsField.on('click', function() {
var content, values;
content = cmsField.scrivito('content');
values = cmsField.scrivito('allowed_values');
values.unshift('');
template(values).data('scrivitoEditorsCmsField', cmsField).val(content || '').insertAfter(cmsField).change(change).blur(blur).focus();
return cmsField.hide();
});
};
scrivito.editors.enum_editor = {
can_edit: function(element) {
return $(element).is('[data-scrivito-field-type=enum]');
},
activate: function(element) {
return activate(element);
}
};
scrivito.on('load', function() {
return scrivito.define_editor('enum', scrivito.editors.enum_editor);
});
}).call(this);