Skip to content

Commit 4a10aec

Browse files
Create ui_page_processing_script.js
1 parent 02fc026 commit 4a10aec

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
if (cancelled == "false") {
2+
var dashboard_id = key; // sys id of the dashboard from the Jelly script
3+
var group_id = group; // sys id of group from the Jelly script
4+
var user_id = user; //sys id of user from the Jelly script
5+
6+
if (!gs.nil(group_id) || !gs.nil(user_id)) {
7+
groupShare(dashboard_id, group_id);
8+
userShare(dashboard_id, user_id);
9+
response.sendRedirect("pa_dashboards.do?sys_id=" + key);
10+
} else {
11+
response.sendRedirect("pa_dashboards.do?sys_id=" + key);
12+
gs.addErrorMessage("Please select group/user");
13+
}
14+
} else {
15+
response.sendRedirect("pa_dashboards.do?sys_id=" + key);
16+
}
17+
18+
function groupShare(dashboard_id, group_id) {
19+
var db_view = new GlideRecord('u_reports_shared_with_dashboard'); // Database view name
20+
db_view.addEncodedQuery('repstat_report_sys_id!=^dt_dashboard=' + dashboard_id);
21+
db_view.query();
22+
while (db_view.next()) {
23+
var report_id = db_view.rep_sys_id;
24+
25+
var rec = new GlideRecord("sys_report");
26+
rec.get(report_id);
27+
rec.user = "group";
28+
rec.update();
29+
30+
var report_sharing = new GlideRecord('sys_report_users_groups');
31+
report_sharing.addQuery('group_id', group_id);
32+
33+
report_sharing.addQuery('report_id', report_id);
34+
report_sharing.query();
35+
if (!report_sharing.next()) {
36+
var new_record = new GlideRecord('sys_report_users_groups');
37+
new_record.initialize();
38+
new_record.report_id = report_id;
39+
new_record.group_id = group_id;
40+
new_record.insert();
41+
}
42+
43+
}
44+
}
45+
46+
function userShare(dashboard_id, user_id) {
47+
var db_view = new GlideRecord('u_dashboard_reports');
48+
db_view.addEncodedQuery('repstat_report_sys_id!=^dt_dashboard=' + dashboard_id);
49+
db_view.query();
50+
while (db_view.next()) {
51+
var report_id = db_view.rep_sys_id;
52+
53+
var rec = new GlideRecord("sys_report");
54+
rec.get(report_id);
55+
rec.user = "group";
56+
rec.update();
57+
58+
var report_sharing = new GlideRecord('sys_report_users_groups');
59+
report_sharing.addQuery('user_id', user_id);
60+
report_sharing.addQuery('report_id', report_id);
61+
report_sharing.query();
62+
if (!report_sharing.next()) {
63+
var new_record = new GlideRecord('sys_report_users_groups');
64+
new_record.initialize();
65+
new_record.report_id = report_id;
66+
new_record.user_id = user_id;
67+
new_record.insert();
68+
}
69+
70+
}
71+
}

0 commit comments

Comments
 (0)