Minor bug fix in Quick Entry tax account choice for Journal Entry.
[fa-stable.git] / includes / ui / ui_input.inc
index 93afe5c72a1d5de4f5b2b35e90db71c5391460e3..3da07206ac88c05321bf6260661bc22f5f0839c5 100644 (file)
@@ -1,13 +1,13 @@
 <?php
 /**********************************************************************
-    Copyright (C) 2005-2008  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.
+    Copyright (C) FrontAccounting, LLC.
+       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='')
@@ -203,23 +203,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 +255,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 +292,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 +324,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)
@@ -304,7 +347,7 @@ function percent_cell($label, $bold=false, $id=null)
 // 2008-06-15. Changed
 function qty_cell($label, $bold=false, $dec=null, $id=null)
 {
-       if ($dec == null)
+       if (!isset($dec))
                $dec = get_qty_dec();
        if ($bold)
                label_cell("<b>".number_format2($label, $dec)."</b>", "nowrap align=right", $id);
@@ -402,6 +445,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, 
@@ -494,13 +558,17 @@ function amount_cells_ex($label, $name, $size, $max=null, $init=null, $params=nu
        if (!isset($max))
                $max = $size;
 
-       echo "<td>";
+       if ($label != null)
+               echo "<td>";
+       else
+               echo "<td align='right'>";
 
        echo "<input class='amount' type=\"text\" name=\"$name\" size=\"$size\" maxlength=\"$max\" dec=\"$dec\" value=\"" . $_POST[$name]. "\">";
 
-       if ($post_label)
-               echo " " . $post_label;
-
+       if ($post_label) {
+               echo "<span id='_{$name}_label'> $post_label</span>";
+               $Ajax->addUpdate($name, '_'.$name.'_label', $post_label);
+       }
        echo "</td>\n";
        $Ajax->addUpdate($name, $name, $_POST[$name]);
        $Ajax->addAssign($name, $name, 'dec', $dec);