-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathapp.gs
125 lines (117 loc) · 3.44 KB
/
app.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
//called by bulk_checkin.html
function runBulkCheckin(form){
var status_name = form.status_name
var status = getStatusIDByName(status_name)
var location = form.location
Logger.log(location)
if ( location != "" ){
var location = getLocationIDByName(location)
}else{
var location = null
}
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var range = ss.getActiveRange()
var tags = range.getValues()
for (var i=0; i<tags.length; i++){
var tag = tags[i]
var id = getAssetIDByTag(tag)
var checkin = checkInAsset(id,location)
if (checkin == "Error"){
var message = "Could not check in " + tag + ". Try a manual check-in in Snipe."
reportErrors(message);
return
}
updateAssetStatus(id,status)
}
}
//called by bulk_checkout.html
function runBulkCheckout(form){
var status_name = form.status_name
var status = getStatusIDByName(status_name)
if (form.location){
var location = form.location
var location = getLocationIDByName(location)
}
if (form.username) {
var username = form.username
var user = getUserIDByUsername(username)
}
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var range = ss.getActiveRange()
var tags = range.getValues()
if (location){
for (var i=0; i<tags.length; i++){
var tag = tags[i]
var id = getAssetIDByTag(tag)
updateAssetStatus(id,status)
var checkout = checkOutAsset(id,location)
if (checkout == "Error"){
var message = "Could not check out " + tag + ". Try a manual check-out in Snipe."
reportErrors(message);
return
}
}
}
if (user){
for (var i=0; i<tags.length; i++){
var tag = tags[i]
var id = getAssetIDByTag(tag)
updateAssetStatus(id,status)
var checkout = checkOutAsset(id,null,user)
if (checkout == "Error"){
var message = "Could not check out " + tag + ". Try a manual check-out in Snipe."
reportErrors(message);
return
}
}
}
}
//called by bulk_update.html
function runBulkUpdate(form){
var status_name = form.status_name
var status = getStatusIDByName(status_name)
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var range = ss.getActiveRange()
var tags = range.getValues()
for (var i=0; i<tags.length; i++){
var tag = tags[i]
var id = getAssetIDByTag(tag)
updateAssetStatus(id,status)
}
}
//evaluates the specified template.
function bulkChanges(template){
var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var range = ss.getActiveRange().getValues()
var tags = range
var template = HtmlService.createTemplateFromFile(template);
template.tags = tags
var html = template.evaluate()
.setWidth(500)
.setHeight(400)
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi().showModalDialog(html, ' ');
}
//called by menu buttons on sheet
function bulkCheckin(){
bulkChanges('bulk_checkin.html')
}
function bulkCheckout(){
bulkChanges('bulk_checkout.html')
}
function bulkUpdateStatus(){
bulkChanges('bulk_update.html')
}
function reportErrors(message){
var template = HtmlService.createTemplateFromFile('errors.html');
template.message = message
var html = template.evaluate()
.setWidth(500)
.setHeight(400)
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi().showModalDialog(html, ' ');
}