Commit 3e5c67c6 authored by Frank Bergmann's avatar Frank Bergmann

- added backup/restore to CVS

parent 5c6c39c6
Pipeline #1066 failed with stages
......@@ -61,7 +61,7 @@ if {![file isdirectory $path]} {
append page_body "<ul>\n"
ns_log Notice "backup-2: $sql"
db_foreach foreach_report $sql {
append page_body "<li>Exporting $view_name ..."
append page_body "<li>Exporting $view_name ... to path '$path'"
ns_log Notice "backup-2: im_backup_report $view_id"
set report [im_backup_report $view_id]
......
# /packages/intranet-core/www/admin/backup.tcl
ad_page_contract {
Changes all clients, users, prices etc to allow
to convert a productive system into a demo.
} {
{ path "/tmp/" }
{ return_url "" }
}
set user_id [ad_maybe_redirect_for_registration]
set page_title "Backup"
set context_bar [ad_context_bar $page_title]
set page_body "<H1>$page_title</H1>"
set today [db_string today "select to_char(sysdate, 'YYYY-MM-DD') from dual"]
set user_admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
if {!$user_admin_p} {
ad_return_complaint 1 "<li>You have insufficient privileges to see this page"
return
}
set sql "
select
v.*
from
im_views v
where
view_id >= 100
and view_id < 200
"
# Prepare the path for the export
#
if {![file isdirectory $path]} {
if { [catch {
ns_log Notice "/bin/mkdir $path"
exec /bin/mkdir "$path"
} err_msg] } {
ad_return_complaint 1 "Error creating subfolder $path:<br><pre>$err_msg\m</pre>"
return
}
}
append path "$today/"
if {![file isdirectory $path]} {
if { [catch {
ns_log Notice "/bin/mkdir $path"
exec /bin/mkdir "$path"
} err_msg] } {
ad_return_complaint 1 "Error creating subfolder $path:<br><pre>$err_msg\m</pre>"
return
}
}
append page_body "<ul>\n"
db_foreach foreach_report $sql {
append page_body "<li>Exporting $view_name ..."
set report [im_backup_report $view_id]
if { [catch {
ns_log Notice "/intranet/admin/backup/backup: writing report to $path"
set stream_name "$path$view_name.csv"
set stream [open $stream_name w]
puts $stream $report
close $stream
} err_msg] } {
ad_return_complaint 1 "Error writing report to file $stream_name:<br><pre>$err_msg\m</pre>"
return
}
}
append page_body "
</ul>
Successfully finished
"
if {"" != $return_url} {
ad_return_redirect $return_url
} else {
doc_return 200 text/html [im_return_template]
}
......@@ -4,7 +4,6 @@ ad_page_contract {
Changes all clients, users, prices etc to allow
to convert a productive system into a demo.
} {
{ path "/tmp/" }
{ return_url "" }
}
......@@ -12,9 +11,13 @@ ad_page_contract {
set user_id [ad_maybe_redirect_for_registration]
set page_title "Backup"
set context_bar [ad_context_bar $page_title]
set context ""
set page_body "<H1>$page_title</H1>"
set today [db_string today "select to_char(sysdate, 'YYYY-MM-DD') from dual"]
set bgcolor(0) " class=rowodd"
set bgcolor(1) " class=roweven"
set user_admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
if {!$user_admin_p} {
ad_return_complaint 1 "<li>You have insufficient privileges to see this page"
......@@ -28,62 +31,23 @@ select
from
im_views v
where
view_id >= 100
and view_id < 200
v.view_id >= 100
and v.view_id <= 200
order by
v.view_id
"
# Prepare the path for the export
#
if {![file isdirectory $path]} {
if { [catch {
ns_log Notice "/bin/mkdir $path"
exec /bin/mkdir "$path"
} err_msg] } {
ad_return_complaint 1 "Error creating subfolder $path:<br><pre>$err_msg\m</pre>"
return
}
}
append path "$today/"
if {![file isdirectory $path]} {
if { [catch {
ns_log Notice "/bin/mkdir $path"
exec /bin/mkdir "$path"
} err_msg] } {
ad_return_complaint 1 "Error creating subfolder $path:<br><pre>$err_msg\m</pre>"
return
}
}
append page_body "<ul>\n"
set object_list_html ""
set ctr 0
db_foreach foreach_report $sql {
append page_body "<li>Exporting $view_name ..."
set report [im_backup_report $view_id]
if { [catch {
ns_log Notice "/intranet/admin/backup/backup: writing report to $path"
set stream_name "$path$view_name.csv"
set stream [open $stream_name w]
puts $stream $report
close $stream
} err_msg] } {
ad_return_complaint 1 "Error writing report to file $stream_name:<br><pre>$err_msg\m</pre>"
return
}
append object_list_html "
<tr $bgcolor([expr $ctr % 2])>
<td>$view_id</td>
<td>$view_name</td>
<td>
<input type=checkbox name=view.$view_id>
</td>
</tr>
"
incr ctr
}
append page_body "
</ul>
Successfully finished
"
if {"" != $return_url} {
ad_return_redirect $return_url
} else {
doc_return 200 text/html [im_return_template]
}
......@@ -4,7 +4,6 @@ ad_page_contract {
Changes all clients, users, prices etc to allow
to convert a productive system into a demo.
} {
path
view:array
{ return_url "index" }
}
......@@ -15,6 +14,7 @@ set context_bar [ad_context_bar $page_title]
set context ""
set page_body "<H1>$page_title</H1>"
set today [db_string today "select to_char(sysdate, 'YYYY-MM-DD.HH-mm') from dual"]
set path [im_backup_path]
set user_admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
if {!$user_admin_p} {
......
......@@ -3,7 +3,6 @@
<property name="title">#intranet-core.Menu_Restore#</property>
<form action="restore-2" method=POST>
<%= [export_form_vars path] %>
<table cellpadding=1 cellspacing=1 border=0>
<tr class=rowtitle>
......
# /packages/intranet-core/www/admin/restore.tcl
ad_page_contract {
Go through all know backup "reports" and try to
load the corresponding backup file from the
specified directory.
} {
{ path "/tmp" }
{ return_url "" }
}
set user_id [ad_maybe_redirect_for_registration]
set page_title "Restore"
set context_bar [ad_context_bar $page_title]
set page_body "<H1>$page_title</H1>"
set user_admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
if {!$user_admin_p} {
ad_return_complaint 1 "<li>You have insufficient privileges to see this page"
return
}
set page_body "<ul>\n"
#append page_body [im_import_categories "$path/im_categories.csv"]
#append page_body [im_import_users "$path/im_users.csv"]
#append page_body [im_import_profiles "$path/im_profiles.csv"]
#append page_body [im_import_offices "$path/im_offices.csv"]
#append page_body [im_import_customers "$path/im_customers.csv"]
#append page_body [im_import_projects "$path/im_projects.csv"]
#append page_body [im_import_office_members "$path/im_office_members.csv"]
#append page_body [im_import_customer_members "$path/im_customer_members.csv"]
#append page_body [im_import_project_members "$path/im_project_members.csv"]
#append page_body [im_import_freelancers "$path/im_freelancers.csv"]
#append page_body [im_import_freelance_skills "$path/im_freelance_skills.csv"]
#append page_body [im_import_hours "$path/im_hours.csv"]
#append page_body [im_import_trans_project_details "$path/im_trans_project_details.csv"]
#append page_body [im_import_trans_tasks "$path/im_trans_tasks.csv"]
#append page_body [im_import_invoices "$path/im_invoices.csv"]
#append page_body [im_import_invoice_items "$path/im_invoice_items.csv"]
#append page_body [im_import_payments "$path/im_payments.csv"]
#append page_body [im_import_prices "$path/im_trans_prices.csv"]
append page_body "
<li>
<p>Finished</p>
"
doc_return 200 text/html [im_return_template]
......@@ -5,7 +5,7 @@ ad_page_contract {
load the corresponding backup file from the
specified directory.
} {
{ path "/tmp" }
path
{ return_url "" }
}
......@@ -13,41 +13,63 @@ ad_page_contract {
set user_id [ad_maybe_redirect_for_registration]
set page_title "Restore"
set context_bar [ad_context_bar $page_title]
set context ""
set page_body "<H1>$page_title</H1>"
set bgcolor(0) " class=rowodd"
set bgcolor(1) " class=roweven"
set user_admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
if {!$user_admin_p} {
ad_return_complaint 1 "<li>You have insufficient privileges to see this page"
return
}
set page_body "<ul>\n"
#append page_body [im_import_categories "$path/im_categories.csv"]
#append page_body [im_import_users "$path/im_users.csv"]
#append page_body [im_import_profiles "$path/im_profiles.csv"]
#append page_body [im_import_offices "$path/im_offices.csv"]
#append page_body [im_import_customers "$path/im_customers.csv"]
#append page_body [im_import_projects "$path/im_projects.csv"]
#append page_body [im_import_office_members "$path/im_office_members.csv"]
#append page_body [im_import_customer_members "$path/im_customer_members.csv"]
#append page_body [im_import_project_members "$path/im_project_members.csv"]
#append page_body [im_import_freelancers "$path/im_freelancers.csv"]
#append page_body [im_import_freelance_skills "$path/im_freelance_skills.csv"]
#append page_body [im_import_hours "$path/im_hours.csv"]
#append page_body [im_import_trans_project_details "$path/im_trans_project_details.csv"]
#append page_body [im_import_trans_tasks "$path/im_trans_tasks.csv"]
#append page_body [im_import_invoices "$path/im_invoices.csv"]
#append page_body [im_import_invoice_items "$path/im_invoice_items.csv"]
#append page_body [im_import_payments "$path/im_payments.csv"]
#append page_body [im_import_prices "$path/im_trans_prices.csv"]
append page_body "
<li>
<p>Finished</p>
# get the list of all backups of business objects i
# in the backup set
#
set file_list [exec /usr/bin/find $path -type f]
foreach line $file_list {
set files [split $line "/"]
set last_file_idx [expr [llength $files] - 1]
set file [lindex $files $last_file_idx]
regexp {([^\.]*)\.[^\.]} $file ttt file_body
set existant_files($file_body) $file_body
}
set sql "
select
v.*
from
im_views v
where
v.view_type_id = [im_dynview_type_backup]
"
doc_return 200 text/html [im_return_template]
set object_list_html ""
set ctr 0
db_foreach foreach_report $sql {
append object_list_html "
<tr $bgcolor([expr $ctr % 2])>
<td>$view_id</td>
<td>$view_name</td>
"
if {[info exists existant_files($view_name)]} {
append object_list_html "
<td>
<input type=checkbox name=view.$view_id checked>
</td>
"
} else {
append object_list_html "
<td>
</td>
"
}
append object_list_html "</tr>\n"
incr ctr
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment