permissions-uncompressed.js
3.41 KB
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
126
127
128
129
130
131
132
133
/**
* Function to send Permissions via Ajax to Com-Config Application Controller
*/
function sendPermissions(event) {
// set the icon while storing the values
var icon = document.getElementById('icon_' + this.id);
icon.removeAttribute('class');
icon.setAttribute('style', 'background: url(../media/system/images/modal/spinner.gif); display: inline-block; width: 16px; height: 16px');
//get values and prepare GET-Parameter
var asset = 'not';
var component = getUrlParam('component');
var extension = getUrlParam('extension');
var option = getUrlParam('option');
var view = getUrlParam('view');
var title = component;
var value = this.value;
var context = '';
if (document.getElementById('jform_context')){
context = document.getElementById('jform_context').value;
context = context.split('.')[0];
}
if (option == 'com_config' && component == false && extension == false)
{
asset = 'root.1';
}
else if (extension == false && view == 'component'){
asset = component;
}
else if (context){
if (view == 'group') {
asset = context + '.fieldgroup.' + getUrlParam('id');
}
else {
asset = context + '.field.' + getUrlParam('id');
}
title = document.getElementById('jform_title').value;
}
else if (extension != false && view != false){
asset = extension + '.' + view + '.' + getUrlParam('id');
title = document.getElementById('jform_title').value;
}
else if (extension == false && view != false){
asset = option + '.' + view + '.' + getUrlParam('id');
title = document.getElementById('jform_title').value;
}
var id = this.id.replace('jform_rules_', '');
var lastUnderscoreIndex = id.lastIndexOf('_');
var permission_data = {
comp : asset,
action : id.substring(0, lastUnderscoreIndex),
rule : id.substring(lastUnderscoreIndex + 1),
value : value,
title : title
};
// Remove js messages, if they exist.
Joomla.removeMessages();
// doing ajax request
jQuery.ajax({
method: "POST",
url: document.getElementById('permissions-sliders').getAttribute('data-ajaxuri'),
data: permission_data,
datatype: 'json'
})
.fail(function (jqXHR, textStatus, error) {
// Remove the spinning icon.
icon.removeAttribute('style');
Joomla.renderMessages(Joomla.ajaxErrorsMessages(jqXHR, textStatus, error));
window.scrollTo(0, 0);
icon.setAttribute('class', 'icon-cancel');
})
.done(function (response) {
// Remove the spinning icon.
icon.removeAttribute('style');
if (response.data)
{
// Check if everything is OK
if (response.data.result == true)
{
icon.setAttribute('class', 'icon-save');
jQuery(event.target).parents().next("td").find("span")
.removeClass()
.addClass(response['data']['class'])
.html(response.data.text);
}
}
// Render messages, if any. There are only message in case of errors.
if (typeof response.messages == 'object' && response.messages !== null)
{
Joomla.renderMessages(response.messages);
if (response.data && response.data.result == true)
{
icon.setAttribute('class', 'icon-save');
}
else
{
icon.setAttribute('class', 'icon-cancel');
}
window.scrollTo(0, 0);
}
});
}
/**
* Function to get parameters out of the url
*/
function getUrlParam(variable) {
var query = window.location.search.substring(1);
var vars = query.split('&');
for (var i=0;i<vars.length;i++)
{
var pair = vars[i].split('=');
if (pair[0] == variable)
{
return pair[1];
}
}
return false;
}