Helpers for js confirmation dialog before data entry is abandoned.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sat, 6 Nov 2010 19:28:22 +0000 (19:28 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sat, 6 Nov 2010 19:28:22 +0000 (19:28 +0000)
includes/ui/ui_controls.inc
js/inserts.js
themes/aqua/renderer.php
themes/cool/renderer.php
themes/default/renderer.php

index a6fd2ef6f1e4d36757940b2227334a294b5edd6c..f2e76d1bd0928676d0a6aa18a96a0c20e3d0e286 100644 (file)
@@ -56,6 +56,7 @@ function end_form($breaks=0)
        if ($breaks)
                br($breaks);
        echo "<input type=\"hidden\" name=\"_focus\" value=\"".get_post('_focus')."\">\n";
+       echo "<input type=\"hidden\" name=\"_modified\" value=\"".get_post('_modified', 0)."\">\n";
        echo "</form>\n";
 }
 
@@ -561,6 +562,35 @@ function confirm_dialog($submit, $msg) {
                return 0;
        } else
                return get_post('DialogConfirm', 0);
-}      
+}
+
+/*
+       Block menu/shortcut links during transaction procesing.
+*/
+function page_processing($msg = false)
+{
+       global $Ajax;
+
+       if ($msg === true)
+               $msg = _('Entered data has not been saved yet.\nDo you want to abandon changes?');
+
+       $js = "_validate._processing=" . (
+               $msg ? '\''.strtr($msg, array("\n"=>'\\n')) . '\';' : 'null;');
+       if (in_ajax()) {
+               $Ajax->addScript(true, $js);
+       } else
+               add_js_source($js);
+}
+
+function page_modified($status = true)
+{
+       global $Ajax;
+
+       $js = "_validate._modified=" . ($status ? 1:0).';';
+       if (in_ajax()) {
+               $Ajax->addScript(true, $js);
+       } else
+               add_js_source($js);
+}
 
 ?>
\ No newline at end of file
index a1e1e5eae85bd094ec304767a78496cf7a32fc56..45f4534606158efb0a2d2fbbedd23b37853647d5 100644 (file)
@@ -323,6 +323,19 @@ var inserts = {
                                        return false;
                        }
                }
+               // prevent unneeded transaction entry abortion
+               if (e.className == 'shortcut' 
+                || e.className == 'menu_option' 
+                || e.className == 'menu_tab'
+                || e.className == 'selected')
+                       e.onclick = function(ev) {
+                               if (_validate._processing 
+                                && _validate._modified
+                                && !confirm(_validate._processing)) {
+                                       ev.returnValue = false;
+                                       return false;
+                               }
+                       }
        },
        'ul.ajaxtabs':  function(ul) {
            var ulist=ul.getElementsByTagName("li");
index 300f90f330b82151915052ec253ae3335b0f27d0..8ee81f2dfa25cef7657b4f096d9bd981c0870976 100644 (file)
@@ -46,8 +46,8 @@
                                foreach($applications as $app)
                                {
                                        $acc = access_string($app->name);
-                                       echo "<a ".($sel_app == $app->id ? "class='selected' " : "").
-                                       "href='$local_path_to_root/index.php?application=".$app->id
+                                       echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
+                                               ."' href='$local_path_to_root/index.php?application=".$app->id
                                                ."'$acc[1]>" .$acc[0] . "</a>";
                                }
                                echo "</div>";
                                echo "<tr><td class=headingtext3>" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "</td>";
                                $indicator = "$path_to_root/themes/".user_theme(). "/images/ajax-loader.gif";
                                echo "<td class='logoutBarRight'><img id='ajaxmark' src='$indicator' align='center' style='visibility:hidden;'></td>";
-                               echo "  <td class='logoutBarRight'><a href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
-                               echo "  <a href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
+                               echo "  <td class='logoutBarRight'><a class='shortcut' href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
+                               echo "  <a class='shortcut' href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
 
                                if ($help_base_url != null)
                                {
                                        echo "$himg<a target = '_blank' onclick=" .'"'."javascript:openWindow(this.href,this.target); return false;".'" '. "href='". help_url()."'>" . _("Help") . "</a>&nbsp;&nbsp;&nbsp;";
                                }
-                               echo "$img<a href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
+                               echo "$img<a class='shortcut' href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
                                echo "</td></tr></table>";
                        }
                        echo "</td></tr></table>";
index e5ec015b11ab6c9686da21232e6bbc02a5f86593..9bf46c95fc02cf736960d8cc1ae16b38e3313981 100644 (file)
@@ -46,8 +46,8 @@
                                foreach($applications as $app)
                                {
                                        $acc = access_string($app->name);
-                                       echo "<a ".($sel_app == $app->id ? "class='selected' " : "").
-                                       "href='$local_path_to_root/index.php?application=".$app->id
+                                       echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
+                                               ."' href='$local_path_to_root/index.php?application=".$app->id
                                                ."'$acc[1]>" .$acc[0] . "</a>";
                                }
                                echo "</div>";
                                echo "<tr><td class=headingtext3>" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "</td>";
                                $indicator = "$path_to_root/themes/".user_theme(). "/images/ajax-loader.gif";
                                echo "<td class='logoutBarRight'><img id='ajaxmark' src='$indicator' align='center' style='visibility:hidden;'></td>";
-                               echo "  <td class='logoutBarRight'><a href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
-                               echo "  <a href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
+                               echo "  <td class='logoutBarRight'><a class='shortcut' href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
+                               echo "  <a class='shortcut' href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
 
                                if ($help_base_url != null)
                                {
                                        echo "$himg<a target = '_blank' onclick=" .'"'."javascript:openWindow(this.href,this.target); return false;".'" '. "href='". help_url()."'>" . _("Help") . "</a>&nbsp;&nbsp;&nbsp;";
                                }
-                               echo "$img<a href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
+                               echo "$img<a class='shortcut' href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
                                echo "</td></tr></table>";
                        }
                        echo "</td></tr></table>";
index aaee7125ccff889b85c497fae961ef5b99e534f3..03a56f2448ddc4127245b8872201a598d3fee088 100644 (file)
@@ -47,9 +47,8 @@
                                foreach($applications as $app)
                                {
                                        $acc = access_string($app->name);
-                                       echo "<a ".($sel_app == $app->id ? 
-                                               ("class='selected'") : "")
-                                               ." href='$local_path_to_root/index.php?application=".$app->id
+                                       echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
+                                               ."' href='$local_path_to_root/index.php?application=".$app->id
                                                ."'$acc[1]>" .$acc[0] . "</a>";
                                }
                                echo "</div>";
                                echo "<tr><td class=headingtext3>" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "</td>";
                                $indicator = "$path_to_root/themes/".user_theme(). "/images/ajax-loader.gif";
                                echo "<td class='logoutBarRight'><img id='ajaxmark' src='$indicator' align='center' style='visibility:hidden;'></td>";
-                               echo "  <td class='logoutBarRight'><a href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
-                               echo "  <a href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
+                               echo "  <td class='logoutBarRight'><a class='shortcut' href='$path_to_root/admin/display_prefs.php?'>" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
+                               echo "  <a class='shortcut' href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
 
                                if ($help_base_url != null)
                                {
                                        echo "$himg<a target = '_blank' onclick=" .'"'."javascript:openWindow(this.href,this.target); return false;".'" '. "href='". help_url()."'>" . _("Help") . "</a>&nbsp;&nbsp;&nbsp;";
                                }
-                               echo "$img<a href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
+                               echo "$img<a class='shortcut' href='$local_path_to_root/access/logout.php?'>" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
                                echo "</td></tr><tr><td colspan=3>";
                                echo "</td></tr></table>";
                        }