Fine tuning of Standard themes and dashboard.
[fa-stable.git] / themes / default / renderer.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12         class renderer
13         {
14                 function get_icon($category)
15                 {
16                         global  $path_to_root, $SysPrefs;
17
18                         if ($SysPrefs->show_menu_category_icons)
19                                 $img = $category == '' ? 'right.gif' : $category.'.png';
20                         else    
21                                 $img = 'right.gif';
22                         return "<img src='$path_to_root/themes/".user_theme()."/images/$img' style='vertical-align:middle;' border='0'>&nbsp;&nbsp;";
23                 }
24
25                 function wa_header()
26                 {
27                         page(_($help_context = "Main Menu"), false, true);
28                 }
29
30                 function wa_footer()
31                 {
32                         end_page(false, true);
33                 }
34
35                 function menu_header($title, $no_menu, $is_index)
36                 {
37                         global $path_to_root, $SysPrefs, $db_connections;
38                         echo "<table class='callout_main' border='0' cellpadding='0' cellspacing='0'>\n";
39                         echo "<tr>\n";
40                         echo "<td colspan='2' rowspan='2'>\n";
41
42                         echo "<table class='main_page' border='0' cellpadding='0' cellspacing='0'>\n";
43                         echo "<tr>\n";
44                         echo "<td>\n";
45                         echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
46                         echo "<tr>\n";
47                         echo "<td class='quick_menu'>\n"; // tabs
48
49                         $indicator = "$path_to_root/themes/".user_theme(). "/images/ajax-loader.gif";
50                         if (!$no_menu)
51                         {
52                                 $applications = $_SESSION['App']->applications;
53                                 $local_path_to_root = $path_to_root;
54                                 $sel_app = $_SESSION['sel_app'];
55                                 echo "<table cellpadding='0' cellspacing='0' width='100%'><tr><td>";
56                                 echo "<div class='tabs'>";
57                                 foreach($applications as $app)
58                                 {
59                     if ($_SESSION["wa_current_user"]->check_application_access($app))
60                     {
61                         $acc = access_string($app->name);
62                         echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
63                             ."' href='$local_path_to_root/index.php?application=".$app->id
64                             ."'$acc[1]>" .$acc[0] . "</a>";
65                     }
66                                 }
67                                 echo "</div>";
68                                 echo "</td></tr></table>";
69                                 // top status bar
70                                 $rimg = "<img src='$path_to_root/themes/".user_theme()."/images/report.png' style='width:14px;height:14px;border:0;vertical-align:middle;' alt='"._('Dashboard')."'>&nbsp;&nbsp;";
71                                 $pimg = "<img src='$local_path_to_root/themes/".user_theme()."/images/preferences.gif' style='width:14px;height:14px; border:0;vertical-align:middle;' alt='"._('Preferences')."'>&nbsp;&nbsp;";
72                                 $limg = "<img src='$local_path_to_root/themes/".user_theme()."/images/lock.gif' style='width:14px;height:14px;border:0;vertical-align:middle;' alt='"._('Change Password')."'>&nbsp;&nbsp;";
73                                 $img = "<img src='$local_path_to_root/themes/".user_theme()."/images/login.gif' style='width:14px;height:14px;border:0;vertical-align:middle;' alt='"._('Logout')."'>&nbsp;&nbsp;";
74                                 $himg = "<img src='$local_path_to_root/themes/".user_theme()."/images/help.gif' style='width:14px;height:14px;border:0;vertical-align:middle;'' alt='"._('Help')."'>&nbsp;&nbsp;";
75                                 echo "<table class='logoutBar'>";
76                                 echo "<tr><td class='headingtext3'>" . $db_connections[user_company()]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "</td>";
77                                 echo "<td class='logoutBarRight'><img id='ajaxmark' src='$indicator' align='center' style='visibility:hidden;' alt='ajaxmark'></td>";
78                                 echo "<td class='logoutBarRight'><a href='$path_to_root/admin/dashboard.php?sel_app=$sel_app'>$rimg" . _("Dashboard") . "</a>&nbsp;&nbsp;&nbsp;\n";
79                                 
80                                 echo "<a class='shortcut' href='$path_to_root/admin/display_prefs.php?'>$pimg" . _("Preferences") . "</a>&nbsp;&nbsp;&nbsp;\n";
81                                 echo "  <a class='shortcut' href='$path_to_root/admin/change_current_user_password.php?selected_id=" . $_SESSION["wa_current_user"]->username . "'>$limg" . _("Change password") . "</a>&nbsp;&nbsp;&nbsp;\n";
82
83                                 if ($SysPrefs->help_base_url != null)
84                                 {
85                                         echo "<a target = '_blank' onclick=" .'"'."javascript:openWindow(this.href,this.target); return false;".'" '. "href='". help_url()."'>$himg" . _("Help") . "</a>&nbsp;&nbsp;&nbsp;";
86                                 }
87                                 echo "<a class='shortcut' href='$local_path_to_root/access/logout.php?'>$img" . _("Logout") . "</a>&nbsp;&nbsp;&nbsp;";
88                                 echo "</td></tr><tr><td colspan=3>";
89                                 echo "</td></tr></table>";
90                         }
91                         echo "</td></tr></table>";
92
93                         if ($no_menu)
94                         {       // ajax indicator for installer and popups
95                                 echo "<center><table class='tablestyle_noborder'>"
96                                         ."<tr><td><img id='ajaxmark' src='$indicator' align='center' style='visibility:hidden;' alt='ajaxmark'></td></tr>"
97                                         ."</table></center>";
98                         } elseif ($title && !$is_index)
99                         {
100                                 echo "<center><table id='title'><tr><td width='100%' class='titletext'>$title</td>"
101                                 ."<td align=right>"
102                                 .(user_hints() ? "<span id='hints'></span>" : '')
103                                 ."</td>"
104                                 ."</tr></table></center>";
105                         }
106                 }
107
108                 function menu_footer($no_menu, $is_index)
109                 {
110                         global $version, $path_to_root, $Pagehelp, $Ajax, $SysPrefs;
111
112                         include_once($path_to_root . "/includes/date_functions.inc");
113
114                         echo "</td></tr></table>\n"; // 'main_page'
115                         if ($no_menu == false) // bottom status line
116                         {
117                                 if ($is_index)
118                                         echo "<table class='bottomBar'>\n";
119                                 else
120                                         echo "<table class='bottomBar2'>\n";
121                                 echo "<tr>";
122                                 if (isset($_SESSION['wa_current_user'])) {
123                                         $phelp = implode('; ', $Pagehelp);
124                                         echo "<td class='bottomBarCell'>" . Today() . " | " . Now() . "</td>\n";
125                                         $Ajax->addUpdate(true, 'hotkeyshelp', $phelp);
126                                         echo "<td id='hotkeyshelp'>".$phelp."</td>";
127                                 }
128                                 echo "</tr></table>\n";
129                         }
130                         echo "</td></tr> </table>\n"; // 'callout_main'
131                         if ($no_menu == false)
132                         {
133                                 echo "<table align='center' id='footer'>\n";
134                                 echo "<tr>\n";
135                                 echo "<td align='center' class='footer'><a target='_blank' href='".$SysPrefs->power_url."' tabindex='-1'><font color='#ffffff'>".$SysPrefs->app_title
136                                         ." $version - " . _("Theme:") . " " . user_theme() . " - ".show_users_online()."</font></a></td>\n";
137                                 echo "</tr>\n";
138                                 echo "<tr>\n";
139                                 echo "<td align='center' class='footer'><a target='_blank' href='".$SysPrefs->power_url
140                                         ."' tabindex='-1'><font color='#ffff00'>".$SysPrefs->power_by."</font></a></td>\n";
141                                 echo "</tr>\n";
142                                 if ($SysPrefs->allow_demo_mode)
143                                 {
144                                         echo "<tr>\n";
145                                         //echo "<td><br><div align='center'><a href='http://sourceforge.net'><img src='http://sourceforge.net/sflogo.php?group_id=89967&amp;type=5' alt='SourceForge.net Logo' width='210' height='62' border='0' align='center' /></a></div></td>\n";
146                                         echo "</tr>\n";
147                                 }
148                                 echo "</table><br><br>\n";
149                         }
150                 }
151
152                 function display_applications(&$waapp)
153                 {
154                         global $path_to_root;
155
156                         $selected_app = $waapp->get_selected_application();
157                         if (!$_SESSION["wa_current_user"]->check_application_access($selected_app))
158                                 return;
159
160                         if (method_exists($selected_app, 'render_index'))
161                         {
162                                 $selected_app->render_index();
163                                 return;
164                         }
165
166                         echo "<table width='100%' cellpadding='0' cellspacing='0'>";
167                         foreach ($selected_app->modules as $module)
168                         {
169                         if (!$_SESSION["wa_current_user"]->check_module_access($module))
170                                 continue;
171                                 // image
172                                 echo "<tr>";
173                                 // values
174                                 echo "<td valign='top' class='menu_group'>";
175                                 echo "<table border=0 width='100%'>";
176                                 echo "<tr><td class='menu_group'>";
177                                 echo $module->name;
178                                 echo "</td></tr><tr>";
179                                 echo "<td class='menu_group_items'>";
180
181                                 foreach ($module->lappfunctions as $appfunction)
182                                 {
183                                         $img = $this->get_icon($appfunction->category);
184                                         if ($appfunction->label == "")
185                                                 echo "&nbsp;<br>";
186                                         elseif ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) 
187                                         {
188                                                         echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
189                                         }
190                                         elseif (!$_SESSION["wa_current_user"]->hide_inaccessible_menu_items())
191                                         {
192                                                         echo $img.'<span class="inactive">'
193                                                                 .access_string($appfunction->label, true)
194                                                                 ."</span><br>\n";
195                                         }
196                                 }
197                                 echo "</td>";
198                                 if (sizeof($module->rappfunctions) > 0)
199                                 {
200                                         echo "<td width='50%' class='menu_group_items'>";
201                                         foreach ($module->rappfunctions as $appfunction)
202                                         {
203                                                 $img = $this->get_icon($appfunction->category);
204                                                 if ($appfunction->label == "")
205                                                         echo "&nbsp;<br>";
206                                                 elseif ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) 
207                                                 {
208                                                                 echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
209                                                 }
210                                                 elseif (!$_SESSION["wa_current_user"]->hide_inaccessible_menu_items())
211                                                 {
212                                                                 echo $img.'<span class="inactive">'
213                                                                         .access_string($appfunction->label, true)
214                                                                         ."</span><br>\n";
215                                                 }
216                                         }
217                                         echo "</td>";
218                                 }
219
220                                 echo "</tr></table></td></tr>";
221                         }
222                         echo "</table>";
223                 }
224         }