Stock item types moved to types.inc
[fa-stable.git] / includes / ui / ui_input.inc
index 64df8c49182ed34dfeed38bbe27388d28907bb08..434117e652553e16ffeabdbc06b5cebe0af80837 100644 (file)
@@ -1,19 +1,14 @@
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
-       Released under the terms of the GNU Affero General Public License,
-       AGPL, as published by the Free Software Foundation, either version 
-       of the License, or (at your option) any later version.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-    See the License here <http://www.gnu.org/licenses/agpl-3.0.html>.
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-
-function get_post($name, $dflt='')
-{
-       return ((!isset($_POST[$name]) || $_POST[$name] === '') ? $dflt : $_POST[$name]);
-}
 //
 // Sets local POST value and adds Value to ajax posting if needed
 //
@@ -103,21 +98,48 @@ function hidden($name, $value=null, $echo=true)
        else
                return $ret;
 }
-
-function submit($name, $value, $echo=true, $title=false, $async=false, $icon=false)
+/*
+       Universal submit form button.
+       $atype - type of submit:
+        Normal submit:
+               false - normal button; optional icon
+               null  - button visible only in fallback mode; optional icon
+        Ajax submit:
+               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
+               'cancel'  - cancel form entry on Escape press; dflt ICON_CANCEL
+*/
+function submit($name, $value, $echo=true, $title=false, $atype=false, $icon=false)
 {
        global $path_to_root;
-       
+
+       $aspect='';
+       if (!is_bool($atype)) // necessary: switch uses '=='
+         switch($atype) {
+               case 'process':
+                       $aspect = " aspect='process'"; break;
+               case 'default':
+                       $aspect = " aspect='default'"; 
+                       if ($icon===false) $icon=ICON_SUBMIT; break;
+               case 'cancel':
+                       $aspect = " aspect='cancel'"; 
+                       if ($icon===false) $icon=ICON_ESCAPE; break;
+               case null: 
+                       $aspect = fallback_mode() ? 
+                               " aspect='fallback'" : " style='display:none;'"; break;
+        }
+
        default_focus($name);
        $submit_str = "<button class=\""
-           .($async ? 'ajaxsubmit' : 'inputsubmit')
+           .($atype ? 'ajaxsubmit' : 'inputsubmit')
                ."\" type=\"submit\""
-               .($async === null ? (fallback_mode() ? ' aspect="fallback"' : " style='display:none;'" ): 
-                       ($async === 'process' ? 'aspect="process"' : '') )
+               .$aspect
            ." name=\"$name\"  id=\"$name\" value=\"$value\""
            .($title ? " title='$title'" : '')
-           ."><span>$value</span>"
+           .">"
                .($icon ? "<img src='$path_to_root/themes/".user_theme()."/images/$icon'>" : '')
+               ."<span>$value</span>"
                ."</button>\n";
        if ($echo)
                echo $submit_str;
@@ -203,23 +225,49 @@ function submit_return($name, $value, $title=false, $async=false)
                submit($name, $value, true, $title, $async);
        }
 }
-//---------------------------------------------------------------------------------
-/*
-function button($name, $value, $onclick, $title=false)
+//-----------------------------------------------------------------------------------
+
+function set_icon($icon, $title=false)
 {
-       default_focus($name);
-       echo "<input type=\"button\" class=\"inputsubmit\" name=\"$name\" value=\"$value\" onclick=\"$onclick\""
-           .($title ? " title='$title'" : '')
-           ." />\n";
+       global $path_to_root;
+       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)
+{
+       // php silently changes dots,spaces,'[' and characters 128-159
+       // to underscore in POST names, to maintain compatibility with register_globals
+       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";
+       }
+       else
+               return "<input type='submit' class='editbutton' name='"
+                       .htmlentities(strtr($name, array('.'=>'=2E',' '=>'=20','='=>'=3D','['=>'=5B')))
+                       ."' value='$value'"
+                       .($title ? " title='$title'":'')." />\n";
 }
 
-function button_cell($name, $value, $onclick, $title=false)
+function button_cell($name, $value, $title=false, $icon=false)
 {
        echo "<td>";
-       button($name, $value, $onclick, $title);
-       echo "</td>\n";
+       echo button($name, $value, $title, $icon);
+       echo "</td>";
+}
+
+function delete_button_cell($name, $value, $title=false)
+{
+       button_cell($name, $value, $title, ICON_DELETE);
+}
+
+function edit_button_cell($name, $value, $title=false)
+{
+       button_cell($name, $value, $title, ICON_EDIT);
 }
-*/
 //-----------------------------------------------------------------------------------
 
 function check_value($name)
@@ -229,24 +277,36 @@ function check_value($name)
        return 1;
 }
 
-function check($label, $name, $value=null, $submit_on_change=false, $title=false)
+function checkbox($label, $name, $value=null, $submit_on_change=false, $title=false)
 {
        global $Ajax;
 
+       $str = '';      
        default_focus($name);
        if ($label)
-               echo $label . "  ";
-
+               $str .= $label . "  ";
+       if ($submit_on_change !== false) {
+               if ($submit_on_change === true)
+                       $submit_on_change = 
+                               "JsHttpRequest.request(\"_{$name}_update\", this.form);";
+       }
        if ($value === null)
                $value = get_post($name,0);
 
-               echo "<input"
-                   .($value == 1 ? ' checked':'')
-                   ." type='checkbox' name='$name' value='1'"
-                   .($submit_on_change ? " onclick='JsHttpRequest.request(\"_{$name}_update\", this.form);'" : '')
-                   .($title ? " title='$title'" : '')
-                   ." >\n";
+       $str .= "<input"
+           .($value == 1 ? ' checked':'')
+           ." type='checkbox' name='$name' value='1'"
+           .($submit_on_change ? " onclick='$submit_on_change'" : '')
+           .($title ? " title='$title'" : '')
+           ." >\n";
+
        $Ajax->addUpdate($name, $name, $value);
+       return $str;
+}
+
+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)
@@ -254,14 +314,14 @@ function check_cells($label, $name, $value, $submit_on_change=false, $title=fals
        if ($label != null)
                echo "<td>$label</td>\n";
        echo "<td>";
-       check(null, $name, $value, $submit_on_change, $title);
+       echo check(null, $name, $value, $submit_on_change, $title);
        echo "</td>";
 }
 
 function check_row($label, $name, $value, $submit_on_change=false, $title=false)
 {
        echo "<tr>";
-       check_cells($label, $name, $value, $submit_on_change, $title);
+       echo check_cells($label, $name, $value, $submit_on_change, $title);
        echo "</tr>\n";
 }
 
@@ -286,6 +346,11 @@ function label_cell($label, $params="", $id=null)
        return $label;
 }
 
+function email_cell($label, $params="", $id=null)
+{
+       label_cell("<a href='mailto:$label'>$label</a>", $params, $id);
+}
+
 function amount_cell($label, $bold=false, $params="", $id=null)
 {
        if ($bold)
@@ -402,6 +467,27 @@ function text_row_ex($label, $name, $size, $max=null, $title=null, $value=null,
        echo "</tr>\n";
 }
 
+//-----------------------------------------------------------------------------------
+function email_row($label, $name, $value, $size, $max, $title=null, $params="", $post_label="")
+{
+       text_row("<a href='Mailto:".$_POST[$name]."'>$label</a>", $name, $value, $size, $max, $title, $params, $post_label);
+}
+
+function email_row_ex($label, $name, $size, $max=null, $title=null, $value=null, $params=null, $post_label=null)
+{
+       text_row_ex("<a href='Mailto:".$_POST[$name]."'>$label</a>", $name, $size, $max, $title, $value, $params, $post_label);
+}
+
+function link_row($label, $name, $value, $size, $max, $title=null, $params="", $post_label="")
+{
+       text_row("<a href='".$_POST[$name]."' target='_blank'>$label</a>", $name, $value, $size, $max, $title, $params, $post_label);
+}
+
+function link_row_ex($label, $name, $size, $max=null, $title=null, $value=null, $params=null, $post_label=null)
+{
+       text_row_ex("<a href='".$_POST[$name]."' target='_blank'>$label</a>", $name, $size, $max, $title, $value, $params, $post_label);
+}
+
 //-----------------------------------------------------------------------------------
 
 function date_cells($label, $name, $title = null, $init=null, $inc_days=0,