X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fui_lists.inc;h=a68454cf8b267c7c1a0a430a0e9e81ae49da44dd;hb=967f3b0f52a7f6e4afedea35bf2303414a41022f;hp=913b8a7967f3ad741b2cb93474e7d5e3c4ab252a;hpb=286e6233d6d7d63fbaafea42475ecbd5f4cf0dd0;p=fa-stable.git diff --git a/includes/ui/ui_lists.inc b/includes/ui/ui_lists.inc index 913b8a79..a68454cf 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) @@ -1681,7 +1694,13 @@ function payment_person_types_list($name, $selected_id=null, $submit_on_change=f { global $payment_person_types; - return array_selector($name, $selected_id, $payment_person_types, + $items = array(); + foreach ($payment_person_types as $key=>$type) + { + if ($key != PT_WORKORDER) + $items[$key] = $type; + } + return array_selector($name, $selected_id, $items, array( 'select_submit'=> $submit_on_change ) ); } @@ -1800,15 +1819,12 @@ function systypes_list_cells($label, $name, $value=null, $submit_on_change=false if ($label != null) echo "$label\n"; echo ""; - - $items = array(); - foreach ($systypes_array as $key=>$type) - $items[$key] = $type['name']; - $str = array_selector($name, $value, $items, + $str = array_selector($name, $value, $systypes_array, array( 'select_submit'=> $submit_on_change, - 'async' => false + 'async' => false, + 'default' => 0 ) ); echo "\n"; @@ -1823,11 +1839,12 @@ function journal_types_list_cells($label, $name, $value=null, $submit_on_change= echo "$label\n"; echo ""; - $items = array(); - foreach ($systypes_array as $key=>$type) - // exclude orders and dimensions - if (!in_array($key, array(18,26,30,40))) - $items[$key] = $type['name']; + $items = $systypes_array; + + // exclude quotes, orders and dimensions + foreach (array(ST_PURCHORDER, ST_WORKORDER, ST_SALESORDER, ST_DIMENSION, + ST_SALESQUOTE) as $excl) + unset($items[$excl]); $str = array_selector($name, $value, $items, array( @@ -2110,18 +2127,82 @@ function security_roles_list_row($label, $name, $selected_id=null, $new_item=fal return $str; } -function tab_list_row($label, $name, $selected_id=null) +function tab_list_row($label, $name, $selected_id=null, $all = false) { - global $tabs; + global $installed_extensions; + + $tabs = array(); + foreach ($_SESSION['App']->applications as $app) { + $tabs[$app->id] = access_string($app->name, true); + } + if ($all) { // add also not active ext. modules + foreach ($installed_extensions as $ext) { + if ($ext['type'] == 'module' && !$ext['active']) + $tabs[$ext['tab']] = access_string($ext['title'], true); + } + } echo "\n"; echo "$label\n"; + array_selector($name, $selected_id, $tabs); + echo "\n"; +} - $items = array(); +//----------------------------------------------------------------------------------------------- - array_selector($name, $selected_id, $tabs); +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); - echo "\n"; + 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 +// +function extset_list($name, $value=null, $submit_on_change=false) +{ + global $db_connections; + + $items = array(); + foreach ($db_connections as $comp) + $items[] = sprintf(_("Activated for '%s'"), $comp['name']); + array_selector( $name, $value, $items, + array( + 'spec_option'=> _("Installed on system"), + 'spec_id' => -1, + 'select_submit'=> $submit_on_change, + 'async' => true + )); +} ?> \ No newline at end of file