Feature 5388: Print Invoices (documents) list gets too long. Fixed by default 180...
[fa-stable.git] / admin / inst_theme.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 $page_security = 'SA_CREATEMODULES';
13 $path_to_root="..";
14 include_once($path_to_root . "/includes/session.inc");
15
16 include_once($path_to_root."/includes/packages.inc");
17 include_once($path_to_root . "/admin/db/maintenance_db.inc");
18 include_once($path_to_root . "/includes/ui.inc");
19
20 if ($SysPrefs->use_popup_windows) {
21         $js = get_js_open_window(900, 500);
22 }
23 page(_($help_context = "Install Themes"), false, false, '', $js);
24
25 //---------------------------------------------------------------------------------------------
26
27 if (($id = find_submit('Delete', false)) && isset($installed_extensions[$id])
28         && clean_user_themes($installed_extensions[$id]['package']))
29 {
30         $extensions = get_company_extensions();
31         $theme = $extensions[$id]['package'];
32         $path = $extensions[$id]['path'];
33
34         if (uninstall_package($theme)) {
35                 $dirname = $path_to_root.'/'.$path;
36                 flush_dir($dirname, true);
37                 rmdir($dirname);
38                 unset($extensions[$id]);
39                 if (update_extensions($extensions)) {
40                         display_notification(_("Selected theme has been successfully deleted"));
41                         meta_forward($_SERVER['PHP_SELF']);
42                 }
43         }
44 }
45
46 if ($id = find_submit('Update', false))
47         install_extension($id);
48
49 //---------------------------------------------------------------------------------------------
50 start_form(true);
51
52         div_start('ext_tbl');
53         start_table(TABLESTYLE);
54
55         $th = array(_("Theme"),  _("Installed"), _("Available"), "", "");
56         $k = 0;
57
58         $mods = get_themes_list();
59
60         if (!$mods)
61                 display_note(_("No optional theme is currently available."));
62         else
63         {
64                 table_header($th);
65
66                 foreach($mods as $pkg_name => $ext)
67                 {
68                         $available = @$ext['available'];
69                         $installed = @$ext['version'];
70                         $id = @$ext['local_id'];
71
72                         alt_table_row_color($k);
73
74                         label_cell($available ? get_package_view_str($pkg_name, $ext['name']) : $ext['name']);
75
76                         label_cell($id === null ? _("None") :
77                                 ($available && $installed ? $installed : _("Unknown")));
78                         label_cell($available ? $available : _("None"));
79
80                         if ($available && check_pkg_upgrade($installed, $available)) // outdated or not installed theme in repo
81                                 button_cell('Update'.$pkg_name, $installed ? _("Update") : _("Install"),
82                                         _('Upload and install latest extension package'), ICON_DOWN, 'process');
83                         else
84                                 label_cell('');
85
86                         if ($id !== null) {
87                                 delete_button_cell('Delete'.$id, _('Delete'));
88                                 submit_js_confirm('Delete'.$id, 
89                                         sprintf(_("You are about to remove package \'%s\'.\nDo you want to continue ?"), 
90                                                 $ext['name']));
91                         } else
92                                 label_cell('');
93
94                         end_row();
95                 }
96
97                 end_table(1);
98         }
99         div_end();
100
101 //---------------------------------------------------------------------------------------------
102 end_form();
103
104 end_page();