-
Notifications
You must be signed in to change notification settings - Fork 3
/
app-settings.gs
87 lines (75 loc) · 4.22 KB
/
app-settings.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
var defaultFieldsAttributes = {
'key': {'isArray': false, 'primitive': true, 'attribute': '', 'customEmptyValue': false, 'updatable': false},
'parent': {'isArray': false, 'primitive': false, 'attribute': 'key', 'customEmptyValue': false, 'updatable': false},
'project': {'isArray': false, 'primitive': false, 'attribute': 'key', 'customEmptyValue': false, 'updatable': false},
'issuetype': {'isArray': false, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': true},
'summary': {'isArray': false, 'primitive': true, 'attribute': '', 'customEmptyValue': false, 'updatable': true},
'description': {'isArray': false, 'primitive': true, 'attribute': '', 'customEmptyValue': false, 'updatable': true},
'priority': {'isArray': false, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': true},
'labels': {'isArray': true, 'primitive': true, 'attribute': '', 'customEmptyValue': false, 'updatable': true},
'components': {'isArray': true, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': true},
'fixVersions': {'isArray': true, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': true},
'reporter': {'isArray': false, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': true},
'assignee': {'isArray': false, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': true},
'duedate': {'isArray': false, 'primitive': true, 'attribute': '', 'customEmptyValue': false, 'updatable': true},
'resolution': {'isArray': false, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': false},
'status': {'isArray': false, 'primitive': false, 'attribute': 'name', 'customEmptyValue': false, 'updatable': false},
'timetracking': {'isArray': false, 'primitive': false, 'attribute': 'originalEstimate', 'customEmptyValue': true, 'updatable': true}
};
function resetProperties(){
var appProperties = PropertiesService.getUserProperties();
Logger.log('removing properties: ' + appProperties.getKeys());
appProperties.deleteAllProperties();
}
function storeDefaultFieldsAttributes(){
var fieldsProperties = PropertiesService.getUserProperties();
fieldsProperties.setProperty('ISSUES_FIELDS_ATTRIBUTES', JSON.stringify(defaultFieldsAttributes));
}
function storeFieldsAttributes(attributes){
var fieldsProperties = PropertiesService.getUserProperties();
var fieldsAttributes = {};
attributes.forEach(function(attribute){
fieldsAttributes[attribute] = defaultFieldsAttributes[attribute];
});
fieldsProperties.setProperty('ISSUES_FIELDS_ATTRIBUTES', JSON.stringify(fieldsAttributes));
}
function getFieldsAttributes(){
var fieldsProperties = PropertiesService.getUserProperties();
var fieldsAttributes = fieldsProperties.getProperty('ISSUES_FIELDS_ATTRIBUTES');
if(!fieldsAttributes){
return defaultFieldsAttributes;
}
return JSON.parse(fieldsAttributes);
}
function storeProjectKey(projectKey){
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('PROJECT_KEY', projectKey);
}
function getProjectKey(){
var userProperties = PropertiesService.getUserProperties();
return userProperties.getProperty('PROJECT_KEY');
}
function storeProjectUsers(projectUsers){
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('PROJECT_USERS', JSON.stringify(projectUsers));
}
function getProjectUsers(){
var userProperties = PropertiesService.getUserProperties();
return JSON.parse(userProperties.getProperty('PROJECT_USERS'));
}
function storeIssueTypes(issueTypes){
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('ISSUE_TYPES', JSON.stringify(issueTypes));
}
function getIssueTypes(){
var userProperties = PropertiesService.getUserProperties();
return JSON.parse(userProperties.getProperty('ISSUE_TYPES'));
}
function storeIssueStatuses(issueStatuses){
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('ISSUE_STATUSES', JSON.stringify(issueStatuses));
}
function getIssueStatuses(){
var userProperties = PropertiesService.getUserProperties();
return JSON.parse(userProperties.getProperty('ISSUE_STATUSES'));
}