Add jeditable select and autocomplete (not stable)

This commit is contained in:
Regis Houssin 2011-10-29 23:42:24 +02:00
parent cbc27b2ac9
commit 8dc1a20466
8 changed files with 87 additions and 12 deletions

View File

@ -361,7 +361,7 @@ class Deplacement extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."c_type_fees";
$sql.= " WHERE active = ".$active;
dol_syslog("Deplacement::listOfTypes sql=".$sql, LOG_DEBUG);
dol_syslog(get_class($this)."::listOfTypes sql=".$sql, LOG_DEBUG);
$result = $this->db->query($sql);
if ( $result )
{
@ -370,11 +370,14 @@ class Deplacement extends CommonObject
while ($i < $num)
{
$obj = $this->db->fetch_object($result);
$ret[$obj->id]=array('code'=>$obj->code, 'label'=>(($langs->trans($obj->code)!=$obj->code)?$langs->trans($obj->code):$obj->label));
$ret[$obj->code]=(($langs->trans($obj->code)!=$obj->code)?$langs->trans($obj->code):$obj->label);
$i++;
}
}
else dol_print_error($this->db);
else
{
dol_print_error($this->db);
}
return $ret;
}

View File

@ -339,13 +339,15 @@ else if ($id)
print '<table class="border" width="100%">';
// Ref
print "<tr>";
print '<td width="20%">'.$langs->trans("Ref").'</td><td>';
print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td>';
print $form->showrefnav($object,'id','',1,'rowid','ref','');
print '</td></tr>';
// Type
print '<tr><td>'.$langs->trans("Type").'</td><td>'.$langs->trans($object->type).'</td></tr>';
print '<tr><td>'.$langs->trans("Type").'</td><td>';
print $form->editInPlace($langs->trans($object->type), 'type', $user->rights->deplacement->creer, 'select');
//print $langs->trans($object->type);
print '</td></tr>';
// Who
print '<tr><td>'.$langs->trans("Person").'</td><td>';

View File

@ -102,9 +102,9 @@ print '<td colspan="4">'.$langs->trans("Statistics").'</td>';
print "</tr>\n";
$listoftype=$tripandexpense_static->listOfTypes();
foreach ($listoftype as $typefee)
foreach ($listoftype as $code => $label)
{
$dataseries[]=array('label'=>$typefee['label'],'values'=>array(0=>(isset($nb[$typefee['code']])?$nb[$typefee['code']]:0)));
$dataseries[]=array('label'=>$label,'values'=>array(0=>(isset($nb[$code])?$nb[$code]:0)));
}
if ($conf->use_javascript_ajax)

View File

@ -54,9 +54,16 @@ if((isset($_GET['field']) && ! empty($_GET['field']))
if ($user->rights->$element->lire || $user->rights->$element->read)
{
$object = new GenericObject($db);
$value=$object->getValueFrom($table_element, $fk_element, $field);
echo $value;
if ($type == 'select')
{
echo json_encode(array("Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena", "Adrian", "Akron"));
}
else
{
$object = new GenericObject($db);
$value=$object->getValueFrom($table_element, $fk_element, $field);
echo $value;
}
}
else
{

View File

@ -125,4 +125,48 @@ $(document).ready(function() {
}
}
});
$('.edit_select').editable(urlSaveInPlace, {
type : 'select',
id : 'field',
onblur : 'ignore',
cssclass : 'flat',
tooltip : tooltipInPlace,
placeholder : placeholderInPlace,
cancel : cancelInPlace,
submit : submitInPlace,
indicator : indicatorInPlace,
loadurl : urlLoadInPlace,
loaddata : {
type: 'select',
element: element,
table_element: table_element,
fk_element: fk_element
},
submitdata : {
type: 'select',
element: element,
table_element: table_element,
fk_element: fk_element
},
callback : function(result, settings) {
var obj = $.parseJSON(result);
if (obj.error) {
$(this).html(this.revert);
$.jnotify(obj.error, "error", true);
} else {
$(this).html(obj.value);
}
}
});
$('.edit_autocomplete').editable(urlSaveInPlace, {
type : 'autocomplete',
id : 'field',
onblur : 'submit',
tooltip : tooltipInPlace,
indicator : indicatorInPlace,
autocomplete : {
data : ["Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena", "Adrian", "Akron"]
}
});
});

View File

@ -0,0 +1,9 @@
/* Create an inline datepicker which leverages the
jQuery UI autocomplete
*/
$.editable.addInputType('autocomplete', {
element : $.editable.types.text.element,
plugin : function(settings, original) {
$('input', this).autocomplete(settings.autocomplete.data);
}
});

View File

@ -932,6 +932,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
{
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/jeditable/jquery.jeditable.min'.$ext.'"></script>'."\n";
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/jeditable/jquery.jeditable.ui-datepicker.js"></script>'."\n";
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/jeditable/jquery.jeditable.ui-autocomplete.js"></script>'."\n";
print '<script type="text/javascript">'."\n";
print 'var urlSaveInPlace = \''.DOL_URL_ROOT.'/core/ajax/saveinplace.php\';'."\n";
print 'var urlLoadInPlace = \''.DOL_URL_ROOT.'/core/ajax/loadinplace.php\';'."\n";

View File

@ -131,6 +131,15 @@ textarea.flat {
textarea:disabled {
background:#ddd;
}
form.flat select {
background: #FDFDFD;
font-size: <?php print $fontsize ?>px;
font-family: <?php print $fontlist ?>;
font-weight: normal;
border: 1px solid #ACBCBB;
padding: 1px 1px 1px 1px;
margin: 0px 0px 0px 0px;
}
select.flat {
background: #FDFDFD;
font-size: <?php print $fontsize ?>px;
@ -1724,7 +1733,7 @@ table.cal_event td { border: 0px; padding-<?php print $left; ?>: 0px; padding-<?
/* jQuery - jeditable */
/* ============================================================================== */
.edit_textarea:hover, .edit_text:hover, .edit_numeric:hover {
.edit_textarea:hover, .edit_text:hover, .edit_numeric:hover, .edit_select:hover {
background: white url(<?php echo dol_buildpath($path.'/theme/eldy/img/edit.png',1) ?>) right top no-repeat;
cursor: pointer;
}