Fix css overflow + form refresh

This commit is contained in:
jekkos
2018-09-23 01:47:14 +02:00
committed by jekkos
parent 667c4e2afe
commit 9cdfc0ce8a
8 changed files with 41 additions and 22 deletions

View File

@@ -397,8 +397,25 @@ class Items extends Secure_Controller
$data['definition_values'] = $this->Attribute->get_attributes_by_item($item_id) + $this->Attribute->get_values_by_definitions($definition_ids);
$data['definition_names'] = $this->Attribute->get_definition_names();
foreach($data['definition_values'] as $definition_id => $attribute_value)
foreach($data['definition_values'] as $definition_id => $definition_value)
{
$attribute_value = $this->Attribute->get_attribute_value($item_id, $definition_id);
$attribute_id = (empty($attribute_value) || empty($attribute_value->attribute_id)) ? NULL : $attribute_value->attribute_id;
$values = &$data['definition_values'][$definition_id];
$values['attribute_id'] = $attribute_id;
$values['attribute_value'] = $attribute_value;
if ($definition_value['definition_type'] == DROPDOWN)
{
$values['values'] = $this->Attribute->get_definition_values($definition_id);
$values['selected_value'] = $this->Attribute->get_link_value($item_id, $definition_id);
}
if (!empty($definition_ids[$definition_id]))
{
$values['selected_value'] = $definition_ids[$definition_id];
}
unset($data['definition_names'][$definition_id]);
}

View File

@@ -340,7 +340,7 @@ function get_items_manage_table_headers()
foreach($definition_names as $definition_id => $definition_name)
{
$headers[] = array($definition_name => $definition_name);
$headers[] = array($definition_id => $definition_name);
}
return transform_headers($headers);
@@ -411,12 +411,18 @@ function get_item_data_row($item)
array('class' => 'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title' => $CI->lang->line($controller_name.'_update'))
));
$attribute_values = explode(',', (property_exists($item, 'attribute_values')) ? $item->attribute_values : "");
$attribute_values = explode('|', (property_exists($item, 'attribute_values')) ? $item->attribute_values : "");
$indexed_values = array();
foreach($attribute_values as $attribute_value)
{
$exploded_value = explode(':', $attribute_value);
$indexed_values[$exploded_value[0]] = $exploded_value[1];
}
foreach($definition_names as $definition_id => $definition_name)
{
$result[$definition_name] = array_shift($attribute_values);
$result[$definition_id] = $indexed_values[$definition_id];
}
return $result;

View File

@@ -193,10 +193,9 @@ class Item extends CI_Model
}
else if (count($filters['definition_ids']) > 0)
{
$this->db->select('GROUP_CONCAT(attribute_value) AS attribute_values');
$this->db->select('GROUP_CONCAT(DISTINCT CONCAT_WS(\':\', definition_id, attribute_value) ORDER BY definition_id SEPARATOR \'|\') AS attribute_values');
$this->db->join('attribute_links', 'attribute_links.item_id = items.item_id AND attribute_links.receiving_id IS NULL AND attribute_links.sale_id IS NULL AND definition_id IN (' . implode(',', $filters['definition_ids']) . ')', 'left');
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id', 'left');
$this->db->order_by('definition_id');
}
$this->db->where('items.deleted', $filters['is_deleted']);

View File

@@ -102,10 +102,9 @@ class Detailed_receivings extends Report
$this->db->join('items', 'receivings_items_temp.item_id = items.item_id');
if (count($inputs['definition_ids']) > 0)
{
$this->db->select('GROUP_CONCAT(attribute_value SEPARATOR \'|\') AS attribute_values');
$this->db->select('GROUP_CONCAT(DISTINCT attribute_value ORDER BY definition_id SEPARATOR \'|\') AS attribute_values');
$this->db->join('attribute_links', 'attribute_links.item_id = items.item_id AND attribute_links.receiving_id = receivings_items_temp.receiving_id AND definition_id IN (' . implode(',', $inputs['definition_ids']) . ')', 'left');
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id', 'left');
$this->db->order_by('definition_id');
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id');
$this->db->group_by('receivings_items_temp.receiving_id');
}
$this->db->where('receivings_items_temp.receiving_id', $value['receiving_id']);

View File

@@ -148,10 +148,9 @@ class Detailed_sales extends Report
$this->db->from('sales_items_temp');
if (count($inputs['definition_ids']) > 0)
{
$this->db->select('GROUP_CONCAT(attribute_value SEPARATOR \'|\') AS attribute_values');
$this->db->select('GROUP_CONCAT(DISTINCT attribute_value ORDER BY definition_id SEPARATOR \'|\') AS attribute_values');
$this->db->join('attribute_links', 'attribute_links.item_id = sales_items_temp.item_id AND attribute_links.sale_id = sales_items_temp.sale_id AND definition_id IN (' . implode(',', $inputs['definition_ids']) . ')', 'left');
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id', 'left');
$this->db->order_by('definition_id');
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id');
$this->db->group_by('sales_items_temp.sale_id');
}
$this->db->where('sales_items_temp.sale_id', $value['sale_id']);

View File

@@ -65,7 +65,6 @@
//validation and submit handling
$(document).ready(function()
{
$('.modal-body').css('overflow-y', 'visible');
var values = [];
var definition_id = <?php echo $definition_id; ?>;
var is_new = definition_id == -1;

View File

@@ -18,10 +18,9 @@ foreach($definition_values as $definition_id => $definition_value)
<div class="input-group">
<?php
$attribute_value = $this->Attribute->get_attribute_value($item_id, $definition_id);
$attribute_id = (empty($attribute_value) || empty($attribute_value->attribute_id)) ? NULL : $attribute_value->attribute_id;
echo form_hidden("attribute_ids[$definition_id]", $attribute_id);
echo form_hidden("attribute_ids[$definition_id]", $definition_value['attribute_id']);
$attribute_value = $definition_value['attribute_value'];
if ($definition_value['definition_type'] == DATETIME)
{
$value = (empty($attribute_value) || empty($attribute_value->attribute_datetime)) ? DEFAULT_DATETIME : strtotime($attribute_value->attribute_datetime);
@@ -34,13 +33,12 @@ foreach($definition_values as $definition_id => $definition_value)
}
else if ($definition_value['definition_type'] == DROPDOWN)
{
$values = $this->Attribute->get_definition_values($definition_id);
$selected_value = $this->Attribute->get_link_value($item_id, $definition_id);
echo form_dropdown("attribute_links[$definition_id]", $values, (empty($selected_value) ? NULL : $selected_value->attribute_id), "class='form-control' data-definition-id='$definition_id'");
$selected_value = empty($selected_value) ? $definition_value['selected_value'] : $selected_value->attribute_id;
echo form_dropdown("attribute_links[$definition_id]", $definition_value['values'], $selected_value, "class='form-control' data-definition-id='$definition_id'");
}
else if ($definition_value['definition_type'] == TEXT)
{
$value = (empty($attribute_value) || empty($attribute_value->attribute_value)) ? NULL : $attribute_value->attribute_value;
$value = (empty($attribute_value) || empty($attribute_value->attribute_value)) ? $definition_value['selected_value'] : $attribute_value->attribute_value;
echo form_input("attribute_links[$definition_id]", $value, "class='form-control' data-definition-id='$definition_id'");
}
?>

View File

@@ -47,7 +47,9 @@
</div>
<div id="attributes">
<?php $this->load->view('attributes/item', array('item_id' => $item_info->item_id)); ?>
<script type="text/javascript">
$('#attributes').load('<?php echo site_url("items/attributes/$item_info->item_id");?>');
</script>
</div>
<?php if ($item_kits_enabled == '1'): ?>