*
*
* This offers two features:
-* - crmEditable() edit in place of a single field
+* - crmEditable() edit in place of a single field
* (mostly a wrapper that binds jeditable features with the ajax api and replies on crm-entity crmf-{field} html conventions)
* if you want to add an edit in place on a template:
* - add a class crm-entity and id {EntityName}-{Entityid} higher in the dom
// param in : a dom object that contains the field name as a class crmf-xxx
var getFieldName = function (field) {
if ($(field).data('field')) {
- return $(field).data('field');
- }
+ return $(field).data('field');
+ }
var fieldName=field.className.match(/crmf-(\S*)/)[1];
if (!fieldName) {
console && console.log && console.log("Couldn't get the crm-editable field name to modify. You need to set crmf-{field_name} or data-{field_name}");
if (!getEntityID (this,function (e,id) {
entity=e;
params.id = id;
-
+
})) { return };
params['field']=getFieldName(this);
CRM.api(entity,'setvalue',params,{
context: this,
error: function (data) {
- editableSettings.error.call(this,entity,fieldName,checked,data);
+ editableSettings.error.call(this,entity,params.field,checked,data);
},
success: function (data) {
- editableSettings.success.call(this,entity,fieldName,checked,data);
+ editableSettings.success.call(this,entity,params.field,checked,data);
}
});
});
return;
}
- if (this.nodeName = 'A') {
+ if (this.nodeName == 'A') {
if (this.className.indexOf('crmf-') == -1) { // it isn't a jeditable field
var formSettings= $.extend({}, editableSettings.form ,
{source: $i.attr('href')
var id= $i.closest('.crm-entity').attr('id');
if (id) {
var e=id.match(/(\S*)-(\S*)/);
- if (!e)
+ if (!e)
console && console.log && console.log("Couldn't get the entity id. You need to set class='crm-entity' id='{entityName}-{id}'");
formSettings.entity=e[1];
formSettings.id=e[2];
- }
+ }
if ($i.hasClass('crm-dialog')) {
$i.click (function () {
var $n=$('<div>Loading</div>').appendTo('body');
$n.dialog ({modal:true,width:500});
$n.crmForm (formSettings);
- return false;
+ return false;
});
} else {
$i.click (function () {
return false;
};
$n.crmForm (formSettings);
- return false;
+ return false;
});
}
return;
}
if ($i.data('action')) {
- params[params['field']]=value;//format for create at least
- action=$i.data('action');
+ var fieldName = params['field'];
delete params['field'];
delete params['value'];
+
+ params[fieldName]=value;//format for create at least
+ action=$i.data('action');
} else {
action="setvalue";
}
$this.html("<div class='crm-editable-saving'>Saving...</div>");
return true;
},
- success:function(response) {
+ success:function(response) {
if (response.indexOf('crm-error') >= 0) { // we got an error, re-display the page
$this.html(response);
formLoaded(target);
settings.success(response);
}
}
- }).append('<input type="hidden" name="snippet" value="1"/>'+destination).trigger('load');
+ }).append('<input type="hidden" name="snippet" value="1"/>'+destination).trigger('load');
settings.load(target);
};