/*
 *  Copyright 2013 Anyware Services
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

/**
 * This class controls a ribbon controller that is able to test if test target
 * (which should be a target) is modifiable.
 * @private
 */
Ext.define('Ametys.plugins.cms.content.controller.ModifiableContentController', {
	extend: 'Ametys.ribbon.element.ui.button.OpenToolButtonController',

	/**
	 * @cfg {Boolean} [enabled-on-modifiable-only=true] If true the controller will be disabled the selection is not modifiable
	 */
	/**
	 * @cfg {String} no-modifiable-description The description text used for tooltip when the selection is not modifiable
	 */
	
	additionalErrorDescriptionOnSelectionChanged: function(targets)
	{
		var enabledOnModifiableOnly = String(this.getInitialConfig("enabled-on-modifiable-only") || 'false') == 'true';
		var target = targets[0];
		
		if (enabledOnModifiableOnly && !target.getParameters().isModifiable)
		{
			return this.getInitialConfig('no-modifiable-description') || '';
		}
		
		return null;
	}
});