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.