@@ -160,7 +160,7 @@ function onShow() {
160160
161161 //* Get the data
162162 $ server_ids = array ();
163- $ web = $ app ->db ->queryOneRecord ("SELECT server_id FROM web_domain WHERE domain_id = ? " , $ this ->form ->id );
163+ $ web = $ app ->db ->queryOneRecord ("SELECT server_id, backup_format_web, backup_format_db, backup_password, backup_encrypt FROM web_domain WHERE domain_id = ? " , $ this ->form ->id );
164164 $ databases = $ app ->db ->queryAllRecords ("SELECT server_id FROM web_database WHERE parent_domain_id = ? " , $ this ->form ->id );
165165 if ($ app ->functions ->intval ($ web ['server_id ' ]) > 0 ) $ server_ids [] = $ app ->functions ->intval ($ web ['server_id ' ]);
166166 if (is_array ($ databases ) && !empty ($ databases )){
@@ -181,8 +181,33 @@ function onShow() {
181181 $ rec ["bgcolor " ] = $ bgcolor ;
182182
183183 $ rec ['date ' ] = date ($ app ->lng ('conf_format_datetime ' ), $ rec ['tstamp ' ]);
184+
184185 $ backup_format = $ rec ['backup_format ' ];
185- if (empty ($ backup_format )) {
186+ $ backup_mode = $ rec ['backup_mode ' ];
187+ if ($ backup_mode === 'borg ' ) {
188+ // Get backup format from domain config
189+ switch ($ rec ['backup_type ' ]) {
190+ case 'mysql ' :
191+ $ backup_format = $ web ['backup_format_db ' ];
192+ if (empty ($ backup_format ) || $ backup_format == 'default ' ) {
193+ $ backup_format = self ::getDefaultBackupFormat ('rootgz ' , 'mysql ' );
194+ }
195+ $ rec ['filename ' ] .= self ::getBackupDbExtension ($ backup_format );
196+ break ;
197+ case 'web ' :
198+ $ backup_format = $ web ['backup_format_web ' ];
199+ if (empty ($ backup_format ) || $ backup_format == 'default ' ) {
200+ $ backup_format = self ::getDefaultBackupFormat ($ backup_mode , 'web ' );
201+ }
202+ $ rec ['filename ' ] .= self ::getBackupWebExtension ($ backup_format );
203+ break ;
204+ default :
205+ $ app ->log ('Unsupported backup type " ' . $ rec ['backup_type ' ] . '" for backup id ' . $ rec ['backup_id ' ], LOGLEVEL_ERROR );
206+ break ;
207+ }
208+ $ rec ['backup_password ' ] = $ web ['backup_encrypt ' ] == 'y ' ? trim ($ web ['backup_password ' ]) : '' ;
209+
210+ } elseif (empty ($ backup_format )) {
186211 //We have a backup from old version of ISPConfig
187212 switch ($ rec ['backup_type ' ]) {
188213 case 'mysql ' :
@@ -210,7 +235,13 @@ function onShow() {
210235 if ($ rec ['server_id ' ] != $ web ['server_id ' ]) $ rec ['download_available ' ] = false ;
211236
212237 if ($ rec ['filesize ' ] > 0 ){
213- $ rec ['filesize ' ] = $ app ->functions ->currency_format ($ rec ['filesize ' ]/(1024 *1024 ), 'client ' ).' MB ' ;
238+ $ rec ['filesize ' ] = $ app ->functions ->currency_format ($ rec ['filesize ' ]/(1024 *1024 ), 'client ' ).' MB ' ;
239+ if ($ backup_mode === "borg " ) {
240+ $ rec ['filesize ' ] = '<a href="javascript:void(0)" data-toggle="tooltip" title=" '
241+ . $ wb ['final_size_txt ' ]
242+ . '"><strong>*</strong></a> '
243+ . $ rec ['filesize ' ];
244+ }
214245 }
215246
216247 $ records_new [] = $ rec ;
@@ -235,6 +266,73 @@ function onShow() {
235266 return $ listTpl ->grab ();
236267 }
237268
269+ /**
270+ * Returns file extension for specified backup format
271+ * @param string $format backup format
272+ * @return string|null
273+ * @author Ramil Valitov <ramilvalitov@gmail.com>
274+ */
275+ protected static function getBackupDbExtension ($ format )
276+ {
277+ $ prefix = '.sql ' ;
278+ switch ($ format ) {
279+ case 'gzip ' :
280+ return $ prefix . '.gz ' ;
281+ case 'bzip2 ' :
282+ return $ prefix . '.bz2 ' ;
283+ case 'xz ' :
284+ return $ prefix . '.xz ' ;
285+ case 'zip ' :
286+ case 'zip_bzip2 ' :
287+ return '.zip ' ;
288+ case 'rar ' :
289+ return '.rar ' ;
290+ }
291+ if (strpos ($ format , "7z_ " ) === 0 ) {
292+ return $ prefix . '.7z ' ;
293+ }
294+ return null ;
295+ }
296+
297+ /**
298+ * Returns file extension for specified backup format
299+ * @param string $format backup format
300+ * @return string|null
301+ * @author Ramil Valitov <ramilvalitov@gmail.com>
302+ */
303+ protected static function getBackupWebExtension ($ format )
304+ {
305+ switch ($ format ) {
306+ case 'tar_gzip ' :
307+ return '.tar.gz ' ;
308+ case 'tar_bzip2 ' :
309+ return '.tar.bz2 ' ;
310+ case 'tar_xz ' :
311+ return '.tar.xz ' ;
312+ case 'zip ' :
313+ case 'zip_bzip2 ' :
314+ return '.zip ' ;
315+ case 'rar ' :
316+ return '.rar ' ;
317+ }
318+ if (strpos ($ format , "tar_7z_ " ) === 0 ) {
319+ return '.tar.7z ' ;
320+ }
321+ return null ;
322+ }
323+
324+ protected static function getDefaultBackupFormat ($ backup_mode , $ backup_type )
325+ {
326+ //We have a backup from old version of ISPConfig
327+ switch ($ backup_type ) {
328+ case 'mysql ' :
329+ return 'gzip ' ;
330+ case 'web ' :
331+ return ($ backup_mode == 'userzip ' ) ? 'zip ' : 'tar_gzip ' ;
332+ }
333+ return "" ;
334+ }
335+
238336}
239337
240338?>
0 commit comments