[IMP] Improved formview for collapsible content of notebook.
bzr revid: jra@tinyerp.com-20110713052110-51fnbvj9jr9ym8u9
This commit is contained in:
committed by
Jiten Rangwala (OpenERP)
parent
48536c6a05
commit
d5cc2645ac
@@ -0,0 +1 @@
|
||||
.ui-collapsible-content-expanded { display: block; }
|
||||
@@ -10,24 +10,77 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
|
||||
id = this.list_id;
|
||||
model = this.action.res_model;
|
||||
view_id = this.action.views[1][0];
|
||||
|
||||
this.dataset = new openerp.base.DataSetSearch(this.session, this.action.res_model, null, null);
|
||||
this.dataset.read_slice(false, false, false, function(result){
|
||||
this.dataset.read_slice(false, false, false, function (result) {
|
||||
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
if (result[i].id == id) {
|
||||
var data = result[i];
|
||||
}
|
||||
}
|
||||
self.rpc("/base/formview/load", {"model": model, "view_id": view_id },
|
||||
function(result){
|
||||
var view_fields = result.fields_view.arch.children;
|
||||
get_fields = self.get_fields(view_fields);
|
||||
for (var j = 0; j < view_fields.length; j++) {
|
||||
if (view_fields[j].tag == 'notebook') {
|
||||
var notebooks = view_fields[j];
|
||||
}
|
||||
self.rpc("/base/formview/load", {"model": model, "view_id": view_id }, function (result) {
|
||||
var view_fields = result.fields_view.arch.children;
|
||||
var get_fields = self.get_fields(view_fields);
|
||||
|
||||
for (var j = 0; j < view_fields.length; j++) {
|
||||
if (view_fields[j].tag == 'notebook') {
|
||||
var notebooks = view_fields[j];
|
||||
}
|
||||
jQuery("#oe_header").find("h1").html(result.fields_view.arch.attrs.string);
|
||||
self.$element.html(QWeb.render("FormView", {'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : result.fields_view.fields, 'values' : data}));
|
||||
}
|
||||
$("#oe_header").find("h1").html(result.fields_view.arch.attrs.string);
|
||||
self.$element.html(QWeb.render("FormView", {'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : result.fields_view.fields, 'values' : data }));
|
||||
|
||||
self.$element.find('a').click(function(){
|
||||
|
||||
for (var k = 0; k < notebooks.children.length; k++) {
|
||||
|
||||
var text = $(this).find('.ui-btn-text').text();
|
||||
var next = $(this).next();
|
||||
var span = $(this).find('span .ui-icon');
|
||||
var content_expanded_class = "ui-collapsible-content ui-collapsible-content-expanded";
|
||||
var content_collapsed_class = "ui-collapsible-content ui-collapsible-content-collapsed";
|
||||
var expanded_class = "ui-collapsible-content-expanded";
|
||||
var collapsed_class = "ui-collapsible-content-collapsed";
|
||||
var plus_class = "ui-icon-plus";
|
||||
var minus_class = "ui-icon-minus";
|
||||
|
||||
if (notebooks.children[k].attrs.string == $.trim(text)) {
|
||||
get_fields = self.get_fields(notebooks.children[k].children);
|
||||
|
||||
$(this).parents().find('form').find('div').each( function() {
|
||||
var prev = $(this).prev();
|
||||
var trim_class = $.trim($(this).attr('class'));
|
||||
if (trim_class == content_expanded_class || trim_class == content_collapsed_class) {
|
||||
prev.removeClass('ui-btn-active');
|
||||
|
||||
if ($.trim(prev.find('.ui-btn-text').text()) != notebooks.children[k].attrs.string) {
|
||||
prev.find('span .ui-icon').removeClass(minus_class);
|
||||
prev.find('span .ui-icon').addClass(plus_class);
|
||||
$(this).removeClass(expanded_class);
|
||||
$(this).addClass(collapsed_class);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (next.hasClass(content_collapsed_class)) {
|
||||
span.removeClass(plus_class);
|
||||
span.addClass(minus_class);
|
||||
next.removeClass(collapsed_class);
|
||||
next.addClass(expanded_class);
|
||||
}
|
||||
else if (next.hasClass(content_expanded_class)) {
|
||||
span.removeClass(minus_class);
|
||||
span.addClass(plus_class);
|
||||
next.removeClass(expanded_class);
|
||||
next.addClass(collapsed_class);
|
||||
}
|
||||
if (!next.find('.detail').html().length) {
|
||||
next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.fields, 'values' : data }));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -40,9 +93,12 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
|
||||
if (view_fields[i].tag == 'group') {
|
||||
this.get_fields(view_fields[i].children, this.fields);
|
||||
}
|
||||
if (view_fields[i].tag == 'separator') {
|
||||
this.get_fields(view_fields[i].children, this.fields);
|
||||
}
|
||||
}
|
||||
return this.fields;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
@@ -26,6 +26,7 @@
|
||||
<script type="text/javascript" src="/web_mobile/static/src/js/list_mobile.js"></script>
|
||||
<script type="text/javascript" src="/web_mobile/static/src/js/form_mobile.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web_mobile/static/src/css/web_mobile.css"></script>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
QWeb = window.QWeb || new QWeb2.Engine();
|
||||
|
||||
@@ -195,16 +195,15 @@
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-if="notebooks">
|
||||
<t t-foreach="notebooks.children" t-as="page">
|
||||
<div class="info ui-collapsible-contain" data-collapsed="true" data-role="collapsible">
|
||||
<h1 class="ui-collapsible-heading ui-collapsible-heading-collapsed">
|
||||
<a class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-shadow ui-corner-all ui-btn-up-c" href="#" data-theme="c">
|
||||
<h1 class="ui-collapsible-heading">
|
||||
<a class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-shadow ui-corner-all ui-btn-up-c" href="#" data-theme="c" t-id="page.attrs.string">
|
||||
<span class="ui-btn-inner ui-corner-all">
|
||||
<span class="ui-btn-text">
|
||||
<t t-esc="page.attrs.string"></t>
|
||||
<span class="ui-collapsible-heading-status"></span>
|
||||
<!-- <span class="ui-collapsible-heading-status"></span> -->
|
||||
</span>
|
||||
<span data-theme="d" class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-d">
|
||||
<span class="ui-btn-inner ui-btn-corner-all ui-corner-all">
|
||||
@@ -214,12 +213,10 @@
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
</h1>
|
||||
<div class="ui-collapsible-content ui-collapsible-content-collapsed" aria-hidden="true">
|
||||
<div class="detail">
|
||||
|
||||
<div class="ui-collapsible-content ui-collapsible-content-collapsed" aria-hidden="true">
|
||||
<div class="detail"></div>
|
||||
</div>
|
||||
</div>
|
||||
</h1>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
Reference in New Issue
Block a user