Ajax Inquiry Fixes (Braatwaate).
[fa-stable.git] / includes / ui / ui_view.inc
index 12883aa048ce9f237c0ceec71b9deff1a7fa3332..b65339ef8fc09cabceae106b4fa119550ddedbd3 100644 (file)
@@ -51,7 +51,7 @@ function get_gl_view_str($type, $trans_no, $label="", $force=false, $class='', $
                $label = _("GL");
                $icon = ICON_GL;
        }
-       $url = ($type == ST_WORKORDER && !work_order_is_closed($trans_no)) ? "manufacturing/view/wo_costs_view.php?trans_no=$trans_no"
+       $url = ($type == ST_WORKORDER) ? "manufacturing/view/wo_costs_view.php?trans_no=$trans_no"
                : "gl/view/gl_trans_view.php?type_id=$type&trans_no=$trans_no";
 
        return viewer_link($label, $url, $class, $id, $icon);
@@ -262,7 +262,7 @@ function check_ui_refresh($name=null)
                $name = $bt[1]['function'];
        $old = @$_SESSION['ui_context'][$name];
        $new = $_SESSION['ui_context'][$name] = $bt[1]['args'];
-       return ($new != $old) || ($_SERVER['REQUEST_METHOD'] == 'GET');
+       return ($new != $old);
 }
 
 //--------------------------------------------------------------------------------------
@@ -278,7 +278,7 @@ function exchange_rate_display($from_currency, $to_currency, $date_, $force_edit
 
        if ($from_currency != $to_currency)
        {
-               $rate = get_post('_ex_rate');
+               $rate = input_num('_ex_rate');
                if (check_ui_refresh() || !$rate) { // readonly or ui context changed
                        $comp_currency = get_company_currency();
                        if ($from_currency == $comp_currency)
@@ -385,10 +385,8 @@ function view_stock_status($stock_id, $description=null, $echo=true)
 {
        global $path_to_root;
        if ($description)
-               //hyperlink_params_separate($path_to_root . "/inventory/inquiry/stock_status.php", (user_show_codes()?$stock_id . " - ":"") . $description, "stock_id=$stock_id");
                $preview_str = "<a target='_blank' href='$path_to_root/inventory/inquiry/stock_status.php?stock_id=$stock_id&popup=1' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >". (user_show_codes()?$stock_id . " - ":"") . $description."</a>";
        else
-               //hyperlink_params_separate($path_to_root . "/inventory/inquiry/stock_status.php", $stock_id, "stock_id=$stock_id");
                $preview_str = "<a target='_blank' href='$path_to_root/inventory/inquiry/stock_status.php?stock_id=$stock_id&popup=1' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$stock_id</a>";
        if($echo)
                echo $preview_str;
@@ -718,7 +716,7 @@ function quickentry_calculate($base, $id, $taxgroup=null, $date=null)
                                case "t+": // ditto & increase base amount
                                case "t-": // ditto & reduce base amount
                                        if (substr($row['action'], 0, 1) != 'T') 
-                                               $totrate += get_tax_type_default_rate($row['dest_id']);
+                                               $totrate += get_tax_type_rate($row['dest_id']);
                        }
                }
                $first = true;
@@ -890,6 +888,51 @@ function get_js_open_window($width, $height)
                . " var top = (screen.height - $height) / 2;\n"
                . " return window.open(url, title, 'width=$width,height=$height,left='+left+',top='+top+',screenX='+left+',screenY='+top+',status=no,scrollbars=yes');\n"
                . "}\n";
+       $js .= get_js_lookup_window();
+       return $js;
+}
+
+function get_js_lookup_window() {
+       $js = "function lookupWindow(url, title) {
+       var u = url.split('#');
+       if (u.length == 2) {
+               var element = document.getElementById(u[1]);
+               var options = element.options;
+               url = u[0] + '&' + u[1] + '=' + options[element.selectedIndex].value;
+       }
+       openWindow(url, title);
+       }";
+       return $js;
+}
+
+function get_js_select_combo_item() {
+       $js = "function selectComboItem(doc, client_id, value){
+       var element = doc.getElementById(client_id);
+               var options = element.options;
+               for (var i = 0, optionsLength = options.length; i < optionsLength; i++) {
+                       if (options[i].value == value) {
+                               element.selectedIndex = i;
+                       element.onchange();
+                       }
+               }
+               window.close();
+       }";
+       return $js;
+}
+/* for space search option */
+function get_js_set_combo_item() {
+       $js = "function setComboItem(doc, client_id, value, text){
+       var element = doc.getElementById(client_id);
+               var options = element.options;
+               options.length = 0;
+               var option = doc.createElement('option');
+               option.value = value;
+               option.text = text;
+       element.add(option, 0);
+               element.selectedIndex = 0;
+        element.onchange();
+               window.close();
+       }";
        return $js;
 }
 
@@ -1503,3 +1546,44 @@ function trans_editor_link($type, $trans_no)
                (is_closed_trans($type, $trans_no) ? set_icon(ICON_CLOSED, _('Closed')) :
                        pager_link(_("Edit"), sprintf($editor_url[$type], $trans_no, $type), ICON_EDIT));
 }
+
+// This script updates the browser history when
+// any of the passed variables change.
+// This way, if the user changes these variables,
+// then uses the back button to return, it returns to the page
+// as the user modified it.
+function get_js_history(...$vars)
+{
+    $js = ' 
+    function changeVar() {
+        var stateObj = { foo: "bar" };
+        var state = "";
+';
+
+    $first = true;
+    foreach ( $vars as $var ) {
+        $js .= '
+        var element = document.getElementsByName("' . $var. '");
+        if (element[0])';
+        if ($first) {
+            $first = false;
+            $js .= '
+            state += "' . basename($_SERVER['SCRIPT_NAME']) . "?";
+        } else
+            $js .= '
+            state += "&';
+        $js .= $var .'="' . ' + element[0].value;';
+    }
+
+    $js .= '
+        history.replaceState(stateObj, "page 2", state);
+    }';
+    return $js;
+}
+
+function set_posts(...$vars)
+{
+    foreach ( $vars as $var )
+        if (isset($_GET[$var]))
+            $_POST[$var] = $_GET[$var];
+}