~jfb-tempo-consulting/unifield-web/US-3997

« back to all changes in this revision

Viewing changes to addons/openerp/static/javascript/form.js

  • Committer: jf
  • Date: 2018-05-17 08:48:08 UTC
  • mfrom: (4912.6.5 US-4198)
  • Revision ID: jfb@tempo-consulting.fr-20180517084808-264kzmyuipe7eslc
US-4198 [IMP] List view: right click to open a contextmenu with sidebar content

lp:~jfb-tempo-consulting/unifield-web/us-4198

Show diffs side-by-side

added added

removed removed

Lines of Context:
1182
1182
    });
1183
1183
}
1184
1184
 
 
1185
function makeListContextMenu(rec_id, init_value){
 
1186
        sd = $('#sidebar');
 
1187
 
 
1188
        var $menu = jQuery('#contextmenu');
 
1189
        $menu.attr('rec_id', rec_id);
 
1190
        $menu.attr('init_value', init_value);
 
1191
        $menu.empty().append(
 
1192
            jQuery('<table cellpadding="0" cellspacing="0">').append(sd.html()));
 
1193
 
 
1194
        var menu_width = $menu.width();
 
1195
        var body_width = jQuery(document.body).width();
 
1196
        if (parseInt($menu.css("left")) + menu_width > body_width) {
 
1197
            $menu.css({left: body_width - menu_width - 10 + 'px'});
 
1198
        }
 
1199
        showContextMenu();
 
1200
}
 
1201
 
1185
1202
function showContextMenu(){
1186
1203
    var $menu = jQuery('#contextmenu');
1187
1204
    var $ifrm = jQuery('#contextmenu_frm');
1199
1216
 
1200
1217
function hideContextMenu(){
1201
1218
    jQuery('#contextmenu, #contextmenu_frm').hide();
 
1219
    ctx = jQuery('#contextmenu')
 
1220
    if (ctx.attr('init_value') == 'false') {
 
1221
        new ListView('_terp_list').onBooleanClicked(true, ctx.attr('rec_id'), true);
 
1222
        jQuery('#_terp_list\\/'+ctx.attr('rec_id'))[0].checked = false;
 
1223
    }
1202
1224
}
1203
1225
 
1204
1226
function set_to_default(field_id, model){
1372
1394
    var $target = jQuery(target || targetDammit(evt));
1373
1395
 
1374
1396
    var kind = $target.attr('kind');
 
1397
    sidebar = false;
1375
1398
    if (!(kind && $target.is(':input, :enabled'))) {
1376
 
        return;
 
1399
        if (!$target.parents('#_terp_list').length) {
 
1400
            return;
 
1401
        }
 
1402
        grid = $target.parents('.grid-row')
 
1403
        if (!grid.length || !grid.attr('record')) {
 
1404
            return;
 
1405
        }
 
1406
        tick_box = grid.find('#_terp_list\\/'+grid.attr('record'))
 
1407
        if (!tick_box.length || tick_box.disabled) {
 
1408
            return;
 
1409
        }
 
1410
        sidebar = true;
 
1411
        checked = true;
 
1412
        if (!tick_box[0].checked) {
 
1413
            new ListView('_terp_list').onBooleanClicked(false, grid.attr('record'), true)
 
1414
            tick_box[0].checked=true;
 
1415
            checked = false;
 
1416
        }
1377
1417
    }
1378
1418
    var $menu = jQuery('#contextmenu').show();
1379
1419
 
1400
1440
    $menu.offset({top: 0, left: 0});
1401
1441
    $menu.offset({top: click_position.y - 5, left: click_position.x - 5});
1402
1442
    $menu.hide();
1403
 
    makeContextMenu(src, kind, $src.attr('relation'), $src.val(), $src.attr('hide_default_menu'));
1404
1443
 
 
1444
    if (sidebar) {
 
1445
        makeListContextMenu(grid.attr('record'), checked);
 
1446
    } else {
 
1447
        makeContextMenu(src, kind, $src.attr('relation'), $src.val(), $src.attr('hide_default_menu'));
 
1448
    }
1405
1449
    stopEventDammit(evt);
1406
1450
}
1407
1451