root/branches/release-36/tmpl/cms/edit_role.tmpl @ 2116

Revision 2116, 17.9 kB (checked in by bchoate, 19 months ago)

Fixed confirm dialog so that cancel prevents saving the role changes. BugId:79237

Line 
1<mt:setvar name="edit_role" value="1">
2<$mt:setvar name="position_actions_bottom" value="1"$>
3<mt:if name="id">
4    <mt:setvar name="page_title" value="<__trans phrase="Edit Role">">
5    <MTSetVarBlock name="content_nav">
6        <mt:include name="include/users_content_nav.tmpl">
7    </MTSetVarBlock>
8    <mt:else>
9        <mt:setvar name="page_title" value="<__trans phrase="Create Role">">
10    </mt:if>
11<mt:setvarblock name="system_msg">
12    <mt:if name="saved">
13        <mtapp:statusmsg
14            id="saved-added"
15            class="success">
16            <__trans phrase="Your changes have been saved.">
17        </mtapp:statusmsg>
18    </mt:if>
19</mt:setvarblock>
20<mt:setvarblock name="content_header">
21    <ul class="action-link-list">
22        <li>
23            <a href="<mt:var name="script_url">?__mode=list_roles" class="icon-left icon-related"><__trans phrase="List Roles"></a>
24    <mt:if name="id">
25            - <a href="<mt:var name="script_url">?__mode=list_associations&amp;role_id=<mt:var name="id">"><__trans phrase="[quant,_1,User,Users] with this role" params="<mt:var name="user_count">"></a>
26    </mt:if>
27        </li>
28    </ul>
29</mt:setvarblock>
30<mt:include name="include/header.tmpl">
31
32<script type="text/javascript">
33/* <![CDATA[ */
34function toggleAndUncheck(obj, target) {
35    if (!obj || !target) {
36        return;
37    }
38
39    var targetObj = getByID(target);
40    if (!targetObj) {
41        return;
42    }
43
44    if (obj.disabled) {
45        targetObj.disabled = true;
46    } else {
47        targetObj.disabled = !obj.checked;
48    }
49    if (!obj.checked) {
50        targetObj.checked = false;
51    }
52}
53
54function toggleAndDisable(obj, target) {
55    if (!obj || !target) {
56        return;
57    }
58
59    var targetObj = getByID(target);
60    if (!targetObj) {
61        return;
62    }
63
64    if (obj.checked) {
65        targetObj.checked = true;
66        targetObj.disabled = true;
67    } else {
68        targetObj.disabled = false;
69        // targetObj.checked = true;
70    }
71}
72
73function on_edit_config_changed(obj) {
74    toggleAndUncheck(obj, 'permission-set_publish_paths');
75}
76
77function on_create_post_changed(obj) {
78    toggleAndUncheck(obj, 'permission-publish_post');
79    var eap = getByID('permission-edit_all_posts');
80    if (eap && eap.checked) {
81        return;
82    }
83    toggleAndUncheck(obj, 'permission-send_notifications');
84}
85
86function on_edit_all_posts_changed(obj) {
87    var cp = getByID('permission-create_post');
88    if (cp && cp.checked) {
89        return;
90    }
91    toggleAndUncheck(obj, 'permission-send_notifications');
92}
93
94function on_edit_assets_changed(obj) {
95    toggleAndDisable(obj, 'permission-upload');
96    getByID("permission-save_image_defaults").disabled = false;
97}
98
99function on_upload_changed(obj) {
100    if (getByID("permission-edit_assets").checked)
101        return;
102    toggleAndUncheck(obj, 'permission-save_image_defaults');
103}
104
105var permsChanged = "no";
106function checkPerms(obj) {
107    permsChanged = "yes";
108    var name = 'on_' + obj.value + '_changed';
109    if ('function' == typeof(window[name])) {
110        window[name](obj);
111    }
112}
113function permsUnChanged() { permsChanged = "no"; }
114
115function doSubmitFormConfirm( f, mode, message ) {
116    if (confirm(message)) {
117        if (f.elements["__mode"] && mode)
118            f.elements["__mode"].value = mode;
119        f.submit();
120    }
121    return false;
122}
123
124function checkChanged() {
125    var orig_roleName = "<mt:var name="name" escape="html">";
126    var roleName = getByID('name').value;
127    if(permsChanged == "yes") {
128        if(roleName == orig_roleName) {
129            return doSubmitFormConfirm(document.role, 'save_role', '<__trans phrase="You have changed the privileges for this role. This will alter what it is that the users associated with this role will be able to do. If you prefer, you can save this role with a different name.  Otherwise, be aware of any changes to users with this role.">');
130        } else {
131            doSubmitForm(document.role, 'save_role');
132        }
133    } else {
134        doSubmitForm(document.role, 'save_role');
135    }
136    return false;
137}
138
139function allPerms(name, check) {
140    var f = document.forms['role'];
141    var flds = f[name];
142    for (var i = 0; i < flds.length; i++) {
143        flds[i].checked = check;
144        if (!flds[i].className.match(/administer_blog/))
145            flds[i].disabled = check;
146    }
147    return false;
148}
149
150function getParentByClass(n, c) {
151    var result = n;
152    while (!result.className.match(c)
153           && result.nodeName && (result.nodeName != 'body')) {
154       result = result.parentNode;
155    }
156    return result;
157}
158
159function rectify(permContainer, forcibly) {
160    var permCheckboxes = permContainer.getElementsByTagName('input');
161    for (var i=0; i < permCheckboxes.length; i++) {
162        if (permCheckboxes[i].className.match(/administer_blog/)) {
163            isAdmin = permCheckboxes[i].checked;
164        }
165    }
166    for (var i=0; i < permCheckboxes.length; i++) {
167        if (!permCheckboxes[i].className.match(/administer_blog/)) {
168            if (isAdmin) {
169                permCheckboxes[i].disabled = true;
170                permCheckboxes[i].checked = true;
171            } else {
172                if (forcibly) {
173                    permCheckboxes[i].disabled = false;
174                    permCheckboxes[i].checked = false;
175                } else {
176                    checkPerms(permCheckboxes[i]);
177                }
178            }
179        }
180    }
181    if (forcibly) {
182        for (var i=0; i < permCheckboxes.length; i++) {
183            checkPerms(permCheckboxes[i]);
184        }
185    }
186}
187
188function handleClick(e) {
189    e = e || event;
190    var targ = e.target || e.srcElement;
191    if (!targ || !targ.nodeName) {
192        return;
193    }
194    if (targ.nodeName.toLowerCase() == 'label') {
195        if (targ.getAttribute('for'))
196            targ = getByID(targ.getAttribute('for'));
197        else {
198           var inputs = targ.getElementsByTagName('input');
199           targ = inputs[0];
200           checkPerms(targ);
201        }
202    }
203    if (targ.className.match(/administer_blog/)) {
204        permContainer = getParentByClass(targ, 'permission-list');
205        rectify(permContainer, 1);
206    }
207}
208
209function rectifyAll() {
210    var containers = TC.getElementsByClassName('permission-list');
211    for (var i=0; i < containers.length; i++) {
212        rectify(containers[i]);
213    }
214    permsUnChanged();
215}
216
217TC.attachLoadEvent( rectifyAll );
218
219/* ]]> */
220</script>
221
222<div id="edit-role" onclick="handleClick(event)">
223
224<mt:if name="id">
225<form name="role" method="post" action="<mt:var name="script_url">" onsubmit="return this['__mode'] ? true : false">
226<mt:else>
227<form id="role" name="role" method="post" action="<mt:var name="script_url">">
228</mt:if>
229
230<mt:if name="id">
231    <input type="hidden" name="id" value="<mt:var name="id">" />
232</mt:if>
233    <input type="hidden" name="__mode" value="save_role" />
234    <input type="hidden" name="return_args" value="<mt:var name="return_args" escape="html">" />
235    <input type="hidden" name="magic_token" value="<mt:var name="magic_token">" />
236
237    <fieldset>
238        <h3><__trans phrase="Role Details"></h3>
239        <mtapp:setting
240            id="name"
241            label="<__trans phrase="Role Name">"
242            required="1"
243            hint="">
244            <div class="textarea-wrapper">
245                <input name="name" id="name" class="full-width" value="<mt:var name="name" escape="html">" />
246            </div>
247        </mtapp:setting>
248        <mtapp:setting
249            id="description"
250            label="<__trans phrase="Description">"
251            hint="">
252            <textarea name="description" id="description" class="full-width short" cols="" rows=""><mt:var name="description" escape="html"></textarea>
253        </mtapp:setting>
254        <mt:if name="id">
255            <mtapp:setting
256                id="created_by"
257                label="<__trans phrase="Created by">"
258                hint="">
259                <p><mt:if name="created_by"><mt:var name="created_by"><mt:else><em><__trans phrase="System"></em></mt:if></p>
260            </mtapp:setting>
261        </mt:if>
262    </fieldset>
263    <fieldset>
264        <h3><__trans phrase="Privileges"></h3>
265
266<div id="permission-list" class="permission-list">
267
268<mt:if name="is_enabled">
269<!-- <a href="javascript:void(0)" onclick="return allPerms('permission', true)"><__trans phrase="Check All"></a> | -->
270<!-- <a href="javascript:void(0)" onclick="return allPerms('permission', false)"><__trans phrase="Uncheck All"></a> -->
271</mt:if>
272
273    <mtapp:setting
274        id="administration"
275        label="<__trans phrase="Administration">"
276        hint="">
277        <ul>
278            <li><label for="permission-administer_blog"><input id="permission-administer_blog" type="checkbox" onchange="checkPerms(this);" class="administer_blog cb" name="permission" value="administer_blog"<mt:if name="have_access-administer_blog"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-administer_blog" escape="html"></label></li>
279            <li><label for="permission-edit_config"><input id="permission-edit_config" type="checkbox" onchange="checkPerms(this);" class="edit_config cb" name="permission" value="edit_config"<mt:if name="have_access-edit_config"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_config" escape="html"></label></li>
280            <li><label for="permission-set_publish_paths"><input id="permission-set_publish_paths" type="checkbox" onchange="checkPerms(this);" class="set_publish_paths cb" name="permission" value="set_publish_paths"<mt:if name="have_access-set_publish_paths"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-set_publish_paths" escape="html"></label></li>
281            <li><label for="permission-edit_categories"><input id="permission-edit_categories" type="checkbox" onchange="checkPerms(this);" class="edit_categories cb" name="permission" value="edit_categories"<mt:if name="have_access-edit_categories"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_categories" escape="html"></label></li>
282            <li><label for="permission-edit_tags"><input id="permission-edit_tags" type="checkbox" onchange="checkPerms(this);" class="edit_tags cb" name="permission" value="edit_tags"<mt:if name="have_access-edit_tags"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_tags" escape="html"></label></li>
283            <li><label for="permission-edit_notifications"><input id="permission-edit_notifications" type="checkbox" onchange="checkPerms(this);" class="edit_notifications cb" name="permission" value="edit_notifications"<mt:if name="have_access-edit_notifications"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_notifications" escape="html"></label></li>
284            <li><label for="permission-view_blog_log"><input id="permission-view_blog_log" type="checkbox" onchange="checkPerms(this);" class="view_blog_log cb" name="permission" value="view_blog_log"<mt:if name="have_access-view_blog_log"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-view_blog_log" escape="html"></label></li>
285        </ul>
286    </mtapp:setting>
287
288    <mtapp:setting
289        id="authoring_publishing"
290        label="<__trans phrase="Authoring and Publishing">"
291        hint="">
292        <ul>
293            <li><label for="permission-create_post"><input id="permission-create_post" type="checkbox" onchange="checkPerms(this);" class="create_post cb" name="permission" value="create_post"<mt:if name="have_access-create_post"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-create_post" escape="html"></label></li>
294            <li><label for="permission-publish_post"><input id="permission-publish_post" type="checkbox" onchange="checkPerms(this);" class="publish_post cb" name="permission" value="publish_post"<mt:if name="have_access-publish_post"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-publish_post" escape="html"></label></li>
295            <li><label for="permission-send_notifications"><input id="permission-send_notifications" type="checkbox" onchange="checkPerms(this);" class="send_notifications cb" name="permission" value="send_notifications"<mt:if name="have_access-send_notifications"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-send_notifications" escape="html"></label></li>
296            <li><label for="permission-edit_all_posts"><input id="permission-edit_all_posts" type="checkbox" onchange="checkPerms(this);" class="edit_all_posts cb" name="permission" value="edit_all_posts"<mt:if name="have_access-edit_all_posts"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_all_posts" escape="html"></label></li>
297            <li><label for="permission-manage_pages"><input id="permission-manage_pages" type="checkbox" onchange="checkPerms(this);" class="manage_pages cb" name="permission" value="manage_pages"<mt:if name="have_access-manage_pages"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-manage_pages" escape="html"></label></li>
298            <li><label for="permission-rebuild"><input id="permission-rebuild" type="checkbox" onchange="checkPerms(this);" class="rebuild cb" name="permission" value="rebuild"<mt:if name="have_access-rebuild"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-rebuild" escape="html"></label></li>
299        </ul>
300    </mtapp:setting>
301
302    <mtapp:setting
303        id="designing"
304        label="<__trans phrase="Designing">"
305        hint="">
306        <ul>
307            <li><label for="permission-edit_templates"><input id="permission-edit_templates" type="checkbox" onchange="checkPerms(this);" class="edit_templates cb" name="permission" value="edit_templates"<mt:if name="have_access-edit_templates"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_templates" escape="html"></label></li>
308        </ul>
309    </mtapp:setting>
310
311    <mtapp:setting
312        id="assets"
313        label="<__trans phrase="Assets">"
314        hint="">
315        <ul>
316            <li><label for="permission-edit_assets"><input id="permission-edit_assets" type="checkbox" onchange="checkPerms(this);" class="edit_assets cb" name="permission" value="edit_assets"<mt:if name="have_access-edit_assets"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-edit_assets" escape="html"></label></li>
317            <li><label for="permission-upload"><input id="permission-upload" type="checkbox" onchange="checkPerms(this);" class="upload cb" name="permission" value="upload"<mt:if name="have_access-upload"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-upload" escape="html"></label></li>
318            <li><label for="permission-save_image_defaults"><input id="permission-save_image_defaults" type="checkbox" onchange="checkPerms(this);" class="save_image_defaults cb" name="permission" value="save_image_defaults"<mt:if name="have_access-save_image_defaults"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"><mt:unless name="have_access-edit_assets"> disabled="disabled"</mt:unless></mt:unless></mt:if> /> <mt:var name="prompt-save_image_defaults" escape="html"></label></li>
319        </ul>
320    </mtapp:setting>
321
322    <mtapp:setting
323        id="commenting"
324        label="<__trans phrase="Commenting">"
325        hint="">
326        <ul>
327            <li><label for="permission-comment"><input id="permission-comment" type="checkbox" onchange="checkPerms(this);" class="comment cb" name="permission" value="comment"<mt:if name="have_access-comment"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-comment" escape="html"></label></li>
328            <li><label for="permission-manage_feedback"><input id="permission-manage_feedback" type="checkbox" onchange="checkPerms(this);" class="manage_feedback cb" name="permission" value="manage_feedback"<mt:if name="have_access-manage_feedback"> checked="checked"</mt:if><mt:if name="id"><mt:unless name="is_enabled"> disabled="disabled"</mt:unless></mt:if> /> <mt:var name="prompt-manage_feedback" escape="html"></label></li>
329        </ul>
330    </mtapp:setting>
331
332</div>
333
334<mt:if name="id">
335<mt:if name="same_perm_loop">
336    <mtapp:setting
337        id="same_permissions"
338        label="<__trans phrase="Duplicate Roles">"
339        hint="<__trans phrase="These roles have the same privileges as this role">">
340        <div class="static">
341        <mt:loop name="same_perm_loop">
342        <a href="<mt:var name="script_url">?__mode=edit_role&amp;id=<mt:var name="id">"><mt:var name="name" escape="html"></a>
343        </mt:loop>
344        </div>
345    </mtapp:setting>
346</mt:if>
347</mt:if>
348
349</fieldset>
350
351
352
353<mt:setvarblock name="action_buttons">
354    <button
355    <mt:if name="id">
356        onclick="return checkChanged();"
357    </mt:if>
358        type="submit"
359        accesskey="s"
360        title="<__trans phrase="Save changes to this role (s)">"
361        class="primary-button"
362        ><__trans phrase="Save Changes"></button>
363</mt:setvarblock>
364<mt:include name="include/actions_bar.tmpl" bar_position="bottom" hide_pager="1" settings_bar="1">
365</form>
366
367</div>
368
369<mt:include name="include/footer.tmpl">
Note: See TracBrowser for help on using the browser.