[MERGE] crashmanager openerp entreprise bth/rlo/chs

bzr revid: al@openerp.com-20111227155915-4s3fmuqzce9733il
This commit is contained in:
Antony Lesuisse 2011-12-27 16:59:15 +01:00
commit c59ad9cc1d
7 changed files with 129 additions and 49 deletions

View File

@ -45,6 +45,12 @@ class OpenERPSession(object):
del state['config']
return state
def openerp_entreprise(self):
if not self._uid:
return False
else:
return self.model('publisher_warranty.contract').status()['status'] == 'full'
def build_connection(self):
conn = openerplib.Connection(self.config.connector, database=self._db, login=self._login,
user_id=self._uid, password=self._password)

View File

@ -365,6 +365,17 @@ class Database(openerpweb.Controller):
class Session(openerpweb.Controller):
_cp_path = "/web/session"
@openerpweb.jsonrequest
def get_session_info(self, req):
return {
"session_id": req.session_id,
"uid": req.session._uid,
"context": req.session.get_context() if req.session._uid else {},
"db": req.session._db,
"login": req.session._login,
"openerp_entreprise": req.session.openerp_entreprise(),
}
@openerpweb.jsonrequest
def authenticate(self, req, db, login, password, base_location=None):
wsgienv = req.httprequest.environ
@ -376,24 +387,8 @@ class Session(openerpweb.Controller):
user_agent="%s / %s" % (release.name, release.version),
)
req.session.authenticate(db, login, password, env)
ctx = req.session.get_context() if req.session._uid else {}
return {
"session_id": req.session_id,
"uid": req.session._uid,
"context": ctx,
"db": req.session._db,
"login": req.session._login
}
@openerpweb.jsonrequest
def get_session_info(self, req):
return {
"uid": req.session._uid,
"context": req.session.get_context() if req.session._uid else False,
"db": req.session._db,
"login": req.session._login
}
return self.get_session_info(req)
@openerpweb.jsonrequest
def change_password (self,req,fields):

View File

@ -1888,6 +1888,25 @@ ul.oe-arrow-list li.oe-arrow-list-selected .oe-arrow-list-after {
display: block;
}
/* Dialog traceback cases */
.openerp .oe_error_detail{
display: block;
}
.openerp .oe_error_send{
display:block;
}
.openerp .oe_fielddiv{
display:inline-block;
width:100%;
}
.openerp .oe_fielddiv input[type=text],textarea{
width:100%;
}
/* for Alignment center */
.openerp .oe_centeralign{
text-align:center;
}
.openerp .oe_applications_tiles {
color: #4C4C4C;
text-shadow: #EEE 0 1px 0;

View File

@ -167,7 +167,7 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({
}
},
on_managed_error: function(error) {
$('<div>' + QWeb.render('DialogWarning', {error: error}) + '</div>').dialog({
$('<div>' + QWeb.render('CrashManagerWarning', {error: error}) + '</div>').dialog({
title: "OpenERP " + _.str.capitalize(error.type),
buttons: [
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
@ -175,15 +175,42 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({
});
},
on_traceback: function(error) {
var self = this;
var buttons = {};
if (openerp.connection.openerp_entreprise) {
buttons[_t("Send OpenERP Enterprise Report")] = function() {
$this = $(this);
var issuename = $('#issuename').val();
var explanation = $('#explanation').val();
var remark = $('#remark').val();
// Call the send method from server to send mail with details
new openerp.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('send', [error.data,explanation,remark,issuename]).then(function(result){
if (result === false) {
alert('There was a communication error.')
} else {
$this.dialog('close');
}
});
};
buttons[_t("Dont send")] = function() {
$(this).dialog("close");
};
} else {
buttons[_t("Ok")] = function() {
$(this).dialog("close");
};
}
var dialog = new openerp.web.Dialog(this, {
title: "OpenERP " + _.str.capitalize(error.type),
title: "OpenERP " + _.str.capitalize(this.error.type),
autoOpen: true,
buttons: [
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
]
width: '80%',
height: '50%',
min_width: '800px',
min_height: '600px',
buttons: buttons
}).start();
dialog.$element.html(QWeb.render('DialogTraceback', {error: error}));
}
dialog.$element.html(QWeb.render('CrashManagerError', {session: openerp.connection, error: error}));
},
});
openerp.web.Loading = openerp.web.Widget.extend(/** @lends openerp.web.Loading# */{
@ -1084,6 +1111,10 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie
self.action_manager = new openerp.web.ActionManager(self);
self.action_manager.appendTo($("#oe_app"));
self.bind_hashchange();
if (!self.session.openerp_entreprise) {
self.$element.find('.oe_footer_powered').append('<span> - <a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank">Unsupported/Community Version</a></span>');
$('title').html('OpenERP - Usupported/Community Version');
}
});
},
do_reload: function() {

View File

@ -373,6 +373,7 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
this.username = false;
this.user_context= {};
this.db = false;
this.openerp_entreprise = false;
this.module_list = [];
this.module_loaded = {"web": true};
this.context = {};
@ -549,7 +550,8 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
db: result.db,
username: result.login,
uid: result.uid,
user_context: result.context
user_context: result.context,
openerp_entreprise: result.openerp_entreprise
});
var deferred = self.do_load_qweb(['/web/webclient/qweb']);
if(self.session_is_valid()) {
@ -574,7 +576,8 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
db: result.db,
username: result.login,
uid: result.uid,
user_context: result.context
user_context: result.context,
openerp_entreprise: result.openerp_entreprise
});
if (!volatile) {
self.set_cookie('session_id', self.session_id);

View File

@ -247,6 +247,54 @@
</form>
</t>
<t t-name="CrashManagerWarning">
<table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
<tr>
<td><img t-att-src='_s + "/web/static/src/img/warning.png"' class="oe-dialog-icon"/></td>
<td>
<p>
<t t-js="d">
var message = d.message ? d.message : d.error.data.fault_code;
d.html_error = context.engine.tools.html_escape(message)
.replace(/\n/g, '<br/>');
</t>
<t t-raw="html_error"/>
</p>
</td>
</tr>
</table>
</t>
<t t-name="CrashManagerError">
<t t-if="!session.openerp_entreprise">
<span>Your version of OpenERP is unsupported. Support &amp; maintenance services are available here: <a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank">OpenERP Entreprise</a>.</span>
</t>
<t t-if="session.openerp_entreprise">
<div class="oe_error_send">
<div>
<div class="oe_centeralign"><b>OpenERP Enterprise Contract.</b></div>
<div><br/>Your report will be sent to the OpenERP Enterprise team.<br/></div><br/>
<div>
<label>Summary:</label><br/>
<input id="issuename" type="text" class="oe_fielddiv"/>
</div><br/><br/>
<div>
<label>Description:</label><br/>
<textarea id="explanation" rows="6"></textarea>
</div><br/><br/>
<div>
<label>What you did:</label><br/>
<textarea id="remark" rows="6" ></textarea>
</div>
</div>
</div><br/>
</t>
<div class="oe_error_detail">
<pre><t t-esc="error.message"/></pre>
<hr/>
<pre><t t-esc="error.data.debug"/></pre>
</div>
</t>
<t t-name="Login_dblist">
<select name="db">
<t t-foreach="db_list" t-as="db">
@ -1327,28 +1375,6 @@
</t>
</select>
</t>
<t t-name="DialogWarning">
<table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
<tr>
<td><img t-att-src='_s + "/web/static/src/img/warning.png"' class="oe-dialog-icon"/></td>
<td>
<p>
<t t-js="d">
var message = d.message ? d.message : d.error.data.fault_code;
d.html_error = context.engine.tools.html_escape(message)
.replace(/\n/g, '<br/>');
</t>
<t t-raw="html_error"/>
</p>
</td>
</tr>
</table>
</t>
<t t-name="DialogTraceback">
<pre><t t-esc="error.message"/></pre>
<hr/>
<pre><t t-esc="error.data.debug"/></pre>
</t>
<t t-name="SelectCreatePopup">
<div t-att-id="element_id">
<table style="width:100%">

View File

@ -34,7 +34,7 @@
</a>
<a class="cta-a" target="_blank" href="http://www.openerp.com/services/subscribe-onsite">
<span>
<strong>Support / Publisher Warranty</strong>
<strong>Support / OpenERP Enterprise</strong>
Get the OpenERP Warranty
</span>
</a>