PageSourceSearch

https://zmichowska.pl/asc/support.js

js zmichowska.pl collected 2026-09-25 07:54:34 UTC 4,885 bytes, 102 lines download raw bytes

1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports._hotswap = exports.showSwitchSupportUser = void 0;
4var tslib_1 = require("tslib");
5var React = require("react");
6var asc_react_1 = require("./asc_react");
7var support_1 = require("./server/support");
8var datatable_1 = require("../react/datatable");
9var edurequest_1 = require("./edurequest");
10function showSwitchSupportUser() {
11    return tslib_1.__awaiter(this, void 0, void 0, function () {
12        var _a, _b, _c, _d, _e;
13        var _f;
14        return tslib_1.__generator(this, function (_g) {
15            switch (_g.label) {
16                case 0:
17                    _b = (_a = asc_react_1.RDialog).show;
18                    _d = (_c = React).createElement;
19                    _e = [SwitchSupportUserDlg];
20                    _f = {};
21                    return [4, ASC.blockUI((0, support_1.getSwitchSupportUsers)(null))];
22                case 1:
23                    _b.apply(_a, [_d.apply(_c, _e.concat([(_f.users = _g.sent(), _f)]))]);
24                    return [2];
25            }
26        });
27    });
28}
29exports.showSwitchSupportUser = showSwitchSupportUser;
30var type_icons = {
31    globals: '/global/pics/ui/administrator_32.png',
32    teachers: '/global/pics/ui/teacher_32.svg',
33    students: '/global/pics/ui/student_32.svg',
34    parents: '/global/pics/ui/parents_32.png',
35    guests: '/global/pics/ui/guest_32.png',
36};
37function SwitchSupportUserDlg(props) {
38    var _this = this;
39    var req = edurequest_1.client_req;
40    var users = props.users;
41    var dt_control = React.useRef();
42    return React.createElement(asc_react_1.RDialog, { header: 'Switch support user', width: 920, height: 500, allowMaximizeBtn: true, footer: React.createElement(React.Fragment, null,
43            React.createElement(asc_react_1.RButton, { label: "Search", onClick: function () { return dt_control.current.startSearch(); } }),
44            React.createElement(asc_react_1.HGap, null),
45            "Click Username to switch the user") },
46        React.createElement(datatable_1.RDatatable, { controlRef: dt_control, data: users, idcol: "user", columns: [
47                { key: 'type', label: 'Type', filter: true, width: 50, icons: type_icons },
48                { key: 'class', label: 'Class', filter: true, width: 80 },
49                {
50                    key: 'name', label: 'Name', width: 150,
51                    formatter: blurFormatter
52                },
53                {
54                    key: 'username', label: 'Username',
55                    width: 150,
56                    formatter: function (props) {
57                        var row = props.row;
58                        if (!row.username || row.user == req.loggedUser)
59                            return row.username;
60                        return React.createElement("span", { style: {
61                                border: '1px solid #ccc',
62                                background: '#eee',
63                                overflow: 'hidden',
64                                cursor: 'pointer',
65                                padding: '1px 3px',
66                            }, onClick: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
67                                return tslib_1.__generator(this, function (_a) {
68                                    switch (_a.label) {
69                                        case 0: return [4, ASC.blockUI((0, support_1.switchSupportUser)(null, row.user))];
70                                        case 1:
71                                            _a.sent();
72                                            document.location = '/';
73                                            return [2];
74                                    }
75                                });
76                            }); } }, blurFormatter(props));
77                    }
78                },
79                { key: 'user', label: 'User', width: 80 },
80                {
81                    key: 'rights',
82                    label: 'Rights',
83                    width: 200,
84                },
85                { key: 'children', label: 'Children', width: 150, formatter: blurFormatter },
86                { key: 'email', label: 'Email', width: 200, formatter: blurFormatter },
87            ], cssClass: "compact light-theme", style: {
88                flex: '1 1 0px',
89            }, sortable: true, searchColumns: ['username', 'name', 'class', 'children', 'email', 'rights', 'user'], rowClassNames: function (row) { return row.user == req.loggedUser && 'row-green'; } }));
90}
91function blurFormatter(props) {
92    var req = edurequest_1.client_req;
93    var row = props.row;
94    var c = props.cd.key;
95    var v = row[c] || '';
96    if (row.user == 'Admin' || row.user == req.loggedUser)
97        return v;
98    return React.createElement("span", null, v);
99}
100exports._hotswap = [
101    SwitchSupportUserDlg
102];

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.