diff --git a/include/class.queue.php b/include/class.queue.php index 2317a3f4aabb06050ae8d5c413fe3991205c1934..47e0f1041de68f0eb3c08d9af01d2bba37b63461 100644 --- a/include/class.queue.php +++ b/include/class.queue.php @@ -450,6 +450,8 @@ class QueueColumnCondition { var $queue; var $properties = array(); + static $uid = 1; + function __construct($config, $queue=null) { $this->config = $config; $this->queue = $queue; @@ -482,8 +484,7 @@ class QueueColumnCondition { // Lookup the field to search this condition if (isset($searchable[$name])) { - list(,$field) = $searchable[$name]; - return $field; + return $searchable[$name]; } } @@ -512,7 +513,7 @@ class QueueColumnCondition { } // Fetch a criteria Q for the query - if ($field = $this->getField($name)) + if (list(,$field) = $this->getField($name)) return $field->getSearchQ($method, $value, $name2 ?: $name); } @@ -583,7 +584,11 @@ class QueueColumnCondition { } function getShortHash() { - return substr($this->getHash(), -10); + return substr(base64_encode($this->getHash(true)), -10); + } + + static function getUid() { + return static::$uid++; } static function fromJson($config, $queue=null) { diff --git a/include/staff/templates/queue-column-condition.tmpl.php b/include/staff/templates/queue-column-condition.tmpl.php index 8a8d759892f66615ac315c2d1defa8364a441501..d9861890be545a08b29d41a7cf228dab1c1bd3a6 100644 --- a/include/staff/templates/queue-column-condition.tmpl.php +++ b/include/staff/templates/queue-column-condition.tmpl.php @@ -14,6 +14,7 @@ <input name="condition_field[]" value="<?php echo $field_name; ?>" type="hidden" /> <div class="pull-right"> <a href="#" onclick="javascript: $(this).closest('.condition').remove(); + return false; "><i class="icon-trash"></i></a> </div> <?php echo $label ?: $field->getLabel(); ?> @@ -67,7 +68,7 @@ foreach ($condition->getProperties() as $prop=>$v) { <select onchange="javascript: var $this = $(this), selected = $this.find(':selected'), - container = $this.closest('.properties'); + container = $this.closest('div'); $.ajax({ url: 'ajax.php/queue/condition/addProperty', data: { prop: selected.val(), condition: <?php echo $id; ?> }, diff --git a/include/staff/templates/queue-column.tmpl.php b/include/staff/templates/queue-column.tmpl.php index 6d1d54520d604f10275e48571ee098f20adb2404..38ac9d2e4d669a3c3df20806a07bcfce9a7ed131 100644 --- a/include/staff/templates/queue-column.tmpl.php +++ b/include/staff/templates/queue-column.tmpl.php @@ -118,8 +118,8 @@ $data_form = $column->getDataConfigForm($_POST); if ($column->getConditions()) { $fields = SavedSearch::getSearchableFields($column->getQueue()->getRoot()); foreach ($column->getConditions() as $i=>$condition) { - $id = $column->getId() * 40 + $i; - $field = $condition->getField(); + $id = QueueColumnCondition::getUid(); + list($label, $field) = $condition->getField(); $field_name = $condition->getFieldName(); include STAFFINC_DIR . 'templates/queue-column-condition.tmpl.php'; } @@ -137,8 +137,8 @@ if ($column->getConditions()) { </select> <script> $(function() { - var colid = <?php echo $colid ?: 0 ?>, - nextid = colid * 40; + var colid = <?php echo $colid ?: 0; ?>, + nextid = <?php echo QueueColumnCondition::getUid(); ?>; $('#' + colid + '-conditions select.add-condition').change(function() { var $this = $(this), container = $this.closest('div'),