X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fui_lists.inc;h=3a34efba66bcd3d8a98af592fb9253775691acd6;hb=6989100b74130784a524b1f941b3ae73f30f663a;hp=7835f33905bbef4d64bd11b4bb774cae71af5e1f;hpb=cc36638b65572da4867b7622723d6ed0135525b8;p=fa-stable.git
diff --git a/includes/ui/ui_lists.inc b/includes/ui/ui_lists.inc
index 7835f339..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
@@ -74,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);
}
@@ -90,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 = '';
@@ -108,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)."'";
@@ -158,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;
}
@@ -199,18 +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);
@@ -249,7 +254,6 @@ $opts = array( // default options
echo ($edit_entry!='' ? "
$edit_entry | " : '')."$selector | ";
else
echo $edit_entry.$selector;
-
return $str;
}
@@ -276,6 +280,7 @@ $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,
@@ -288,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'])
@@ -307,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;
}
@@ -328,13 +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);
@@ -1638,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)
@@ -1816,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";
@@ -2132,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
//