PluginProbe
User Access Manager / 2.0.13
User Access Manager v2.0.13
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
← All changes | assets/js/functions.js +20 -159 trunk2.0.13 View file →
@@ -1,162 +1,32 @@
1 -jQuery(document).ready(function ($) {
2 - /**
3 - * Click triggered flyouts, modelled on the popovers WordPress uses for the
4 - * publish date. Only one is open at a time; escape and outside clicks close
5 - * it and return focus to the trigger it belongs to.
6 - */
7 - var flyoutIdCounter = 0;
8 - var $openToggle = null;
9 -
10 - var getPanel = function ($toggle) {
11 - return $toggle.next('.uam_flyout_panel');
12 - };
13 -
14 - var positionPanel = function ($toggle, $panel) {
15 - $panel.removeClass('uam_flyout_panel_above').css('left', 0);
16 -
17 - var rect = $panel[0].getBoundingClientRect();
18 - var overflowRight = rect.right - (window.innerWidth - 8);
19 -
20 - if (overflowRight > 0) {
21 - $panel.css('left', -overflowRight + 'px');
22 - }
23 -
24 - var left = $panel[0].getBoundingClientRect().left;
25 -
26 - if (left < 8) {
27 - $panel.css('left', (parseFloat($panel.css('left')) || 0) + (8 - left) + 'px');
28 - }
29 -
30 - // Flip above the trigger when there is no room below, the way the
31 - // publish date popover does.
32 - var panelRect = $panel[0].getBoundingClientRect();
33 - var toggleTop = $toggle[0].getBoundingClientRect().top;
34 -
35 - if (panelRect.bottom > window.innerHeight - 8 && toggleTop > panelRect.height + 8) {
36 - $panel.addClass('uam_flyout_panel_above');
37 - }
38 - };
39 -
40 - var closeFlyout = function (returnFocus) {
41 - if ($openToggle === null) {
42 - return;
43 - }
44 -
45 - getPanel($openToggle).hide();
46 - $openToggle.attr('aria-expanded', 'false');
47 -
48 - if (returnFocus === true) {
49 - $openToggle.trigger('focus');
50 - }
51 -
52 - $openToggle = null;
53 - };
54 -
55 - var openFlyout = function ($toggle) {
56 - var $panel = getPanel($toggle);
57 -
58 - if ($panel.length === 0) {
59 - return;
60 - }
61 -
62 - if (!$panel.attr('id')) {
63 - flyoutIdCounter++;
64 - $panel.attr('id', 'uam_flyout_panel_' + flyoutIdCounter);
65 - }
66 -
67 - $toggle.attr('aria-controls', $panel.attr('id'));
68 - $toggle.attr('aria-expanded', 'true');
69 - $panel.show();
70 - positionPanel($toggle, $panel);
71 - $openToggle = $toggle;
72 - };
73 -
74 - jQuery(document).on('click', '.uam_flyout_toggle', function (event) {
75 - var $toggle = jQuery(this);
76 - var wasOpen = $toggle.attr('aria-expanded') === 'true';
77 -
78 - event.preventDefault();
79 - event.stopPropagation();
80 - closeFlyout(false);
81 -
82 - if (wasOpen === false) {
83 - openFlyout($toggle);
84 - }
85 - });
86 -
87 - // Clearing both fields removes the time restriction on save, because an
88 - // empty value makes the server store no date at all.
89 - jQuery(document).on('click', '.uam_clear_dates', function () {
90 - var $panel = jQuery(this).closest('.uam_flyout_panel');
91 - var $toggle = $panel.prev('.uam_flyout_toggle');
92 - var emptyLabel = $toggle.data('empty-label');
93 -
94 - $panel.find('input').val('');
95 -
96 - if (emptyLabel) {
97 - $toggle.text(emptyLabel);
98 - }
99 -
100 - closeFlyout(true);
101 - });
102 -
103 - jQuery(document).on('click', function (event) {
104 - if ($openToggle !== null && jQuery(event.target).closest('.uam_flyout_panel').length === 0) {
105 - closeFlyout(false);
106 - }
107 - });
108 -
109 - jQuery(document).on('keydown', function (event) {
110 - if (event.key === 'Escape' && $openToggle !== null) {
111 - closeFlyout(true);
112 - }
113 - });
114 -
1 +jQuery(document).ready(function () {
115 2 //Functions for the setting page
116 - var toggleGroup = function (group, elementIndex, hiddenFlag, elementsToHide) {
117 - hiddenFlag = hiddenFlag || 'true';
118 - var $group = jQuery(group);
119 - var $inputs = jQuery('tr:eq('+elementIndex+') input', $group);
3 + var toggleGroup = function (groupName) {
4 + var $groups = jQuery(groupName);
120 5
121 - var toggleElement = function (element) {
122 - var $element = jQuery(element);
123 - var $subElements = jQuery('tr:gt('+elementIndex+')', $group);
124 - var currentState = ($element.val() === hiddenFlag);
125 - elementsToHide = elementsToHide || $subElements.length;
6 + jQuery.each($groups, function (key, group) {
7 + var $group = jQuery(group);
8 + var $firstElements = jQuery('tr:first input', $group);
126 9
127 - for (var index = 0; index < $subElements.length; index++) {
128 - var $subElement = jQuery($subElements[index]);
129 - var data = $subElement.data('hidden') || {};
130 - data[elementIndex] = (index < elementsToHide) ? currentState : !currentState;
131 - $subElement.data('hidden', data);
10 + var toggleElements = function (element) {
11 + var $element = jQuery(element);
132 12
133 - var showElement = true;
13 + if ($element.val() === 'true') {
14 + jQuery('tr:not(:first)', $group).hide();
15 + } else {
16 + jQuery('tr:not(:first)', $group).show();
17 + }
18 + };
134 19
135 - jQuery.each(data, function(key, value) {
136 - if (value === true) {
137 - showElement = false;
138 - return null;
139 - }
140 - });
20 + $firstElements.change(function () {
21 + toggleElements(this);
22 + });
141 23
142 - $subElement.toggle(showElement);
143 - }
144 - };
145 -
146 - $inputs.on('change', function () {
147 - toggleElement(this);
24 + toggleElements(jQuery('tr:first input:checked', $group));
148 25 });
149 -
150 - toggleElement($inputs.filter(':checked'));
151 26 };
152 27
153 - toggleGroup('.uam_settings_group_post_type', 0);
154 - toggleGroup('.uam_settings_group_post_type:not(.default)', 1);
155 - toggleGroup('.uam_settings_group_taxonomies:not(.default)', 0);
156 - toggleGroup('.uam_settings_group_file:not(.default)', 1);
157 - toggleGroup('#uam_settings_group_file', 0, 'false');
158 - toggleGroup('#uam_settings_group_file', 4, 'false', 1);
28 + toggleGroup('.uam_settings_group_post_type');
159 29
160 30 // Functions for the setup page
161 31 jQuery('#uam_reset_confirm').on('change paste keyup', function () {
162 32 var $button = jQuery('#uam_reset_submit');
@@ -165,15 +35,6 @@
165 35 $button.removeAttr('disabled');
166 36 } else if (typeof $button.attr('disabled') === 'undefined') {
167 37 $button.attr('disabled', 'disabled');
168 38 }
169 - });
170 -
171 - jQuery('#uam_settings_group_section').on('change', function () {
172 - var $selected = jQuery(this).find(':selected');
173 - window.location.href = $selected.data('link');
174 - });
175 -
176 - /** global: ajaxurl */
177 - $('#uam_dynamic_groups').uamGroupSuggest(ajaxurl + '?action=uam-get-dynamic-group', { delay: 500, multiple: true });
178 - $('.uam_time_input').uamTimeInput();
39 + })
179 40 });