View | Details | Raw Unified | Return to bug 38632
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc (-1 / +1 lines)
Lines 262-268 Link Here
262
        embed.push('analytics_count');
262
        embed.push('analytics_count');
263
    [% END %]
263
    [% END %]
264
264
265
    let items_table_settings = {
265
    var items_table_settings = {
266
        holdings: [% TablesSettings.GetTableSettings('catalogue', 'detail','holdings_table','json') | $raw %],
266
        holdings: [% TablesSettings.GetTableSettings('catalogue', 'detail','holdings_table','json') | $raw %],
267
        otherholdings: [% TablesSettings.GetTableSettings('catalogue', 'detail','otherholdings_table','json')  | $raw %],
267
        otherholdings: [% TablesSettings.GetTableSettings('catalogue', 'detail','otherholdings_table','json')  | $raw %],
268
    };
268
    };
(-)a/t/cypress/integration/KohaTable_spec.ts (-7 / +89 lines)
Lines 22-45 function build_libraries() { Link Here
22
        });
22
        });
23
}
23
}
24
24
25
function mock_table_settings(settings) {
25
function mock_table_settings(settings, table_settings_var) {
26
    cy.window().then(win => {
26
    cy.window().then(win => {
27
        win.table_settings.columns = win.table_settings.columns.map(c => ({
27
        let table_settings =
28
            typeof table_settings_var === "undefined"
29
                ? win.table_settings
30
                : table_settings_var
31
                      .split(".")
32
                      .reduce((acc, key) => acc[key], win);
33
34
        table_settings.columns = table_settings.columns.map(c => ({
28
            ...c,
35
            ...c,
29
            is_hidden: 0,
36
            is_hidden: 0,
30
            cannot_be_toggled: 0,
37
            cannot_be_toggled: 0,
31
        }));
38
        }));
32
        if (settings && settings.hasOwnProperty("default_save_state")) {
39
        if (settings && settings.hasOwnProperty("default_save_state")) {
33
            win.table_settings.default_save_state = settings.default_save_state;
40
            table_settings.default_save_state = settings.default_save_state;
34
        }
41
        }
35
        if (settings && settings.hasOwnProperty("default_save_state_search")) {
42
        if (settings && settings.hasOwnProperty("default_save_state_search")) {
36
            win.table_settings.default_save_state_search =
43
            table_settings.default_save_state_search =
37
                settings.default_save_state_search;
44
                settings.default_save_state_search;
38
        }
45
        }
39
46
40
        if (settings && settings.columns) {
47
        if (settings && settings.columns) {
41
            Object.entries(settings.columns).forEach(([name, values]) => {
48
            Object.entries(settings.columns).forEach(([name, values]) => {
42
                let column = win.table_settings.columns.find(
49
                let column = table_settings.columns.find(
43
                    cc => cc.columnname == name
50
                    cc => cc.columnname == name
44
                );
51
                );
45
                Object.entries(values).forEach(([prop, value]) => {
52
                Object.entries(values).forEach(([prop, value]) => {
Lines 47-55 function mock_table_settings(settings) { Link Here
47
                });
54
                });
48
            });
55
            });
49
        }
56
        }
50
        cy.wrap(win.table_settings.columns).as("columns");
57
        cy.wrap(table_settings.columns).as("columns");
51
    });
58
    });
52
}
59
}
60
53
describe("kohaTable (using REST API)", () => {
61
describe("kohaTable (using REST API)", () => {
54
    beforeEach(() => {
62
    beforeEach(() => {
55
        cy.login();
63
        cy.login();
Lines 528-532 describe("Hit all tables", () => { Link Here
528
                );
536
                );
529
            });
537
            });
530
        });
538
        });
539
540
        it("Show filters", () => {
541
            const biblio_id = 1;
542
            cy.task("buildSampleObjects", {
543
                object: "item",
544
                count: RESTdefaultPageSize,
545
                values: {
546
                    biblio_id,
547
                    checkout: null,
548
                    transfer: null,
549
                    lost_status: 0,
550
                    withdrawn: 0,
551
                    damaged_status: 0,
552
                    not_for_loan_status: 0,
553
                    course_item: null,
554
                },
555
            }).then(items => {
556
                cy.intercept("get", `/api/v1/biblios/${biblio_id}/items*`, {
557
                    statuscode: 200,
558
                    body: items,
559
                    headers: {
560
                        "X-Base-Total-Count": baseTotalCount,
561
                        "X-Total-Count": baseTotalCount,
562
                    },
563
                });
564
565
                cy.visit(
566
                    "/cgi-bin/koha/catalogue/detail.pl?biblionumber=" +
567
                        biblio_id
568
                );
569
570
                // Hide the 'URL' column
571
                mock_table_settings(
572
                    {
573
                        columns: { uri: { is_hidden: 1 } },
574
                    },
575
                    "items_table_settings.holdings"
576
                );
577
578
                cy.window().then(win => {
579
                    win.libraries_map = items.reduce((map, i) => {
580
                        map[i.library_id] = i.library_id;
581
                        return map;
582
                    }, {});
583
                });
584
585
                cy.get("@columns").then(columns => {
586
                    cy.get(`#${table_id}_wrapper tbody tr`).should(
587
                        "have.length",
588
                        RESTdefaultPageSize
589
                    );
590
591
                    cy.get(`#${table_id} th`).contains("Status");
592
                    cy.get(`#${table_id} th`)
593
                        .contains("URL")
594
                        .should("not.exist");
595
                    cy.get(`#${table_id} th`)
596
                        .contains("Course reserves")
597
                        .should("not.exist");
598
599
                    cy.get(".show_filters").click();
600
                    cy.get(`#${table_id}_wrapper .dt-info`).contains(
601
                        `Showing 1 to ${RESTdefaultPageSize} of ${baseTotalCount} entries`
602
                    );
603
604
                    cy.get(`#${table_id} th`).contains("Status");
605
                    cy.get(`#${table_id} th`)
606
                        .contains("URL")
607
                        .should("not.exist");
608
                    cy.get(`#${table_id} th`)
609
                        .contains("Course reserves")
610
                        .should("not.exist");
611
                });
612
            });
613
        });
531
    });
614
    });
532
});
615
});
533
- 

Return to bug 38632