[imp] lot of improvements to header & about page
bzr revid: nicolas.vanhoren@openerp.com-20110906095054-qjlpmyd83spjm79b
This commit is contained in:
commit
f7544bb989
|
@ -11,6 +11,7 @@ import simplejson
|
|||
import textwrap
|
||||
import xmlrpclib
|
||||
import time
|
||||
import webrelease
|
||||
from xml.etree import ElementTree
|
||||
from cStringIO import StringIO
|
||||
|
||||
|
@ -100,9 +101,6 @@ home_template = textwrap.dedent("""<!DOCTYPE html>
|
|||
<title>OpenERP</title>
|
||||
<link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
|
||||
%(css)s
|
||||
<!--[if lte IE 7]>
|
||||
<link rel="stylesheet" href="/web/static/src/css/web-ie7.css" type="text/css"/>
|
||||
<![endif]-->
|
||||
%(javascript)s
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
@ -196,6 +194,12 @@ class WebClient(openerpweb.Controller):
|
|||
return {"modules": transs,
|
||||
"lang_parameters": lang_obj}
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def version_info(self, req):
|
||||
return {
|
||||
"version": webrelease.version
|
||||
}
|
||||
|
||||
class Database(openerpweb.Controller):
|
||||
_cp_path = "/web/database"
|
||||
|
||||
|
@ -704,6 +708,12 @@ class DataSet(openerpweb.Controller):
|
|||
if context_id and len(args) - 1 >= context_id:
|
||||
args[context_id] = c
|
||||
|
||||
for i in xrange(len(args)):
|
||||
if isinstance(args[i], web.common.nonliterals.BaseContext):
|
||||
args[i] = req.session.eval_context(args[i])
|
||||
if isinstance(args[i], web.common.nonliterals.BaseDomain):
|
||||
args[i] = req.session.eval_domain(args[i])
|
||||
|
||||
return getattr(req.session.model(model), method)(*args)
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
.openerp .menu span {
|
||||
min-width: 0;
|
||||
}
|
|
@ -409,7 +409,7 @@ label.error {
|
|||
float: left;
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
padding: 4px 0;
|
||||
padding: 4px 10px;
|
||||
text-shadow: 0 1px 0 #111111;
|
||||
}
|
||||
.openerp .header_title small {
|
||||
|
@ -1244,7 +1244,7 @@ label.error {
|
|||
position: absolute;
|
||||
|
||||
margin: 0;
|
||||
padding: 6px 5px;
|
||||
padding: 6px 15px;
|
||||
top: 37px;
|
||||
left: 197px;
|
||||
right: 0;
|
||||
|
|
|
@ -438,9 +438,9 @@ openerp.web.Login = openerp.web.Widget.extend({
|
|||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
this.selected_db = localStorage.getItem('last_db_login_success');
|
||||
this.selected_login = localStorage.getItem('last_login_login_success');
|
||||
}
|
||||
if (jQuery.deparam(jQuery.param.querystring()).debug != undefined) {
|
||||
this.selected_password = this.selected_password || "a";
|
||||
this.selected_password = localStorage.getItem('last_password_login_success');
|
||||
}
|
||||
}
|
||||
},
|
||||
start: function() {
|
||||
|
@ -495,9 +495,13 @@ openerp.web.Login = openerp.web.Widget.extend({
|
|||
if(self.remember_creditentials) {
|
||||
localStorage.setItem('last_db_login_success', db);
|
||||
localStorage.setItem('last_login_login_success', login);
|
||||
if (jQuery.deparam(jQuery.param.querystring()).debug != undefined) {
|
||||
localStorage.setItem('last_password_login_success', password);
|
||||
}
|
||||
} else {
|
||||
localStorage.setItem('last_db_login_success', '');
|
||||
localStorage.setItem('last_login_login_success', '');
|
||||
localStorage.setItem('last_password_login_success', '');
|
||||
}
|
||||
}
|
||||
self.on_login_valid();
|
||||
|
@ -514,7 +518,7 @@ openerp.web.Login = openerp.web.Widget.extend({
|
|||
this.on_login_valid.add({
|
||||
position: "last",
|
||||
unique: true,
|
||||
callback: continuation
|
||||
callback: continuation || function() {}
|
||||
});
|
||||
},
|
||||
on_logout: function() {
|
||||
|
@ -534,11 +538,24 @@ openerp.web.Header = openerp.web.Widget.extend({
|
|||
this._super();
|
||||
},
|
||||
do_update: function () {
|
||||
this.$content = $(QWeb.render("Header-content", {widget: this}));
|
||||
this.$content.appendTo(this.$element);
|
||||
this.$element.find(".logout").click(this.on_logout);
|
||||
this.$element.find("a.preferences").click(this.on_preferences);
|
||||
return this.shortcut_load();
|
||||
var self = this;
|
||||
var func = new openerp.web.Model(self.session, "res.users").get_func("read");
|
||||
func(self.session.uid, ["name", "company_id"]).then(function(res) {
|
||||
self.$content = $(QWeb.render("Header-content", {widget: self, user: res}));
|
||||
self.$content.appendTo(self.$element);
|
||||
self.$element.find(".logout").click(self.on_logout);
|
||||
self.$element.find("a.preferences").click(self.on_preferences);
|
||||
self.$element.find(".about").click(self.on_about);
|
||||
self.shortcut_load();
|
||||
});
|
||||
},
|
||||
on_about: function() {
|
||||
var self = this;
|
||||
self.rpc("/web/webclient/version_info", {}).then(function(res) {
|
||||
var $help = $(QWeb.render("About-Page", {version_info: res}));
|
||||
$help.dialog({autoOpen: true,
|
||||
modal: true, width: 960, title: "About"});
|
||||
});
|
||||
},
|
||||
do_reset: function() {
|
||||
this.$content.remove();
|
||||
|
|
|
@ -346,7 +346,6 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web
|
|||
this.context = {};
|
||||
this.shortcuts = [];
|
||||
this.active_id = null;
|
||||
this.session = this;
|
||||
},
|
||||
start: function() {
|
||||
this.session_restore();
|
||||
|
@ -471,9 +470,8 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web
|
|||
self.user_context = result.context;
|
||||
self.session_save();
|
||||
self.on_session_valid();
|
||||
if (success_callback)
|
||||
success_callback();
|
||||
});
|
||||
return true;
|
||||
}).then(success_callback);
|
||||
},
|
||||
session_logout: function() {
|
||||
this.uid = false;
|
||||
|
@ -489,7 +487,10 @@ openerp.web.Session = openerp.web.CallbackEnabled.extend( /** @lends openerp.web
|
|||
this.user_context = this.get_cookie("user_context");
|
||||
// we should do an rpc to confirm that this session_id is valid and if it is retrieve the information about db and login
|
||||
// then call on_session_valid
|
||||
if (this.uid)
|
||||
this.on_session_valid();
|
||||
else
|
||||
this.on_session_invalid();
|
||||
},
|
||||
/**
|
||||
* Saves the session id and uid locally
|
||||
|
|
|
@ -737,6 +737,50 @@ openerp.web.ReadOnlyDataSetSearch = openerp.web.DataSetSearch.extend({
|
|||
on_unlink: function(ids) {}
|
||||
});
|
||||
|
||||
openerp.web.Model = openerp.web.SessionAware.extend({
|
||||
init: function(session, model_name) {
|
||||
this._super(session);
|
||||
this.model_name = model_name;
|
||||
},
|
||||
get_func: function(method_name) {
|
||||
var self = this;
|
||||
return function() {
|
||||
if (method_name == "search_read")
|
||||
return self._search_read.apply(self, arguments);
|
||||
return self._call(method_name, _.toArray(arguments));
|
||||
};
|
||||
},
|
||||
_call: function (method, args) {
|
||||
return this.rpc('/web/dataset/call', {
|
||||
model: this.model_name,
|
||||
method: method,
|
||||
args: args
|
||||
}).pipe(function(result) {
|
||||
if (method == "read" && result instanceof Array && result.length > 0 && result[0]["id"]) {
|
||||
var index = {};
|
||||
_.each(_.range(result.length), function(i) {
|
||||
index[result[i]["id"]] = result[i];
|
||||
})
|
||||
result = _.map(args[0], function(x) {return index[x];});
|
||||
}
|
||||
return result;
|
||||
});
|
||||
},
|
||||
_search_read: function(domain, fields, offset, limit, order, context) {
|
||||
return this.rpc('/web/dataset/search_read', {
|
||||
model: this.model_name,
|
||||
fields: fields,
|
||||
offset: offset,
|
||||
limit: limit,
|
||||
domain: domain,
|
||||
sort: order,
|
||||
context: context
|
||||
}).pipe(function(result) {
|
||||
return result.records;
|
||||
});;
|
||||
}
|
||||
});
|
||||
|
||||
openerp.web.CompoundContext = openerp.web.Class.extend({
|
||||
init: function () {
|
||||
this.__ref = "compound_context";
|
||||
|
|
|
@ -334,26 +334,30 @@
|
|||
</t>
|
||||
<t t-name="Header-content">
|
||||
<h1 class="header_title">
|
||||
<span class="database"><t t-esc="widget.session.db"/></span> - <t t-esc="widget.session.login"/> <br/>
|
||||
<small class="username">rpc_session_id: <t t-esc="widget.session.session_id"/></small>
|
||||
<t t-esc="user.company_id[1]"/> (<t t-esc="widget.session.db"/>)<br/>
|
||||
<small class="username"><t t-esc="user.name"/></small>
|
||||
</h1>
|
||||
<div class="header_corner">
|
||||
<ul class="block">
|
||||
<li>
|
||||
<a href="#home" title="Home" class="home"><img src="/web/static/src/img/header-home.png" width="16" height="16" border="0"/></a>
|
||||
<a t-att-href="'/' + widget.qs" title="Home" class="home"><img src="/web/static/src/img/header-home.png" width="16" height="16" border="0"/></a>
|
||||
</li>
|
||||
<!--
|
||||
<li>
|
||||
<a href="#requests" title="Requests" class="requests"><img src="/web/static/src/img/header-requests.png" width="16" height="16" border="0"/><small>1</small></a>
|
||||
</li>
|
||||
-->
|
||||
<li class="preferences">
|
||||
<a href="#preferences" title="Preferences" class="preferences"><img src="/web/static/src/img/header-preferences.png" width="16" height="16" border="0"/></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#about" title="About" class="about"><img src="/web/static/src/img/header-about.png" width="16" height="16" border="0"/></a>
|
||||
</li>
|
||||
<!--
|
||||
<li>
|
||||
<a href="http://doc.openerp.com/v6.0/book?version=$version" title="Help" target="_blank" class="help"><img src="/web/static/src/img/header-help.png" width="16" height="16" border="0"/></a>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
<div class="block">
|
||||
<a href="#logout" class="logout">LOGOUT</a>
|
||||
|
@ -1354,4 +1358,34 @@
|
|||
</table>
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="About-Page">
|
||||
<div>
|
||||
<h1>OpenERP Web</h1>
|
||||
<h3 style="padding:0 5px 5px">Version <t t-esc="version_info.version"/></h3>
|
||||
<p>
|
||||
Copyright © 2011-TODAY OpenERP SA. All Rights Reserved.<br />
|
||||
OpenERP is a trademark of the <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP SA Company</a>.
|
||||
</p>
|
||||
<p>
|
||||
Licenced under the terms of <a target="_blank" href="http://www.gnu.org/licenses/agpl.html" style="text-decoration: underline;">GNU Affero General Public License</a>
|
||||
</p>
|
||||
<br />
|
||||
<h1>About OpenERP</h1>
|
||||
<p>
|
||||
<a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP</a> is a free enterprise-scale software system that is designed to boost
|
||||
productivity and profit through data integration. It connects, improves and
|
||||
manages business processes in areas such as sales, finance, supply chain,
|
||||
project management, production, services, CRM, etc...
|
||||
</p>
|
||||
<p>
|
||||
The system is platform-independent, and can be installed on Windows, Mac OS X,
|
||||
and various Linux and other Unix-based distributions. Its architecture enables
|
||||
new functionality to be rapidly created, modifications to be made to a
|
||||
production system and migration to a new version to be straightforward.
|
||||
</p>
|
||||
<p>
|
||||
Depending on your needs, OpenERP is available through a web or application client.
|
||||
</p>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
|
|
11
setup.py
11
setup.py
|
@ -4,16 +4,7 @@ import re
|
|||
import sys
|
||||
from setuptools import setup
|
||||
|
||||
name = 'openerp-web-proto'
|
||||
version = '6.0.1'
|
||||
description = "Web Client of OpenERP, the Enterprise Management Software"
|
||||
long_description = "OpenERP Web is the web client of the OpenERP, a free enterprise management software"
|
||||
author = "OpenERP S.A."
|
||||
author_email = "info@openerp.com"
|
||||
support_email = 'support@openerp.com'
|
||||
url = "http://www.openerp.com/"
|
||||
download_url = ''
|
||||
license = "OEPL"
|
||||
execfile('webrelease.py')
|
||||
|
||||
version_dash_incompatible = False
|
||||
if 'bdist_rpm' in sys.argv:
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
name = 'openerp-web-proto'
|
||||
version = '6.1.0 alpha'
|
||||
description = "Web Client of OpenERP, the Enterprise Management Software"
|
||||
long_description = "OpenERP Web is the web client of the OpenERP, a free enterprise management software"
|
||||
author = "OpenERP S.A."
|
||||
author_email = "info@openerp.com"
|
||||
support_email = 'support@openerp.com'
|
||||
url = "http://www.openerp.com/"
|
||||
download_url = ''
|
||||
license = "OEPL"
|
Loading…
Reference in New Issue