diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2015-05-30 11:20:04 +0200 | 
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2015-05-30 11:24:00 +0200 | 
| commit | 44b8dafb233cb07403a303b9c3a5eb72539365d2 (patch) | |
| tree | 07f99644b98eec07d6a5d4148fc7874648d2c76e | |
| parent | 2e46bef2ecc42a225e53d27c9b7614107b878186 (diff) | |
| download | forums-44b8dafb233cb07403a303b9c3a5eb72539365d2.tar forums-44b8dafb233cb07403a303b9c3a5eb72539365d2.tar.gz forums-44b8dafb233cb07403a303b9c3a5eb72539365d2.tar.bz2 forums-44b8dafb233cb07403a303b9c3a5eb72539365d2.tar.xz forums-44b8dafb233cb07403a303b9c3a5eb72539365d2.zip  | |
[ticket/6466] Support form reset and do not loose role upon resubmit
PHPBB3-6466
| -rw-r--r-- | phpBB/adm/style/permission_mask.html | 2 | ||||
| -rw-r--r-- | phpBB/adm/style/tooltip.js | 28 | ||||
| -rw-r--r-- | phpBB/includes/acp/auth.php | 6 | 
3 files changed, 31 insertions, 5 deletions
diff --git a/phpBB/adm/style/permission_mask.html b/phpBB/adm/style/permission_mask.html index 91894ebc77..347da3181e 100644 --- a/phpBB/adm/style/permission_mask.html +++ b/phpBB/adm/style/permission_mask.html @@ -50,7 +50,7 @@  								{% endfor %}  							</ul>  						</div> -						<input type="hidden" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" /> +						<input type="hidden" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]"{% if S_ROLE_ID %}value="{{ S_ROLE_ID }}"{% endif %} />  					</div>  				</dd>  			{% else %} diff --git a/phpBB/adm/style/tooltip.js b/phpBB/adm/style/tooltip.js index 641d82c80a..68964034f0 100644 --- a/phpBB/adm/style/tooltip.js +++ b/phpBB/adm/style/tooltip.js @@ -141,15 +141,20 @@ phpbb.positionTooltip = function ($element) {   */  phpbb.prepareRolesDropdown = function () {  	var $options = $('.roles-options li'); +	var $rolesOptions = $options.closest('.roles-options'); +	var $span = $rolesOptions.children('span');  	// Prepare highlighting of select options and settings update  	$options.each(function () {  		var $this = $(this); -		var $rolesOptions = $this.closest('.roles-options');  		// Correctly show selected option  		if (typeof $this.attr('data-selected') !== 'undefined') { -			$this.closest('.roles-options').children('span').text($this.text()); +			$rolesOptions.closest('.roles-options') +				.children('span') +				.text($this.text()) +				.attr('data-default', $this.text()) +				.attr('data-default-val', $this.attr('data-id'));  		}  		$this.on('mouseover', function () { @@ -164,13 +169,28 @@ phpbb.prepareRolesDropdown = function () {  			init_colours($this.attr('data-target-id').replace('advanced', ''));  			// Set selected setting -			$rolesOptions.children('span').text($this.text()); -			$rolesOptions.children('input[type=hidden]').val($this.attr('data-id')); +			$rolesOptions.children('span') +				.text($this.text()); +			$rolesOptions.children('input[type=hidden]') +				.val($this.attr('data-id'));  			// Trigger hiding of selection options  			$('body').trigger('click');  		});  	}); + +	// Save default text of drop down if there is no default set yet +	if (typeof $span.attr('data-default') === 'undefined') { +		$span.attr('data-default', $span.text()); +	} + +	// Prepare resetting drop down on form reset +	$options.closest('form').on('reset', function () { +		$span.text($span.attr('data-default')); +		$rolesOptions.children('input[type=hidden]') +			.val($span.attr('data-id')); +	}); +  };  // Run onload functions for RolesDropdown and tooltips diff --git a/phpBB/includes/acp/auth.php b/phpBB/includes/acp/auth.php index efb92685f6..b13b1ee040 100644 --- a/phpBB/includes/acp/auth.php +++ b/phpBB/includes/acp/auth.php @@ -470,6 +470,9 @@ class auth_admin extends \phpbb\auth\auth  					// Build role dropdown options  					$current_role_id = (isset($cur_roles[$ug_id][$forum_id])) ? $cur_roles[$ug_id][$forum_id] : 0; +					// Output current role id to template +					$template->assign_var('S_ROLE_ID', $current_role_id); +  					@reset($roles);  					while (list($role_id, $role_row) = each($roles))  					{ @@ -552,6 +555,9 @@ class auth_admin extends \phpbb\auth\auth  					// Build role dropdown options  					$current_role_id = (isset($cur_roles[$ug_id][$forum_id])) ? $cur_roles[$ug_id][$forum_id] : 0; +					// Output current role id to template +					$template->assign_var('S_ROLE_ID', $current_role_id); +  					@reset($roles);  					while (list($role_id, $role_row) = each($roles))  					{  | 
