Asynchronous customer/supplier/item selection now use popup window.
[fa-stable.git] / includes / ui / ui_input.inc
index 091a874c7852e8ca7df09606f2e86e40522cf907..ccd62b48164f70671e26a23f2a82e587d090135f 100644 (file)
@@ -108,6 +108,7 @@ function hidden($name, $value=null, $echo=true)
                true      - standard button; optional icon
                'process' - displays progress bar during call; optional icon
                'default' - default form submit on Ctrl-Enter press; dflt ICON_OK icon
+               'selector' - ditto with closing current popup editor window
                'cancel'  - cancel form entry on Escape press; dflt ICON_CANCEL
 */
 function submit($name, $value, $echo=true, $title=false, $atype=false, $icon=false)
@@ -119,6 +120,10 @@ function submit($name, $value, $echo=true, $title=false, $atype=false, $icon=fal
          switch($atype) {
                case 'process':
                        $aspect = " aspect='process'"; break;
+               case 'selector':
+                       $aspect = " aspect='selector' rel = '$value'"; 
+                       $value = _("Select");
+                       if ($icon===false) $icon=ICON_SUBMIT; break;
                case 'default':
                        $aspect = " aspect='default'"; 
                        if ($icon===false) $icon=ICON_SUBMIT; break;
@@ -225,12 +230,17 @@ function submit_row($name, $value, $right=true, $extra="", $title=false, $async=
        echo "</tr>\n";
 }
 
-function submit_return($name, $value, $title=false, $async=false)
+function submit_return($name, $value, $title=false)
 {
-       if (count($_SESSION['Context'])) {
-               submit($name, $value, true, $title, $async);
+       if (@$_REQUEST['popup']) {
+               submit($name, $value, true, $title, 'selector');
        }
 }
+
+function submit_js_confirm($name, $msg) {
+       add_js_source(
+               "_validate.$name=function(){ return confirm('$msg');};");
+};
 //-----------------------------------------------------------------------------------
 
 function set_icon($icon, $title=false)
@@ -239,29 +249,40 @@ function set_icon($icon, $title=false)
        return "<img src='$path_to_root/themes/".user_theme()."/images/$icon' width='14' height='14' border='0'".($title ? " title='$title'" : "")." />\n";     
 }
 
-function button($name, $value, $title=false, $icon=false)
+function button($name, $value, $title=false, $icon=false,  $aspect='')
 {
        // php silently changes dots,spaces,'[' and characters 128-159
        // to underscore in POST names, to maintain compatibility with register_globals
+       $rel = '';
+       if ($aspect == 'selector') {
+               $rel = " rel='$value'";
+               $value = _("Select");
+       }
        if (user_graphic_links() && $icon)
        {
                if ($value == _("Delete")) // Helper during implementation
                        $icon = ICON_DELETE;
                return "<button type='submit' class='editbutton' name='".
                        htmlentities(strtr($name, array('.'=>'=2E',' '=>'=20','='=>'=3D','['=>'=5B'))).
-                       "' value='1'" . ($title ? " title='$title'":" title='$value'")." />".set_icon($icon)."\n";
+                       "' value='1'" . ($title ? " title='$title'":" title='$value'")
+                       . ($aspect ? " aspect='$aspect'" : '')
+                       . $rel
+                       ." />".set_icon($icon)."\n";
        }
        else
                return "<input type='submit' class='editbutton' name='"
                        .htmlentities(strtr($name, array('.'=>'=2E',' '=>'=20','='=>'=3D','['=>'=5B')))
                        ."' value='$value'"
-                       .($title ? " title='$title'":'')." />\n";
+                       .($title ? " title='$title'":'')
+                       . ($aspect ? " aspect='$aspect'" : '')
+                       . $rel
+                       ." />\n";
 }
 
-function button_cell($name, $value, $title=false, $icon=false)
+function button_cell($name, $value, $title=false, $icon=false, $aspect='')
 {
-       echo "<td>";
-       echo button($name, $value, $title, $icon);
+       echo "<td align='center'>";
+       echo button($name, $value, $title, $icon, $aspect);
        echo "</td>";
 }
 
@@ -274,6 +295,11 @@ function edit_button_cell($name, $value, $title=false)
 {
        button_cell($name, $value, $title, ICON_EDIT);
 }
+
+function select_button_cell($name, $value, $title=false)
+{
+       button_cell($name, $value, $title, ICON_ADD, 'selector');
+}
 //-----------------------------------------------------------------------------------
 
 function check_value($name)
@@ -315,11 +341,12 @@ function check($label, $name, $value=null, $submit_on_change=false, $title=false
        echo checkbox($label, $name, $value, $submit_on_change, $title);
 }
 
-function check_cells($label, $name, $value, $submit_on_change=false, $title=false)
+function check_cells($label, $name, $value, $submit_on_change=false, $title=false,
+       $params='')
 {
        if ($label != null)
                echo "<td>$label</td>\n";
-       echo "<td align='center'>";
+       echo "<td $params>";
        echo check(null, $name, $value, $submit_on_change, $title);
        echo "</td>";
 }
@@ -754,7 +781,7 @@ function text_row_with_submit($label, $name, $value, $size, $max, $input_name, $
 //  displays value of inactive field as checkbox cell.
 //  Also updates database record after status change.
 //
-function inactive_status_cell($id, $value, $table, $key)
+function inactive_control_cell($id, $value, $table, $key)
 {
        global  $Ajax;
 
@@ -766,14 +793,14 @@ function inactive_status_cell($id, $value, $table, $key)
                        get_post('Update')) && (check_value('Inactive'.$id) != $value)) {
                        update_record_status($id, !$value, $table, $key);
                }
-               echo '<td align="center">'. checkbox(null, $name, $value, true, '')
+               echo '<td align="center">'. checkbox(null, $name, $value, true, '', "align='center'")
                        . hidden("LInact[$id]", $value, false) . '</td>';       
        }
 }
 //
 //     Displays controls for optional display of inactive records
 //
-function show_inactive_row($th) {
+function inactive_control_row($th) {
        echo  "<tr><td colspan=".(count($th)).">"
                ."<div style='float:left;'>"
                . checkbox(null, 'show_inactive', null, true). _("Show also Inactive")
@@ -781,5 +808,16 @@ function show_inactive_row($th) {
                . submit('Update', _('Update'), false, '', null)
                ."</div></td></tr>";
 }
-
+//
+//     Inserts additional column header when display of inactive records is on.
+//
+function inactive_control_column(&$th) {
+       global $Ajax;
+       
+       if (check_value('show_inactive')) 
+               array_insert($th, count($th)-2 , _("Inactive"));
+       if (get_post('_show_inactive_update')) {
+               $Ajax->activate('_page_body');
+       }
+}
 ?>
\ No newline at end of file