X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fui_lists.inc;h=3a34efba66bcd3d8a98af592fb9253775691acd6;hb=6989100b74130784a524b1f941b3ae73f30f663a;hp=62a34df9b9c5612c2e4e62bbc5b3088b8defa243;hpb=c70823611ef71079c28542f4810cc50c183a8cd5;p=fa-stable.git
diff --git a/includes/ui/ui_lists.inc b/includes/ui/ui_lists.inc
index 62a34df9..3a34efba 100644
--- a/includes/ui/ui_lists.inc
+++ b/includes/ui/ui_lists.inc
@@ -39,6 +39,7 @@ $opts = array( // default options
'spec_id' => 0, // option id
// submit on select parameters
'default' => '', // default value when $_POST is not set
+ 'multi' => false, // multiple select
'select_submit' => false, //submit on select: true/false
'async' => true, // select update via ajax (true) vs _page_body reload
// search box parameters
@@ -52,6 +53,7 @@ $opts = array( // default options
'search_submit' => true, //search submit button: true/false
'size' => 8, // size and max of box tag
'max' => 50,
+ 'height' => false, // number of lines in select box
'cells' => false, // combo displayed as 2
| cells
'search' => array(), // sql field names to search
'format' => null, // format functions for regular options
@@ -73,7 +75,8 @@ $opts = array( // default options
$by_id = ($opts['type'] == 0);
$class = $by_id ? 'combo':'combo2';
$disabled = $opts['disabled'] ? "disabled" : '';
-
+ $multi = $opts['multi'];
+
if(!count($opts['search'])) {
$opts['search'] = array($by_id ? $valfield : $namefield);
}
@@ -89,6 +92,9 @@ $opts = array( // default options
if ($selected_id == null) {
$selected_id = get_post($name, $opts['default']);
}
+ if(!is_array($selected_id))
+ $selected_id = array($selected_id); // code is generalized for multiple selection support
+
$txt = get_post($search_box);
$rel = '';
$limit = '';
@@ -107,14 +113,14 @@ $opts = array( // default options
$rel = "rel='$search_box'"; // set relation to list
if ($opts['search_submit']) {
if (isset($_POST[$search_submit])) {
- $selected_id = ''; // ignore selected_id while search
+ $selected_id = array(); // ignore selected_id while search
if (!$opts['async'])
$Ajax->activate('_page_body');
else
$Ajax->activate($name);
}
if ($txt == '') {
- if ($spec_option === false && $selected_id==null)
+ if ($spec_option === false && $selected_id == array())
$limit = ' LIMIT 1';
else
$opts['where'][] = $valfield . "='". get_post($name, $spec_id)."'";
@@ -157,12 +163,12 @@ $opts = array( // default options
while ($contact_row = db_fetch($result)) {
$value = $contact_row[0];
$descr = $opts['format']==null ? $contact_row[1] :
- call_user_func($opts['format'], $contact_row);
+ call_user_func($opts['format'], $contact_row);
$sel = '';
if (get_post($search_submit) && ($txt === $value)) {
- $selected_id = $value;
+ $selected_id[] = $value;
}
- if ((string)($selected_id) === $value) {
+ if (in_array($value, $selected_id)) {
$sel = 'selected';
$found = $value;
}
@@ -198,16 +204,18 @@ $opts = array( // default options
. $selector;
}
- if ($found === false) {
- $selected_id = $first_id;
+ if ($found===false) {
+ $selected_id = array($first_id);
}
- $_POST[$name] = $selected_id;
+ $_POST[$name] = $multi ? $selected_id : $selected_id[0];
if ($by_id && $search_box != false) {
$txt = $found;
$Ajax->addUpdate($name, $search_box, $txt ? $txt : '');
}
- $selector = "\n";
$Ajax->addUpdate($name, "_{$name}_sel", $selector);
@@ -246,7 +254,6 @@ $opts = array( // default options
echo ($edit_entry!='' ? "$edit_entry | " : '')."$selector | ";
else
echo $edit_entry.$selector;
-
return $str;
}
@@ -273,7 +280,9 @@ $opts = array( // default options
'select_submit' => false, //submit on select: true/false
'async' => true, // select update via ajax (true) vs _page_body reload
'default' => '', // default value when $_POST is not set
+ 'multi'=>false, // multiple select
// search box parameters
+ 'height' => false, // number of lines in select box
'sel_hint' => null,
'disabled' => false
);
@@ -284,10 +293,13 @@ $opts = array( // default options
$spec_id = $opts['spec_id'];
$spec_option = $opts['spec_option'];
$disabled = $opts['disabled'] ? "disabled" : '';
+ $multi = $opts['multi'];
if ($selected_id == null) {
$selected_id = get_post($name, $opts['default']);
}
+ if(!is_array($selected_id))
+ $selected_id = array($selected_id); // code is generalized for multiple selection support
if (isset($_POST[ '_'.$name.'_update'])) {
if (!$opts['async'])
@@ -303,7 +315,7 @@ $opts = array( // default options
//if($name=='SelectStockFromList') display_error($sql);
foreach($items as $value=>$descr) {
$sel = '';
- if ((string)$selected_id === (string)$value) {
+ if (in_array((string)$value, $selected_id)) {
$sel = 'selected';
$found = $value;
}
@@ -324,11 +336,12 @@ $opts = array( // default options
}
if ($found === false) {
- $selected_id = $first_id;
+ $selected_id[] = $first_id;
}
- $_POST[$name] = $selected_id;
-
- $selector = "\n";
$Ajax->addUpdate($name, "_{$name}_sel", $selector);
@@ -1632,7 +1645,7 @@ function languages_list($name, $selected_id=null)
foreach ($installed_languages as $lang)
$items[$lang['code']] = $lang['name'];
- return array_selector($name, $selected_id, $items );
+ return array_selector($name, $selected_id, $items);
}
function languages_list_cells($label, $name, $selected_id=null)
@@ -1810,7 +1823,8 @@ function systypes_list_cells($label, $name, $value=null, $submit_on_change=false
$str = array_selector($name, $value, $systypes_array,
array(
'select_submit'=> $submit_on_change,
- 'async' => false
+ 'async' => false,
+ 'default' => 0
)
);
echo "\n";
@@ -2126,6 +2140,45 @@ function tab_list_row($label, $name, $selected_id=null)
echo "\n";
}
+//-----------------------------------------------------------------------------------------------
+
+function tag_list($name, $height, $type, $multi=false, $all=false)
+{
+ // Get tags
+ global $path_to_root;
+ include_once($path_to_root . "/admin/db/tags_db.inc");
+ $results = get_tags($type,$all);
+
+ while ($tag = db_fetch($results))
+ $tags[$tag['id']] = $tag['name'];
+
+ if (!isset($tags)) {
+ $tags[''] = _("No ".($all?"":"active ")."tags defined.");
+ }
+ return array_selector($name, null, $tags,
+ array(
+ 'multi' => $multi,
+ 'height' => $height,
+ ) );
+}
+
+function tag_list_cells($label, $name, $height, $type, $mult=false, $all=false)
+{
+ if ($label != null)
+ echo "$label | \n";
+ echo "\n";
+ tag_list($name, $height, $type, $mult, $all);
+ echo " | \n";
+
+}
+
+function tag_list_row($label, $name, $height, $type, $mult=false, $all=false)
+{
+ echo "\n";
+ tag_list_cells($label, $name, $height, $type, $mult, $all);
+ echo "
\n";
+}
+
//---------------------------------------------------------------------------------------------
// List of sets of active extensions
//