databasemanager cleanups
bzr revid: al@openerp.com-20120408224201-jpafsl49k1d01q3q
This commit is contained in:
parent
07202a9761
commit
8ea5590e2c
|
@ -245,7 +245,6 @@
|
|||
}
|
||||
.openerp2 .oe_login {
|
||||
background: url("/web/static/src/img/pattern.png") repeat;
|
||||
color: #eeeeee;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
height: 100%;
|
||||
|
@ -254,10 +253,6 @@
|
|||
list-style-type: none;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
.openerp2 .oe_login a {
|
||||
color: #eeeeee;
|
||||
text-decoration: none;
|
||||
}
|
||||
.openerp2 .oe_login button {
|
||||
float: right;
|
||||
display: inline-block;
|
||||
|
@ -340,6 +335,7 @@
|
|||
background: #1e1e1e;
|
||||
background: rgba(30, 30, 30, 0.94);
|
||||
padding: 22px 32px;
|
||||
color: #eeeeee;
|
||||
text-align: left;
|
||||
-moz-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
|
@ -368,6 +364,7 @@
|
|||
text-align: center;
|
||||
}
|
||||
.openerp2 .oe_login .oe_login_footer a {
|
||||
color: #eeeeee;
|
||||
margin: 0 8px;
|
||||
}
|
||||
.openerp2 .oe_login .oe_login_footer a:hover {
|
||||
|
@ -398,6 +395,9 @@
|
|||
color: black;
|
||||
text-align: left;
|
||||
}
|
||||
.openerp2 .oe_database_manager .oe_database_manager_menu {
|
||||
color: black;
|
||||
}
|
||||
.openerp2 .oe_notification {
|
||||
z-index: 1050;
|
||||
}
|
||||
|
|
|
@ -219,16 +219,12 @@ $colour4: #8a89ba
|
|||
// Login {{{
|
||||
.oe_login
|
||||
background: url("/web/static/src/img/pattern.png") repeat
|
||||
color: #eee
|
||||
text-align: center
|
||||
font-size: 14px
|
||||
height: 100%
|
||||
li
|
||||
list-style-type: none
|
||||
padding-bottom: 4px
|
||||
a
|
||||
color: #eee
|
||||
text-decoration: none
|
||||
button
|
||||
float: right
|
||||
display: inline-block
|
||||
|
@ -282,6 +278,7 @@ $colour4: #8a89ba
|
|||
background: #1e1e1e
|
||||
background: rgba(30,30,30,0.94)
|
||||
padding: 22px 32px
|
||||
color: #eee
|
||||
text-align: left
|
||||
@include radius(8px)
|
||||
@include box-shadow(0 0 18px rgba(0, 0, 0, 0.9))
|
||||
|
@ -302,6 +299,7 @@ $colour4: #8a89ba
|
|||
width: 100%
|
||||
text-align: center
|
||||
a
|
||||
color: #eee
|
||||
margin: 0 8px
|
||||
&:hover
|
||||
text-decoration: underline
|
||||
|
@ -326,6 +324,7 @@ $colour4: #8a89ba
|
|||
color: #000
|
||||
text-align: left
|
||||
.oe_database_manager_menu
|
||||
color: #000
|
||||
// }}}
|
||||
// {{{ Notification
|
||||
.oe_notification
|
||||
|
|
|
@ -258,7 +258,6 @@ openerp.web.Loading = openerp.web.Widget.extend({
|
|||
});
|
||||
|
||||
openerp.web.DatabaseManager = openerp.web.Widget.extend({
|
||||
template: "DatabaseManager",
|
||||
init: function(parent) {
|
||||
this._super(parent);
|
||||
this.unblockUIFunction = $.unblockUI;
|
||||
|
@ -267,30 +266,42 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({
|
|||
}, _t("Invalid database name"));
|
||||
},
|
||||
start: function() {
|
||||
this.$option_id = $("#oe_db_options");
|
||||
|
||||
var self = this;
|
||||
var fetch_db = this.rpc("/web/database/get_list", {}).pipe(
|
||||
function(result) { self.db_list = result.db_list; },
|
||||
function (_, ev) { ev.preventDefault(); self.db_list = null; });
|
||||
var fetch_langs = this.rpc("/web/session/get_lang_list", {}, function(result) {
|
||||
if (result.error) {
|
||||
self.display_error(result);
|
||||
return;
|
||||
}
|
||||
function(result) {
|
||||
self.db_list = result.db_list;
|
||||
},
|
||||
function (_, ev) {
|
||||
ev.preventDefault();
|
||||
self.db_list = null;
|
||||
});
|
||||
var fetch_langs = this.rpc("/web/session/get_lang_list", {}).then(function(result) {
|
||||
self.lang_list = result.lang_list;
|
||||
});
|
||||
$.when(fetch_db, fetch_langs).then(function () {self.do_create();});
|
||||
|
||||
this.$element.find('#db-create').click(this.do_create);
|
||||
this.$element.find('#db-drop').click(this.do_drop);
|
||||
this.$element.find('#db-backup').click(this.do_backup);
|
||||
this.$element.find('#db-restore').click(this.do_restore);
|
||||
this.$element.find('#db-change-password').click(this.do_change_password);
|
||||
this.$element.find('#back-to-login').click(this.do_exit);
|
||||
return $.when(fetch_db, fetch_langs).then(self.do_render);
|
||||
},
|
||||
do_render: function() {
|
||||
var self = this;
|
||||
self.$element.html(QWeb.render("DatabaseManager", { widget : self }));
|
||||
self.$element.find(".oe_database_manager_menu").tabs();
|
||||
self.$element.find("form[name=create_db_form]").validate({ submitHandler: self.do_create });
|
||||
self.$element.find("form[name=drop_db_form]").validate({ submitHandler: self.do_drop });
|
||||
self.$element.find("form[name=backup_db_form]").validate({ submitHandler: self.do_backup });
|
||||
self.$element.find("form[name=restore_db_form]").validate({ submitHandler: self.do_restore });
|
||||
self.$element.find("form[name=change_pwd_form]").validate({
|
||||
messages: {
|
||||
old_pwd: "Please enter your previous password",
|
||||
new_pwd: "Please enter your new password",
|
||||
confirm_pwd: {
|
||||
required: "Please confirm your new password",
|
||||
equalTo: "The confirmation does not match the password"
|
||||
}
|
||||
},
|
||||
submitHandler: self.do_change_password
|
||||
});
|
||||
self.$element.find("#back_to_login").click(self.do_exit);
|
||||
},
|
||||
destroy: function () {
|
||||
this.$option_id.empty();
|
||||
this.$element.find('#db-create, #db-drop, #db-backup, #db-restore, #db-change-password, #back-to-login').unbind('click').end().empty();
|
||||
this._super();
|
||||
},
|
||||
|
@ -340,143 +351,89 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({
|
|||
]
|
||||
}).html(error.error);
|
||||
},
|
||||
do_create: function() {
|
||||
do_create: function(form) {
|
||||
var self = this;
|
||||
self.$option_id.html(QWeb.render("Database.CreateDB", self));
|
||||
self.$option_id.find("form[name=create_db_form]").validate({
|
||||
submitHandler: function (form) {
|
||||
var fields = $(form).serializeArray();
|
||||
self.rpc("/web/database/create", {'fields': fields}, function(result) {
|
||||
if (self.db_list) {
|
||||
self.db_list.push(self.to_object(fields)['db_name']);
|
||||
self.db_list.sort();
|
||||
self.getParent().set_db_list(self.db_list);
|
||||
}
|
||||
var fields = $(form).serializeArray();
|
||||
self.rpc("/web/database/create", {'fields': fields}, function(result) {
|
||||
var form_obj = self.to_object(fields);
|
||||
self.getParent().do_login( form_obj['db_name'], 'admin', form_obj['create_admin_pwd']);
|
||||
self.destroy();
|
||||
});
|
||||
|
||||
var form_obj = self.to_object(fields);
|
||||
self.getParent().do_login(
|
||||
form_obj['db_name'],
|
||||
'admin',
|
||||
form_obj['create_admin_pwd']);
|
||||
self.destroy();
|
||||
});
|
||||
},
|
||||
do_drop: function(form) {
|
||||
var self = this;
|
||||
var $form = $(form),
|
||||
fields = $form.serializeArray(),
|
||||
$db_list = $form.find('[name=drop_db]'),
|
||||
db = $db_list.val();
|
||||
if (!db || !confirm("Do you really want to delete the database: " + db + " ?")) {
|
||||
return;
|
||||
}
|
||||
self.rpc("/web/database/drop", {'fields': fields}, function(result) {
|
||||
if (result.error) {
|
||||
self.display_error(result);
|
||||
return;
|
||||
}
|
||||
self.do_notify("Dropping database", "The database '" + db + "' has been dropped");
|
||||
self.start();
|
||||
});
|
||||
},
|
||||
do_backup: function(form) {
|
||||
var self = this;
|
||||
self.blockUI();
|
||||
self.session.get_file({
|
||||
form: form,
|
||||
success: function () {
|
||||
self.do_notify(_t("Backed"), _t("Database backed up successfully"));
|
||||
},
|
||||
error: openerp.webclient.crashmanager.on_rpc_error,
|
||||
complete: function() {
|
||||
self.unblockUI();
|
||||
}
|
||||
});
|
||||
},
|
||||
do_drop: function() {
|
||||
do_restore: function(form) {
|
||||
var self = this;
|
||||
self.$option_id.html(QWeb.render("Database.DropDB", self));
|
||||
self.$option_id.find("form[name=drop_db_form]").validate({
|
||||
submitHandler: function (form) {
|
||||
var $form = $(form),
|
||||
fields = $form.serializeArray(),
|
||||
$db_list = $form.find('[name=drop_db]'),
|
||||
db = $db_list.val();
|
||||
self.blockUI();
|
||||
$(form).ajaxSubmit({
|
||||
url: '/web/database/restore',
|
||||
type: 'POST',
|
||||
resetForm: true,
|
||||
success: function (body) {
|
||||
// If empty body, everything went fine
|
||||
if (!body) { return; }
|
||||
|
||||
if (!db || !confirm("Do you really want to delete the database: " + db + " ?")) {
|
||||
return;
|
||||
}
|
||||
self.rpc("/web/database/drop", {'fields': fields}, function(result) {
|
||||
if (result.error) {
|
||||
self.display_error(result);
|
||||
return;
|
||||
}
|
||||
$db_list.find(':selected').remove();
|
||||
if (self.db_list) {
|
||||
self.db_list.splice(_.indexOf(self.db_list, db, true), 1);
|
||||
self.getParent().set_db_list(self.db_list);
|
||||
}
|
||||
self.do_notify("Dropping database", "The database '" + db + "' has been dropped");
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
do_backup: function() {
|
||||
var self = this;
|
||||
self.$option_id
|
||||
.html(QWeb.render("Database.BackupDB", self))
|
||||
.find("form[name=backup_db_form]").validate({
|
||||
submitHandler: function (form) {
|
||||
self.blockUI();
|
||||
self.session.get_file({
|
||||
form: form,
|
||||
success: function () {
|
||||
self.do_notify(_t("Backed"),
|
||||
_t("Database backed up successfully"));
|
||||
},
|
||||
error: openerp.webclient.crashmanager.on_rpc_error,
|
||||
complete: function() {
|
||||
self.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
do_restore: function() {
|
||||
var self = this;
|
||||
self.$option_id.html(QWeb.render("Database.RestoreDB", self));
|
||||
|
||||
self.$option_id.find("form[name=restore_db_form]").validate({
|
||||
submitHandler: function (form) {
|
||||
self.blockUI();
|
||||
$(form).ajaxSubmit({
|
||||
url: '/web/database/restore',
|
||||
type: 'POST',
|
||||
resetForm: true,
|
||||
success: function (body) {
|
||||
// TODO: ui manipulations
|
||||
// note: response objects don't work, but we have the
|
||||
// HTTP body of the response~~
|
||||
|
||||
// If empty body, everything went fine
|
||||
if (!body) { return; }
|
||||
|
||||
if (body.indexOf('403 Forbidden') !== -1) {
|
||||
self.display_error({
|
||||
title: 'Access Denied',
|
||||
error: 'Incorrect super-administrator password'
|
||||
})
|
||||
} else {
|
||||
self.display_error({
|
||||
title: 'Restore Database',
|
||||
error: 'Could not restore the database'
|
||||
})
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
self.unblockUI();
|
||||
self.do_notify(_t("Restored"), _t("Database restored successfully"));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
do_change_password: function() {
|
||||
var self = this;
|
||||
self.$option_id.html(QWeb.render("Database.Change_DB_Pwd", self));
|
||||
|
||||
self.$option_id.find("form[name=change_pwd_form]").validate({
|
||||
messages: {
|
||||
old_pwd: "Please enter your previous password",
|
||||
new_pwd: "Please enter your new password",
|
||||
confirm_pwd: {
|
||||
required: "Please confirm your new password",
|
||||
equalTo: "The confirmation does not match the password"
|
||||
if (body.indexOf('403 Forbidden') !== -1) {
|
||||
self.display_error({
|
||||
title: 'Access Denied',
|
||||
error: 'Incorrect super-administrator password'
|
||||
})
|
||||
} else {
|
||||
self.display_error({
|
||||
title: 'Restore Database',
|
||||
error: 'Could not restore the database'
|
||||
})
|
||||
}
|
||||
},
|
||||
submitHandler: function (form) {
|
||||
self.rpc("/web/database/change_password", {
|
||||
'fields': $(form).serializeArray()
|
||||
}, function(result) {
|
||||
if (result.error) {
|
||||
self.display_error(result);
|
||||
return;
|
||||
}
|
||||
self.do_notify("Changed Password", "Password has been changed successfully");
|
||||
});
|
||||
complete: function() {
|
||||
self.unblockUI();
|
||||
self.do_notify(_t("Restored"), _t("Database restored successfully"));
|
||||
}
|
||||
});
|
||||
},
|
||||
do_change_password: function(form) {
|
||||
var self = this;
|
||||
self.rpc("/web/database/change_password", {
|
||||
'fields': $(form).serializeArray()
|
||||
}, function(result) {
|
||||
if (result.error) {
|
||||
self.display_error(result);
|
||||
return;
|
||||
}
|
||||
self.do_notify("Changed Password", "Password has been changed successfully");
|
||||
});
|
||||
},
|
||||
do_exit: function () {
|
||||
}
|
||||
});
|
||||
|
@ -512,9 +469,13 @@ openerp.web.Login = openerp.web.Widget.extend({
|
|||
self.databasemanager.destroy();
|
||||
self.$element.find('.oe_login_bottom').show();
|
||||
self.$element.find('.oe_login_pane').show();
|
||||
self.load_db_list();
|
||||
})
|
||||
});
|
||||
|
||||
self.load_db_list();
|
||||
},
|
||||
load_db_list: function () {
|
||||
var self = this;
|
||||
self.rpc("/web/database/get_list", {}, function(result) {
|
||||
self.set_db_list(result.db_list);
|
||||
}, function(error, event) {
|
||||
|
@ -524,9 +485,7 @@ openerp.web.Login = openerp.web.Widget.extend({
|
|||
});
|
||||
},
|
||||
set_db_list: function (list) {
|
||||
this.$element.find("[name=db]").replaceWith(
|
||||
openerp.web.qweb.render('Login.dblist', {
|
||||
db_list: list, selected_db: this.selected_db}))
|
||||
this.$element.find("[name=db]").replaceWith(openerp.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db}))
|
||||
},
|
||||
on_submit: function(ev) {
|
||||
if(ev) {
|
||||
|
|
|
@ -118,191 +118,151 @@
|
|||
<div class="oe_database_manager">
|
||||
<div class="oe_database_manager_menu">
|
||||
<ul class="oe_form_notebook">
|
||||
<li id="db-create">Create</li>
|
||||
<li id="db-drop">Drop</li>
|
||||
<li id="db-backup">Backup</li>
|
||||
<li id="db-restore">Restore</li>
|
||||
<li id="db-change-password">Password</li>
|
||||
<li id="back-to-login">Back to Login</li>
|
||||
<li><a href="#db_create">Create</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>
|
||||
<li><a href="#db_change_password">Password</a></li>
|
||||
<li><a id="back_to_login" href="#">Back to Login</a></li>
|
||||
</ul>
|
||||
<form id="db_create" name="create_db_form" class="oe_forms" method="POST">
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<th colspan="2" class="option_string"> CREATE DATABASE </th>
|
||||
</tr>
|
||||
<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_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>
|
||||
<tr>
|
||||
<td><label for="demo_data">Load Demonstration data:</label></td>
|
||||
<td><input type="checkbox" name="demo_data"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="db_lang">Default language:</label></td>
|
||||
<td>
|
||||
<select name="db_lang" t-if="widget.lang_list">
|
||||
<t t-foreach="widget.lang_list" t-as="lang">
|
||||
<option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined"><t t-esc="lang[1]"/></option>
|
||||
</t>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="create_admin_pwd">Admin password:</label></td>
|
||||
<td><input type="password" name="create_admin_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="create_confirm_pwd">Confirm password:</label></td>
|
||||
<td><input type="password" name="create_confirm_pwd" class="required" equalTo="input[name=create_admin_pwd]"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Create</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<form id="db_drop" name="drop_db_form" class="oe_forms" method="POST">
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<th colspan="2" class="option_string"> DROP DATABASE </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="drop_db">Database:</label></td>
|
||||
<td>
|
||||
<select t-if="widget.db_list" name="drop_db" autofocus="autofocus">
|
||||
<t t-foreach="widget.db_list" t-as="db">
|
||||
<option t-att-value="db"><t t-esc="db"/></option>
|
||||
</t>
|
||||
</select>
|
||||
<input t-if="!widget.db_list" name="drop_db" class="required" type="text" autofocus="autofocus"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="drop_password">Master Password:</label></td>
|
||||
<td><input type="password" name="drop_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Drop</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<form id="db_backup" name="backup_db_form" class="oe_forms" method="POST" target="backup-target" action="/web/database/backup">
|
||||
<input type="hidden" name="token"/>
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<th colspan="2" class="option_string"> BACKUP DATABASE </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="backup_db">Database:</label></td>
|
||||
<td>
|
||||
<select t-if="widget.db_list" name="backup_db" autofocus="autofocus">
|
||||
<t t-foreach="widget.db_list" t-as="db">
|
||||
<option t-att-value="db"><t t-esc="db"/></option>
|
||||
</t>
|
||||
</select>
|
||||
<input t-if="!widget.db_list" name="backup_db" class="required" type="text" autofocus="autofocus"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="backup_pwd">Master Password:</label></td>
|
||||
<td><input type="password" name="backup_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Backup</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<form id="db_restore" name="restore_db_form" class="oe_forms" method="POST">
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<th colspan="2" class="option_string"> RESTORE DATABASE </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="restore_db">File:</label></td>
|
||||
<td><input type="file" name="db_file" class="required" autofocus="autofocus"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="restore_pwd">Master Password:</label></td>
|
||||
<td><input type="password" name="restore_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_db">New database name:</label></td>
|
||||
<td><input type="text" name="new_db" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Restore</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<form id="db_change_password" name="change_pwd_form" class="oe_forms" method="POST">
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<th colspan="2" class="option_string"> CHANGE MASTER PASSWORD </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="old_pwd">Master password:</label></td>
|
||||
<td><input type="password" name="old_pwd" class="required" minlength="1" autofocus="autofocus"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_pwd">New master password:</label></td>
|
||||
<td><input type="password" name="new_pwd" class="required" minlength="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="confirm_pwd">Confirm new master password:</label></td>
|
||||
<td><input type="password" name="confirm_pwd" class="required" equalTo="input[name=new_pwd]" minlength="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Change Password</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div id="oe_db_options" class="oe_db_options"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="Database.CreateDB">
|
||||
<form name="create_db_form" class="oe_forms" method="POST">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="option_string">
|
||||
CREATE DATABASE
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<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_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>
|
||||
<tr>
|
||||
<td><label for="demo_data">Load Demonstration data:</label></td>
|
||||
<td><input type="checkbox" name="demo_data"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="db_lang">Default language:</label></td>
|
||||
<td>
|
||||
<select name="db_lang" t-if="lang_list">
|
||||
<t t-foreach="lang_list" t-as="lang">
|
||||
<option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined"><t t-esc="lang[1]"/></option>
|
||||
</t>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="create_admin_pwd">Admin password:</label></td>
|
||||
<td><input type="password" name="create_admin_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="create_confirm_pwd">Confirm password:</label></td>
|
||||
<td><input type="password" name="create_confirm_pwd" class="required"
|
||||
equalTo="input[name=create_admin_pwd]"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Create</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="Database.DropDB">
|
||||
<form name="drop_db_form" class="oe_forms" method="POST">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="option_string">
|
||||
DROP DATABASE
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<td><label for="drop_db">Database:</label></td>
|
||||
<td>
|
||||
<select t-if="db_list" name="drop_db" autofocus="autofocus">
|
||||
<t t-foreach="db_list" t-as="db">
|
||||
<option t-att-value="db"><t t-esc="db"/></option>
|
||||
</t>
|
||||
</select>
|
||||
<input t-if="!db_list" name="drop_db" class="required"
|
||||
type="text" autofocus="autofocus"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="drop_password">Master Password:</label></td>
|
||||
<td><input type="password" name="drop_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Drop</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="Database.BackupDB">
|
||||
<form name="backup_db_form" class="oe_forms" method="POST" target="backup-target"
|
||||
action="/web/database/backup">
|
||||
<input type="hidden" name="token"/>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="option_string">
|
||||
BACKUP DATABASE
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<td><label for="backup_db">Database:</label></td>
|
||||
<td>
|
||||
<select t-if="db_list" name="backup_db" autofocus="autofocus">
|
||||
<t t-foreach="db_list" t-as="db">
|
||||
<option t-att-value="db"><t t-esc="db"/></option>
|
||||
</t>
|
||||
</select>
|
||||
<input t-if="!db_list" name="backup_db" class="required"
|
||||
type="text" autofocus="autofocus"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="backup_pwd">Master Password:</label></td>
|
||||
<td><input type="password" name="backup_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Backup</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="Database.RestoreDB">
|
||||
<form name="restore_db_form" class="oe_forms" method="POST">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="option_string">
|
||||
RESTORE DATABASE
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<td><label for="restore_db">File:</label></td>
|
||||
<td><input type="file" name="db_file" class="required"
|
||||
autofocus="autofocus"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="restore_pwd">Master Password:</label></td>
|
||||
<td><input type="password" name="restore_pwd" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_db">New database name:</label></td>
|
||||
<td><input type="text" name="new_db" class="required"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Restore</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="Database.Change_DB_Pwd">
|
||||
<form name="change_pwd_form" class="oe_forms" method="POST">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="option_string">
|
||||
CHANGE MASTER PASSWORD
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align="center" class="db_option_table">
|
||||
<tr>
|
||||
<td><label for="old_pwd">Master password:</label></td>
|
||||
<td><input type="password" name="old_pwd" class="required"
|
||||
minlength="1" autofocus="autofocus"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_pwd">New master password:</label></td>
|
||||
<td><input type="password" name="new_pwd" class="required"
|
||||
minlength="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="confirm_pwd">Confirm new master password:</label></td>
|
||||
<td><input type="password" name="confirm_pwd" class="required"
|
||||
equalTo="input[name=new_pwd]" minlength="1"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><button class="oe_button">Change Password</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</t>
|
||||
|
||||
<t t-name="WebClient">
|
||||
<table class="oe_webclient">
|
||||
|
|
Loading…
Reference in New Issue