[IMP] database management: added `duplicate` operation.
bzr revid: vmt@openerp.com-20121019101259-f32m2wlf6xugk2vi
This commit is contained in:
parent
080994c31c
commit
83a0a252b9
|
@ -816,6 +816,17 @@ class Database(openerpweb.Controller):
|
|||
|
||||
return req.session.proxy("db").create_database(*create_attrs)
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def duplicate(self, req, fields):
|
||||
params = dict(map(operator.itemgetter('name', 'value'), fields))
|
||||
duplicate_attrs = (
|
||||
params['super_admin_pwd'],
|
||||
params['db_original_name'],
|
||||
params['db_name'],
|
||||
)
|
||||
|
||||
return req.session.proxy("db").duplicate_database(*duplicate_attrs)
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def drop(self, req, fields):
|
||||
password, db = operator.itemgetter(
|
||||
|
|
|
@ -326,6 +326,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
|||
self.$el.find("tr td:first-child").addClass("oe_form_group_cell_label");
|
||||
self.$el.find("label").addClass("oe_form_label");
|
||||
self.$el.find("form[name=create_db_form]").validate({ submitHandler: self.do_create });
|
||||
self.$el.find("form[name=duplicate_db_form]").validate({ submitHandler: self.do_duplicate });
|
||||
self.$el.find("form[name=drop_db_form]").validate({ submitHandler: self.do_drop });
|
||||
self.$el.find("form[name=backup_db_form]").validate({ submitHandler: self.do_backup });
|
||||
self.$el.find("form[name=restore_db_form]").validate({ submitHandler: self.do_restore });
|
||||
|
@ -411,6 +412,18 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
|||
self.do_action(client_action);
|
||||
});
|
||||
},
|
||||
do_duplicate: function(form) {
|
||||
var self = this;
|
||||
var fields = $(form).serializeArray();
|
||||
self.rpc("/web/database/duplicate", {'fields': fields}).then(function(result) {
|
||||
if (result.error) {
|
||||
self.display_error(result);
|
||||
return;
|
||||
}
|
||||
self.do_notify("Duplicating database", "The database has been duplicated.");
|
||||
self.start();
|
||||
});
|
||||
},
|
||||
do_drop: function(form) {
|
||||
var self = this;
|
||||
var $form = $(form),
|
||||
|
|
|
@ -152,6 +152,32 @@
|
|||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<form id="db_duplicate" name="duplicate_db_form" style="display: none;">
|
||||
<div class="oe_view_manager oe_view_manager_current">
|
||||
<div class="oe_view_manager_header" style="padding: 8px;">
|
||||
<div class="oe_header_row">
|
||||
<h2 class="oe_view_title">
|
||||
<span class="oe_view_title_text oe_breadcrumb_title">Duplicate Database</span>
|
||||
</h2>
|
||||
<button type="submit" class="oe_button oe_highlight db_duplicate">Duplicate</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<td><label for="super_admin_pwd">Master password:</label></td>
|
||||
<td><input type="password" name="super_admin_pwd" class="required" value="admin" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="db_original_name">Original database name:</label></td>
|
||||
<td><input type="text" name="db_original_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" autofocus="true"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="db_name">New database name:</label></td>
|
||||
<td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<form id="db_drop" name="drop_db_form" style="display: none; ">
|
||||
<div class="oe_view_manager oe_view_manager_current">
|
||||
<div class="oe_view_manager_header" style="padding: 8px;">
|
||||
|
@ -279,6 +305,7 @@
|
|||
<div class="oe_secondary_menu_section">Database Management</div>
|
||||
<ul class="oe_secondary_submenu">
|
||||
<li><a href="#db_create">Create</a></li>
|
||||
<li><a href="#db_duplicate">Duplicate</a></li>
|
||||
<li><a href="#db_drop">Drop</a></li>
|
||||
<li><a href="#db_backup">Backup</a></li>
|
||||
<li><a href="#db_restore">Restore</a></li>
|
||||
|
|
Loading…
Reference in New Issue