bzr revid: cpa@tinyerp.com-20110623113546-ntmgub9uo5r6041p
This commit is contained in:
cpa-openerp
2011-06-23 17:05:46 +05:30
172 changed files with 43448 additions and 662 deletions
+74 -47
View File
@@ -98,7 +98,12 @@ class Session(openerpweb.Controller):
"session_id": req.session_id,
"uid": req.session._uid,
}
@openerpweb.jsonrequest
def sc_list(self, req):
return req.session.model('ir.ui.view_sc').get_sc(req.session._uid, "ir.ui.menu",
req.session.eval_context(req.context))
@openerpweb.jsonrequest
def get_databases_list(self, req):
proxy = req.session.proxy("db")
@@ -166,9 +171,9 @@ class Session(openerpweb.Controller):
a list of fields to group by, potentially empty (in which case
no group by should be performed)
"""
context = req.session.eval_contexts(contexts)
domain = req.session.eval_domains(domains, context)
context = req.session.eval_context(openerpweb.nonliterals.CompoundContext(*contexts))
domain = req.session.eval_domain(openerpweb.nonliterals.CompoundDomain(*(domains or [])), context)
group_by_sequence = []
for candidate in (group_by_seq or []):
ctx = req.session.eval_context(candidate, context)
@@ -179,7 +184,7 @@ class Session(openerpweb.Controller):
group_by_sequence.append(group_by)
else:
group_by_sequence.extend(group_by)
return {
'context': context,
'domain': domain,
@@ -226,8 +231,14 @@ class Session(openerpweb.Controller):
return None
return saved_actions["actions"].get(key)
def eval_context_and_domain(session, context, domain=None):
e_context = session.eval_context(context)
e_domain = session.eval_domain(domain or [], e_context)
return (e_context, e_domain)
def load_actions_from_ir_values(req, key, key2, models, meta, context):
context['bin_size'] = False # Possible upstream bug. Antony says not to loose time on this.
Values = req.session.model('ir.values')
actions = Values.get(key, key2, models, meta, context)
@@ -301,8 +312,9 @@ class Menu(openerpweb.Controller):
Menus = req.session.model('ir.ui.menu')
# menus are loaded fully unlike a regular tree view, cause there are
# less than 512 items
menu_ids = Menus.search([])
menu_items = Menus.read(menu_ids, ['name', 'sequence', 'parent_id'])
context = req.session.eval_context(req.context)
menu_ids = Menus.search([], 0, False, False, context)
menu_items = Menus.read(menu_ids, ['name', 'sequence', 'parent_id'], context)
menu_root = {'id': False, 'name': 'root', 'parent_id': [-1, '']}
menu_items.append(menu_root)
@@ -327,8 +339,8 @@ class Menu(openerpweb.Controller):
@openerpweb.jsonrequest
def action(self, req, menu_id):
actions = load_actions_from_ir_values(req,'action', 'tree_but_open',
[('ir.ui.menu', menu_id)], False, {})
[('ir.ui.menu', menu_id)], False,
req.session.eval_context(req.context))
return {"action": actions}
class DataSet(openerpweb.Controller):
@@ -336,7 +348,8 @@ class DataSet(openerpweb.Controller):
@openerpweb.jsonrequest
def fields(self, req, model):
return {'fields': req.session.model(model).fields_get()}
return {'fields': req.session.model(model).fields_get(False,
req.session.eval_context(req.context))}
@openerpweb.jsonrequest
def search_read(self, request, model, fields=False, offset=0, limit=False, domain=None, context=None, sort=None):
@@ -358,21 +371,23 @@ class DataSet(openerpweb.Controller):
:rtype: list
"""
Model = request.session.model(model)
ids = Model.search(domain or [], offset or 0, limit or False,
sort or False, request.context)
context, domain = eval_context_and_domain(request.session, request.context, domain)
ids = Model.search(domain, offset or 0, limit or False,
sort or False, context)
if fields and fields == ['id']:
# shortcut read if we only want the ids
return map(lambda id: {'id': id}, ids)
reads = Model.read(ids, fields or False, request.context)
reads = Model.read(ids, fields or False, context)
reads.sort(key=lambda obj: ids.index(obj['id']))
return reads
@openerpweb.jsonrequest
def read(self, request, model, ids, fields=False):
return self.do_search_read(request, model, ids, fields)
return self.do_search_read(request, model, ids, fields,
request.session.eval_context(request.context))
@openerpweb.jsonrequest
def get(self, request, model, ids, fields=False):
@@ -397,40 +412,48 @@ class DataSet(openerpweb.Controller):
:rtype: list
"""
Model = request.session.model(model)
records = Model.read(ids, fields, request.context)
records = Model.read(ids, fields, request.session.eval_context(request.context))
record_map = dict((record['id'], record) for record in records)
return [record_map[id] for id in ids if record_map.get(id)]
@openerpweb.jsonrequest
def load(self, req, model, id, fields):
m = req.session.model(model)
value = {}
r = m.read([id])
r = m.read([id], False, req.session.eval_context(req.context))
if r:
value = r[0]
return {'value': value}
@openerpweb.jsonrequest
def create(self, req, model, data, context={}):
def create(self, req, model, data):
m = req.session.model(model)
r = m.create(data, context)
r = m.create(data, req.session.eval_context(req.context))
return {'result': r}
@openerpweb.jsonrequest
def save(self, req, model, id, data, context={}):
def save(self, req, model, id, data):
m = req.session.model(model)
r = m.write([id], data, context)
r = m.write([id], data, req.session.eval_context(req.context))
return {'result': r}
@openerpweb.jsonrequest
def unlink(self, request, model, ids=[]):
Model = request.session.model(model)
return Model.unlink(ids)
return Model.unlink(ids, request.session.eval_context(request.context))
@openerpweb.jsonrequest
def call(self, req, model, method, args):
def call(self, req, model, method, args, domain_id=None, context_id=None):
domain = args[domain_id] if domain_id and len(args) - 1 >= domain_id else []
context = args[context_id] if context_id and len(args) - 1 >= context_id else {}
c, d = eval_context_and_domain(req.session, context, domain);
if(domain_id and len(args) - 1 >= domain_id):
args[domain_id] = d
if(context_id and len(args) - 1 >= context_id):
args[context_id] = c
m = req.session.model(model)
r = getattr(m, method)(*args)
return {'result': r}
@@ -441,15 +464,9 @@ class DataSet(openerpweb.Controller):
return {'result': r}
@openerpweb.jsonrequest
def default_get(self, req, model, fields, context={}):
def default_get(self, req, model, fields):
m = req.session.model(model)
r = m.default_get(fields, context)
return {'result': r}
@openerpweb.jsonrequest
def name_search(self, req, model, search_str, domain=[], context={}, limit=False):
m = req.session.model(model)
r = m.name_search(search_str, domain, 'ilike', context, limit)
r = m.default_get(fields, req.session.eval_context(req.context))
return {'result': r}
class DataGroup(openerpweb.Controller):
@@ -457,10 +474,11 @@ class DataGroup(openerpweb.Controller):
@openerpweb.jsonrequest
def read(self, request, model, group_by_fields, domain=None):
Model = request.session.model(model)
context, domain = eval_context_and_domain(request.session, request.context, domain)
return Model.read_group(
domain or [], False, group_by_fields, 0, False,
dict(request.context, group_by=group_by_fields))
dict(context, group_by=group_by_fields))
class View(openerpweb.Controller):
_cp_path = "/base/view"
@@ -468,9 +486,10 @@ class View(openerpweb.Controller):
def fields_view_get(self, request, model, view_id, view_type,
transform=True, toolbar=False, submenu=False):
Model = request.session.model(model)
fvg = Model.fields_view_get(view_id, view_type, request.context,
toolbar, submenu)
self.process_view(request.session, fvg, request.context, transform)
context = request.session.eval_context(request.context)
fvg = Model.fields_view_get(view_id, view_type, context, toolbar, submenu)
# todo fme?: check that we should pass the evaluated context here
self.process_view(request.session, fvg, context, transform)
return fvg
def process_view(self, session, fvg, context, transform):
@@ -492,18 +511,20 @@ class View(openerpweb.Controller):
'user_id': request.session._uid,
'ref_id': view_id,
'arch': arch
})
}, request.session.eval_context(request.context))
return {'result': True}
@openerpweb.jsonrequest
def undo_custom(self, request, view_id, reset=False):
CustomView = request.session.model('ir.ui.view.custom')
vcustom = CustomView.search([('user_id', '=', request.session._uid), ('ref_id' ,'=', view_id)])
context = request.session.eval_context(request.context)
vcustom = CustomView.search([('user_id', '=', request.session._uid), ('ref_id' ,'=', view_id)],
0, False, False, context)
if vcustom:
if reset:
CustomView.unlink(vcustom)
CustomView.unlink(vcustom, context)
else:
CustomView.unlink([vcustom[0]])
CustomView.unlink([vcustom[0]], context)
return {'result': True}
return {'result': False}
@@ -640,7 +661,7 @@ class SearchView(View):
@openerpweb.jsonrequest
def fields_get(self, req, model):
Model = req.session.model(model)
fields = Model.fields_get()
fields = Model.fields_get(False, req.session.eval_context(req.context))
return {'fields': fields}
class Binary(openerpweb.Controller):
@@ -650,11 +671,12 @@ class Binary(openerpweb.Controller):
def image(self, request, session_id, model, id, field, **kw):
cherrypy.response.headers['Content-Type'] = 'image/png'
Model = request.session.model(model)
context = request.session.eval_context(request.context)
try:
if not id:
res = Model.default_get([field], request.context).get(field, '')
res = Model.default_get([field], context).get(field, '')
else:
res = Model.read([int(id)], [field], request.context)[0].get(field, '')
res = Model.read([int(id)], [field], context)[0].get(field, '')
return base64.decodestring(res)
except: # TODO: what's the exception here?
return self.placeholder()
@@ -664,7 +686,8 @@ class Binary(openerpweb.Controller):
@openerpweb.httprequest
def saveas(self, request, session_id, model, id, field, fieldname, **kw):
Model = request.session.model(model)
res = Model.read([int(id)], [field, fieldname])[0]
context = request.session.eval_context(request.context)
res = Model.read([int(id)], [field, fieldname], context)[0]
filecontent = res.get(field, '')
if not filecontent:
raise cherrypy.NotFound
@@ -706,6 +729,7 @@ class Binary(openerpweb.Controller):
@openerpweb.httprequest
def upload_attachment(self, request, session_id, callback, model, id, ufile=None):
cherrypy.response.timeout = 500
context = request.session.eval_context(request.context)
Model = request.session.model('ir.attachment')
try:
out = """<script language="javascript" type="text/javascript">
@@ -720,7 +744,7 @@ class Binary(openerpweb.Controller):
'datas': base64.encodestring(ufile.file.read()),
'res_model': model,
'res_id': int(id)
})
}, context)
args = {
'filename': ufile.filename,
'id': attachment_id
@@ -736,9 +760,12 @@ class Action(openerpweb.Controller):
def load(self, req, action_id):
Actions = req.session.model('ir.actions.actions')
value = False
action_type = Actions.read([action_id], ['type'], req.session.context)
context = req.session.eval_context(req.context)
context["bin_size"] = False
action_type = Actions.read([action_id], ['type'], context)
if action_type:
action = req.session.model(action_type[0]['type']).read([action_id], False, req.session.context)
action = req.session.model(action_type[0]['type']).read([action_id], False,
context)
if action:
value = clean_action(action[0], req.session)
return {'result': value}
+6 -11
View File
@@ -35,10 +35,10 @@ var QWeb2 = {
return (noquotes ? '' : "'") + s.replace(/\r?\n/g, "\\n").replace(/'/g, "\\'") + (noquotes ? '' : "'");
},
html_escape: function(s, attribute) {
if (s === null || s === undefined) {
if (s == null) {
return '';
}
s = (new String(s)).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
s = String(s).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
if (attribute) {
s = s.replace(/"/g, '&quot;');
}
@@ -48,7 +48,7 @@ var QWeb2 = {
if (o !== null && o !== undefined) {
if (o.constructor === Array) {
if (o[1] !== null && o[1] !== undefined) {
return ' ' + o[0] + '="' + this.html_escape(o[1]) + '"';
return ' ' + o[0] + '="' + this.html_escape(o[1], true) + '"';
}
} else if (typeof o === 'object') {
var r = '';
@@ -670,15 +670,10 @@ QWeb2.Element = (function() {
this.top("(function(" + value + ") {");
this.bottom("})(dict);");
this.indent();
if (this.children.length === 1) {
var lines = this.children[0].node.data.split(/\r?\n/);
for (var i = 0, ilen = lines.length; i < ilen; i++) {
this.top(lines[i]);
}
} else {
this.engine.tools.exception("'js' code block contains " + this.children.length + " nodes instead of 1");
var lines = this.engine.tools.xml_node_to_string(this.node, true).split(/\r?\n/);
for (var i = 0, ilen = lines.length; i < ilen; i++) {
this.top(lines[i]);
}
// Maybe I could handle the children ?
this.process_children = false;
},
compile_action_debug : function(value) {
+41 -2
View File
@@ -199,6 +199,8 @@ background: linear-gradient(top, #bd5e54 0%,#90322a 60%); /* W3C */
line-height: 20px;
font-weight: bold;
font-size: 85%;
white-space: nowrap;
}
.openerp .menu a:hover,
.openerp .menu a:focus,
@@ -545,11 +547,27 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,
}
.openerp .searchview_extended_group {
border: #696969 solid 1px;
padding: 3px;
margin: 2px;
}
.openerp .searchview_extended_group .oe_adv_filters_and {
border-bottom: 1px solid #8E8E8E;
text-align: center;
margin-top: -10px;
}
.openerp .searchview_extended_group .oe_adv_filters_and span {
background: #F0EEEE;
position: relative;
top: 0.5em;
padding: 0 1em 0 1em;
color: #8E8E8E;
}
.openerp .searchview_extended_group.last_group .oe_adv_filters_and {
display: none;
}
.openerp .oe_search-view-custom-filter-btn span {
background: url(../img/icons/gtk-add.png) repeat-y;
padding-left: 18px;
@@ -563,6 +581,7 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,
.openerp .searchview_extended_delete_group {
float:right;
display: none;
}
.openerp .searchview_extended_delete_group span,
@@ -611,6 +630,12 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,
.openerp .oe-listview .oe-field-cell button:active {
opacity: 0.5;
}
.openerp .oe-listview .oe-field-cell button img {
cursor: pointer;
}
.openerp .oe-listview .oe-field-cell button img:hover {
opacity: 0.75;
}
.openerp .oe-listview th.oe-actions {
text-align: left;
@@ -693,6 +718,12 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,
.openerp table.oe_frame td {
color: #4c4c4c;
}
.openerp td.oe_form_frame_cell {
padding: 2px;
}
.openerp td.oe_form_frame_cell.oe_form_group {
padding: 0px;
}
.openerp .required.error {
border: 1px solid #900;
}
@@ -709,6 +740,7 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,
.openerp label.oe_form_label, .openerp label.oe_form_label_help {
display: block;
text-align: right;
margin: 3px 0 0 10px;
}
.openerp label.oe_form_label_help span {
font-size: 80%;
@@ -784,7 +816,8 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,
.openerp .separator.horizontal {
font-weight: bold;
border-bottom-width: 1px;
margin: 6px 4px 6px 1px;
margin: 3px 4px 3px 1px;
height: 15px;
}
.openerp td.required input, .openerp td.required select {
background-color: #D2D2FF;
@@ -1026,3 +1059,9 @@ background: linear-gradient(top, #ffffff 0%,#ebe9e9 100%); /* W3C */
.openerp .oe-m2o-disabled-cm {
color: grey;
}
.openerp .oe-dialog-warning p {
padding-left: 1em;
font-size: 1.2em;
font-weight: bold;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

+21 -6
View File
@@ -126,12 +126,27 @@ openerp.base = function(instance) {
openerp.base.dates(instance);
openerp.base.chrome(instance);
openerp.base.data(instance);
openerp.base.views(instance);
openerp.base.search(instance);
openerp.base.list(instance);
openerp.base.tree(instance);
openerp.base.form(instance);
openerp.base.list.editable(instance);
if (openerp.base.views) {
openerp.base.views(instance);
}
if (openerp.base.search) {
openerp.base.search(instance);
}
if (openerp.base.list) {
openerp.base.list(instance);
}
if (openerp.base.tree) {
openerp.base.tree(instance);
}
if (openerp.base. m2o) {
openerp.base.m2o(instance);
}
if (openerp.base.form) {
openerp.base.form(instance);
}
if (openerp.base.list && openerp.base.list.editable) {
openerp.base.list.editable(instance);
}
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
+115 -18
View File
@@ -334,9 +334,6 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b
// Construct a JSON-RPC2 request, method is currently unused
params.session_id = this.session_id;
params.context = typeof(params.context) != "undefined" ? params.context : this.context;
if (!params.context.bin_size) {
params.context.bin_size = true;
}
// Use a default error handler unless defined
error_callback = typeof(error_callback) != "undefined" ? error_callback : this.on_rpc_error;
@@ -402,7 +399,6 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b
on_rpc_response: function() {
},
on_rpc_error: function(error) {
this.on_log(error.message, error.data.debug);
},
/**
* The session is validated either by login or by restoration of a previous session
@@ -737,24 +733,124 @@ openerp.base.BaseWidget = openerp.base.Controller.extend({
}
});
openerp.base.CrashManager = openerp.base.Controller.extend({
init: function(session, element_id) {
this._super(session, element_id);
openerp.base.Dialog = openerp.base.BaseWidget.extend({
dialog_title: "",
identifier_prefix: 'dialog',
init: function (session, options) {
this._super(null, session);
this.options = {
modal: true,
width: 'auto',
min_width: 0,
max_width: '100%',
height: 'auto',
min_height: 0,
max_height: '100%',
autoOpen: false,
buttons: {}
};
for (var f in this) {
if (f.substr(0, 10) == 'on_button_') {
this.options.buttons[f.substr(10)] = this[f];
}
}
if (options) {
this.set_options(options);
}
},
set_options: function(options) {
options = options || {};
options.width = this.get_width(options.width || this.options.width);
options.min_width = this.get_width(options.min_width || this.options.min_width);
options.max_width = this.get_width(options.max_width || this.options.max_width);
options.height = this.get_height(options.height || this.options.height);
options.min_height = this.get_height(options.min_height || this.options.min_height);
options.max_height = this.get_height(options.max_height || this.options.max_width);
if (options.width !== 'auto') {
if (options.width > options.max_width) options.width = options.max_width;
if (options.width < options.min_width) options.width = options.min_width;
}
if (options.height !== 'auto') {
if (options.height > options.max_height) options.height = options.max_height;
if (options.height < options.min_height) options.height = options.min_height;
}
if (!options.title && this.dialog_title) {
options.title = this.dialog_title;
}
_.extend(this.options, options);
},
get_width: function(val) {
return this.get_size(val.toString(), $(window.top).width());
},
get_height: function(val) {
return this.get_size(val.toString(), $(window.top).height());
},
get_size: function(val, available_size) {
if (val === 'auto') {
return val;
} else if (val.slice(-1) == "%") {
return Math.round(available_size / 100 * parseInt(val.slice(0, -1), 10));
} else {
return parseInt(val, 10);
}
},
start: function (auto_open) {
this.$dialog = $('<div id="' + this.element_id + '"></div>').dialog(this.options);
if (auto_open !== false) {
this.open();
}
this._super();
},
open: function(options) {
// TODO fme: bind window on resize
if (this.template) {
this.$element.html(this.render());
}
this.set_options(options);
this.$dialog.dialog(this.options).dialog('open');
},
close: function(options) {
this.$dialog.dialog('close');
},
stop: function () {
this.$dialog.dialog('destroy');
}
});
openerp.base.CrashManager = openerp.base.Dialog.extend({
identifier_prefix: 'dialog_crash',
init: function(session) {
this._super(session);
this.session.on_rpc_error.add(this.on_rpc_error);
},
on_rpc_error: function(error) {
var msg = error.message + "\n" + error.data.debug;
this.display_error(msg);
on_button_Ok: function() {
this.close();
},
display_error: function(message) {
$('<pre></pre>').text(message).dialog({
modal: true,
buttons: {
OK: function() {
$(this).dialog("close");
}
on_rpc_error: function(error) {
this.error = error;
if (error.data.fault_code) {
var split = error.data.fault_code.split('\n')[0].split(' -- ');
if (split.length > 1) {
error.type = split.shift();
error.data.fault_code = error.data.fault_code.substr(error.type.length + 4);
}
});
}
if (error.code === 200 && error.type) {
this.dialog_title = "OpenERP " + _.capitalize(error.type);
this.template = 'DialogWarning';
this.open({
width: 'auto',
height: 'auto'
});
} else {
this.dialog_title = "OpenERP Error";
this.template = 'DialogTraceback';
this.open({
width: '80%',
height: '80%'
});
}
}
});
@@ -984,6 +1080,7 @@ openerp.base.WebClient = openerp.base.Controller.extend({
this.session = new openerp.base.Session("oe_errors");
this.loading = new openerp.base.Loading(this.session, "oe_loading");
this.crashmanager = new openerp.base.CrashManager(this.session);
this.crashmanager.start(false);
// Do you autorize this ?
openerp.base.Controller.prototype.notification = new openerp.base.Notification("oe_notification");
+73 -18
View File
@@ -231,10 +231,10 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
* @param {openerp.base.Session} session current OpenERP session
* @param {String} model the OpenERP model this dataset will manage
*/
init: function(session, model) {
init: function(session, model, context) {
this._super(session);
this.model = model;
this.context = {};
this.context = context || {};
this.index = 0;
this.count = 0;
},
@@ -287,11 +287,12 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
});
}
},
default_get: function(fields, callback) {
default_get: function(fields, context, callback) {
context = context || this.context;
return this.rpc('/base/dataset/default_get', {
model: this.model,
fields: fields,
context: this.context
context: context
}, callback);
},
create: function(data, callback, error_callback) {
@@ -309,9 +310,10 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
context: this.context
}, callback);
},
unlink: function(ids) {
// to implement in children
this.notification.notify("Unlink", ids);
unlink: function(ids, callback, error_callback) {
var self = this;
return this.call_and_eval("unlink", [ids, this.context], null, 1,
callback, error_callback);
},
call: function (method, args, callback, error_callback) {
return this.rpc('/base/dataset/call', {
@@ -320,15 +322,23 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base.
args: args || []
}, callback, error_callback);
},
name_search: function (search_str, limit, callback) {
search_str = search_str || '';
return this.rpc('/base/dataset/name_search', {
call_and_eval: function (method, args, domain_id, context_id, callback, error_callback) {
return this.rpc('/base/dataset/call', {
model: this.model,
search_str: search_str,
domain: this.domain || [],
context: this.context,
limit: limit || false
}, callback);
method: method,
domain_id: domain_id || null,
context_id: context_id || null,
args: args || []
}, callback, error_callback);
},
/**
* Arguments:
* name='', args=[], operator='ilike', context=None, limit=100
*/
name_search: function (args, callback, error_callback) {
return this.call_and_eval('name_search',
args, 1, 3,
callback, error_callback);
},
exec_workflow: function (id, signal, callback) {
return this.rpc('/base/dataset/exec_workflow', {
@@ -353,9 +363,12 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({
set_ids: function (ids) {
this.ids = ids;
this.count = this.ids.length;
this.index = this.index <= this.count - 1 ?
this.index : (this.count > 0 ? this.count - 1 : 0);
},
unlink: function(ids) {
this.on_unlink(ids);
return $.Deferred().resolve({result: true});
},
on_unlink: function(ids) {
this.set_ids(_.without.apply(null, [this.ids].concat(ids)));
@@ -363,9 +376,9 @@ openerp.base.DataSetStatic = openerp.base.DataSet.extend({
});
openerp.base.DataSetSearch = openerp.base.DataSet.extend({
init: function(session, model) {
this._super(session, model);
this.domain = [];
init: function(session, model, context, domain) {
this._super(session, model, context);
this.domain = domain || [];
this._sort = [];
this.offset = 0;
// subset records[offset:offset+limit]
@@ -429,9 +442,51 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({
this._sort.unshift((reverse ? '-' : '') + field);
return undefined;
},
unlink: function(ids, callback, error_callback) {
var self = this;
return this._super(ids, function(result) {
self.ids = _.without.apply(_, [self.ids].concat(ids));
self.count = self.ids.length;
self.index = self.index <= self.count - 1 ?
self.index : (self.count > 0 ? self.count -1 : 0);
if (callback)
callback(result);
}, error_callback);
}
});
openerp.base.CompoundContext = function() {
this.__ref = "compound_context";
this.__contexts = [];
var self = this;
_.each(arguments, function(x) {
self.add(x);
});
};
openerp.base.CompoundContext.prototype.add = function(context) {
if (context.__ref === "compound_context")
this.__contexts = this.__contexts.concat(context.__contexts);
else
this.__contexts.push(context);
return this;
};
openerp.base.CompoundDomain = function() {
this.__ref = "compound_domain";
this.__domains = [];
_.each(arguments, function(x) {
self.add(x);
});
};
openerp.base.CompoundDomain.prototype.add = function(domain) {
if (domain.__ref === "compound_domain")
this.__domains = this.__domains.concat(domain.__domains);
else
this.__domains.push(domain);
return this;
};
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
+267 -118
View File
@@ -1,4 +1,3 @@
openerp.base.form = function (openerp) {
openerp.base.views.add('form', 'openerp.base.FormView');
@@ -32,22 +31,28 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
this.ready = false;
this.show_invalid = true;
this.touched = false;
this.flags = this.view_manager.action.flags || {};
this.flags = this.view_manager.flags || {};
this.default_focus_field = null;
this.default_focus_button = null;
this.registry = openerp.base.form.widgets;
this.has_been_loaded = $.Deferred();
},
start: function() {
//this.log('Starting FormView '+this.model+this.view_id)
if (this.embedded_view) {
return $.Deferred().then(this.on_loaded).resolve({fields_view: this.embedded_view});
} else {
var context = new openerp.base.CompoundContext(this.dataset.context);
if (this.view_manager.action && this.view_manager.action.context) {
context.add(this.view_manager.action.context);
}
return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id,
toolbar:!!this.flags.sidebar}, this.on_loaded);
toolbar:!!this.flags.sidebar, context: context}, this.on_loaded);
}
},
on_loaded: function(data) {
var self = this;
this.fields_view = data.fields_view;
var frame = new (this.registry.get_object('frame'))(this, this.fields_view.arch);
this.$element.html(QWeb.render(this.template, { 'frame': frame, 'view': this }));
@@ -65,12 +70,14 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
this.$element.find('#' + this.element_id + '_header button.oe_form_button_new').click(this.on_button_new);
this.view_manager.sidebar.set_toolbar(data.fields_view.toolbar);
this.has_been_loaded.resolve();
},
do_show: function () {
var self = this;
self.$element.show();
if (this.dataset.index === null) {
if (this.dataset.index === null || (this.dataset.index === 0 && this.dataset.ids.length == 0)) {
// null index means we should start a new record
// 0 index with empty ids means we called the form with empty dataset (wizards, switched to form from empty list, ...)
this.on_button_new();
} else {
this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded);
@@ -95,7 +102,11 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
this.touched = true;
this.show_invalid = false;
for (var f in record) {
this.on_form_changed(this.fields[f]);
var field = this.fields[f];
if (field) {
field.touched = true;
this.on_form_changed(field);
}
}
}
this.on_form_changed();
@@ -105,6 +116,9 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
}
this.do_update_pager(record.id == null);
this.do_update_sidebar();
if (this.default_focus_field) {
this.default_focus_field.focus();
}
},
on_form_changed: function(widget) {
if (widget && widget.node.attrs.on_change) {
@@ -159,7 +173,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
if (field in argument_replacement) {
args.push(argument_replacement[field]);
} else if (self.fields[field]) {
var value = self.fields[field].value;
var value = self.fields[field].get_value();
args.push(value == null ? false : value);
} else {
args.push(false);
@@ -173,8 +187,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
return this.rpc(ajax, {
model: this.dataset.model,
method: method,
ids: (this.datarecord.id == null ? [] : [this.datarecord.id]),
args: args
args: [(this.datarecord.id == null ? [] : [this.datarecord.id])].concat(args)
}, function(response) {
self.on_processed_onchange(response, processed);
});
@@ -191,7 +204,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
if (field) {
var value = result.value[f];
processed.push(field.name);
if (field.value != value) {
if (field.get_value() != value) {
field.set_value(value);
if (_.indexOf(processed, field.name) < 0) {
this.do_onchange(field, processed);
@@ -220,8 +233,14 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
},
on_button_new: function() {
var self = this;
this.dataset.default_get(_.keys(this.fields), function(result) {
self.on_record_loaded(result.result);
var context = new openerp.base.CompoundContext(this.dataset.context);
if (this.view_manager.action && this.view_manager.action.context) {
context.add(this.view_manager.action.context);
}
$.when(this.has_been_loaded).then(function() {
self.dataset.default_get(_.keys(self.fields_view.fields), context, function(result) {
self.on_record_loaded(result.result);
});
});
},
/**
@@ -237,18 +256,23 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
if (!this.ready) {
return false;
}
var invalid = false;
var values = {};
var invalid = false,
values = {},
first_invalid_field = null;
for (var f in this.fields) {
f = this.fields[f];
if (f.invalid) {
invalid = true;
f.update_dom();
if (!first_invalid_field) {
first_invalid_field = f;
}
} else if (f.touched) {
values[f.name] = f.get_value();
}
}
if (invalid) {
first_invalid_field.focus();
this.on_invalid();
return false;
} else {
@@ -291,6 +315,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
if (success) {
success(r);
}
this.reload();
}
},
/**
@@ -325,6 +350,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
if (success) {
success(_.extend(r, {created: true}));
}
this.reload();
}
},
do_search: function (domains, contexts, groupbys) {
@@ -535,10 +561,15 @@ openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({
var type = this.view.fields_view.fields[node.attrs.name] || {};
var widget_type = node.attrs.widget || type.type || node.tag;
var widget = new (this.view.registry.get_object(widget_type)) (this.view, node);
if (node.tag == 'field' && node.attrs.nolabel != '1') {
var label = new (this.view.registry.get_object('label')) (this.view, node);
label["for"] = widget;
this.add_widget(label);
if (node.tag == 'field') {
if (!this.view.default_focus_field || node.attrs.default_focus == '1') {
this.view.default_focus_field = widget;
}
if (node.attrs.nolabel != '1') {
var label = new (this.view.registry.get_object('label')) (this.view, node);
label["for"] = widget;
this.add_widget(label);
}
}
this.add_widget(widget);
},
@@ -583,6 +614,10 @@ openerp.base.form.WidgetButton = openerp.base.form.Widget.extend({
init: function(view, node) {
this._super(view, node);
this.template = "WidgetButton";
if (node.attrs.default_focus == '1') {
// TODO fme: provide enter key binding to widgets
this.view.default_focus_button = this;
}
},
start: function() {
this._super.apply(this, arguments);
@@ -689,11 +724,18 @@ openerp.base.form.Field = openerp.base.form.Widget.extend({
},
on_ui_change: function() {
this.touched = this.view.touched = true;
this.set_value_from_ui();
this.validate();
this.view.on_form_changed(this);
if (!this.invalid) {
this.set_value_from_ui();
this.view.on_form_changed(this);
} else {
this.update_dom();
}
},
validate: function() {
this.invalid = false;
},
focus: function() {
}
});
@@ -720,11 +762,15 @@ openerp.base.form.FieldChar = openerp.base.form.Field.extend({
},
validate: function() {
this.invalid = false;
if (this.value === false || this.value === "") {
var value = this.$element.find('input').val();
if (value === "") {
this.invalid = this.required;
} else if (this.validation_regex) {
this.invalid = !this.validation_regex.test(this.value);
this.invalid = !this.validation_regex.test(value);
}
},
focus: function() {
this.$element.find('input').focus();
}
});
@@ -776,23 +822,16 @@ openerp.base.form.FieldFloat = openerp.base.form.FieldChar.extend({
this.validation_regex = /^-?\d+(\.\d+)?$/;
},
set_value: function(value) {
if (!value) {
this._super.apply(this, [value]);
if (value === false || value === undefined) {
// As in GTK client, floats default to 0
this.touched = this.view.touched = true;
value = 0;
}
this._super.apply(this, [value]);
var show_value = value.toFixed(2);
this.$element.find('input').val(show_value);
},
set_value_from_ui: function() {
this.value = this.$element.find('input').val().replace(/,/g, '.');
},
validate: function() {
this._super.apply(this, arguments);
if (!this.invalid) {
this.value = Number(this.value);
}
this.value = Number(this.$element.find('input').val().replace(/,/g, '.'));
}
});
@@ -814,8 +853,10 @@ openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({
if (value == null || value == false) {
this.$element.find('input').val('');
} else {
this.value = this.parse(value);
this.$element.find('input')[this.jqueryui_object]('setDate', this.value);
this.$element.find('input').unbind('change');
// jQuery UI date picker wrongly call on_change event herebelow
this.$element.find('input')[this.jqueryui_object]('setDate', this.parse(value));
this.$element.find('input').change(this.on_ui_change);
}
},
set_value_from_ui: function() {
@@ -825,7 +866,10 @@ openerp.base.form.FieldDatetime = openerp.base.form.Field.extend({
}
},
validate: function() {
this.invalid = this.required && this.value === false;
this.invalid = this.required && this.$element.find('input')[this.jqueryui_object]('getDate') === '';
},
focus: function() {
this.$element.find('input').focus();
},
parse: openerp.base.parse_datetime,
format: openerp.base.format_datetime
@@ -846,19 +890,17 @@ openerp.base.form.FieldFloatTime = openerp.base.form.FieldChar.extend({
this.validation_regex = /^\d+:\d+$/;
},
set_value: function(value) {
value = value || 0;
this._super.apply(this, [value]);
if (value === false || value === undefined) {
// As in GTK client, floats default to 0
value = 0;
}
var show_value = _.sprintf("%02d:%02d", Math.floor(value), Math.round((value % 1) * 60));
this.$element.find('input').val(show_value);
},
validate: function() {
if (typeof(this.value) == "string") {
this._super.apply(this, arguments);
if (!this.invalid) {
var time = this.value.split(':');
this.set_value(parseInt(time[0], 10) + parseInt(time[1], 10) / 60);
}
}
set_value_from_ui: function() {
var time = this.$element.find('input').val().split(':');
this.set_value(parseInt(time[0], 10) + parseInt(time[1], 10) / 60);
}
});
@@ -886,11 +928,15 @@ openerp.base.form.FieldText = openerp.base.form.Field.extend({
},
validate: function() {
this.invalid = false;
if (this.value === false || this.value === "") {
var value = this.$element.find('textarea').val();
if (value === "") {
this.invalid = this.required;
} else if (this.validation_regex) {
this.invalid = !this.validation_regex.test(this.value);
this.invalid = !this.validation_regex.test(value);
}
},
focus: function() {
this.$element.find('textarea').focus();
}
});
@@ -920,7 +966,10 @@ openerp.base.form.FieldBoolean = openerp.base.form.Field.extend({
this.$element.find('input').attr('disabled', this.readonly);
},
validate: function() {
this.invalid = this.required && !this.value;
this.invalid = this.required && !this.$element.find('input').is(':checked');
},
focus: function() {
this.$element.find('input').focus();
}
});
@@ -964,7 +1013,7 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({
if (value != null && value !== false) {
this.$element.find('select').val(value);
} else {
this.$element.find('select')[0].selectedIndex = 0;
this.$element.find('select').val('false');
}
},
set_value_from_ui: function() {
@@ -975,22 +1024,25 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({
this.$element.find('select').attr('disabled', this.readonly);
},
validate: function() {
this.invalid = this.required && this.value === "";
this.invalid = this.required && this.$element.find('select').val() === "";
},
focus: function() {
this.$element.find('select').focus();
}
});
// jquery autocomplete tweak to allow html
(function(x) {
(function() {
var proto = $.ui.autocomplete.prototype,
initSource = proto._initSource;
function filter( array, term ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
return $.grep( array, function(value) {
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
});
}
$.extend( proto, {
_initSource: function() {
if ( this.options.html && $.isArray(this.options.source) ) {
@@ -1001,7 +1053,7 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({
initSource.call( this );
}
},
_renderItem: function( ul, item) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
@@ -1009,7 +1061,19 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({
.appendTo( ul );
}
});
})(null);
})();
/**
* Builds a new context usable for operations related to fields by merging
* the fields'context with the action's context.
*/
var build_relation_context = function(relation_field) {
var action = relation_field.view.view_manager.action || {};
var a_context = action.context || {};
var f_context = relation_field.field.context || {};
var ctx = new openerp.base.CompoundContext(a_context).add(f_context);
return ctx;
}
openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
init: function(view, node) {
@@ -1026,7 +1090,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
this.$input = this.$element.find("input");
this.$drop_down = this.$element.find(".oe-m2o-drop-down-button");
this.$menu_btn = this.$element.find(".oe-m2o-cm-button");
// context menu
var bindings = {};
bindings[this.cm_id + "_search"] = function() {
@@ -1046,7 +1110,8 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
"type":"ir.actions.act_window",
"view_type":"form",
"view_mode":"form",
"target":"new"
"target":"new",
"context": build_relation_context(self)
});
};
var cmenu = this.$menu_btn.contextMenu(this.cm_id, {'leftClickToo': true,
@@ -1060,7 +1125,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
return true;
}
});
// some behavior for input
this.$input.keyup(function() {
if (self.$input.val() === "") {
@@ -1093,7 +1158,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
}
}
this.$input.focusout(anyoneLoosesFocus);
// autocomplete
this.$input.autocomplete({
source: function(req, resp) { self.get_search_result(req, resp); },
@@ -1120,58 +1185,70 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({
get_search_result: function(request, response) {
var search_val = request.term;
var self = this;
var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []);
dataset.name_search(search_val, this.limit + 1, function(data) {
dataset.name_search([search_val, self.field.domain || [], 'ilike',
build_relation_context(self), this.limit + 1], function(data) {
self.last_search = data.result;
// possible selections for the m2o
var values = _.map(data.result, function(x) {
return {label: $('<span />').text(x[1]).html(), name:x[1], id:x[0]};
});
// additional selections, actions that open popup
// search more... if more results that max
if (values.length > self.limit) {
values = values.slice(0, self.limit);
values.push({label: "<em>   Search More...</em>", action: function() {
dataset.name_search(search_val, false, function(data) {
dataset.name_search([search_val, self.field.domain || [], 'ilike',
build_relation_context(self), false], function(data) {
self._change_int_value(null);
self._search_create_popup("search", data.result);
});
}});
}
if (self.value === undefined) {
// quick create
var raw_result = _(data.result).map(function(x) {return x[1];})
if (search_val.length > 0 &&
!_.include(raw_result, search_val) &&
(!self.value || search_val !== self.value[1])) {
values.push({label: '<em>   Create "<strong>' +
$('<span />').text(search_val).html() + '</strong>"</em>', action: function() {
self._quick_create(search_val);
}});
}
// create...
values.push({label: "<em>   Create and Edit...</em>", action: function() {
self._change_int_value(null);
self._search_create_popup("form");
}});
response(values);
});
},
_quick_create: function(name) {
var self = this;
var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []);
dataset.call("name_create", [name, {}], function(data) {
dataset.call("name_create", [name, build_relation_context(self)], function(data) {
self._change_int_ext_value(data.result);
}, function(a, b) {
self._change_int_value(null);
self._search_create_popup("form");
self._search_create_popup("form", undefined, {"default_name": name});
});
},
// all search/create popup handling
_search_create_popup: function(view, ids) {
_search_create_popup: function(view, ids, context) {
var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []);
var self = this;
var pop = new openerp.base.form.Many2XSelectPopup(null, self.view.session);
pop.select_element(self.field.relation, ids ? _.map(ids, function(x) {return x[0]}) : undefined, view);
pop.on_select_element.add(function(element_id) {
dataset.call("name_get", [element_id], function(data) {
var pop = new openerp.base.form.SelectCreatePopup(null, self.view.session);
pop.select_element(self.field.relation,{
initial_ids: ids ? _.map(ids, function(x) {return x[0]}) : undefined,
initial_view: view,
disable_multiple_selection: true
}, self.view.domain || [],
new openerp.base.CompoundContext(build_relation_context(self)).add(context || {}));
pop.on_select_elements.add(function(element_ids) {
dataset.call("name_get", [element_ids[0]], function(data) {
self._change_int_ext_value(data.result[0]);
pop.stop();
});
@@ -1217,41 +1294,50 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
},
start: function() {
this._super.apply(this, arguments);
var self = this;
this.dataset = new openerp.base.DataSetStatic(this.session, this.field.relation);
this.dataset.on_unlink.add_last(function(ids) {
// TODO niv check form view
var view = self.viewmanager.views[self.viewmanager.active_view].controller;
view.reload_content();
// TODO niv make real suppression (list or direct)
self.dataset.set_ids(_.without.apply(_, [self.dataset.ids].concat(ids)));
self.on_ui_change();
self.reload_current_view();
});
var modes = this.node.attrs.mode;
modes = !!modes ? modes.split(",") : ["tree", "form"];
var views = [];
_.each(modes, function(mode) {
var view = [false, mode == "tree" ? "list" : mode];
var view = {view_id: false, view_type: mode == "tree" ? "list" : mode};
if (self.field.views && self.field.views[mode]) {
view.push(self.field.views[mode]);
view.embedded_view = self.field.views[mode];
}
if(view.view_type === "list") {
view.options = {
};
}
views.push(view);
});
this.views = views;
this.viewmanager = new openerp.base.ViewManager(this.view.session,
this.element_id, this.dataset, views);
var reg = new openerp.base.Registry();
reg.add("form", openerp.base.views.map["form"]);
reg.add("graph", openerp.base.views.map["graph"]);
reg.add("list", "openerp.base.form.One2ManyListView");
this.viewmanager.registry = reg;
this.viewmanager.on_controller_inited.add_last(function(view_type, controller) {
if (view_type == "list") {
// TODO niv
controller.o2m = self;
} else if (view_type == "form") {
// TODO niv
}
self.is_started.resolve();
});
this.viewmanager.start();
$.when(this.is_started, this.is_setted).then(function() {
if (modes[0] == "tree") {
var view = self.viewmanager.views[self.viewmanager.active_view].controller;
@@ -1260,6 +1346,15 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
// TODO niv: handle other types of views
});
},
reload_current_view: function() {
var self = this;
var view = self.viewmanager.views[self.viewmanager.active_view].controller;
if(self.viewmanager.active_view === "list") {
view.reload_content();
} else if (self.viewmanager.active_view === "form") {
// TODO niv: but fme did not implemented delete in form view anyway
}
},
set_value: function(value) {
if(value != false) {
this.dataset.set_ids(value);
@@ -1272,6 +1367,24 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({
}
});
openerp.base.form.One2ManyListView = openerp.base.ListView.extend({
do_add_record: function () {
var self = this;
var pop = new openerp.base.form.SelectCreatePopup(null, self.o2m.view.session);
pop.select_element(self.o2m.field.relation,{
initial_view: "form",
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined
});
pop.on_select_elements.add(function(element_ids) {
var ids = self.o2m.dataset.ids;
_.each(element_ids, function(x) {if (!_.include(ids, x)) ids.push(x);});
self.o2m.dataset.set_ids(ids);
self.o2m.on_ui_change();
self.o2m.reload_current_view();
});
}
});
openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
init: function(view, node) {
this._super(view, node);
@@ -1282,27 +1395,26 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
},
start: function() {
this._super.apply(this, arguments);
var self = this;
this.dataset = new openerp.base.DataSetStatic(
this.session, this.field.relation);
this.dataset.on_unlink.add_last(function(ids) {
self.list_view.reload_content();
self.on_ui_change();
});
this.list_view = new openerp.base.form.Many2ManyListView(
null, this.view.session, this.list_id, this.dataset, false, {
'selectable': false,
'addable': 'Add'
});
this.list_view.m2m_field = this;
this.list_view.start();
this.list_view.on_loaded.add_last(function() {
self.is_started.resolve();
});
this.list_view.start();
$.when(this.is_started, this.is_setted).then(function() {
self.list_view.reload_content();
});
@@ -1320,15 +1432,17 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({
do_add_record: function () {
var pop = new openerp.base.form.Many2XSelectPopup(
var pop = new openerp.base.form.SelectCreatePopup(
null, this.m2m_field.view.session);
pop.select_element(this.model);
var self = this;
pop.on_select_element.add(function(element_id) {
if(! _.detect(self.dataset.ids, function(x) {return x == element_id;})) {
self.dataset.set_ids([].concat(self.dataset.ids, [element_id]));
self.reload_content();
}
pop.on_select_elements.add(function(element_ids) {
_.each(element_ids, function(element_id) {
if(! _.detect(self.dataset.ids, function(x) {return x == element_id;})) {
self.dataset.set_ids([].concat(self.dataset.ids, [element_id]));
self.reload_content();
}
});
pop.stop();
});
},
@@ -1345,13 +1459,22 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({
}
});
openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
identifier_prefix: "many2xselectpopup",
template: "Many2XSelectPopup",
select_element: function(model, initial_ids, initial_view) {
openerp.base.form.SelectCreatePopup = openerp.base.BaseWidget.extend({
identifier_prefix: "selectcreatepopup",
template: "SelectCreatePopup",
/**
* options:
* - initial_ids
* - initial_view: form or search (default search)
* - disable_multiple_selection
* - alternative_form_view
*/
select_element: function(model, options, domain, context) {
this.model = model;
this.initial_ids = initial_ids;
this.initial_view = initial_view || "search";
this.domain = domain || [];
this.context = context || {};
this.options = options || {};
this.initial_ids = this.options.initial_ids;
jQuery(this.render()).dialog({title: '',
modal: true,
minWidth: 800});
@@ -1359,8 +1482,9 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
},
start: function() {
this._super();
this.dataset = new openerp.base.DataSetSearch(this.session, this.model);
if (this.initial_view == "search") {
this.dataset = new openerp.base.DataSetSearch(this.session, this.model,
this.context, this.domain);
if ((this.options.initial_view || "search") == "search") {
this.setup_search_view();
} else { // "form"
this.new_object();
@@ -1372,10 +1496,14 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
this.searchview.stop();
}
this.searchview = new openerp.base.SearchView(null, this.session,
this.element_id + "_search", this.dataset, false, {});
this.element_id + "_search", this.dataset, false, {
"selectable": !this.options.disable_multiple_selection,
"deletable": false
});
this.searchview.on_search.add(function(domains, contexts, groupbys) {
if (self.initial_ids) {
self.view_list.do_search.call(self, [[["id", "in", self.initial_ids]]], contexts, groupbys);
self.view_list.do_search.call(self,[[["id", "in", self.initial_ids]]],
contexts, groupbys);
self.initial_ids = undefined;
} else {
self.view_list.do_search.call(self, domains, contexts, groupbys);
@@ -1383,15 +1511,18 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
});
this.searchview.on_loaded.add_last(function () {
var $buttons = self.searchview.$element.find(".oe_search-view-buttons");
$buttons.append(QWeb.render("Many2XSelectPopup.search.buttons"));
var $nbutton = $buttons.find(".oe_many2xselectpopup-search-new");
$nbutton.click(function() {
self.new_object();
});
var $cbutton = $buttons.find(".oe_many2xselectpopup-search-close");
$buttons.append(QWeb.render("SelectCreatePopup.search.buttons"));
var $cbutton = $buttons.find(".oe_selectcreatepopup-search-close");
$cbutton.click(function() {
self.stop();
});
var $sbutton = $buttons.find(".oe_selectcreatepopup-search-select");
if(self.options.disable_multiple_selection) {
$sbutton.hide();
}
$sbutton.click(function() {
self.on_select_elements(self.selected_ids);
});
self.view_list = new openerp.base.form.Many2XPopupListView( null, self.session,
self.element_id + "_view_list", self.dataset, false,
{'deletable': false});
@@ -1403,7 +1534,15 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
});
this.searchview.start();
},
on_select_element: function(element_id) {
on_select_elements: function(element_ids) {
},
on_click_element: function(ids) {
this.selected_ids = ids || [];
if(this.selected_ids.length > 0) {
this.$element.find(".oe_selectcreatepopup-search-select").removeAttr('disabled');
} else {
this.$element.find(".oe_selectcreatepopup-search-select").attr('disabled', "disabled");
}
},
new_object: function() {
var self = this;
@@ -1416,15 +1555,18 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
this.dataset.index = null;
this.view_form = new openerp.base.FormView(null, this.session,
this.element_id + "_view_form", this.dataset, false);
if (this.options.alternative_form_view) {
this.view_form.set_embedded_view(this.options.alternative_form_view);
}
this.view_form.start();
this.view_form.on_loaded.add_last(function() {
var $buttons = self.view_form.$element.find(".oe_form_buttons");
$buttons.html(QWeb.render("Many2XSelectPopup.form.buttons"));
var $nbutton = $buttons.find(".oe_many2xselectpopup-form-save");
$buttons.html(QWeb.render("SelectCreatePopup.form.buttons"));
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save");
$nbutton.click(function() {
self.view_form.do_save();
});
var $cbutton = $buttons.find(".oe_many2xselectpopup-form-close");
var $cbutton = $buttons.find(".oe_selectcreatepopup-form-close");
$cbutton.click(function() {
self.stop();
});
@@ -1432,7 +1574,7 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
this.view_form.on_created.add_last(function(r, success) {
if (r.result) {
var id = arguments[0].result;
self.on_select_element(id);
self.on_select_elements([id]);
}
});
this.view_form.do_show();
@@ -1440,8 +1582,15 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
});
openerp.base.form.Many2XPopupListView = openerp.base.ListView.extend({
do_add_record: function () {
this.popup.new_object();
},
select_record: function(index) {
this.popup.on_select_element(this.dataset.ids[index]);
this.popup.on_select_elements([this.dataset.ids[index]]);
},
do_select: function(ids, records) {
this._super(ids, records);
this.popup.on_click_element(ids);
}
});
+9 -6
View File
@@ -125,6 +125,15 @@ openerp.base.list.editable = function (openerp) {
'class': $(row).attr('class'),
click: function (e) {e.stopPropagation();}
})
.delegate('button.oe-edit-row-save', 'click', function () {
self.save_row();
})
.delegate('button.oe-edit-row-cancel', 'click', function () {
self.cancel_edition();
})
.delegate('button', 'keyup', function (e) {
e.stopImmediatePropagation();
})
.keyup(function (e) {
switch (e.which) {
case KEY_RETURN:
@@ -136,12 +145,6 @@ openerp.base.list.editable = function (openerp) {
default:
return;
}
})
.delegate('button.oe-edit-row-save', 'click', function () {
self.save_row();
})
.delegate('button.oe-edit-row-cancel', 'click', function () {
self.cancel_edition();
});
if (row) {
$new_row.replaceAll(row);
+2 -20
View File
@@ -336,25 +336,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
}
var self = this;
return $.when(this.dataset.unlink(ids)).then(function () {
_(self.rows).chain()
.map(function (row, index) {
return {
index: index,
id: row.data.id.value
};})
.filter(function (record) {
return _.contains(ids, record.id);
})
.sort(function (a, b) {
// sort in reverse index order, so we delete from the end
// and don't blow up the following indexes (leading to
// removing the wrong records from the visible list)
return b.index - a.index;
})
.each(function (record) {
self.rows.splice(record.index, 1);
});
// TODO only refresh modified rows
self.reload_content();
});
},
/**
@@ -571,7 +553,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List
this.$current.remove();
}
this.$current = this.$_element.clone(true);
this.$current.empty().append($(QWeb.render('ListView.rows', this)));
this.$current.empty().append(QWeb.render('ListView.rows', this));
},
get_fields_view: function () {
// deep copy of view
-282
View File
@@ -1,282 +0,0 @@
openerp.base.m2o = function(openerp){
/*
<input type="text"
t-att-name="widget.name"
t-att-id="widget.element_id + '_field'"
t-att-class="'field_' + widget.type"
t-att-type="widget.type"
style="width: 100%;"/>
<span type='button' t-att-class="'ui_combo'" tabindex="'-1'" title="'Show All Items'"></span>
<img t-att-id="widget.name + '_open'" t-att-alt="'Open'" t-att-title="'Create'"
t-att-src="'/base/static/src/img/iconset-d-drop.gif'" t-att-class="'m2o_open'"/>
*/
openerp.base.m2o = openerp.base.Controller.extend({
init: function(element_id, model, dataset, session){
this._super(element_id, model, dataset, session);
this.session = session;
this.element = element_id.find('input');
this.button = element_id.find('span');
this.dataset = dataset;
this.cache = {};
var lastXhr;
this.$input;
this.relation = model;
this.result_ids = [];
this.create_option = jQuery('#'+this.element.attr('name')+ '_open');
if (this.create_option) {
var defaults = [
{'text': 'Go to..', 'action': "call_Actions()"},
{'text': 'Choose..', 'action': "call_Actions()"}
]
jQuery(this.create_option).click(jQuery.proxy(function(evt){
on_context_menu(evt, this.element, defaults);
}, this));
}
var self = this;
this.$input = this.element.autocomplete ({
source: function(request, response){
self.getSearch_Result(request, response);
return;
},
select: function(event, ui){
ui.item.value = ui.item.orig_val? ui.item.orig_val : self.element.data( "autocomplete" ).term;
if (ui.item.id == 'more') {
self.dataset.ids = self.result_ids;
self.dataset.count = self.dataset.ids.length;
self.dataset.domain = self.result_ids.length ? [["id", "in", self.dataset.ids]] : []
self.element.val('');
var pop = new openerp.base.form.Many2XSelectPopup(null, self.session);
pop.select_element(self.relation, self.dataset);
return;
}
if (ui.item.id == 'create') {
var val = self.element.val();
self.dataset.create({'name': ui.item.value},
function(r){}, function(r){
var element_id = _.uniqueId("act_window_dialog");
var dialog = jQuery('<div>',
{'id': element_id
}).dialog({
modal: true,
minWidth: 800
});
self.element.val('');
var event_form = new openerp.base.FormView(null,
self.session, element_id, self.dataset, false);
event_form.start();
});
$input.val(self.element.data( "autocomplete" ).term);
return true;
}
self.element.attr('m2o_id', ui.item.id);
},
minLength: 0,
focus: function(event, ui) {
self.gotFocus(event, ui);
}
});
this.button.button({
icons: {
primary: "ui-icon-triangle-1-s"},
text: false
})
.click(function() {
// close if already visible
if (self.$input.autocomplete("widget").is(":visible")) {
self.$input.autocomplete( "close" );
return;
}
$(this).blur();
self.$input.autocomplete("search", "" );
self.$input.focus();
});
},
getSearch_Result: function(request, response) {
var search_val = request.term;
if (search_val in this.cache) {
response(this.cache[search_val]);
return;
}
var self = this;
//pass request to server
lastXhr = this.dataset.name_search(search_val, function(obj, status, xhr){
var result = obj.result;
var values = [];
$.each(result, function(i, val){
values.push({
value: val[1],
id: val[0],
orig_val: val[1]
});
self.result_ids.push(result[i][0]);
});
if (values.length > 7) {
values = values.slice(0, 7);
}
values.push({'value': 'More...', id: 'more', orig_val:''},
{'value': 'Create..'+search_val, id: 'create', orig_val: ''});
self.cache[search_val] = values;
response(values);
});
},
getSelected_Result: function(event, ui) {
ui.item.value = ui.item.orig_val? ui.item.orig_val : this.element.data( "autocomplete" ).term;
if (ui.item.id == 'more') {
this.dataset.ids = this.result_ids;
this.dataset.count = this.dataset.ids.length;
this.dataset.domain = this.result_ids.length ? [["id", "in", this.dataset.ids]] : [];
this.element.val('');
var pop = new openerp.base.form.Many2XSelectPopup(null, this.session);
pop.select_element(this.relation, this.dataset);
return;
}
if (ui.item.id == 'create') {
this.openRecords(event, ui);
}
this.element.attr('m2o_id', ui.item.id);
},
gotFocus: function(event, ui) {
if (ui.item.id == ('create')) {
return true;
}
ui.item.value = this.element.data("autocomplete").term.length ?
this.element.val() + '[' + ui.item.orig_val.substring(this.element.data("autocomplete").term.length) + ']' : this.lastSearch;
},
openRecords: function(event, ui) {
var val = this.element.val();
var self = this;
this.dataset.create({'name': ui.item.value},
function(r){}, function(r){
var element_id = _.uniqueId("act_window_dialog");
var dialog = jQuery('<div>',
{'id': element_id
}).dialog({
modal: true,
minWidth: 800
});
self.element.val('');
var event_form = new openerp.base.FormView(null, self.session,
element_id, self.dataset, false);
event_form.start();
});
self.$input.val(self.element.data( "autocomplete" ).term);
return true;
}
});
}
function call_Actions() {
}
function on_context_menu(evt, target, defaults){
var $target = jQuery(target || evt.target);
var kind = $target.attr('type');
if (!(kind && $target.is(':input, :enabled'))) {
return;
}
var $menu = jQuery('#m2o_contextmenu').show();
if (!$menu.length) {
$menu = jQuery('<div id="m2o_contextmenu" class="m2o_contextmenu">')
.css({position: 'absolute'})
.hover(showContextMenu, hideContextMenu)
.appendTo(document.body).show();
if (jQuery(document.documentElement).hasClass('ie')) {
jQuery('<iframe id="m2o_contextmenu_frm" src="#" frameborder="0" scrolling="no">')
.css({position: 'absolute'})
.hide().appendTo(document.body);
}
}
var src = $target.attr('id');
if (kind == 'many2one' || kind == 'reference') {
src = src.slice(0, -5);
}
var $src = jQuery('[id="' + src + '"]');
var click_position = mousePositionDammit(evt);
$menu.offset({top: 0, left: 0});
$menu.offset({top: click_position.y - 5, left: click_position.x - 5});
$menu.hide();
makeContextMenu(src, kind, $src.attr('relation'), $src.val(), defaults);
if(evt.stop) {
evt.stop();
}
evt.stopPropagation();
evt.preventDefault();
}
function makeContextMenu(id, kind, relation, val, defaults){
var $tbody = jQuery('<tbody>');
jQuery.each(defaults, function (_, default_) {
jQuery('<tr>').append(jQuery('<td>').append(
jQuery('<span>').click(function () {
hideContextMenu();
return eval(default_.action);
}).text(default_.text))).appendTo($tbody);
});
var $menu = jQuery('#m2o_contextmenu');
$menu.empty().append(
jQuery('<table cellpadding="0" cellspacing="0">').append($tbody));
var menu_width = $menu.width();
var body_width = jQuery(document.body).width();
if (parseInt($menu.css("left")) + menu_width > body_width) {
$menu.offset({ left: body_width - menu_width - 10 });
}
showContextMenu();
}
function showContextMenu(){
var $menu = jQuery('#m2o_contextmenu');
var $ifrm = jQuery('#m2o_contextmenu_frm');
console.log($menu, 8888888, $ifrm)
$menu.show();
if ($ifrm.length) {
$ifrm.offset($menu.offset())
.css({
width: $menu.offsetWidth(),
height: $menu.offsetHeight(),
zIndex: 6
}).show();
}
}
function hideContextMenu(){
jQuery('#m2o_contextmenu, #m2o_contextmenu_frm').hide();
}
/**
* Adapts mouse position on page for functions which may be bound using both
* jQuery and MochiKit event handlers
*
* @param evt the library's events
*/
function mousePositionDammit(evt) {
if(evt.mouse) {
// mochikit
return evt.mouse().page;
}
return {
x: evt.pageX,
y: evt.pageY
}
}
+26 -8
View File
@@ -731,6 +731,7 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({
var render = group.render();
this.$element.find('.searchview_extended_groups_list').append(render);
group.start();
this.check_last_element();
},
start: function () {
this._super();
@@ -758,11 +759,9 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({
on_activate: function() {
this.add_group();
var table = this.$element.closest("table.oe-searchview-render-line");
if(table.css("display") == "none") {
table.css("display", "");
if(this.$element.hasClass("folded")) {
this.$element.toggleClass("folded expanded");
}
table.css("display", "");
if(this.$element.hasClass("folded")) {
this.$element.toggleClass("folded expanded");
}
},
hide: function() {
@@ -771,6 +770,10 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({
if(this.$element.hasClass("expanded")) {
this.$element.toggleClass("folded expanded");
}
},
check_last_element: function() {
_.each(this.children, function(x) {x.set_last_group(false);});
this.children[this.children.length - 1].set_last_group(true);
}
});
@@ -796,9 +799,6 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({
});
var delete_btn = this.$element.find('.searchview_extended_delete_group');
delete_btn.click(function (e) {
if (_this.parent.children.length == 1) {
_this.parent.hide();
}
_this.stop();
});
},
@@ -811,6 +811,19 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({
return [].concat(choice == "none" ? ['!'] : [],
_.map(_.range(_.max([0,props.length - 1])), function() { return op; }),
props);
},
stop: function() {
var parent = this.parent;
if (this.parent.children.length == 1)
this.parent.hide();
this._super();
parent.check_last_element();
},
set_last_group: function(is_last) {
if(is_last)
this.$element.addClass("last_group");
else
this.$element.removeClass("last_group");
}
});
@@ -838,6 +851,11 @@ openerp.base.search.ExtendedSearchProposition = openerp.base.BaseWidget.extend({
_this.stop();
});
},
stop: function() {
if (this.parent.children.length == 1)
this.parent.stop();
this._super();
},
changed: function() {
var nval = this.$element.find(".searchview_extended_prop_field").val();
if(this.attrs.selected == null || nval != this.attrs.selected.name) {
+103 -21
View File
@@ -78,10 +78,12 @@ openerp.base.ViewManager = openerp.base.Controller.extend({
this.dataset = dataset;
this.searchview = null;
this.active_view = null;
this.views_src = views;
this.views_src = _.map(views, function(x)
{return x instanceof Array? {view_id: x[0], view_type: x[1]} : x;});
this.views = {};
this.flags = this.flags || {};
this.sidebar = new openerp.base.NullSidebar();
this.registry = openerp.base.views;
},
/**
* @returns {jQuery.Deferred} initial view loading promise
@@ -94,14 +96,13 @@ openerp.base.ViewManager = openerp.base.Controller.extend({
self.on_mode_switch($(this).data('view-type'));
});
_.each(this.views_src, function(view) {
self.views[view[1]] = { view_id: view[0], controller: null,
embedded_view: view[2]};
self.views[view.view_type] = $.extend({}, view, {controller: null});
});
if (this.flags.views_switcher === false) {
this.$element.find('.oe_vm_switch').hide();
}
// switch to the first one in sequence
return this.on_mode_switch(this.views_src[0][1]);
return this.on_mode_switch(this.views_src[0].view_type);
},
stop: function() {
},
@@ -112,16 +113,28 @@ openerp.base.ViewManager = openerp.base.Controller.extend({
* @returns {jQuery.Deferred} new view loading promise
*/
on_mode_switch: function(view_type) {
var view_promise;
var self = this,
view_promise;
this.active_view = view_type;
var view = this.views[view_type];
if (!view.controller) {
// Lazy loading of views
var controllerclass = openerp.base.views.get_object(view_type);
var controller = new controllerclass( this, this.session, this.element_id + "_view_" + view_type, this.dataset, view.view_id);
var controllerclass = this.registry.get_object(view_type);
var controller = new controllerclass( this, this.session, this.element_id + "_view_" + view_type,
this.dataset, view.view_id, view.options);
if (view.embedded_view) {
controller.set_embedded_view(view.embedded_view);
}
if (view_type === 'list' && this.flags.search_view === false && this.action && this.action['auto_search']) {
// In case the search view is not instanciated: manually call ListView#search
controller.on_loaded.add({
callback: function () {
controller.do_search([self.action.domain], [self.action.context], []);
},
position: 'last',
unique: true
});
}
view_promise = controller.start();
var self = this;
$.when(view_promise).then(function() {
@@ -130,6 +143,7 @@ openerp.base.ViewManager = openerp.base.Controller.extend({
this.views[view_type].controller = controller;
}
if (this.searchview) {
if (view.controller.searchable === false) {
this.searchview.hide();
@@ -259,16 +273,18 @@ openerp.base.ViewManagerAction = openerp.base.ViewManager.extend({
}
});
// init search view
var searchview_id = this.action.search_view_id && this.action.search_view_id[0];
if (this.flags.search_view !== false) {
// init search view
var searchview_id = this.action.search_view_id && this.action.search_view_id[0];
var searchview_loaded = this.setup_search_view(
searchview_id || false, search_defaults);
var searchview_loaded = this.setup_search_view(
searchview_id || false, search_defaults);
// schedule auto_search
if (searchview_loaded != null && this.action['auto_search']) {
$.when(searchview_loaded, inital_view_loaded)
.then(this.searchview.do_search);
// schedule auto_search
if (searchview_loaded != null && this.action['auto_search']) {
$.when(searchview_loaded, inital_view_loaded)
.then(this.searchview.do_search);
}
}
},
stop: function() {
@@ -360,6 +376,25 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({
openerp.base.NullSidebar = openerp.base.generate_null_object_class(openerp.base.Sidebar);
openerp.base.Export = openerp.base.Dialog.extend({
dialog_title: "Export",
template: 'ExportDialog',
identifier_prefix: 'export_dialog',
init: function (session, model, domain) {
this._super();
},
start: function () {
this._super();
this.$element.html(this.render());
},
on_button_Export: function() {
console.log("Export")
},
on_button_Cancel: function() {
this.$element.dialog("close");
}
});
openerp.base.View = openerp.base.Controller.extend({
/**
* Fetches and executes the action identified by ``action_data``.
@@ -376,10 +411,22 @@ openerp.base.View = openerp.base.Controller.extend({
*/
execute_action: function (action_data, dataset, action_manager, record_id, on_no_action) {
var handler = function (r) {
if (r.result && r.result.constructor == Object) {
action_manager.do_action(r.result);
var action = r.result;
if (action && action.constructor == Object) {
action.context = action.context || {};
action.context['active_id'] = dataset.ids[dataset.index];
action.context['active_ids'] = [dataset.ids[dataset.index]];
action.context['active_model'] = dataset.model;
action.flags = {
sidebar : false,
search_view : false,
views_switcher : false,
action_buttons : false,
pager : false
};
action_manager.do_action(action);
} else {
on_no_action(r.result);
on_no_action(action);
}
};
@@ -388,12 +435,12 @@ openerp.base.View = openerp.base.Controller.extend({
result : { type: 'ir.actions.act_window_close' }
});
} else {
var context = _.extend({}, dataset.context, action_data.context || {});
var context = new openerp.base.CompoundContext(dataset.context).add(action_data.context || {});
switch(action_data.type) {
case 'object':
return dataset.call(action_data.name, [[record_id], context], handler);
return dataset.call_and_eval(action_data.name, [[record_id], context], null, 1, handler);
case 'action':
return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10) }, handler);
return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10), context: context }, handler);
default:
return dataset.exec_workflow(record_id, action_data.name, handler);
}
@@ -422,6 +469,41 @@ openerp.base.ProcessView = openerp.base.Controller.extend({
openerp.base.HelpView = openerp.base.Controller.extend({
});
openerp.base.json_node_to_xml = function(node, single_quote, indent) {
// For debugging purpose, this function will convert a json node back to xml
// Maybe usefull for xml view editor
if (typeof(node.tag) !== 'string' || !node.children instanceof Array || !node.attrs instanceof Object) {
throw("Node a json node");
}
indent = indent || 0;
var sindent = Array(indent + 1).join('\t'),
r = sindent + '<' + node.tag;
for (var attr in node.attrs) {
var vattr = node.attrs[attr];
if (typeof(vattr) !== 'string') {
// domains, ...
vattr = JSON.stringify(vattr);
}
vattr = vattr.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
if (single_quote) {
vattr = vattr.replace(/&quot;/g, "'");
}
r += ' ' + attr + '="' + vattr + '"';
}
if (node.children.length) {
r += '>\n';
var childs = [];
for (var i = 0, ii = node.children.length; i < ii; i++) {
childs.push(openerp.base.json_node_to_xml(node.children[i], single_quote, indent + 1));
}
r += childs.join('\n');
r += '\n' + sindent + '</' + node.tag + '>';
return r;
} else {
return r + '/>';
}
}
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
+33 -20
View File
@@ -90,7 +90,7 @@
t-att-value="selected_password || ''"/></td>
</tr>
<tr t-if="has_local_storage">
<td><label for="remember">Rember password:</label></td>
<td><label for="remember">Remember password:</label></td>
<td class="oe_remember">
<t t-if="remember">
<input type="checkbox" name="remember" checked="yes"/>
@@ -232,14 +232,14 @@
<!-- TODO prefix id with the element_id of the controller t-attf-id="#{prefix}_localid" -->
<div class="oe_vm_switch">
<t t-if="views.length != 1" t-foreach="views" t-as="view">
<button type="button" t-att-data-view-type="view[1]">
<t t-esc="view[1]"/>
<button type="button" t-att-data-view-type="view.view_type">
<t t-esc="view.view_type"/>
</button>
</t>
</div>
<div t-attf-id="#{prefix}_search" t-opentag="true"/>
<t t-foreach="views" t-as="view">
<div t-attf-id="#{prefix}_view_#{view[1]}"/>
<div t-attf-id="#{prefix}_view_#{view.view_type}"/>
</t>
</td>
<td class="view-manager-main-sidebar" height="100%">
@@ -341,7 +341,7 @@
<t t-set="value" t-value="row['data'][column.id].value"/>
<t t-esc="value instanceof Array ? value[1] : value"/>
</t>
<button type="button" t-att-title="column.help"
<button type="button" t-att-title="column.string"
t-if="is_button">
<img t-att-src="'/base/static/src/img/icons/' + column.icon + '.png'"
t-att-alt="column.string"/>
@@ -417,7 +417,7 @@
<t t-raw="console.log('Unhandled widget', widget)"/>
</t>
<t t-name="WidgetFrame">
<table border="0" width="100%" cellpadding="2" cellspacing="2" class="oe_frame">
<table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame">
<tr t-foreach="widget.table" t-as="row">
<t t-foreach="row" t-as="td">
<td t-att-colspan="td.colspan gt 1 ? td.colspan : undefined"
@@ -425,7 +425,7 @@
t-att-nowrap="td.is_field_label or td.is_field_m2o? 'true' : undefined"
t-att-valign="td.table ? 'top' : undefined"
t-att-id="td.element_id"
t-att-class="'oe_form_' + (td.is_field_label ? 'label' : (td.field ? 'field_' + td.type : td.type))"
t-att-class="'oe_form_frame_cell oe_form_' + (td.is_field_label ? 'label' : (td.field ? 'field_' + td.type : td.type))"
>
<t t-raw="td.render()"/>
</td>
@@ -804,6 +804,7 @@
</div>
<a class="searchview_extended_add_proposition" href="javascript:void(0)">
<span>Add condition</span></a>
<div class="oe_adv_filters_and"><span>and</span></div>
</div>
</t>
<t t-name="SearchView.extended_search.proposition">
@@ -870,27 +871,39 @@
</div>
</t>
<t t-name="DialogWarning">
<div id="dialog-message" t-att-title="title">
<p>
<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
<t t-esc="message"/>
</p>
</div>
<table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
<tr>
<td><img src="/base/static/src/img/warning.png" class="oe-dialog-icon"/></td>
<td>
<p>
<t t-js="d">
d.html_error = context.engine.tools.html_escape(d.error.data.fault_code).replace(/\n/g, '<br/>');
</t>
<t t-raw="html_error"/>
</p>
</td>
</tr>
</table>
</t>
<t t-name="Many2XSelectPopup">
<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">
<div t-att-id="element_id + '_search'"></div>
<div t-att-id="element_id + '_view_list'"></div>
<div t-att-id="element_id + '_view_form'"></div>
</div>
</t>
<t t-name="Many2XSelectPopup.search.buttons">
<button type="button" class="oe_many2xselectpopup-search-new">New</button>
<button type="button" class="oe_many2xselectpopup-search-close">Close</button>
<t t-name="SelectCreatePopup.search.buttons">
<button type="button" class="oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
<button type="button" class="oe_selectcreatepopup-search-close">Close</button>
</t>
<t t-name="Many2XSelectPopup.form.buttons">
<button type="button" class="oe_many2xselectpopup-form-save">Save</button>
<button type="button" class="oe_many2xselectpopup-form-close">Close</button>
<t t-name="SelectCreatePopup.form.buttons">
<button type="button" class="oe_selectcreatepopup-form-save">Save</button>
<button type="button" class="oe_selectcreatepopup-form-close">Close</button>
</t>
<t t-name="ListView.row.frame" t-extend="WidgetFrame">
@@ -1,13 +1,12 @@
.openerp table.oe-dashboard {
width: 100%;
}
.openerp .oe-dashboard-links {
text-align: right;
margin: -2em 1em 1em 0;
}
.openerp .oe-dashboard-column {
float: left;
padding-bottom: 100px;
margin: -2em 0.4em 1em 0;
}
.openerp .oe-dashboard-action {
margin: 0 1em 1em 0;
margin: 0 0.5em 0.5em 0;
}
.openerp .oe-dashboard-action .oe-dashboard-action-header {
margin: 0.3em;
@@ -58,7 +57,7 @@
}
/* Layouts */
.openerp .oe-dashboard-layout_1 .oe-dashboard-column {
.openerp .oe-dashboard-layout_1 .oe-dashboard-column.index_0 {
width: 100%;
}
.openerp .oe-dashboard-layout_1 .oe-dashboard-column.index_1,
@@ -18,13 +18,15 @@
<span>Change layout</span>
</button>
</div>
<div t-att-data-layout="node.attrs.style" t-attf-class="oe-dashboard oe-dashboard-layout_#{node.attrs.style}">
<div t-foreach="node.children" t-as="column" t-if="column.tag == 'column'"
<table t-att-data-layout="node.attrs.style" t-attf-class="oe-dashboard oe-dashboard-layout_#{node.attrs.style}" cellspacing="0" cellpadding="0" border="0">
<tr>
<td t-foreach="node.children" t-as="column" t-if="column.tag == 'column'"
t-att-id="view.element_id + '_column_' + column_index" t-attf-class="oe-dashboard-column index_#{column_index}">
<t t-foreach="column.children" t-as="action" t-if="action.tag == 'action'" t-call="DashBoard.action"/>
</div>
</div>
</td>
</tr>
</table>
</t>
<t t-name="DashBoard.action">
<div t-att-data-id="action.attrs.name" class="oe-dashboard-action ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
+1
View File
@@ -0,0 +1 @@
import controllers
+6
View File
@@ -0,0 +1,6 @@
{
"name" : "OpenERP Web mobile",
"version" : "2.0",
"depends" : [],
'active': True,
}
@@ -0,0 +1 @@
import main
+12
View File
@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
import glob, os
import pprint
import simplejson
import openerpweb
import openerpweb.ast
import openerpweb.nonliterals
import cherrypy
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,134 @@
/*!
* jQuery Mobile v1.0a4.1
* http://jquerymobile.com/
*
* Copyright 2010, jQuery Project
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*/
(function(a,c){if(a.cleanData){var d=a.cleanData;a.cleanData=function(b){for(var f=0,h;(h=b[f])!=null;f++)a(h).triggerHandler("remove");d(b)}}else{var e=a.fn.remove;a.fn.remove=function(b,f){return this.each(function(){if(!f)if(!b||a.filter(b,[this]).length)a("*",this).add([this]).each(function(){a(this).triggerHandler("remove")});return e.call(a(this),b,f)})}}a.widget=function(b,f,h){var i=b.split(".")[0],g;b=b.split(".")[1];g=i+"-"+b;if(!h){h=f;f=a.Widget}a.expr[":"][g]=function(j){return!!a.data(j,
b)};a[i]=a[i]||{};a[i][b]=function(j,m){arguments.length&&this._createWidget(j,m)};f=new f;f.options=a.extend(true,{},f.options);a[i][b].prototype=a.extend(true,f,{namespace:i,widgetName:b,widgetEventPrefix:a[i][b].prototype.widgetEventPrefix||b,widgetBaseClass:g},h);a.widget.bridge(b,a[i][b])};a.widget.bridge=function(b,f){a.fn[b]=function(h){var i=typeof h==="string",g=Array.prototype.slice.call(arguments,1),j=this;h=!i&&g.length?a.extend.apply(null,[true,h].concat(g)):h;if(i&&h.charAt(0)==="_")return j;
i?this.each(function(){var m=a.data(this,b);if(!m)throw"cannot call methods on "+b+" prior to initialization; attempted to call method '"+h+"'";if(!a.isFunction(m[h]))throw"no such method '"+h+"' for "+b+" widget instance";var p=m[h].apply(m,g);if(p!==m&&p!==c){j=p;return false}}):this.each(function(){var m=a.data(this,b);m?m.option(h||{})._init():a.data(this,b,new f(h,this))});return j}};a.Widget=function(b,f){arguments.length&&this._createWidget(b,f)};a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",
options:{disabled:false},_createWidget:function(b,f){a.data(f,this.widgetName,this);this.element=a(f);this.options=a.extend(true,{},this.options,this._getCreateOptions(),b);var h=this;this.element.bind("remove."+this.widgetName,function(){h.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){var b={};if(a.metadata)b=a.metadata.get(element)[this.widgetName];return b},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);
this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(b,f){var h=b;if(arguments.length===0)return a.extend({},this.options);if(typeof b==="string"){if(f===c)return this.options[b];h={};h[b]=f}this._setOptions(h);return this},_setOptions:function(b){var f=this;a.each(b,function(h,i){f._setOption(h,i)});return this},_setOption:function(b,f){this.options[b]=f;if(b===
"disabled")this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(b,f,h){var i=this.options[b];f=a.Event(f);f.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase();h=h||{};if(f.originalEvent){b=a.event.props.length;for(var g;b;){g=a.event.props[--b];f[g]=f.originalEvent[g]}}this.element.trigger(f,
h);return!(a.isFunction(i)&&i.call(this.element[0],f,h)===false||f.isDefaultPrevented())}}})(jQuery);(function(a,c){a.widget("mobile.widget",{_getCreateOptions:function(){var d=this.element,e={};a.each(this.options,function(b){var f=d.jqmData(b.replace(/[A-Z]/g,function(h){return"-"+h.toLowerCase()}));if(f!==c)e[b]=f});return e}})})(jQuery);
(function(a){function c(){var f=d.width(),h=[],i=[],g;e.removeClass("min-width-"+b.join("px min-width-")+"px max-width-"+b.join("px max-width-")+"px");a.each(b,function(j,m){f>=m&&h.push("min-width-"+m+"px");f<=m&&i.push("max-width-"+m+"px")});if(h.length)g=h.join(" ");if(i.length)g+=" "+i.join(" ");e.addClass(g)}var d=a(window),e=a("html"),b=[320,480,768,1024];a.mobile.media=function(){var f={},h=a("<div id='jquery-mediatest'>"),i=a("<body>").append(h);return function(g){if(!(g in f)){var j=document.createElement("style"),
m="@media "+g+" { #jquery-mediatest { position:absolute; } }";j.type="text/css";if(j.styleSheet)j.styleSheet.cssText=m;else j.appendChild(document.createTextNode(m));e.prepend(i).prepend(j);f[g]=h.css("position")==="absolute";i.add(j).remove()}return f[g]}}();a.mobile.addResolutionBreakpoints=function(f){if(a.type(f)==="array")b=b.concat(f);else b.push(f);b.sort(function(h,i){return h-i});c()};a(document).bind("mobileinit.htmlclass",function(){d.bind("orientationchange.htmlclass resize.htmlclass",
function(f){f.orientation&&e.removeClass("portrait landscape").addClass(f.orientation);c()})});a(function(){d.trigger("orientationchange.htmlclass")})})(jQuery);
(function(a,c){function d(g){var j=g.charAt(0).toUpperCase()+g.substr(1);g=(g+" "+f.join(j+" ")+j).split(" ");for(var m in g)if(b[m]!==c)return true}var e=a("<body>").prependTo("html"),b=e[0].style,f=["webkit","moz","o"],h=window.palmGetResource||window.PalmServiceBridge,i=window.blackberry;a.mobile.browser={};a.mobile.browser.ie=function(){for(var g=3,j=document.createElement("div"),m=j.all||[];j.innerHTML="<!--[if gt IE "+ ++g+"]><br><![endif]--\>",m[0];);return g>4?g:!g}();a.extend(a.support,{orientation:"orientation"in
window,touch:"ontouchend"in document,cssTransitions:"WebKitTransitionEvent"in window,pushState:!!history.pushState,mediaquery:a.mobile.media("only all"),cssPseudoElement:!!d("content"),boxShadow:!!d("boxShadow")&&!i,scrollTop:("pageXOffset"in window||"scrollTop"in document.documentElement||"scrollTop"in e[0])&&!h,dynamicBaseTag:function(){var g=location.protocol+"//"+location.host+location.pathname+"ui-dir/",j=a("head base"),m=null,p="";if(j.length)p=j.attr("href");else j=m=a("<base>",{href:g}).appendTo("head");
var k=a("<a href='testurl'></a>").prependTo(e)[0].href;j[0].href=p?p:location.pathname;m&&m.remove();return k.indexOf(g)===0}(),eventCapture:"addEventListener"in document});e.remove();a.support.boxShadow||a("html").addClass("ui-mobile-nosupport-boxshadow")})(jQuery);
(function(a,c,d,e){function b(n){for(;n&&typeof n.originalEvent!=="undefined";)n=n.originalEvent;return n}function f(n){var v={};for(n=a(n);n&&n.length;){var s=n.data(w),z;for(z in s)if(s[z])v[z]=v.hasVirtualBinding=true;n=n.parent()}return v}function h(){if(o.touchbindings){G.unbind("touchmove",k).unbind("touchend",q).unbind("scroll",p);o.touchbindings=0}}function i(){if(t){clearTimeout(t);t=0}t=setTimeout(function(){N=t=0;L.length=0;Q=false;h()},a.vmouse.resetTimerDuration)}function g(n,v,s){var z=
false,D;if(!(D=s&&s[n])){if(s=!s)a:{for(s=a(v.target);s&&s.length;){if((D=s.data(w))&&(!n||D[n])){s=s;break a}s=s.parent()}s=null}D=s}if(D){z=v;s=z.type;z=a.Event(z);z.type=n;var H=z.originalEvent,J=a.event.props;if(H)for(n=J.length;n;){D=J[--n];z[D]=H[D]}if(s.search(/^touch/)!==-1){n=b(H);s=n.touches;n=n.changedTouches;if(s=s&&s.length?s[0]:n&&n.length?n[0]:e){n=0;for(H=l.length;n<H;n++){D=l[n];z[D]=s[D]}}}z=z;a(v.target).trigger(z);z=z.isDefaultPrevented()}return z}function j(n){var v=a(n.target).data(x);
if(!Q&&(!N||N!==v))g("v"+n.type,n)}function m(n){var v=b(n).touches;if(v&&v.length===1){var s=n.target;v=f(s);if(v.hasVirtualBinding){N=O++;a(s).data(x,N);if(t){clearTimeout(t);t=0}if(!o.touchbindings){G.bind("touchend",q).bind("touchmove",k).bind("scroll",p);o.touchbindings=1}K=false;s=b(n).touches[0];B=s.pageX;E=s.pageY;if(F){I=c.pageXOffset;R=c.pageYOffset}g("vmouseover",n,v);g("vmousedown",n,v)}}}function p(n){K||g("vmousecancel",n,f(n.target));K=true;i()}function k(n){var v=b(n).touches[0],s=
K,z=a.vmouse.moveDistanceThreshold;K=K||F&&(I!==c.pageXOffset||R!==c.pageYOffset)||Math.abs(v.pageX-B)>z||Math.abs(v.pageY-E)>z;v=f(n.target);K&&!s&&g("vmousecancel",n,v);g("vmousemove",n,v);i()}function q(n){h();var v=f(n.target);g("vmouseup",n,v);if(!K)if(g("vclick",n,v)){var s=b(n).changedTouches[0];L.push({touchID:N,x:s.clientX,y:s.clientY});Q=true}g("vmouseout",n,v);K=false;i()}function u(n){n=n.data(w);var v;if(n)for(v in n)if(n[v])return true;return false}function r(){}function y(n){var v=
n.substr(1);return{setup:function(){var s=a(this);u(s)||s.data(w,{});s.data(w)[n]=true;o[n]=(o[n]||0)+1;o[n]===1&&G.bind(v,j);s.bind(v,r);if(C){o.touchstart=(o.touchstart||0)+1;o.touchstart===1&&G.bind("touchstart",m)}},teardown:function(){--o[n];o[n]||G.unbind(v,j);if(C){--o.touchstart;o.touchstart||G.unbind("touchstart",m)}var s=a(this);s.data(w)[n]=false;s.unbind(v,r);u(s)||s.removeData(w)}}}var w="virtualMouseBindings",x="virtualTouchID",A="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),
l="clientX clientY pageX pageY screenX screenY".split(" "),o={},t=0,B=0,E=0,I=0,R=0,K=false,L=[],Q=false,F=a.support.scrollTop,C=a.support.eventCapture,G=a(d),O=1,N=0;a.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(var U=0;U<A.length;U++)a.event.special[A[U]]=y(A[U]);C&&d.addEventListener("click",function(n){var v=L.length,s=n.target;if(v)for(var z=n.clientX,D=n.clientY,H=a.vmouse.clickDistanceThreshold,J=s;J;){for(var P=0;P<v;P++){var T=L[P];if(J===s&&Math.abs(T.x-
z)<H&&Math.abs(T.y-D)<H||a(J).data(x)===T.touchID){n.preventDefault();n.stopPropagation();return}}J=J.parentNode}},true)})(jQuery,window,document);
(function(a,c){function d(i,g,j){var m=j.type;j.type=g;a.event.handle.call(i,j);j.type=m}a.each("touchstart touchmove touchend orientationchange tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(i,g){a.fn[g]=function(j){return j?this.bind(g,j):this.trigger(g)};a.attrFn[g]=true});var e=a.support.touch,b=e?"touchstart":"mousedown",f=e?"touchend":"mouseup",h=e?"touchmove":"mousemove";a.event.special.scrollstart={enabled:true,setup:function(){function i(p,k){j=k;d(g,j?
"scrollstart":"scrollstop",p)}var g=this,j,m;a(g).bind("touchmove scroll",function(p){if(a.event.special.scrollstart.enabled){j||i(p,true);clearTimeout(m);m=setTimeout(function(){i(p,false)},50)}})}};a.event.special.tap={setup:function(){var i=this,g=a(i);g.bind("vmousedown",function(j){function m(){k=false;clearTimeout(u);g.unbind("vclick",p).unbind("vmousecancel",m)}function p(r){m();q==r.target&&d(i,"tap",r)}if(j.which&&j.which!==1)return false;var k=true,q=j.target,u;g.bind("vmousecancel",m).bind("vclick",
p);u=setTimeout(function(){k&&d(i,"taphold",j)},750)})}};a.event.special.swipe={setup:function(){var i=a(this);i.bind(b,function(g){function j(q){if(p){var u=q.originalEvent.touches?q.originalEvent.touches[0]:q;k={time:(new Date).getTime(),coords:[u.pageX,u.pageY]};Math.abs(p.coords[0]-k.coords[0])>10&&q.preventDefault()}}var m=g.originalEvent.touches?g.originalEvent.touches[0]:g,p={time:(new Date).getTime(),coords:[m.pageX,m.pageY],origin:a(g.target)},k;i.bind(h,j).one(f,function(){i.unbind(h,j);
if(p&&k)if(k.time-p.time<1E3&&Math.abs(p.coords[0]-k.coords[0])>30&&Math.abs(p.coords[1]-k.coords[1])<75)p.origin.trigger("swipe").trigger(p.coords[0]>k.coords[0]?"swipeleft":"swiperight");p=k=c})})}};(function(i){function g(){var k=m();if(k!==p){p=k;j.trigger("orientationchange")}}var j=i(window),m,p;i.event.special.orientationchange={setup:function(){if(i.support.orientation)return false;p=m();j.bind("resize",g)},teardown:function(){if(i.support.orientation)return false;j.unbind("resize",g)},add:function(k){var q=
k.handler;k.handler=function(u){u.orientation=m();return q.apply(this,arguments)}}};m=function(){var k=document.documentElement;return k&&k.clientWidth/k.clientHeight<1.1?"portrait":"landscape"}})(jQuery);a.each({scrollstop:"scrollstart",taphold:"tap",swipeleft:"swipe",swiperight:"swipe"},function(i,g){a.event.special[i]={setup:function(){a(this).bind(g,a.noop)}}})})(jQuery);
(function(a,c,d){function e(m){m=m||location.href;return"#"+m.replace(/^[^#]*#?(.*)$/,"$1")}var b="hashchange",f=document,h,i=a.event.special,g=f.documentMode,j="on"+b in c&&(g===d||g>7);a.fn[b]=function(m){return m?this.bind(b,m):this.trigger(b)};a.fn[b].delay=50;i[b]=a.extend(i[b],{setup:function(){if(j)return false;a(h.start)},teardown:function(){if(j)return false;a(h.stop)}});h=function(){function m(){var w=e(),x=y(q);if(w!==q){r(q=w,x);a(c).trigger(b)}else if(x!==q)location.href=location.href.replace(/#.*/,
"")+x;k=setTimeout(m,a.fn[b].delay)}var p={},k,q=e(),u=function(w){return w},r=u,y=u;p.start=function(){k||m()};p.stop=function(){k&&clearTimeout(k);k=d};a.browser.msie&&!j&&function(){var w,x;p.start=function(){if(!w){x=(x=a.fn[b].src)&&x+e();w=a('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){x||r(e());m()}).attr("src",x||"javascript:0").insertAfter("body")[0].contentWindow;f.onpropertychange=function(){try{if(event.propertyName==="title")w.document.title=f.title}catch(A){}}}};
p.stop=u;y=function(){return e(w.location.href)};r=function(A,l){var o=w.document,t=a.fn[b].domain;if(A!==l){o.title=f.title;o.open();t&&o.write('<script>document.domain="'+t+'"<\/script>');o.close();w.location.hash=A}}}();return p}()})(jQuery,this);
(function(a){a.widget("mobile.page",a.mobile.widget,{options:{backBtnText:"Back",addBackBtn:true,backBtnTheme:null,degradeInputs:{color:false,date:false,datetime:false,"datetime-local":false,email:false,month:false,number:false,range:"number",search:true,tel:false,time:false,url:false,week:false},keepNative:null},_create:function(){var c=this.element,d=this.options;this.keepNative=":jqmData(role='none'), :jqmData(role='nojs')"+(d.keepNative?", "+d.keepNative:"");if(this._trigger("beforeCreate")!==
false){c.find(":jqmData(role='page'), :jqmData(role='content')").andSelf().each(function(){a(this).addClass("ui-"+a(this).jqmData("role"))});c.find(":jqmData(role='nojs')").addClass("ui-nojs");c.find(":jqmData(role)").andSelf().each(function(){var e=a(this),b=e.jqmData("role"),f=e.jqmData("theme");if(b==="header"||b==="footer"){e.addClass("ui-bar-"+(f||e.parent(":jqmData(role='page')").jqmData("theme")||"a"));e.attr("role",b==="header"?"banner":"contentinfo");f=e.children("a");var h=f.hasClass("ui-btn-left"),
i=f.hasClass("ui-btn-right");if(!h)h=f.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length;i||f.eq(1).addClass("ui-btn-right");if(d.addBackBtn&&b==="header"&&a(".ui-page").length>1&&c.jqmData("url")!==a.mobile.path.stripHash(location.hash)&&!h&&e.jqmData("backbtn")!==false){f=a("<a href='#' class='ui-btn-left' data-"+a.mobile.ns+"rel='back' data-"+a.mobile.ns+"icon='arrow-l'>"+d.backBtnText+"</a>").prependTo(e);d.backBtnTheme&&f.attr("data-"+a.mobile.ns+"theme",d.backBtnTheme)}e.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({tabindex:"0",
role:"heading","aria-level":"1"})}else if(b==="content"){f&&e.addClass("ui-body-"+f);e.attr("role","main")}else if(b==="page")e.addClass("ui-body-"+(f||"c"));switch(b){case "header":case "footer":case "page":case "content":e.addClass("ui-"+b);break;case "collapsible":case "fieldcontain":case "navbar":case "listview":case "dialog":e[b]()}});this._enhanceControls();c.find(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a").not(".ui-btn").not(this.keepNative).buttonMarkup();c.find(":jqmData(role='controlgroup')").controlgroup();
c.find("a:not(.ui-btn):not(.ui-link-inherit)").not(this.keepNative).addClass("ui-link");c.fixHeaderFooter()}},_typeAttributeRegex:/\s+type=["']?\w+['"]?/,_enhanceControls:function(){var c=this.options,d=this;this.element.find("input").not(this.keepNative).each(function(){var f=this.getAttribute("type"),h=c.degradeInputs[f]||"text";c.degradeInputs[f]&&a(this).replaceWith(a("<div>").html(a(this).clone()).html().replace(d._typeAttributeRegex,' type="'+h+'" data-'+a.mobile.ns+'type="'+f+'" '))});var e=
this.element.find("input, textarea, select, button"),b=e.not(this.keepNative);e=e.filter("input[type=text]");e.length&&typeof e[0].autocorrect!=="undefined"&&e.each(function(){this.setAttribute("autocorrect","off");this.setAttribute("autocomplete","off")});b.filter("[type='radio'], [type='checkbox']").checkboxradio();b.filter("button, [type='button'], [type='submit'], [type='reset'], [type='image']").button();b.filter("input, textarea").not("[type='radio'], [type='checkbox'], [type='button'], [type='submit'], [type='reset'], [type='image'], [type='hidden']").textinput();
b.filter("input, select").filter(":jqmData(role='slider'), :jqmData(type='range')").slider();b.filter("select:not(:jqmData(role='slider'))").selectmenu()}})})(jQuery);
(function(a,c){a.extend(a.mobile,{ns:"",subPageUrlKey:"ui-page",nonHistorySelectors:"dialog",activePageClass:"ui-page-active",activeBtnClass:"ui-btn-active",ajaxEnabled:true,hashListeningEnabled:true,ajaxLinksEnabled:true,ajaxFormsEnabled:true,defaultTransition:"slide",loadingMessage:"loading",pageLoadErrorMessage:"Error Loading Page",metaViewportContent:"width=device-width, minimum-scale=1, maximum-scale=1",gradeA:function(){return a.support.mediaquery||a.mobile.browser.ie&&a.mobile.browser.ie>=
7},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91},silentScroll:function(e){e=e||0;a.event.special.scrollstart.enabled=false;setTimeout(function(){c.scrollTo(0,e);a(document).trigger("silentscroll",
{x:0,y:e})},20);setTimeout(function(){a.event.special.scrollstart.enabled=true},150)}});a.fn.jqmData=function(e,b){return this.data(e?a.mobile.ns+e:e,b)};a.jqmData=function(e,b,f){return a.data(e,b&&a.mobile.ns+b,f)};a.fn.jqmRemoveData=function(e){return this.removeData(a.mobile.ns+e)};a.jqmRemoveData=function(e,b){return a.removeData(e,b&&a.mobile.ns+b)};a.jqmHasData=function(e,b){return a.hasData(e,b&&a.mobile.ns+b)};var d=a.find;a.find=function(e,b,f,h){e=e.replace(/:jqmData\(([^)]*)\)/g,"[data-"+
(a.mobile.ns||"")+"$1]");return d.call(this,e,b,f,h)};a.extend(a.find,d);a.find.matches=function(e,b){return a.find(e,null,null,b)};a.find.matchesSelector=function(e,b){return a.find(b,null,null,[e]).length>0}})(jQuery,this);
(function(a,c){function d(l){if(i&&(!i.closest(".ui-page-active").length||l))i.removeClass(a.mobile.activeBtnClass);i=null}var e=a(window),b=a("html"),f=a("head"),h={get:function(l){if(l===c)l=location.hash;return h.stripHash(l).replace(/[^\/]*\.[^\/*]+$/,"")},getFilePath:function(l){var o="&"+a.mobile.subPageUrlKey;return l&&l.split(o)[0].split(q)[0]},set:function(l){location.hash=l},origin:"",setOrigin:function(){h.origin=h.get(location.protocol+"//"+location.host+location.pathname)},makeAbsolute:function(l){return h.isPath(window.location.hash)?
h.get()+l:l},isPath:function(l){return/\//.test(l)},clean:function(l){return l.replace(RegExp("^"+location.protocol+"//"+location.host+location.pathname),"")},stripHash:function(l){return l.replace(/^#/,"")},isExternal:function(l){return h.hasProtocol(h.clean(l))},hasProtocol:function(l){return/^(:?\w+:)/.test(l)},isRelative:function(l){return/^[^\/|#]/.test(l)&&!h.hasProtocol(l)},isEmbeddedPage:function(l){return/^#/.test(l)}},i=null,g={stack:[],activeIndex:0,getActive:function(){return g.stack[g.activeIndex]},
getPrev:function(){return g.stack[g.activeIndex-1]},getNext:function(){return g.stack[g.activeIndex+1]},addNew:function(l,o,t,B){g.getNext()&&g.clearForward();g.stack.push({url:l,transition:o,title:t,page:B});g.activeIndex=g.stack.length-1},clearForward:function(){g.stack=g.stack.slice(0,g.activeIndex+1)},directHashChange:function(l){var o,t,B;a.each(g.stack,function(E,I){if(l.currentUrl===I.url){o=E<g.activeIndex;t=!o;B=E}});this.activeIndex=B!==c?B:this.activeIndex;if(o)l.isBack();else t&&l.isForward()},
ignoreNextHashChange:true},j="[tabindex],a,button:visible,select:visible,input",m=null,p=[],k=false,q="&ui-state=dialog",u=f.children("base"),r=location.protocol+"//"+location.host,y=h.get(r+location.pathname),w=y;if(u.length){var x=u.attr("href");if(x)w=x.search(/^[^:\/]+:\/\/[^\/]+\/?/)===-1?x.charAt(0)==="/"?r+x:y+x:x;w+=w.charAt(w.length-1)==="/"?" ":"/"}var A=a.support.dynamicBaseTag?{element:u.length?u:a("<base>",{href:w}).prependTo(f),set:function(l){A.element.attr("href",w+h.get(l))},reset:function(){A.element.attr("href",
w)}}:c;h.setOrigin();a.fn.animationComplete=function(l){if(a.support.cssTransitions)return a(this).one("webkitAnimationEnd",l);else{setTimeout(l,0);return a(this)}};a.mobile.updateHash=h.set;a.mobile.path=h;a.mobile.base=A;a.mobile.urlstack=g.stack;a.mobile.urlHistory=g;a.mobile.allowCrossDomainPages=false;a.mobile.changePage=function(l,o,t,B,E){function I(){k=false;p.length>0&&a.mobile.changePage.apply(a.mobile,p.pop())}function R(){function H(){if(B!==false&&C){g.ignoreNextHashChange=false;h.set(C)}var M=
l.jqmData("title")||l.find(".ui-header .ui-title").text();if(M&&D==document.title)D=M;!s&&!z&&g.addNew(C,o,D,l);document.title=g.getActive().title;d();a.mobile.silentScroll(l.jqmData("lastScroll"));M=l;var S=M.jqmData("lastClicked");if(S&&S.length)S.focus();else{S=M.find(".ui-title:eq(0)");S.length?S.focus():M.find(j).eq(0).focus()}F&&F.data("page")._trigger("hide",null,{nextPage:l});l.data("page")._trigger("show",null,{prevPage:F||a("")});a.mobile.activePage=l;n!==null&&n.remove();b.removeClass("ui-mobile-rendering");
I()}function J(M){a.mobile.pageContainer.addClass(M);V.push(M)}a.mobile.silentScroll();var P=e.scrollTop(),T=["flip"],V=[];if(C.indexOf("&"+a.mobile.subPageUrlKey)>-1)l=a(":jqmData(url='"+C+"')");if(F){F.jqmData("lastScroll",P).jqmData("lastClicked",i);F.data("page")._trigger("beforehide",null,{nextPage:l})}l.data("page")._trigger("beforeshow",null,{prevPage:F||a("")});if(o&&o!=="none"){a.mobile.pageLoading(true);a.inArray(o,T)>=0&&J("ui-mobile-viewport-perspective");J("ui-mobile-viewport-transitioning");
if(F)F.addClass(o+" out "+(t?"reverse":""));l.addClass(a.mobile.activePageClass+" "+o+" in "+(t?"reverse":""));l.animationComplete(function(){l.add(F).removeClass("out in reverse "+o);F&&F.removeClass(a.mobile.activePageClass);H();a.mobile.pageContainer.removeClass(V.join(" "));V=[]})}else{a.mobile.pageLoading(true);F&&F.removeClass(a.mobile.activePageClass);l.addClass(a.mobile.activePageClass);H()}}function K(){if(m||l.jqmData("role")==="dialog"){C=g.getActive().url+q;if(m){l.attr("data-"+a.mobile.ns+
"role",m);m=null}}l.page()}var L=a.type(l)==="array",Q=a.type(l)==="object",F=L?l[0]:a.mobile.activePage;l=L?l[1]:l;var C=a.type(l)==="string"?h.stripHash(l):"",G=C,O,N="get",U=false,n=null,v=g.getActive(),s=false,z=false,D=document.title;if(!(v&&g.stack.length>1&&v.url===C&&!L&&!Q))if(k)p.unshift(arguments);else{k=true;E&&g.directHashChange({currentUrl:C,isBack:function(){z=!(s=true);t=true;o=o||v.transition},isForward:function(){z=!(s=false);o=o||g.getActive().transition}});if(Q&&l.url){C=l.url;
O=l.data;N=l.type;U=true;if(O&&N==="get"){if(a.type(O)==="object")O=a.param(O);C+="?"+O;O=c}}A&&A.reset();if(window.document.activeElement)a(window.document.activeElement||"").add("input:focus, textarea:focus, select:focus").blur();if(C){l=a(":jqmData(url='"+C+"')");G=h.getFilePath(C)}else{L=l.attr("data-"+a.mobile.ns+"url");Q=h.getFilePath(L);if(L!==Q)G=Q}if(o===c)o=m&&m==="dialog"?"pop":a.mobile.defaultTransition;if(l.length&&!U){G&&A&&A.set(G);K();R()}else{if(l.length)n=l;a.mobile.pageLoading();
a.ajax({url:G,type:N,data:O,dataType:"html",success:function(H){var J=a("<div></div>"),P,T=H.match(/<title[^>]*>([^<]*)/)&&RegExp.$1,V=RegExp("\\bdata-"+a.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");if(RegExp(".*(<[^>]+\\bdata-"+a.mobile.ns+"role=[\"']?page[\"']?[^>]*>).*").test(H)&&RegExp.$1&&V.test(RegExp.$1)&&RegExp.$1)P=RegExp.$1;if(P){A&&A.set(P);C=G=h.getFilePath(P)}else A&&A.set(G);J.get(0).innerHTML=H;l=J.find(":jqmData(role='page'), :jqmData(role='dialog')").first();if(T)D=T;if(!a.support.dynamicBaseTag){var M=
h.get(G);l.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var S=a(this).is("[href]")?"href":"src",W=a(this).attr(S);W=W.replace(location.protocol+"//"+location.host+location.pathname,"");/^(\w+:|#|\/)/.test(W)||a(this).attr(S,M+W)})}l.attr("data-"+a.mobile.ns+"url",G).appendTo(a.mobile.pageContainer);K();setTimeout(function(){R()},0)},error:function(){a.mobile.pageLoading(true);d(true);A&&A.set(h.get());I();a("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>"+
a.mobile.pageLoadErrorMessage+"</h1></div>").css({display:"block",opacity:0.96,top:a(window).scrollTop()+100}).appendTo(a.mobile.pageContainer).delay(800).fadeOut(400,function(){a(this).remove()})}})}}};a("form").live("submit",function(l){if(!(!a.mobile.ajaxEnabled||!a.mobile.ajaxFormsEnabled||a(this).is(":jqmData(ajax='false')"))){var o=a(this).attr("method"),t=h.clean(a(this).attr("action")),B=a(this).attr("target");if(!(h.isExternal(t)||B)){if(h.isRelative(t))t=h.makeAbsolute(t);a.mobile.changePage({url:t.length&&
t||h.get(),type:o.length&&o.toLowerCase()||"get",data:a(this).serialize()},a(this).jqmData("transition"),a(this).jqmData("direction"),true);l.preventDefault()}}});a("a").live("vclick",function(){a(this).closest(".ui-btn").not(".ui-disabled").addClass(a.mobile.activeBtnClass)});a("a").live("click",function(l){var o=a(this),t=o.attr("href")||"#",B=h.hasProtocol(t);t=h.clean(t);var E=o.is("[rel='external']"),I=h.isEmbeddedPage(t),R=a.mobile.allowCrossDomainPages&&location.protocol==="file:"&&t.search(/^https?:/)!=
-1;E=h.isExternal(t)&&!R||E&&!I;I=o.is("[target]");R=o.is(":jqmData(ajax='false')");var K=h.stripHash(t)==a.mobile.activePage.jqmData("url");if(o.is(":jqmData(rel='back')")){window.history.back();return false}if(t.replace(h.get(),"")=="#"||K)l.preventDefault();else{i=o.closest(".ui-btn");if(E||R||I||!a.mobile.ajaxEnabled||!a.mobile.ajaxLinksEnabled)window.setTimeout(function(){d(true)},200);else{E=o.jqmData("transition");I=(I=o.jqmData("direction"))&&I==="reverse"||o.jqmData("back");m=o.attr("data-"+
a.mobile.ns+"rel");if(h.isRelative(t)&&!B)t=h.makeAbsolute(t);t=h.stripHash(t);a.mobile.changePage(t,E,I);l.preventDefault()}}});e.bind("hashchange",function(){var l=h.stripHash(location.hash),o=a.mobile.urlHistory.stack.length===0?false:c;if(!a.mobile.hashListeningEnabled||!g.ignoreNextHashChange){if(!g.ignoreNextHashChange)g.ignoreNextHashChange=true}else{if(g.stack.length>1&&l.indexOf(q)>-1)if(a.mobile.activePage.is(".ui-dialog")){var t=function(){l=a.mobile.urlHistory.getActive().page};g.directHashChange({currentUrl:l,
isBack:t,isForward:t})}else{g.directHashChange({currentUrl:l,isBack:function(){window.history.back()},isForward:function(){window.history.forward()}});return}l?a.mobile.changePage(l,o,c,false,true):a.mobile.changePage(a.mobile.firstPage,o,true,false,true)}})})(jQuery);
(function(a,c){a.fn.fixHeaderFooter=function(){if(!a.support.scrollTop)return this;return this.each(function(){var d=a(this);d.jqmData("fullscreen")&&d.addClass("ui-page-fullscreen");d.find(".ui-header:jqmData(position='fixed')").addClass("ui-header-fixed ui-fixed-inline fade");d.find(".ui-footer:jqmData(position='fixed')").addClass("ui-footer-fixed ui-fixed-inline fade")})};a.fixedToolbars=function(){function d(){if(!h&&f=="overlay"){i||a.fixedToolbars.hide(true);a.fixedToolbars.startShowTimer()}}
function e(k){var q=0;if(k){var u=k.offsetParent,r=document.body;for(q=k.offsetTop;k&&k!=r;){q+=k.scrollTop||0;if(k==u){q+=u.offsetTop;u=k.offsetParent}k=k.parentNode}}return q}function b(k){var q=a(window).scrollTop(),u=e(k[0]),r=k.css("top")=="auto"?0:parseFloat(k.css("top")),y=window.innerHeight,w=k.outerHeight(),x=k.parents(".ui-page:not(.ui-page-fullscreen)").length;if(k.is(".ui-header-fixed")){r=q-u+r;if(r<u)r=0;return k.css("top",x?r:q)}else{r=q+y-w-(u-r);return k.css("top",x?r:q+y-w)}}if(a.support.scrollTop){var f=
"inline",h=false,i,g,j=null,m=false,p=true;a(function(){a(document).bind("vmousedown",function(){if(p)j=f}).bind("vclick",function(k){if(p)if(!a(k.target).closest("a,input,textarea,select,button,label,.ui-header-fixed,.ui-footer-fixed").length)if(!m){a.fixedToolbars.toggle(j);j=null}}).bind("scrollstart",function(){m=true;if(j==null)j=f;var k=j=="overlay";if(h=k||!!i){a.fixedToolbars.clearShowTimer();k&&a.fixedToolbars.hide(true)}}).bind("scrollstop",function(k){if(!a(k.target).closest("a,input,textarea,select,button,label,.ui-header-fixed,.ui-footer-fixed").length){m=
false;if(h){h=false;a.fixedToolbars.startShowTimer()}j=null}}).bind("silentscroll",d);a(window).bind("resize",d)});a(".ui-page").live("pagebeforeshow",function(k,q){var u=a(k.target).find(":jqmData(role='footer')"),r=u.data("id"),y=q.prevPage;prevFooter=y&&y.find(":jqmData(role='footer')");y=prevFooter.jqmData("id")===r;if(r&&y){g=u;b(g.removeClass("fade in out").appendTo(a.mobile.pageContainer))}});a(".ui-page").live("pageshow",function(){var k=a(this);g&&g.length&&setTimeout(function(){b(g.appendTo(k).addClass("fade"));
g=null},500);a.fixedToolbars.show(true,this)});return{show:function(k,q){a.fixedToolbars.clearShowTimer();f="overlay";return(q?a(q):a.mobile.activePage?a.mobile.activePage:a(".ui-page-active")).children(".ui-header-fixed:first, .ui-footer-fixed:not(.ui-footer-duplicate):last").each(function(){var u=a(this),r=a(window).scrollTop(),y=e(u[0]),w=window.innerHeight,x=u.outerHeight();r=u.is(".ui-header-fixed")&&r<=y+x||u.is(".ui-footer-fixed")&&y<=r+w;u.addClass("ui-fixed-overlay").removeClass("ui-fixed-inline");
!r&&!k&&u.animationComplete(function(){u.removeClass("in")}).addClass("in");b(u)})},hide:function(k){f="inline";return(a.mobile.activePage?a.mobile.activePage:a(".ui-page-active")).children(".ui-header-fixed:first, .ui-footer-fixed:not(.ui-footer-duplicate):last").each(function(){var q=a(this),u=q.css("top");u=u=="auto"?0:parseFloat(u);q.addClass("ui-fixed-inline").removeClass("ui-fixed-overlay");if(u<0||q.is(".ui-header-fixed")&&u!=0)if(k)q.css("top",0);else q.css("top")!=="auto"&&parseFloat(q.css("top"))!==
0&&q.animationComplete(function(){q.removeClass("out reverse");q.css("top",0)}).addClass("out reverse")})},startShowTimer:function(){a.fixedToolbars.clearShowTimer();var k=a.makeArray(arguments);i=setTimeout(function(){i=c;a.fixedToolbars.show.apply(null,k)},100)},clearShowTimer:function(){i&&clearTimeout(i);i=c},toggle:function(k){if(k)f=k;return f=="overlay"?a.fixedToolbars.hide():a.fixedToolbars.show()},setTouchToggleEnabled:function(k){p=k}}}}()})(jQuery);
(function(a,c){a.widget("mobile.checkboxradio",a.mobile.widget,{options:{theme:null},_create:function(){var d=this,e=this.element,b=e.closest("form,fieldset,:jqmData(role='page')").find("label").filter("[for="+e[0].id+"]"),f=e.attr("type"),h="ui-icon-"+f+"-off";if(!(f!="checkbox"&&f!="radio")){a.extend(this,{label:b,inputtype:f,checkedicon:"ui-icon-"+f+"-on",uncheckedicon:h});if(!this.options.theme)this.options.theme=this.element.jqmData("theme");b.buttonMarkup({theme:this.options.theme,icon:this.element.parents(":jqmData(type='horizontal')").length?
c:h,shadow:false});e.add(b).wrapAll("<div class='ui-"+f+"'></div>");b.bind({vmouseover:function(){if(a(this).parent().is(".ui-disabled"))return false},vclick:function(i){if(e.is(":disabled"))i.preventDefault();else{d._cacheVals();e.attr("checked",f==="radio"&&true||!e.is(":checked"));d._updateAll();return false}}});e.bind({vmousedown:function(){this._cacheVals()},vclick:function(){d._updateAll()},focus:function(){b.addClass("ui-focus")},blur:function(){b.removeClass("ui-focus")}});this.refresh()}},
_cacheVals:function(){this._getInputSet().each(function(){a(this).jqmData("cacheVal",a(this).is(":checked"))})},_getInputSet:function(){return this.element.closest("form,fieldset,:jqmData(role='page')").find("input[name='"+this.element.attr("name")+"'][type='"+this.inputtype+"']")},_updateAll:function(){var d=this;this._getInputSet().each(function(){if(a(this).is(":checked")||d.inputtype==="checkbox")a(this).trigger("change")}).checkboxradio("refresh")},refresh:function(){var d=this.element,e=this.label,
b=e.find(".ui-icon");if(d[0].checked){e.addClass(a.mobile.activeBtnClass);b.addClass(this.checkedicon).removeClass(this.uncheckedicon)}else{e.removeClass(a.mobile.activeBtnClass);b.removeClass(this.checkedicon).addClass(this.uncheckedicon)}d.is(":disabled")?this.disable():this.enable()},disable:function(){this.element.attr("disabled",true).parent().addClass("ui-disabled")},enable:function(){this.element.attr("disabled",false).parent().removeClass("ui-disabled")}})})(jQuery);
(function(a){a.widget("mobile.textinput",a.mobile.widget,{options:{theme:null},_create:function(){var c=this.element,d=this.options,e=d.theme;if(!e){e=this.element.closest("[class*='ui-bar-'],[class*='ui-body-']");e=e.length?/ui-(bar|body)-([a-z])/.exec(e.attr("class"))[2]:"c"}e=" ui-body-"+e;a("label[for="+c.attr("id")+"]").addClass("ui-input-text");c.addClass("ui-input-text ui-body-"+d.theme);var b=c;if(c.is("[type='search'],:jqmData(type='search')")){b=c.wrap('<div class="ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield'+
e+'"></div>').parent();var f=a('<a href="#" class="ui-input-clear" title="clear text">clear text</a>').tap(function(g){c.val("").focus();c.trigger("change");f.addClass("ui-input-clear-hidden");g.preventDefault()}).appendTo(b).buttonMarkup({icon:"delete",iconpos:"notext",corners:true,shadow:true});d=function(){c.val()==""?f.addClass("ui-input-clear-hidden"):f.removeClass("ui-input-clear-hidden")};d();c.keyup(d)}else c.addClass("ui-corner-all ui-shadow-inset"+e);c.focus(function(){b.addClass("ui-focus")}).blur(function(){b.removeClass("ui-focus")});
if(c.is("textarea")){var h=function(){var g=c[0].scrollHeight;c[0].clientHeight<g&&c.css({height:g+15})},i;c.keyup(function(){clearTimeout(i);i=setTimeout(h,100)})}},disable:function(){(this.element.attr("disabled",true).is("[type='search'],:jqmData(type='search')")?this.element.parent():this.element).addClass("ui-disabled")},enable:function(){(this.element.attr("disabled",false).is("[type='search'],:jqmData(type='search')")?this.element.parent():this.element).removeClass("ui-disabled")}})})(jQuery);
(function(a){a.widget("mobile.selectmenu",a.mobile.widget,{options:{theme:null,disabled:false,icon:"arrow-d",iconpos:"right",inline:null,corners:true,shadow:true,iconshadow:true,menuPageTheme:"b",overlayTheme:"a",hidePlaceholderMenuItems:true,closeText:"Close",nativeMenu:true},_create:function(){var c=this,d=this.options,e=this.element.wrap("<div class='ui-select'>"),b=e.attr("id"),f=a("label[for="+b+"]").addClass("ui-select"),h=e[0].selectedIndex==-1?0:e[0].selectedIndex,i=(c.options.nativeMenu?
a("<div/>"):a("<a>",{href:"#",role:"button",id:m,"aria-haspopup":"true","aria-owns":p})).text(a(e[0].options.item(h)).text()).insertBefore(e).buttonMarkup({theme:d.theme,icon:d.icon,iconpos:d.iconpos,inline:d.inline,corners:d.corners,shadow:d.shadow,iconshadow:d.iconshadow}),g=c.isMultiple=e[0].multiple;d.nativeMenu&&window.opera&&window.opera.version&&e.addClass("ui-select-nativeonly");if(!d.nativeMenu){var j=e.find("option"),m=b+"-button",p=b+"-menu",k=e.closest(".ui-page");h=/ui-btn-up-([a-z])/.exec(i.attr("class"))[1];
var q=a("<div data-"+a.mobile.ns+"role='dialog' data-"+a.mobile.ns+"theme='"+d.menuPageTheme+"'><div data-"+a.mobile.ns+"role='header'><div class='ui-title'>"+f.text()+"</div></div><div data-"+a.mobile.ns+"role='content'></div></div>").appendTo(a.mobile.pageContainer).page(),u=q.find(".ui-content");q.find(".ui-header a");var r=a("<div>",{"class":"ui-selectmenu-screen ui-screen-hidden"}).appendTo(k),y=a("<div>",{"class":"ui-selectmenu ui-selectmenu-hidden ui-overlay-shadow ui-corner-all pop ui-body-"+
d.overlayTheme}).insertAfter(r),w=a("<ul>",{"class":"ui-selectmenu-list",id:p,role:"listbox","aria-labelledby":m}).attr("data-"+a.mobile.ns+"theme",h).appendTo(y),x=a("<div>",{"class":"ui-header ui-bar-"+h}).prependTo(y),A=a("<h1>",{"class":"ui-title"}).appendTo(x),l=a("<a>",{text:d.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+a.mobile.ns+"iconpos","notext").attr("data-"+a.mobile.ns+"icon","delete").appendTo(x).buttonMarkup()}if(g)c.buttonCount=a("<span>").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(i);
d.disabled&&this.disable();e.change(function(){c.refresh()});a.extend(c,{select:e,optionElems:j,selectID:b,label:f,buttonId:m,menuId:p,thisPage:k,button:i,menuPage:q,menuPageContent:u,screen:r,listbox:y,list:w,menuType:void 0,header:x,headerClose:l,headerTitle:A,placeholder:""});if(d.nativeMenu)e.appendTo(i).bind("vmousedown",function(){i.addClass(a.mobile.activeBtnClass)}).bind("focus vmouseover",function(){i.trigger("vmouseover")}).bind("vmousemove",function(){i.removeClass(a.mobile.activeBtnClass)}).bind("change blur vmouseout",
function(){i.trigger("vmouseout").removeClass(a.mobile.activeBtnClass)});else{c.refresh();e.attr("tabindex","-1").focus(function(){a(this).blur();i.focus()});i.bind("vclick keydown",function(o){if(o.type=="vclick"||o.keyCode&&(o.keyCode===a.mobile.keyCode.ENTER||o.keyCode===a.mobile.keyCode.SPACE)){c.open();o.preventDefault()}});w.attr("role","listbox").delegate(".ui-li>a","focusin",function(){a(this).attr("tabindex","0")}).delegate(".ui-li>a","focusout",function(){a(this).attr("tabindex","-1")}).delegate("li:not(.ui-disabled, .ui-li-divider)",
"vclick",function(o){var t=e[0].selectedIndex,B=w.find("li:not(.ui-li-divider)").index(this),E=c.optionElems.eq(B)[0];E.selected=g?!E.selected:true;g&&a(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",E.selected).toggleClass("ui-icon-checkbox-off",!E.selected);t!==B&&e.trigger("change");g||c.close();o.preventDefault()}).keydown(function(o){var t=a(o.target),B=t.closest("li");switch(o.keyCode){case 38:o=B.prev();if(o.length){t.blur().attr("tabindex","-1");o.find("a").first().focus()}return false;
case 40:o=B.next();if(o.length){t.blur().attr("tabindex","-1");o.find("a").first().focus()}return false;case 13:case 32:t.trigger("vclick");return false}});r.bind("vclick",function(){c.close()});c.headerClose.click(function(){if(c.menuType=="overlay"){c.close();return false}})}},_buildList:function(){var c=this,d=this.options,e=this.placeholder,b=[],f=[],h=c.isMultiple?"checkbox-off":"false";c.list.empty().filter(".ui-listview").listview("destroy");c.select.find("option").each(function(){var i=a(this),
g=i.parent(),j=i.text(),m="<a href='#'>"+j+"</a>",p=[],k=[];if(g.is("optgroup")){g=g.attr("label");if(a.inArray(g,b)===-1){f.push("<li data-"+a.mobile.ns+"role='list-divider'>"+g+"</li>");b.push(g)}}if(!this.getAttribute("value")||j.length==0||i.jqmData("placeholder")){d.hidePlaceholderMenuItems&&p.push("ui-selectmenu-placeholder");e=c.placeholder=j}if(this.disabled){p.push("ui-disabled");k.push("aria-disabled='true'")}f.push("<li data-"+a.mobile.ns+"icon='"+h+"' class='"+p.join(" ")+"' "+k.join(" ")+
">"+m+"</li>")});c.list.html(f.join(" "));c.list.find("li").attr({role:"option",tabindex:"-1"}).first().attr("tabindex","0");this.isMultiple||this.headerClose.hide();!this.isMultiple&&!e.length?this.header.hide():this.headerTitle.text(this.placeholder);c.list.listview()},refresh:function(c){var d=this,e=this.element,b=this.isMultiple,f=this.optionElems=e.find("option"),h=f.filter(":selected"),i=h.map(function(){return f.index(this)}).get();if(!d.options.nativeMenu&&(c||e[0].options.length!=d.list.find("li").length))d._buildList();
d.button.find(".ui-btn-text").text(function(){if(!b)return h.text();return h.length?h.map(function(){return a(this).text()}).get().join(", "):d.placeholder});if(b)d.buttonCount[h.length>1?"show":"hide"]().text(h.length);d.options.nativeMenu||d.list.find("li:not(.ui-li-divider)").removeClass(a.mobile.activeBtnClass).attr("aria-selected",false).each(function(g){if(a.inArray(g,i)>-1){g=a(this).addClass(a.mobile.activeBtnClass);g.find("a").attr("aria-selected",true);b&&g.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on")}})},
open:function(){function c(){d.list.find(".ui-btn-active").focus()}if(!(this.options.disabled||this.options.nativeMenu)){var d=this,e=d.list.parent().outerHeight(),b=d.list.parent().outerWidth(),f=a(window).scrollTop(),h=d.button.offset().top,i=window.innerHeight,g=window.innerWidth;d.button.addClass(a.mobile.activeBtnClass);setTimeout(function(){d.button.removeClass(a.mobile.activeBtnClass)},300);if(e>i-80||!a.support.scrollTop){f==0&&h>i&&d.thisPage.one("pagehide",function(){a(this).jqmData("lastScroll",
h)});d.menuPage.one("pageshow",function(){a(window).one("silentscroll",function(){c()})});d.menuType="page";d.menuPageContent.append(d.list);a.mobile.changePage(d.menuPage,"pop",false,true)}else{d.menuType="overlay";d.screen.height(a(document).height()).removeClass("ui-screen-hidden");var j=h-f,m=f+i-h,p=e/2,k=parseFloat(d.list.parent().css("max-width"));e=j>e/2&&m>e/2?h+d.button.outerHeight()/2-p:j>m?f+i-e-30:f+30;if(b<k)k=(g-b)/2;else{k=d.button.offset().left+d.button.outerWidth()/2-b/2;if(k<30)k=
30;else if(k+b>g)k=g-b-30}d.listbox.append(d.list).removeClass("ui-selectmenu-hidden").css({top:e,left:k}).addClass("in");c()}setTimeout(function(){d.isOpen=true},400)}},close:function(){function c(){setTimeout(function(){d.button.focus()},40);d.listbox.removeAttr("style").append(d.list)}if(!(this.options.disabled||!this.isOpen||this.options.nativeMenu)){var d=this;if(d.menuType=="page"){a.mobile.changePage([d.menuPage,d.thisPage],"pop",true,false);d.menuPage.one("pagehide",c)}else{d.screen.addClass("ui-screen-hidden");
d.listbox.addClass("ui-selectmenu-hidden").removeAttr("style").removeClass("in");c()}this.isOpen=false}},disable:function(){this.element.attr("disabled",true);this.button.addClass("ui-disabled").attr("aria-disabled",true);return this._setOption("disabled",true)},enable:function(){this.element.attr("disabled",false);this.button.removeClass("ui-disabled").attr("aria-disabled",false);return this._setOption("disabled",false)}})})(jQuery);
(function(a){a.fn.buttonMarkup=function(d){return this.each(function(){var e=a(this),b=a.extend({},a.fn.buttonMarkup.defaults,e.jqmData(),d),f,h="ui-btn-inner",i;c&&c();if(!b.theme){f=e.closest("[class*='ui-bar-'],[class*='ui-body-']");b.theme=f.length?/ui-(bar|body)-([a-z])/.exec(f.attr("class"))[2]:"c"}f="ui-btn ui-btn-up-"+b.theme;if(b.inline)f+=" ui-btn-inline";if(b.icon){b.icon="ui-icon-"+b.icon;b.iconpos=b.iconpos||"left";i="ui-icon "+b.icon;if(b.shadow)i+=" ui-icon-shadow"}if(b.iconpos){f+=
" ui-btn-icon-"+b.iconpos;b.iconpos=="notext"&&!e.attr("title")&&e.attr("title",e.text())}if(b.corners){f+=" ui-btn-corner-all";h+=" ui-btn-corner-all"}if(b.shadow)f+=" ui-shadow";e.attr("data-"+a.mobile.ns+"theme",b.theme).addClass(f);b=("<D class='"+h+"'><D class='ui-btn-text'></D>"+(b.icon?"<span class='"+i+"'></span>":"")+"</D>").replace(/D/g,b.wrapperEls);e.wrapInner(b)})};a.fn.buttonMarkup.defaults={corners:true,shadow:true,iconshadow:true,wrapperEls:"span"};var c=function(){a(".ui-btn:not(.ui-disabled)").live({vmousedown:function(){var d=
a(this).attr("data-"+a.mobile.ns+"theme");a(this).removeClass("ui-btn-up-"+d).addClass("ui-btn-down-"+d)},"vmousecancel vmouseup":function(){var d=a(this).attr("data-"+a.mobile.ns+"theme");a(this).removeClass("ui-btn-down-"+d).addClass("ui-btn-up-"+d)},"vmouseover focus":function(){var d=a(this).attr("data-"+a.mobile.ns+"theme");a(this).removeClass("ui-btn-up-"+d).addClass("ui-btn-hover-"+d)},"vmouseout blur":function(){var d=a(this).attr("data-"+a.mobile.ns+"theme");a(this).removeClass("ui-btn-hover-"+
d).addClass("ui-btn-up-"+d)}});c=null}})(jQuery);
(function(a){a.widget("mobile.button",a.mobile.widget,{options:{theme:null,icon:null,iconpos:null,inline:null,corners:true,shadow:true,iconshadow:true},_create:function(){var c=this.element,d=this.options;this.button=a("<div></div>").text(c.text()||c.val()).buttonMarkup({theme:d.theme,icon:d.icon,iconpos:d.iconpos,inline:d.inline,corners:d.corners,shadow:d.shadow,iconshadow:d.iconshadow}).insertBefore(c).append(c.addClass("ui-btn-hidden"));d=c.attr("type");d!=="button"&&d!=="reset"&&c.bind("vclick",
function(){var e=a("<input>",{type:"hidden",name:c.attr("name"),value:c.attr("value")}).insertBefore(c);a(document).submit(function(){e.remove()})});this.refresh()},enable:function(){this.element.attr("disabled",false);this.button.removeClass("ui-disabled").attr("aria-disabled",false);return this._setOption("disabled",false)},disable:function(){this.element.attr("disabled",true);this.button.addClass("ui-disabled").attr("aria-disabled",true);return this._setOption("disabled",true)},refresh:function(){this.element.attr("disabled")?
this.disable():this.enable()}})})(jQuery);
(function(a){a.widget("mobile.slider",a.mobile.widget,{options:{theme:null,trackTheme:null,disabled:false},_create:function(){var c=this,d=this.element,e=d.parents("[class*=ui-bar-],[class*=ui-body-]").eq(0);e=e.length?e.attr("class").match(/ui-(bar|body)-([a-z])/)[2]:"c";var b=this.options.theme?this.options.theme:e,f=this.options.trackTheme?this.options.trackTheme:e,h=d[0].nodeName.toLowerCase();e=h=="select"?"ui-slider-switch":"";var i=d.attr("id"),g=i+"-label";i=a("[for="+i+"]").attr("id",g);
var j=function(){return h=="input"?parseFloat(d.val()):d[0].selectedIndex},m=h=="input"?parseFloat(d.attr("min")):0,p=h=="input"?parseFloat(d.attr("max")):d.find("option").length-1,k=window.parseFloat(d.attr("step")||1),q=a('<div class="ui-slider '+e+" ui-btn-down-"+f+' ui-btn-corner-all" role="application"></div>'),u=a('<a href="#" class="ui-slider-handle"></a>').appendTo(q).buttonMarkup({corners:true,theme:b,shadow:true}).attr({role:"slider","aria-valuemin":m,"aria-valuemax":p,"aria-valuenow":j(),
"aria-valuetext":j(),title:j(),"aria-labelledby":g});a.extend(this,{slider:q,handle:u,dragging:false,beforeStart:null});if(h=="select"){q.wrapInner('<div class="ui-slider-inneroffset"></div>');d.find("option");d.find("option").each(function(r){var y=r==0?"b":"a",w=r==0?"right":"left";r=r==0?" ui-btn-down-"+f:" ui-btn-active";a('<div class="ui-slider-labelbg ui-slider-labelbg-'+y+r+" ui-btn-corner-"+w+'"></div>').prependTo(q);a('<span class="ui-slider-label ui-slider-label-'+y+r+" ui-btn-corner-"+
w+'" role="img">'+a(this).text()+"</span>").prependTo(u)})}i.addClass("ui-slider");d.addClass(h=="input"?"ui-slider-input":"ui-slider-switch").change(function(){c.refresh(j(),true)}).keyup(function(){c.refresh(j(),true,true)}).blur(function(){c.refresh(j(),true)});a(document).bind("vmousemove",function(r){if(c.dragging){c.refresh(r);return false}});q.bind("vmousedown",function(r){c.dragging=true;if(h==="select")c.beforeStart=d[0].selectedIndex;c.refresh(r);return false});q.add(document).bind("vmouseup",
function(){if(c.dragging){c.dragging=false;if(h==="select"){if(c.beforeStart===d[0].selectedIndex)c.refresh(c.beforeStart===0?1:0);var r=j();r=Math.round(r/(p-m)*100);u.addClass("ui-slider-handle-snapping").css("left",r+"%").animationComplete(function(){u.removeClass("ui-slider-handle-snapping")})}return false}});q.insertAfter(d);this.handle.bind("vmousedown",function(){a(this).focus()}).bind("vclick",false);this.handle.bind("keydown",function(r){var y=j();if(!c.options.disabled){switch(r.keyCode){case a.mobile.keyCode.HOME:case a.mobile.keyCode.END:case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:r.preventDefault();
if(!c._keySliding){c._keySliding=true;a(this).addClass("ui-state-active")}}switch(r.keyCode){case a.mobile.keyCode.HOME:c.refresh(m);break;case a.mobile.keyCode.END:c.refresh(p);break;case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:c.refresh(y+k);break;case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:c.refresh(y-k)}}}).keyup(function(){if(c._keySliding){c._keySliding=false;a(this).removeClass("ui-state-active")}});this.refresh()},
refresh:function(c,d,e){if(!this.options.disabled){var b=this.element,f=b[0].nodeName.toLowerCase(),h=f==="input"?parseFloat(b.attr("min")):0,i=f==="input"?parseFloat(b.attr("max")):b.find("option").length-1;if(typeof c==="object"){c=c;if(!this.dragging||c.pageX<this.slider.offset().left-8||c.pageX>this.slider.offset().left+this.slider.width()+8)return;c=Math.round((c.pageX-this.slider.offset().left)/this.slider.width()*100)}else{if(c==null)c=f==="input"?parseFloat(b.val()):b[0].selectedIndex;c=(parseFloat(c)-
h)/(i-h)*100}if(!isNaN(c)){if(c<0)c=0;if(c>100)c=100;var g=Math.round(c/100*(i-h))+h;if(g<h)g=h;if(g>i)g=i;this.handle.css("left",c+"%");this.handle.attr({"aria-valuenow":f==="input"?g:b.find("option").eq(g).attr("value"),"aria-valuetext":f==="input"?g:b.find("option").eq(g).text(),title:g});if(f==="select")g===0?this.slider.addClass("ui-slider-switch-a").removeClass("ui-slider-switch-b"):this.slider.addClass("ui-slider-switch-b").removeClass("ui-slider-switch-a");if(!e){if(f==="input")b.val(g);else b[0].selectedIndex=
g;d||b.trigger("change")}}}},enable:function(){this.element.attr("disabled",false);this.slider.removeClass("ui-disabled").attr("aria-disabled",false);return this._setOption("disabled",false)},disable:function(){this.element.attr("disabled",true);this.slider.addClass("ui-disabled").attr("aria-disabled",true);return this._setOption("disabled",true)}})})(jQuery);
(function(a){a.widget("mobile.collapsible",a.mobile.widget,{options:{expandCueText:" click to expand contents",collapseCueText:" click to collapse contents",collapsed:false,heading:">:header,>legend",theme:null,iconTheme:"d"},_create:function(){var c=this.element,d=this.options,e=c.addClass("ui-collapsible-contain"),b=c.find(d.heading).eq(0),f=e.wrapInner('<div class="ui-collapsible-content"></div>').find(".ui-collapsible-content");c=c.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set");
if(b.is("legend")){b=a('<div role="heading">'+b.html()+"</div>").insertBefore(b);b.next().remove()}b.insertBefore(f);b.addClass("ui-collapsible-heading").append('<span class="ui-collapsible-heading-status"></span>').wrapInner('<a href="#" class="ui-collapsible-heading-toggle"></a>').find("a:eq(0)").buttonMarkup({shadow:!!!c.length,corners:false,iconPos:"left",icon:"plus",theme:d.theme}).find(".ui-icon").removeAttr("class").buttonMarkup({shadow:true,corners:true,iconPos:"notext",icon:"plus",theme:d.iconTheme});
if(c.length)e.jqmData("collapsible-last")&&b.find("a:eq(0), .ui-btn-inner").addClass("ui-corner-bottom");else b.find("a:eq(0)").addClass("ui-corner-all").find(".ui-btn-inner").addClass("ui-corner-all");e.bind("collapse",function(h){if(!h.isDefaultPrevented()){h.preventDefault();b.addClass("ui-collapsible-heading-collapsed").find(".ui-collapsible-heading-status").text(d.expandCueText);b.find(".ui-icon").removeClass("ui-icon-minus").addClass("ui-icon-plus");f.addClass("ui-collapsible-content-collapsed").attr("aria-hidden",
true);e.jqmData("collapsible-last")&&b.find("a:eq(0), .ui-btn-inner").addClass("ui-corner-bottom")}}).bind("expand",function(h){if(!h.isDefaultPrevented()){h.preventDefault();b.removeClass("ui-collapsible-heading-collapsed").find(".ui-collapsible-heading-status").text(d.collapseCueText);b.find(".ui-icon").removeClass("ui-icon-plus").addClass("ui-icon-minus");f.removeClass("ui-collapsible-content-collapsed").attr("aria-hidden",false);e.jqmData("collapsible-last")&&b.find("a:eq(0), .ui-btn-inner").removeClass("ui-corner-bottom")}}).trigger(d.collapsed?
"collapse":"expand");if(c.length&&!c.jqmData("collapsiblebound")){c.jqmData("collapsiblebound",true).bind("expand",function(h){a(this).find(".ui-collapsible-contain").not(a(h.target).closest(".ui-collapsible-contain")).not("> .ui-collapsible-contain .ui-collapsible-contain").trigger("collapse")});c=c.find(":jqmData(role=collapsible)");c.first().find("a:eq(0)").addClass("ui-corner-top").find(".ui-btn-inner").addClass("ui-corner-top");c.last().jqmData("collapsible-last",true)}b.bind("vmouseup",function(h){b.is(".ui-collapsible-heading-collapsed")?
e.trigger("expand"):e.trigger("collapse");h.preventDefault()}).bind("vclick",false)}})})(jQuery);
(function(a){a.fn.controlgroup=function(c){return this.each(function(){function d(h){h.removeClass("ui-btn-corner-all ui-shadow").eq(0).addClass(f[0]).end().filter(":last").addClass(f[1]).addClass("ui-controlgroup-last")}var e=a.extend({direction:a(this).jqmData("type")||"vertical",shadow:false},c),b=a(this).find(">legend"),f=e.direction=="horizontal"?["ui-corner-left","ui-corner-right"]:["ui-corner-top","ui-corner-bottom"];a(this).find("input:eq(0)").attr("type");if(b.length){a(this).wrapInner('<div class="ui-controlgroup-controls"></div>');
a('<div role="heading" class="ui-controlgroup-label">'+b.html()+"</div>").insertBefore(a(this).children(0));b.remove()}a(this).addClass("ui-corner-all ui-controlgroup ui-controlgroup-"+e.direction);d(a(this).find(".ui-btn"));d(a(this).find(".ui-btn-inner"));e.shadow&&a(this).addClass("ui-shadow")})}})(jQuery);(function(a){a.fn.fieldcontain=function(){return this.addClass("ui-field-contain ui-body ui-br")}})(jQuery);
(function(a){a.widget("mobile.listview",a.mobile.widget,{options:{theme:"c",countTheme:"c",headerTheme:"b",dividerTheme:"b",splitIcon:"arrow-r",splitTheme:"b",inset:false},_create:function(){var c=this.element,d=this.options;c.addClass("ui-listview");d.inset&&c.addClass("ui-listview-inset ui-corner-all ui-shadow");this._itemApply(c,c);this.refresh(true)},_itemApply:function(c,d){d.find(".ui-li-count").addClass("ui-btn-up-"+(c.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all");d.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading");
d.find("p, dl").addClass("ui-li-desc");c.find("li").find(">img:eq(0), >:first>img:eq(0)").addClass("ui-li-thumb").each(function(){a(this).closest("li").addClass(a(this).is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb")});var e=d.find(".ui-li-aside");e.length&&e.each(function(b,f){a(f).prependTo(a(f).parent())});a.support.cssPseudoElement||a.nodeName(d[0],"ol")},_removeCorners:function(c){c.add(c.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb")).removeClass("ui-corner-top ui-corner-bottom ui-corner-br ui-corner-bl ui-corner-tr ui-corner-tl")},
refresh:function(c){this._createSubPages();var d=this.options,e=this.element,b=this,f=e.jqmData("dividertheme")||d.dividerTheme,h=e.children("li"),i=a.support.cssPseudoElement||!a.nodeName(e[0],"ol")?0:1;i&&e.find(".ui-li-dec").remove();h.each(function(g){var j=a(this),m="ui-li";if(!(!c&&j.hasClass("ui-li"))){var p=j.jqmData("theme")||d.theme,k=j.find(">a");if(k.length){var q=j.jqmData("icon");j.buttonMarkup({wrapperEls:"div",shadow:false,corners:false,iconpos:"right",icon:k.length>1||q===false?false:
q||"arrow-r",theme:p});k.first().addClass("ui-link-inherit");if(k.length>1){m+=" ui-li-has-alt";k=k.last();q=e.jqmData("splittheme")||k.jqmData("theme")||d.splitTheme;k.appendTo(j).attr("title",k.text()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:false,corners:false,theme:p,icon:false,iconpos:false}).find(".ui-btn-inner").append(a("<span>").buttonMarkup({shadow:true,corners:true,theme:q,iconpos:"notext",icon:e.jqmData("spliticon")||k.jqmData("icon")||d.splitIcon}))}}else if(j.jqmData("role")===
"list-divider"){m+=" ui-li-divider ui-btn ui-bar-"+f;j.attr("role","heading");if(i)i=1}else m+=" ui-li-static ui-body-"+p;if(d.inset){if(g===0){m+=" ui-corner-top";j.add(j.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-tr").end().find(".ui-li-thumb").addClass("ui-corner-tl");j.next().next().length&&b._removeCorners(j.next())}if(g===h.length-1){m+=" ui-corner-bottom";j.add(j.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").addClass("ui-corner-bl");
j.prev().prev().length&&b._removeCorners(j.prev())}}if(i&&m.indexOf("ui-li-divider")<0)(j.is(".ui-li-static:first")?j:j.find(".ui-link-inherit")).addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+i++ +". </span>");j.add(j.find(".ui-btn-inner")).addClass(m);c||b._itemApply(e,j)}})},_idStringEscape:function(c){return c.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var c=this.element,d=c.closest(".ui-page"),e=d.jqmData("url"),b=this.options,f=this,h=d.find(":jqmData(role='footer')").jqmData("id");
a(c.find("li>ul, li>ol").toArray().reverse()).each(function(i){var g=a(this),j=g.parent(),m=a(g.prevAll().toArray().reverse());m=m.length?m:a("<span>"+a.trim(j.contents()[0].nodeValue)+"</span>");var p=m.first().text();i=e+"&"+a.mobile.subPageUrlKey+"="+f._idStringEscape(p+" "+i);var k=g.jqmData("theme")||b.theme,q=g.jqmData("counttheme")||c.jqmData("counttheme")||b.countTheme;g.wrap("<div data-"+a.mobile.ns+"role='page'><div data-"+a.mobile.ns+"role='content'></div></div>").parent().before("<div data-"+
a.mobile.ns+"role='header' data-"+a.mobile.ns+"theme='"+b.headerTheme+"'><div class='ui-title'>"+p+"</div></div>").after(h?a("<div data-"+a.mobile.ns+"role='footer' data-"+a.mobile.ns+"id='"+h+"'>"):"").parent().attr("data-"+a.mobile.ns+"url",i).attr("data-"+a.mobile.ns+"theme",k).attr("data-"+a.mobile.ns+"count-theme",q).appendTo(a.mobile.pageContainer).page();g=j.find("a:first");g.length||(g=a("<a></a>").html(m||p).prependTo(j.empty()));g.attr("href","#"+i)}).listview()}})})(jQuery);
(function(a){a.mobile.listview.prototype.options.filter=false;a.mobile.listview.prototype.options.filterPlaceholder="Filter items...";a(":jqmData(role='listview')").live("listviewcreate",function(){var c=a(this),d=c.data("listview");if(d.options.filter){var e=a("<form>",{"class":"ui-listview-filter ui-bar-c",role:"search"});a("<input>",{placeholder:d.options.filterPlaceholder}).attr("data-"+a.mobile.ns+"type","search").bind("keyup change",function(){var b=this.value.toLowerCase(),f=c.children();f.show();
if(b)for(var h=false,i,g=f.length;g>=0;g--){i=a(f[g]);if(i.is("li:jqmData(role=list-divider)")){h||i.hide();h=false}else if(i.text().toLowerCase().indexOf(b)===-1)i.hide();else h=true}}).appendTo(e).textinput();a(this).jqmData("inset")&&e.addClass("ui-listview-filter-inset");e.insertBefore(c)}})})(jQuery);
(function(a){a.widget("mobile.dialog",a.mobile.widget,{options:{closeBtnText:"Close"},_create:function(){this.element.attr("role","dialog").addClass("ui-page ui-dialog ui-body-a").find(":jqmData(role=header)").addClass("ui-corner-top ui-overlay-shadow").prepend("<a href='#' data-"+a.mobile.ns+"icon='delete' data-"+a.mobile.ns+"rel='back' data-"+a.mobile.ns+"iconpos='notext'>"+this.options.closeBtnText+"</a>").end().find('.ui-content:not([class*="ui-body-"])').addClass("ui-body-c").end().find(".ui-content,:jqmData(role='footer')").last().addClass("ui-corner-bottom ui-overlay-shadow");
this.element.bind("vclick submit",function(c){c=c.type=="vclick"?a(c.target).closest("a"):a(c.target).closest("form");c.length&&!c.jqmData("transition")&&c.attr("data-"+a.mobile.ns+"transition",a.mobile.urlHistory.getActive().transition).attr("data-"+a.mobile.ns+"direction","reverse")})},close:function(){window.history.back()}})})(jQuery);
(function(a,c){a.widget("mobile.navbar",a.mobile.widget,{options:{iconpos:"top",grid:null},_create:function(){var d=this.element,e=d.find("a"),b=e.filter(":jqmData(icon)").length?this.options.iconpos:c;d.addClass("ui-navbar").attr("role","navigation").find("ul").grid({grid:this.options.grid});b||d.addClass("ui-navbar-noicons");e.buttonMarkup({corners:false,shadow:false,iconpos:b});d.delegate("a","vclick",function(){e.not(".ui-state-persist").removeClass(a.mobile.activeBtnClass);a(this).addClass(a.mobile.activeBtnClass)})}})})(jQuery);
(function(a){a.fn.grid=function(c){return this.each(function(){var d=a.extend({grid:null},c),e=a(this).children(),b={solo:1,a:2,b:3,c:4,d:5};d=d.grid;if(!d)if(e.length<=5)for(var f in b){if(b[f]==e.length)d=f}else d="a";b=b[d];a(this).addClass("ui-grid-"+d);e.filter(":nth-child("+b+"n+1)").addClass("ui-block-a");b>1&&e.filter(":nth-child("+b+"n+2)").addClass("ui-block-b");b>2&&e.filter(":nth-child(3n+3)").addClass("ui-block-c");b>3&&e.filter(":nth-child(4n+4)").addClass("ui-block-d");b>4&&e.filter(":nth-child(5n+5)").addClass("ui-block-e")})}})(jQuery);
(function(a,c,d){var e=a("html"),b=a("head"),f=a(c);a(c.document).trigger("mobileinit");if(a.mobile.gradeA()){e.addClass("ui-mobile ui-mobile-rendering");a.mobile.metaViewportContent&&!b.find("meta[name='viewport']").length&&a("<meta>",{name:"viewport",content:a.mobile.metaViewportContent}).prependTo(b);var h=a.mobile.loadingMessage?a("<div class='ui-loader ui-body-a ui-corner-all'><span class='ui-icon ui-icon-loading spin'></span><h1>"+a.mobile.loadingMessage+"</h1></div>"):d;typeof h==="undefined"&&
alert(a.mobile.loadingMessage);a.extend(a.mobile,{pageLoading:function(i){if(i)e.removeClass("ui-loading");else{if(a.mobile.loadingMessage){i=a("."+a.mobile.activeBtnClass).first();typeof h==="undefined"&&alert(a.mobile.loadingMessage);h.appendTo(a.mobile.pageContainer).css({top:a.support.scrollTop&&a(c).scrollTop()+a(c).height()/2||i.length&&i.offset().top||100})}e.addClass("ui-loading")}},initializePage:function(){var i=a(":jqmData(role='page')");i.add(":jqmData(role='dialog')").each(function(){var g=
a(this);g.jqmData("url")||g.attr("data-"+a.mobile.ns+"url",g.attr("id"))});a.mobile.firstPage=i.first();a.mobile.pageContainer=i.first().parent().addClass("ui-mobile-viewport");a.mobile.pageLoading();!a.mobile.hashListeningEnabled||!a.mobile.path.stripHash(location.hash)?a.mobile.changePage(a.mobile.firstPage,false,true,false,true):f.trigger("hashchange",[true])}});a(a.mobile.initializePage);f.load(a.mobile.silentScroll)}})(jQuery,this);
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Login Page OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">OpenERP</h1>
</div><!-- /header -->
<div role="main" class="ui-content" data-role="content">
<fieldset>
<div class="ui-field-contain ui-body ui-br" data-role="fieldcontain">
<label for="shipping" class="select ui-select">Database:</label>
<div class="ui-select"><select tabindex="-1" name="shipping" id="shipping">
<option value="training" >Training</option>
<option value ="OpenERP" >OpenERP</option>
<option value="HelloWorld">HelloWorld</option>
</select></div>
<label class="ui-input-text" for="name">Login:</label>
<input class="ui-input-text ui-body-null ui-corner-all ui-shadow-inset ui-body-c" name="name" id="name" value="" type="text">
<label class="ui-input-text" for="name">Password:</label>
<input class="ui-input-text ui-body-null ui-corner-all ui-shadow-inset ui-body-c" name="name" id="name" value="" type="password">
<a class="ui-btn ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="HomePage.html" rel="external"" data-role="button"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Identification</span></span></a>
</div>
</fieldset>
</div>
</div>
<script type="text/javascript" src="../testConnect.js"></script>
</body>
</html>
@@ -0,0 +1,21 @@
var db = '';
var ip = '';
var USER = '';
var PWD = '';
SESSION = new oe.base.Session('DEBUG');
SESSION.session_login(db,USER,PWD, initLogin);
function initLogin() {
// Le premier argument de la fonction -> référence à une fonction python.
SESSION.rpc("/web_mobile/mobile/load_user", {}, function getResult (result){
// ici le corps de ta fonction si la requete rpc est réussite
}, function getErrormyerror(e) {
// ici le corps de ta fonction d'échec.
alert('error during users loading');
alert(e.data.debug);
});
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,130 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Adresses contacts OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/AdressesList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Adresses</h1>
<a data-theme="c" title="Save" href="../listview/AdressesList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/AdressesList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Partner Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Contact Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Title:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Function:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Address Type:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Street:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Street2:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Zip:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">City:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Country:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">State:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Phone:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Fax:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Mobile:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">E-mail:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of BankAccount OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/BankDetails.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Bank Account</h1>
<a data-theme="c" title="Save" href="../listview/BankDetailsCustomised.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/BankDetailsCustomised.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="select-choice-1" class="select">Bank Type:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">type1</option>
<option value="E">type2</option>
<option value="E">type3</option>
</select></div>
<div class="left"><label for="text">Account Number:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Bank:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Sequence:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Account owner:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Street:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Zip:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Country:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">City:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">State:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Customers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script src="../Animation.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/CustomersList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Customers</h1>
<a data-theme="c" title="Save" href="../menu/CustomersOptionsForm.html"rel="external" data-icon="Action" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis2 jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
<a data-theme="c" title="Save" href="../listview/CustomersListCustomized.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/CustomersListCustomized.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="OpenERP SA" />
</div>
<div data-role="fieldcontain">
<div class="left"><label class="select">Language:</label></div>
<div class="right"> <select name="select-choice-1" id="select-choice-1"></div>
<option value="E">English</option>
<option value="F">French</option>
<option value="D">Dutch</option>
<option value="S">Spanish</option>
</select>
</div>
<div class="left"><label>Supplier:</label></div>
<div class="right"><select data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div class="left"><label>Customer:</label></div>
<div class="right"><select data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div data-role="fieldcontain">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>General</h3>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/AdressesList.html"rel="external">Adresses Contacts</a></li>
</ul>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Accounting</h3>
<form action="#" method="get">
<div class="left"><label for="text">Fiscal position:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Payment term:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Total Receivable :</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Total Payable:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
</form>
<div data-role="fieldcontain">
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/BankDetailsCustomised.html"rel="external">Bank details</a></li>
</ul>
</div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Sales&Purchases</h3>
<form action="#" method="get">
<div class="left"><label for="text">SalesMan:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Website:</label></div>
<div class="right"><input type="text" name="text" id="text" value="http://www."/></div>
</form>
<div data-role="fieldcontain"></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Notes</h3>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,114 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Customers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/CustomersList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Customers</h1>
<a data-theme="c" title="Save" href="../listview/CustomersListCustomized.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/CustomersListCustomized.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="OpenERP SA" />
</div>
<div data-role="fieldcontain">
<div class="left"><label for="select-choice-1" class="select">Language:</label></div>
<div class="right"> <select name="select-choice-1" id="select-choice-1"></div>
<option value="E">English</option>
<option value="F">French</option>
<option value="D">Dutch</option>
<option value="S">Spanish</option>
</select>
</div>
<div class="left"><label for="slider">Supplier:</label></div>
<div class="right"><select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div class="left"><label for="slider">Customer:</label></div>
<div class="right"><select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div data-role="fieldcontain">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>General</h3>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/AdressesList.html"rel="external">Adresses Contacts</a></li>
</ul>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Accounting</h3>
<form action="#" method="get">
<div class="left"><label for="text">Fiscal position:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Payment term:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Total Receivable :</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Total Payable:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
</form>
<div data-role="fieldcontain">
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/BankDetailsCustomised.html"rel="external">Bank details</a></li>
</ul>
</div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Sales&Purchases</h3>
<form action="#" method="get">
<div class="left"><label for="text">SalesMan:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Website:</label></div>
<div class="right"><input type="text" name="text" id="text" value="http://www."/></div>
</form>
<div data-role="fieldcontain"></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Notes</h3>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,106 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of invoices of Customers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/CustomersInvoicesList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Customers Invoices</h1>
<a data-theme="c" title="Save" href="../listview/CustomersInvoicesList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/CustomersInvoicesList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div data-role="content">
<div class="left"><label for="select-choice-1" class="select">Journal:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Stock journal</option>
<option value="F">Test journal</option>
<option value="D">...</option>
</select></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/CustomersListCustomized2.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Customer</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"><label for="text">Invoice date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Number:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/AdressesList2.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Invoice adress</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div class="left"><label for="text">Currency:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Eur </option>
<option value="F">GBP </option>
<option value="D">USD </option>
</select></div>
</div>
<div data-role="content">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Invoice</h3>
<div data-role="content">
<div class="left"><label for="text">Description term:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="select-choice-1" class="select">Payment term:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">30 days end of month</option>
<option value="F">1 week</option>
<option value="D">...</option>
</select></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/InvoiceLinesList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Lines of Invoice</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Other Info</h3>
<form action="#" method="get">
<div data-role="content">
<div class="left"><label for="text">Due Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Source Document:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">SalesMan</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<h4>Additional Information</h4>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Payments</h3>
<form action="#" method="get">
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/PaymentsCustomerList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Payments</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
</form>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,106 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Refunds of Customers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/CustomersRefundsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Customers Refunds</h1>
<a data-theme="c" title="Save" href="../listview/CustomersRefundsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/CustomersRefundsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div data-role="content">
<div class="left"><label for="select-choice-1" class="select">Journal:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Stock journal</option>
<option value="F">Test journal</option>
<option value="D">...</option>
</select></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/CustomersListCustomized2.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Customer</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"><label for="text">Invoice date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Number:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/AdressesList2.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Invoice adress</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div class="left"><label for="text">Currency:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Eur </option>
<option value="F">GBP </option>
<option value="D">USD </option>
</select></div>
</div>
<div data-role="content">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Invoice</h3>
<div data-role="content">
<div class="left"><label for="text">Description term:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="select-choice-1" class="select">Payment term:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">30 days end of month</option>
<option value="F">1 week</option>
<option value="D">...</option>
</select></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/InvoiceLinesList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Lines of Invoice</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Other Info</h3>
<form action="#" method="get">
<div data-role="content">
<div class="left"><label for="text">Due Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Source Document:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">SalesMan</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<h4>Additional Information</h4>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Payments</h3>
<form action="#" method="get">
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/PaymentsCustomerList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Payments</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
</form>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Deliver products OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/DeliverProductsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Deliver products</h1>
<a data-theme="c" title="Save" href="../listview/DeliverProductsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/DeliverProductsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="number">Product:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Qty:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"> <label for="number">UOM:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Source loc.:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Dest. loc.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Dest. addr.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Reason:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Ref.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Scheduled Date:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="select-choice-1" class="select" disabled="true">State:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Done</option>
</select></div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Mail OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../menu/CustomersOptionsForm.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">E-Mail</h1>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="text">Sender's Email:</label></div>
<div class="right"> <input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Subject:</label></div>
<div class="right"> <input type="text" name="text" id="text" value="" /></div>
<h3>Message</h3>
<div data-role="fieldcontain">
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
<fieldset class="ui-grid-a">
<div class="ui-block-a"><button type="submit" data-theme="b" >Cancel</button></div>
<div class="ui-block-b"><button type="submit" data-theme="a">Send</button></div>
</fieldset>
</div>
</body>
</html>
@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Mail OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../menu/CustomersOptions.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">E-Mail</h1>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="text">Sender's Email:</label></div>
<div class="right"> <input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Subject:</label></div>
<div class="right"> <input type="text" name="text" id="text" value="" /></div>
<h3>Message</h3>
<div data-role="fieldcontain">
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
<fieldset class="ui-grid-a">
<div class="ui-block-a"><button type="submit" data-theme="b" >Cancel</button></div>
<div class="ui-block-b"><button type="submit" data-theme="a">Send</button></div>
</fieldset>
</div>
</body>
</html>
@@ -0,0 +1,82 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Inbound calls OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/InboundCallsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Inbound calls</h1>
<a data-theme="c" title="Save" href="../listview/InboundCallsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/InboundCallsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div data-role="content">
<div class="left"><label for="text">Call summary:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Phone:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Responsible</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"> <label for="text">Duration:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"> <label for="select-choice-1" class="select">Sales Team:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Sales Departement</option>
</select></div>
</div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="MeetingsForm.html"rel="external">Schedulde a Meeting</a></li>
</ul>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Convert To Opportunity</a></li>
</ul>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../Menu/PhoneCallMenu.html"rel="external">Schedulde Other Call</a></li>
</ul>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/PartnerList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Partner</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/AdressesList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Partner Contact</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"><label for="text">Mobile:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="select-choice-1" class="select">Type:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="in">Inbound</option>
<option value="out">Outbound</option>
</select></div>
<div class="left"><label for="select-choice-1" class="select">Priority:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="in">Highest</option>
<option value="out">High</option>
<option value="out">Normal</option>
<option value="out">Low</option>
<option value="out">Lowest</option>
</select></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Opportunity</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<label for="text">Description:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</div>
</body>
</html>
@@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Invitations OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/InvitationsDetailsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Invitations</h1>
<a data-theme="c" title="Save" href="../listview/InvitationsDetailsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/InvitationsDetailsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="text">FROM:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">TO:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"> <label for="text">Mail To:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Role:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">State:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,56 @@
a<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Invoice Lines OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/InvoiceLinesList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Invoice Lines</h1>
<a data-theme="c" title="Save" href="../listview/InvoiceLinesList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/InvoiceLinesList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="number">Product:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Qty:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">UOM:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Descr.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Unit Price:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Discount:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
</div>
</body>
</html>
@@ -0,0 +1,82 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Meetings OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/MeetingsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Meetings</h1>
<a data-theme="c" title="Save" href="../listview/MeetingsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/MeetingsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="text">Summary:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="slider">All day:</label></div>
<div class="right"><select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div class="left"><label for="text">Start Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Duration:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">End Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Location:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Reminder:</label></div>
<div class="right"><input type="text" name="text" id="text" value=" " /></div>
<div class="left"><label for="slider">Reccurent:</label></div>
<div class="right"><select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Meeting</h3>
<div data-role="content">
<div class="left"><label for="text">Responsible:</label></div>
<div class="right"><input type="text" name="text" id="text" value=" " /></div>
<div class="left"><label for="text">Partner:</label></div>
<div class="right"><input type="text" name="text" id="text" value=" " /></div>
<div class="left"><label for="text">Contact:</label></div>
<div class="right"><input type="text" name="text" id="text" value=" " /></div>
<div class="left"><label for="text">EMail:</label></div>
<div class="right"><input type="text" name="text" id="text" value=" " /></div>
<div class="left"><label for="text">Privacy:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="textarea">Desc.:</label></div>
<div class="right"><textarea cols="40" rows="8" name="textarea" id="textarea"></textarea></div>
</div>
</div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/InvitationsDetailsList.html"rel="external">Invitation Details</a></li>
</ul>
<input type="submit" value="Confirm" />
</body>
</html>
@@ -0,0 +1,70 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Opportunity OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/OpportunityList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Opportunity</h1>
<a data-theme="c" title="Save" href="../listview/OpportunityList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/OpportunityList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="text">Opportunity:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Expected Revenue:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Next action date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Stage:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">New</option>
<option value="D">Qualification</option>
<option value="D">Proposition</option>
<option value="F">Negociation</option>
<option value="D">Won</option>
<option value="D">Lost</option>
</select></div>
<div class="left"><label for="text") :</label></div>
<div class="ui-field-contain ui-body ui-br" data-role="fieldcontain">
<div class="left"><label id="slider-label" class="ui-input-text ui-slider" for="slider">Probability(%):</label></div>
<div class="right"><input class="ui-input-text ui-body-null ui-corner-all ui-shadow-inset ui-body-c ui-slider-input" name="slider" id="slider" value="0" min="0" max="100" data-type="range" type="number"></div>
</div>
<div data-role="content">
<div class="left"><label for="text">Next action:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /> </div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">SalesMan</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"><label for="text">Expected Closing:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /> </div>
<div class="left"><label for="text">Priority:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Highest</option>
<option value="D">High</option>
<option value="D">Normal</option>
<option value="F">Low</option>
<option value="D">Lowest</option>
</select></div>
</div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="MeetingsForm.html"rel="external">Schedulde a Meeting</a></li>
<li><a href="SalesOrders.html"rel="external">Convert to quote</a></li>
</ul>
</div>
@@ -0,0 +1,81 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Outbund calls OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/OutbundCallsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Outbund calls</h1>
<a data-theme="c" title="Save" href="../listview/OutbundCallsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/OutbundCallsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div data-role="content">
<div class="left"><label for="text">Call summary:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Phone:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Responsible</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"> <label for="text">Duration:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"> <label for="select-choice-1" class="select">Sales Team:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Sales Departement</option>
</select></div>
</div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="MeetingsForm.html"rel="external">Schedulde a Meeting</a></li>
</ul>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Convert To Opportunity</a></li>
</ul>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../Menu/PhoneCallMenu.html"rel="external">Schedulde Other Call</a></li>
</ul>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/PartnerList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Partner</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/AdressesList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Partner Contact</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div data-role="content">
<div class="left"><label for="text">Mobile:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="select-choice-1" class="select">Type:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="in">Outbound</option>
<option value="out">Inbound</option>
</select></div>
<div class="left"><label for="select-choice-1" class="select">Priority:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="in">Highest</option>
<option value="out">High</option>
<option value="out">Normal</option>
<option value="out">Low</option>
<option value="out">Lowest</option>
</select></div>
</div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Opportunity</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<label for="text">Description:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</div>
</body>
</html>
@@ -0,0 +1,31 @@
a<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>payment of customer OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/SuppliersInvoices.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Payments</h1>
<a data-theme="c" title="Add" href="../formview/PaymentFrom.html"rel="external" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="OptionsList3.html"rel="external" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<div data-role="content">
</div>
@@ -0,0 +1,31 @@
a<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>payment of supplier OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/SuppliersInvoices.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Payments</h1>
<a data-theme="c" title="Add" href="../formview/PaymentFrom.html"rel="external" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="OptionsList3.html"rel="external" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<div data-role="content">
</div>
@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Physical inventory OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/PhysicalInventoryList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Physical inventory</h1>
<a data-theme="c" title="Save" href="../listview/PhysicalInventoryList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/PhysicalInventoryList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="number">Inventory ref:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Date of creation:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
</div>
<a href="../listview/PhysicalInventoryProductsList.html" data-role="button" rel="external">Products</a>
</div>
</body>
</html>
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Physical inventory Products OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/PhysicalInventoryProductsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Physical inventory</h1>
<a data-theme="c" title="Save" href="../listview/PhysicalInventoryProductsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/PhysicalInventoryProductsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div data-role="fieldcontain">
<div class="left"> <label for="number">Location:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"> <label for="number">Product:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Qty:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"> <label for="number">UOM:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Preferences OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../Menu/HomePage.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Preferences</h1>
<a data-theme="c" title="Save" href="../Menu/HomePage.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
</div><!-- /header -->
<div data-role="content">
<div data-role="fieldcontain">
<div class="left"><label for="select-choice-1" class="select">Language:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">English</option>
<option value="F">French</option>
<option value="D">Dutch</option>
<option value="S">Spanish</option>
</select></div>
</div>
<div data-role="fieldcontain">
<div class="left"><label for="select-choice-1" class="select">Timezone:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Brussels gmt+1</option>
<option value="F">...</option>
<option value="D">...</option>
<option value="S">...</option>
</select></div>
</div>
<div data-role="fieldcontain">
<div class="left"><label for="text">E-mail:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
</div>
</div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="Password.html"rel="external">Change password</a></li>
</ul>
</div>
</body>
</html>
@@ -0,0 +1,157 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Procurment OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/ProcurmentExceptionsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Procurment Exceptions</h1>
<a data-theme="c" title="Save" href="../listview/ProcurmentExceptionsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/ProcurmentExceptionsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Procurment reason:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Source document:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Company:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Scheduled date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Procurmen Method:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Priority:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
</div>
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Procurment details</h3>
<form action="#" method="get">
<div class="left">
<label for="text">Product:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Qty:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">UOS qty:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Location:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Product UOM:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Product UOS:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Latest Error:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">State:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
</form>
<div data-role="fieldcontain"></div> <!-- necessary to have a correct screen -->
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Extra informations </h3>
<form action="#" method="get">
<div class="left">
<label for="text">Date closed:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
</form>
<div data-role="fieldcontain"></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Notes</h3>
<div data-role="fieldcontain">
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,327 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Products OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/ProductsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Products</h1>
<a data-theme="c" title="Save" href="../listview/ProductsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/ProductsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">EAN13:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Can be sold:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Can be purchase:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Information</h3>
<div class="left">
<label for="select-choice-1" class="select">Product type:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Stockable</option>
<option value="F">Consumable</option>
<option value="D">Service</option>
</select>
</div>
<div class="left">
<label for="select-choice-1" class="select">Procurement Method:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Make to stock</option>
<option value="F">Make to order</option>
</select>
</div>
<div class="left">
<label for="select-choice-1" class="select">Supply method:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Buy</option>
<option value="F">Produce</option>
</select>
</div>
<div class="left">
<label for="select-choice-1" class="select">Costing method:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Standar price</option>
<option value="F">Average price</option>
</select>
</div>
<div class="left">
<label for="text">Cost price:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Sale Price:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Volume:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Gross weight:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Net weight:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Category</a></li>
</ul>
<div class="left">
<label for="select-choice-1" class="select">Status :</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">In development</option>
<option value="F">Normal</option>
<option value="E">End of lifecycle</option>
<option value="F">Obsolete</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Product Manager</a></li>
</ul>
<div class="left">
<label for="select-choice-1" class="select">Real Stock:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="select-choice-1" class="select">Virtual Stock:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Track Manufacturing Lots:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Track Incoming Lots:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Track Outgoing Lots:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Default Unit Of Measure</a></li>
</ul>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Purchase Unit Of Measure</a></li>
</ul>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Procurement & Locations</h3>
<form action="#" method="get">
<div class="left">
<label for="text">Customer Lead Time:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Manufacturing Lead Time:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Warranty (months) :</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Rack:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Row :</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Case:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
</form>
<div data-role="fieldcontain"></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Suppliers</h3>
<form action="#" method="get">
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Purchase Unit Of Measure</a></li>
</ul>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Descriptions</h3>
<form action="#" method="get">
<label for="text">Description:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
<label for="text">Sale Description:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
<label for="text">Purchase Descriptions:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Accounting</h3>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Purchase Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Sales Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Receive products OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/ReceiveProductsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Receive products</h1>
<a data-theme="c" title="Save" href="../listview/ReceiveProductsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/ReceiveProductsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="number">Product:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Qty:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"> <label for="number">UOM:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Source loc.:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Dest. loc.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Dest. addr.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Reason:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Ref.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Scheduled Date:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="select-choice-1" class="select" disabled="true">State:</label></div>
<div class="right"><select name="select-choice-1" id="select-choice-1">
<option value="E">Done</option>
</select></div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Sales Orders Lines OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SalesOrdersLinesList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Lines of sales orders</h1>
<a data-theme="c" title="Save" href="../listview/SalesOrdersLinesList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SalesOrdersLinesList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Product:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Quantity:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">UOM:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Description:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Unit Price:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Discount:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain">
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Sales Orders OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SalesOrdersList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Sales Orders</h1>
<a data-theme="c" title="Save" href="../listview/SalesOrdersList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SalesOrdersList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Order reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Paid:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Delivered:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="text">Date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Shop:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Customer reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Customer:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Ordering C.:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a href="../listview/SalesOrdersLinesList.html" data-role="button" rel="external">Lines</a>
<div class="left"><a href="SalesOrdersCanceled.html" data-role="button" rel="external">Cancel order</a></div>
<div class="right"><a href="SalesOrdersConfirm.html" data-role="button" rel="external">Confirm order</a></div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Sales Orders OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SalesOrdersList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Sales Orders</h1>
<a data-theme="c" title="Save" href="../listview/SalesOrdersList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SalesOrdersList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Order reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Paid:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Delivered:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="text">Date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Shop:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Customer reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Customer:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Ordering C.:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a href="../listview/SalesOrdersLinesList.html" data-role="button" rel="external">Lines</a>
<div class="ui-block-b"><a href="SalesOrders.html" data-role="button" rel="external">Set to draft</a></div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,105 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Sales Orders OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SalesOrdersList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Sales Orders</h1>
<a data-theme="c" title="Save" href="../listview/SalesOrdersList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SalesOrdersList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Order reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Paid:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Delivered:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="text">Date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Shop:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Customer reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Customer:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Ordering C.:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a href="../listview/SalesOrdersLinesList.html" data-role="button" rel="external">Lines</a>
<div class="left"><a href="SalesOrdersCanceled.html" data-role="button" rel="external">Cancel order</a></div>
<div class="right"><input type="submit" value="Create final invoice" /></div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formview of Stock moves OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/StockMovesList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Stock moves</h1>
<a data-theme="c" title="Save" href="../listview/StockMovesList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/StockMovesList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="number">Product:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Qty:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"> <label for="number">UOM:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Source loc.:</label></div>
<div class="right"> <input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Dest. loc.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Dest. addr.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Reason:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Ref.:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<div class="left"><label for="number">Scheduled Date:</label></div>
<div class="right"><input type="number" name="number" id="number" value="" /></div>
<label for="select-choice-1" class="select" disabled="true">State:</label>
<select name="select-choice-1" id="select-choice-1">
<option value="E">Done</option>
</select>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Suppliers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SuppliersListCustomized.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Suppliers</h1>
<a data-theme="c" title="Save" href="../listview/SuppliersListCustomized.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SuppliersListCustomized.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="OpenERP SA" />
</div>
<div data-role="fieldcontain">
<div class="left"><label for="select-choice-1" class="select">Language:</label></div>
<div class="right"> <select name="select-choice-1" id="select-choice-1"></div>
<option value="E">English</option>
<option value="F">French</option>
<option value="D">Dutch</option>
<option value="S">Spanish</option>
</select>
</div>
<div class="left"><label for="slider">Supplier:</label></div>
<div class="right"><select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div class="left"><label for="slider">Customer:</label></div>
<div class="right"><select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select></div>
<div data-role="fieldcontain">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>General</h3>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/AdressesList.html"rel="external">Adresses Contacts</a></li>
</ul>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Accounting</h3>
<form action="#" method="get">
<div class="left"><label for="text">Fiscal position:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Payment term:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Total Receivable :</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
<div class="left"><label for="text">Total Payable:</label></div>
<div class="right"><input type="text" name="text" id="text" value=""/></div>
</form>
<div data-role="fieldcontain">
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href="../listview/BankDetailsCustomised.html"rel="external">Bank details</a></li>
</ul>
</div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Sales&Purchases</h3>
<form action="#" method="get">
<div class="left"><label for="text">SalesMan:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Date:</label></div>
<div class="right"><input type="text" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Website:</label></div>
<div class="right"><input type="text" name="text" id="text" value="http://www."/></div>
</form>
<div data-role="fieldcontain"></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Notes</h3>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of invoices of Suppliers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SuppliersInvoicesList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Suppliers Invoices</h1>
<a data-theme="c" title="Save" href="../listview/SuppliersInvoicesList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SuppliersInvoicesList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="select-choice-1" class="select">Journal:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Stock journal</option>
<option value="F">Test journal</option>
<option value="D">...</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/SuppliersListCustomized2.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Supplier</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div class="left">
<label for="text">Invoice date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Number:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/AdressesList3.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Invoice adress</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div class="left">
<label for="text">Currency:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Eur </option>
<option value="F">GBP </option>
<option value="D">USD </option>
</select>
</div>
</div>
<div data-role="content">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Invoice</h3>
<div class="left">
<label for="text">Description term:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="select-choice-1" class="select">Payment term:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">30 days end of month</option>
<option value="F">1 week</option>
<option value="D">...</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/InvoiceLinesList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Lines of Invoice</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Other Info</h3>
<form action="#" method="get">
<div class="left">
<label for="text">Due Date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Source Document:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">SalesMan</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<h4>Additional Information</h4>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Payments</h3>
<form action="#" method="get">
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/PaymentsSupplierList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Lines of payment</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
</form>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Refunds of Suppliers OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/SuppliersRefundsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Suppliers Refunds</h1>
<a data-theme="c" title="Save" href="../listview/SuppliersRefundsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/SuppliersRefundsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="select-choice-1" class="select">Journal:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Stock journal</option>
<option value="F">Test journal</option>
<option value="D">...</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/SuppliersListCustomized2.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Supplier</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div class="left">
<label for="text">Invoice date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Number:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/AdressesList3.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Invoice adress</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<div class="left">
<label for="text">Currency:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Eur </option>
<option value="F">GBP </option>
<option value="D">USD </option>
</select>
</div>
</div>
<div data-role="content">
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Invoice</h3>
<div class="left">
<label for="text">Description term:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="select-choice-1" class="select">Payment term:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">30 days end of month</option>
<option value="F">1 week</option>
<option value="D">...</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/InvoiceLinesList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Lines of Invoice</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Other Info</h3>
<form action="#" method="get">
<div class="left">
<label for="text">Due Date:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Source Document:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="index.html" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">SalesMan</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
<h4>Additional Information</h4>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Payments</h3>
<form action="#" method="get">
<a class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c" href="../listview/PaymentsSupplierList.html"rel="external" data-role="button" data-icon="search"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Lines of payment</span><span class="ui-icon ui-icon-search ui-icon-shadow"></span></span></a>
</form>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,329 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Fromview of Products OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../listview/WHProductsList.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Products</h1>
<a data-theme="c" title="Save" href="../listview/WHProductsList.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
<a data-theme="c" title="Delete" href="../listview/WHProductsList.html"rel="external" data-icon="Delete" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-delete"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left">
<label for="text">Name:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Reference:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">EAN13:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Can be sold:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Can be purchase:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true">
<h3>Information</h3>
<div class="left">
<label for="select-choice-1" class="select">Product type:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Stockable</option>
<option value="F">Consumable</option>
<option value="D">Service</option>
</select>
</div>
<div class="left">
<label for="select-choice-1" class="select">Procurement Method:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Make to stock</option>
<option value="F">Make to order</option>
</select>
</div>
<div class="left">
<label for="select-choice-1" class="select">Supply method:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Buy</option>
<option value="F">Produce</option>
</select>
</div>
<div class="left">
<label for="select-choice-1" class="select">Costing method:</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">Standar price</option>
<option value="F">Average price</option>
</select>
</div>
<div class="left">
<label for="text">Cost price:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Sale Price:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Volume:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Gross weight:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Net weight:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div data-role="fieldcontain"></div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Category</a></li>
</ul>
<div class="left">
<label for="select-choice-1" class="select">Status :</label>
</div>
<div class="right">
<select name="select-choice-1" id="select-choice-1">
<option value="E">In development</option>
<option value="F">Normal</option>
<option value="E">End of lifecycle</option>
<option value="F">Obsolete</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Product Manager</a></li>
</ul>
<div class="left">
<label for="select-choice-1" class="select">Real Stock:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="select-choice-1" class="select">Virtual Stock:</label>
</div>
<div class="right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="slider">Track Manufacturing Lots:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Track Incoming Lots:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div class="left">
<label for="slider">Track Outgoing Lots:</label>
</div>
<div class="right">
<select name="slider" id="slider" data-role="slider">
<option value="off">NO</option>
<option value="on">YES</option>
</select>
</div>
<div data-role="fieldcontain"></div>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Default Unit Of Measure</a></li>
</ul>
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Purchase Unit Of Measure</a></li>
</ul>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Procurement & Locations</h3>
<form action="#" method="get">
<div class="left">
<label for="text">Customer Lead Time:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Manufacturing Lead Time:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Warranty (months) :</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Rack:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Row :</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
<div class="left">
<label for="text">Case:</label>
</div>
<div class=" right">
<input type="text" name="text" id="text" value="" />
</div>
</form>
<div data-role="fieldcontain"></div>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Suppliers</h3>
<form action="#" method="get">
<ul data-role="listview" data-inset="true" data-theme="d">
<li><a href=""rel="external">Purchase Unit Of Measure</a></li>
</ul>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Descriptions</h3>
<form action="#" method="get">
<label for="text">Description:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
<label for="text">Sale Description:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
<label for="text">Purchase Descriptions:</label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</form>
</div>
<div data-role="collapsible" data-collapsed="true">
<h3>Accounting</h3>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Purchase Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
<select name="select-choice-10" id="select-choice-10" multiple="multiple">
<option>Sales Taxes</option>
<option value="AL">TAX21.0%</option>
<option value="AK">OTAX O</option>
<option value="AZ">OTAX X</option>
<option value="AR">OTAX R</option>
<option value="CA">OTAX S</option>
</select>
</div>
</div>
</div>
</body>
</html>
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Preferences OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="Preferences.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Preferences</h1>
<a data-theme="c" title="Save" href="Preferences.html"rel="external" data-icon="Save" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-save"></span></a>
</div><!-- /header -->
<div data-role="content">
<div class="left"><label for="text">Old Password:</label></div>
<div class="right"><input type="password" name="text" id="text" value="" /></div>
<div class="left"><label for="text">New Password:</label></div>
<div class="right"><input type="password" name="text" id="text" value="" /></div>
<div class="left"><label for="text">Confirm Password:</label></div>
<div class="right"><input type="password" name="text" id="text" value="" /></div>
</div>
</div>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>List of Adresses contacts OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/CustomersInvoices.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Adresses</h1>
<a data-theme="c" title="Add" href="../formview/AdressFrom.html"rel="external" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="OptionsList3.html"rel="external" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<form role="search" class="ui-listview-filter ui-bar-c"><div><span class="ui-icon ui-icon-delete ui-icon-shadow"></span></span></a></div></form><ul role="listbox" class="ui-listview" data-role="listview" data-filter="true">
<li><a href="../formview/CustomersInvoices.html"rel="external" >Contact1</a></li>
<li><a href="../formview/CustomersInvoices.html"rel="external" >Contact2</a></li>
</ul>
</div>
</div>
</body>
</html>
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>List of Adresses contacts OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/CustomersFormClear.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Adresses</h1>
<a data-theme="c" title="Add" href="../formview/AdressFrom.html"rel="external" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="OptionsList3.html"rel="external" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<form role="search" class="ui-listview-filter ui-bar-c"><div><span class="ui-icon ui-icon-delete ui-icon-shadow"></span></span></a></div></form><ul role="listbox" class="ui-listview" data-role="listview" data-filter="true">
<li><a href="../formview/AdressesForm.html"rel="external" >Contact1</a></li>
<li><a href="../formview/AdressesForm.html"rel="external" >Contact2</a></li>
</ul>
</div>
</div>
</body>
</html>
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>List of Adresses contacts OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/SuppliersInvoices.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Adresses</h1>
<a data-theme="c" title="Add" href="../formview/AdressFrom.html"rel="external" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="OptionsList3.html"rel="external" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<form role="search" class="ui-listview-filter ui-bar-c"><div><span class="ui-icon ui-icon-delete ui-icon-shadow"></span></span></a></div></form><ul role="listbox" class="ui-listview" data-role="listview" data-filter="true">
<li><a href="../formview/SuppliersInvoices.html"rel="external" >Contact1</a></li>
<li><a href="../formview/SuppliersInvoices.html"rel="external" >Contact2</a></li>
</ul>
</div>
</div>
</body>
</html>
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>List of attachment OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/CustomersForm.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Attachments</h1>
<a data-theme="c" title="Add" href="" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<form role="search" class="ui-listview-filter ui-bar-c"><div><span class="ui-icon ui-icon-delete ui-icon-shadow"></span></span></a></div></form><ul role="listbox" class="ui-listview" data-role="listview" data-filter="true">
<li><a href="" >test</a></li>
<li><a href=""rel="external" >Test2</a></li>
</ul>
</div>
</div>
</body>
</html>
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>List of attachment OpenERP mobile</title>
<link rel="stylesheet" href="../OpenERPmobile.css" />
<script type="text/javascript" src="../jquery-1.5.1.js"></script>
<script type="text/javascript" src="../jquer.mobile-1.0a3.js"></script>
</head>
<body>
<div style="top: 279.5px;" class="ui-loader ui-body-a ui-corner-all"><span class="ui-icon ui-icon-loading spin"></span><h1>loading</h1></div><div class="ui-page ui-body-c ui-page-active" data-url="docs/lists/lists-divider.html" data-role="page">
<div role="banner" class="ui-bar-d ui-header" data-role="header" data-theme="b">
<a data-theme="c" title="back" href="../formview/CustomersForm.html"rel="external" data-icon="back" data-iconpos="notext" data-direction="reverse" class=" jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-back"></span></a>
<h1 aria-level="1" role="heading" tabindex="0" class="ui-title">Attachments</h1>
<a data-theme="c" title="Add" href="" data-icon="Plus" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-plus"></span></a>
<a data-theme="c" title="Custom List" href="" data-icon="Grid" data-iconpos="notext" data-direction="reverse" class="ui-btn-right-bis jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all"><span class="ui-icon ui-icon-grid"></span></a>
</div><!-- /header -->
<form role="search" class="ui-listview-filter ui-bar-c"><div><span class="ui-icon ui-icon-delete ui-icon-shadow"></span></span></a></div></form><ul role="listbox" class="ui-listview" data-role="listview" data-filter="true">
<li><a href="" >test</a></li>
<li><a href=""rel="external" >Test2</a></li>
</ul>
</div>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More