diff options
| -rw-r--r-- | js/lib/ui.widgets.js | 17 | ||||
| -rw-r--r-- | pages/dashboard.php | 1 | ||||
| -rw-r--r-- | views/default/admin/dashboard.php | 1 | ||||
| -rw-r--r-- | views/default/css/admin.php | 29 | ||||
| -rw-r--r-- | views/default/css/elements/core.php | 35 | ||||
| -rw-r--r-- | views/default/layout/objects/widget.php | 63 | ||||
| -rw-r--r-- | views/default/layout/objects/widget/controls.php | 27 | ||||
| -rw-r--r-- | views/default/layout/objects/widget/settings.php | 24 | ||||
| -rw-r--r-- | views/default/layout/shells/widgets.php | 6 | ||||
| -rw-r--r-- | views/default/layout/shells/widgets/add_button.php | 6 | ||||
| -rw-r--r-- | views/default/layout/shells/widgets/add_panel.php | 4 | 
11 files changed, 114 insertions, 99 deletions
| diff --git a/js/lib/ui.widgets.js b/js/lib/ui.widgets.js index bcace608f..b99570d04 100644 --- a/js/lib/ui.widgets.js +++ b/js/lib/ui.widgets.js @@ -13,9 +13,9 @@ elgg.ui.widgets.init = function() {  	}  	$(".elgg-widgets").sortable({ -		items:                'div.elgg-widget', +		items:                'div.elgg-module-widget.elgg-state-draggable',  		connectWith:          '.elgg-widgets', -		handle:               'div.drag-handle', +		handle:               'div.elgg-head',  		forcePlaceholderSize: true,  		placeholder:          'elgg-widget-placeholder',  		opacity:              0.8, @@ -23,7 +23,7 @@ elgg.ui.widgets.init = function() {  		stop:                 elgg.ui.widgets.move  	}); -	$('.elgg-widgets-add-panel li.elgg-widget-available').click(elgg.ui.widgets.add); +	$('.elgg-widgets-add-panel li.elgg-state-available').click(elgg.ui.widgets.add);  	$('a.elgg-widget-delete-button').live('click', elgg.ui.widgets.remove);  	$('.elgg-widget-edit > form ').live('submit', elgg.ui.widgets.saveSettings); @@ -48,8 +48,8 @@ elgg.ui.widgets.add = function(event) {  	// if multiple instances not allow, disable this widget type add button  	var multiple = $(this).attr('class').indexOf('elgg-widget-multiple') != -1;  	if (multiple == false) { -		$(this).addClass('elgg-widget-unavailable'); -		$(this).removeClass('elgg-widget-available'); +		$(this).addClass('elgg-state-unavailable'); +		$(this).removeClass('elgg-state-available');  		$(this).unbind('click', elgg.ui.widgets.add);  	} @@ -61,7 +61,6 @@ elgg.ui.widgets.add = function(event) {  		},  		success: function(json) {  			$('#elgg-widget-col-1').prepend(json.output); -			var $widget = $('#elgg-widget-col-1').children(":first");  		}  	});  	event.preventDefault(); @@ -116,8 +115,8 @@ elgg.ui.widgets.remove = function(event) {  	$button = $('#elgg-widget-type-' + type);  	var multiple = $button.attr('class').indexOf('elgg-widget-multiple') != -1;  	if (multiple == false) { -		$button.addClass('elgg-widget-available'); -		$button.removeClass('elgg-widget-unavailable'); +		$button.addClass('elgg-state-available'); +		$button.removeClass('elgg-state-unavailable');  		$button.unbind('click', elgg.ui.widgets.add); // make sure we don't bind twice  		$button.click(elgg.ui.widgets.add);  	} @@ -144,7 +143,7 @@ elgg.ui.widgets.remove = function(event) {   */  elgg.ui.widgets.collapseToggle = function(event) {  	$(this).toggleClass('elgg-widget-collapsed'); -	$(this).parent().parent().find('.elgg-widget-container').slideToggle('medium'); +	$(this).parent().parent().parent().find('.elgg-body').slideToggle('medium');  	event.preventDefault();  } diff --git a/pages/dashboard.php b/pages/dashboard.php index 6cd19e1cf..1deefed97 100644 --- a/pages/dashboard.php +++ b/pages/dashboard.php @@ -20,6 +20,7 @@ $intro_message = elgg_view('core/dashboard/blurb');  $params = array(  	'box' => $intro_message,  	'num_columns' => 3, +	'show_access' => false,  );  $widgets = elgg_view_layout('widgets', $params); diff --git a/views/default/admin/dashboard.php b/views/default/admin/dashboard.php index 57e15308d..1b042f14b 100644 --- a/views/default/admin/dashboard.php +++ b/views/default/admin/dashboard.php @@ -5,6 +5,7 @@ elgg_set_page_owner_guid(get_loggedin_userid());  $params = array(  	'num_columns' => 2,  	'exact_match' => true, +	'show_access' => false,  );  $widgets = elgg_view_layout('widgets', $params); diff --git a/views/default/css/admin.php b/views/default/css/admin.php index 9735de87f..930ee2fe3 100644 --- a/views/default/css/admin.php +++ b/views/default/css/admin.php @@ -482,40 +482,37 @@ input[type="submit"]:hover, .elgg-submit-button:hover, .elgg-action-button:hover  .elgg-widgets-add-panel li a {  	display: block;  } - -<?php //@todo Convert to elgg-state-*? ?> -.elgg-widget-available { +.elgg-state-available {  	color: #333333;  	cursor: pointer;  } -.elgg-widget-available:hover { +.elgg-state-available:hover {  	border-color: #aaaaaa;  } -.elgg-widget-unavailable { +.elgg-state-unavailable {  	color: #888888;  } -<?php //@todo extend elgg-module.  Still too many location-dependent/overly-qualified styles ?> -.elgg-widget { +.elgg-module-widget {  	background-color: #dedede;  	padding: 1px;  	margin: 0 5px 15px;  	position: relative;  } -.elgg-widget:hover { +.elgg-module-widget:hover {  	background-color: #cccccc;  } -.elgg-widget-title { +.elgg-module-widget > .elgg-head {  	background-color: #f5f5f5;  	height: 30px;  	line-height: 30px;  	overflow: hidden;  } -.elgg-widget-title h3 { +.elgg-module-widget > .elgg-head h3 {  	float: left;  	padding: 0 45px 0 20px;  	color: #333333;  } -.elgg-widget-controls a { +.elgg-module-widget > .elgg-head a {  	position: absolute;  	top: 5px;  	display: block; @@ -523,11 +520,14 @@ input[type="submit"]:hover, .elgg-submit-button:hover, .elgg-action-button:hover  	height: 18px;  	border: 1px solid transparent;  } +.elgg-state-draggable > .elgg-head { +	cursor: move; +}  a.elgg-widget-collapse-button {  	left: 5px;  	background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat 0px -385px;  } -.elgg-widget-controls a.elgg-widget-collapsed { +a.elgg-widget-collapsed {  	background-position: 0px -365px;  }  a.elgg-widget-delete-button { @@ -541,7 +541,7 @@ a.elgg-widget-edit-button {  a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover {  	border: 1px solid #cccccc;  } -.elgg-widget-container { +.elgg-module-widget > .elgg-body {  	border-top: 1px solid #dedede;  	background-color: white;  	width: 100%; @@ -556,9 +556,6 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover {  .elgg-widget-content {  	padding: 10px;  } -.drag-handle { -	cursor: move; -}  .elgg-widget-placeholder {  	border: 2px dashed #dedede;  	margin-bottom: 15px; diff --git a/views/default/css/elements/core.php b/views/default/css/elements/core.php index 06bbb97c4..319fd4c5b 100644 --- a/views/default/css/elements/core.php +++ b/views/default/css/elements/core.php @@ -139,14 +139,9 @@  }  <?php //@todo location-dependent style: make an extension of elgg-gallery ?> -.elgg-widgets-add-panel ul { -	padding: 0; -	margin: 0; -}  .elgg-widgets-add-panel li {  	float: left;  	margin: 2px 10px; -	list-style: none;  	width: 200px;  	padding: 4px;  	background-color: #cccccc; @@ -156,41 +151,42 @@  .elgg-widgets-add-panel li a {  	display: block;  } - -<?php //@todo Convert to elgg-state-*? ?> -.elgg-widget-available { +.elgg-widgets-add-panel .elgg-state-available {  	color: #333333;  	cursor: pointer;  } -.elgg-widget-available:hover { +.elgg-widgets-add-panel .elgg-state-available:hover {  	background-color: #bcbcbc;  } -.elgg-widget-unavailable { +.elgg-widgets-add-panel .elgg-state-unavailable {  	color: #888888;  } -<?php //@todo extend elgg-module.  Still too many location-dependent/overly-qualified styles ?> -.elgg-widget { +<?php //@todo Still too many location-dependent/overly-qualified styles ?> +.elgg-module-widget {  	background-color: #dedede;  	padding: 2px;  	margin: 0 5px 15px;  	position: relative;  } -.elgg-widget:hover { +.elgg-module-widget:hover {  	background-color: #cccccc;  } -.elgg-widget-title { +.elgg-module-widget > .elgg-head {  	background-color: #dedede;  	height: 30px;  	line-height: 30px;  	overflow: hidden;  } -.elgg-widget-title h3 { +.elgg-module-widget > .elgg-head h3 {  	float: left;  	padding: 0 45px 0 20px;  	color: #333333;  } -.elgg-widget-controls a { +.elgg-module-widget.elgg-state-draggable > .elgg-head { +	cursor: move; +} +.elgg-module-widget > .elgg-head a {  	position: absolute;  	top: 5px;  	display: block; @@ -202,7 +198,7 @@ a.elgg-widget-collapse-button {  	left: 5px;  	background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat 0px -385px;  } -.elgg-widget-controls a.elgg-widget-collapsed { +a.elgg-widget-collapsed {  	background-position: 0px -365px;  }  a.elgg-widget-delete-button { @@ -216,7 +212,7 @@ a.elgg-widget-edit-button {  a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover {  	border: 1px solid #cccccc;  } -.elgg-widget-container { +.elgg-module-widget > .elgg-body {  	background-color: white;  	width: 100%;  	overflow: hidden; @@ -230,9 +226,6 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover {  .elgg-widget-content {  	padding: 10px;  } -.drag-handle { -	cursor: move; -}  .elgg-widget-placeholder {  	border: 2px dashed #dedede;  	margin-bottom: 15px; diff --git a/views/default/layout/objects/widget.php b/views/default/layout/objects/widget.php index d9a0681af..727b04533 100644 --- a/views/default/layout/objects/widget.php +++ b/views/default/layout/objects/widget.php @@ -2,7 +2,8 @@  /**   * Widget object   * - * @uses $vars['entity'] + * @uses $vars['entity']      ElggWidget + * @uses $vars['show_access'] Show the access control in edit area? (true)   */  $widget = $vars['entity']; @@ -10,41 +11,57 @@ if (!elgg_instanceof($widget, 'object', 'widget')) {  	return true;  } +$show_access = elgg_get_array_value('show_access', $vars, true); +  // @todo catch for disabled plugins -$widgettypes = elgg_get_widget_types('all'); +$widget_types = elgg_get_widget_types('all');  $handler = $widget->handler;  $title = $widget->getTitle(); +$edit_area = '';  $can_edit = $widget->canEdit(); +if ($can_edit) { +	$edit_area = elgg_view('layout/objects/widget/settings', array( +		'widget' => $widget, +		'show_access' => $show_access, +	)); +} +$controls = elgg_view('layout/objects/widget/controls', array( +	'widget' => $widget, +	'show_edit' => $edit_area != '', +)); + + +if (elgg_view_exists("widgets/$handler/content")) { +	$content = elgg_view("widgets/$handler/content", $vars); +} else { +	elgg_deprecated_notice("widgets use content as the display view", 1.8); +	$content = elgg_view("widgets/$handler/view", $vars); +} +  $widget_id = "elgg-widget-$widget->guid";  $widget_instance = "elgg-widget-instance-$handler"; +$widget_class = "elgg-module elgg-module-widget"; +if ($can_edit) { +	$widget_class .= " elgg-state-draggable $widget_instance"; +} else { +	$widget_class .= " elgg-state-fixed $widget_instance"; +} -?> -<div class="elgg-widget draggable <?php echo $widget_instance?>" id="<?php echo $widget_id; ?>"> -	<div class="elgg-widget-title drag-handle"> -		<h3><?php echo $title; ?></h3> +echo <<<HTML +<div class="$widget_class" id="$widget_id"> +	<div class="elgg-head"> +		<h3>$title</h3> +		$controls  	</div> -	<?php -	echo elgg_view('layout/objects/widget/controls', array('widget' => $widget)); -	?> -	<div class="elgg-widget-container"> -		<?php -		if ($can_edit) { -			echo elgg_view('layout/objects/widget/settings', array('widget' => $widget)); -		} -		?> +	<div class="elgg-body"> +		$edit_area  		<div class="elgg-widget-content"> -			<?php -			if (elgg_view_exists("widgets/$handler/content")) { -				echo elgg_view("widgets/$handler/content", $vars); -			} else { -				elgg_deprecated_notice("widgets use content as the display view", 1.8); -				echo elgg_view("widgets/$handler/view", $vars);				 -			} -			?> +			$content  		</div>  	</div>  </div> +HTML; diff --git a/views/default/layout/objects/widget/controls.php b/views/default/layout/objects/widget/controls.php index 9693ba42f..bd1e96ea7 100644 --- a/views/default/layout/objects/widget/controls.php +++ b/views/default/layout/objects/widget/controls.php @@ -2,18 +2,17 @@  /**   * Elgg widget controls   * - * @package Elgg - * @subpackage Core + * @uses $vars['widget'] + * @uses $vars['show_edit'] Whether to show the edit button (true)   */  $widget = $vars['widget']; +$show_edit = elgg_get_array_value('show_edit', $vars, true);  $params = array(  	'text' => ' ',  	'href' => "#",  	'class' => 'elgg-widget-collapse-button', -//	'internalid' => "elgg-toggler-widget-$widget->guid" -//	'internalid' => "elgg-widget-collapse-button-$widget->guid"  );  $collapse_link = elgg_view('output/url', $params); @@ -29,20 +28,20 @@ if ($widget->canEdit()) {  	);  	$delete_link = elgg_view('output/url', $params); -	$params = array( -		'text' => ' ', -		'title' => elgg_echo('widget:edit'), -		'href' => "#", -		'class' => 'elgg-widget-edit-button elgg-toggle', -		'internalid' => "elgg-toggler-widget-$widget->guid" -	); -	$edit_link = elgg_view('output/url', $params); +	if ($show_edit) { +		$params = array( +			'text' => ' ', +			'title' => elgg_echo('widget:edit'), +			'href' => "#", +			'class' => 'elgg-widget-edit-button elgg-toggle', +			'internalid' => "elgg-toggler-widget-$widget->guid" +		); +		$edit_link = elgg_view('output/url', $params); +	}  }  echo <<<___END -<div class="elgg-widget-controls">  	$collapse_link  	$delete_link  	$edit_link -</div>  ___END; diff --git a/views/default/layout/objects/widget/settings.php b/views/default/layout/objects/widget/settings.php index 8020983c6..c53ea8fc6 100644 --- a/views/default/layout/objects/widget/settings.php +++ b/views/default/layout/objects/widget/settings.php @@ -2,27 +2,31 @@  /**   * Elgg widget edit settings   * - * @package Elgg - * @subpackage Core + * @uses $vars['widget'] + * @uses $vars['show_access']   */  $widget = $vars['widget']; +$show_access = elgg_get_array_value('show_access', $vars, true);  $edit_view = "widgets/$widget->handler/edit";  $custom_form_section = elgg_view($edit_view, array('entity' => $widget)); -$access_label = elgg_echo('access'); -$access = elgg_view('input/access', array('internalname' => 'params[access_id]','value' => $widget->access_id)); -$access_html = "<p><label>$access_label:</label> $access</p>"; +$access = ''; +if ($show_access) { +	$access = elgg_view('input/access', array( +		'internalname' => 'params[access_id]', +		'value' => $widget->access_id, +	)); +} + +if (!$custom_form_section && !$access) { +	return true; +}  $hidden = elgg_view('input/hidden', array('internalname' => 'guid', 'value' => $widget->guid));  $submit = elgg_view('input/submit', array('value' => elgg_echo('save'))); -// dashboard widgets do not get access controls -if (elgg_in_context('dashboard')) { -	$access = ''; -} -  $body = <<<___END  	$custom_form_section  	$access diff --git a/views/default/layout/shells/widgets.php b/views/default/layout/shells/widgets.php index 656a0e4c3..f47c90f03 100644 --- a/views/default/layout/shells/widgets.php +++ b/views/default/layout/shells/widgets.php @@ -6,12 +6,14 @@   * @uses $vars['num_columns']      Number of widget columns for this layout (3)   * @uses $vars['show_add_widgets'] Display the add widgets button and panel (true)   * @uses $vars['exact_match']      Widgets must match the current context (false) + * @uses $vars['show_access']      Show the access control (true)   */  $box = elgg_get_array_value('box', $vars, '');  $num_columns = elgg_get_array_value('num_columns', $vars, 3);  $show_add_widgets = elgg_get_array_value('show_add_widgets', $vars, true);  $exact_match = elgg_get_array_value('exact_match', $vars, false); +$show_access = elgg_get_array_value('show_access', $vars, true);  $owner = elgg_get_page_owner();  $context = elgg_get_context(); @@ -40,7 +42,7 @@ for ($column_index = 1; $column_index <= $num_columns; $column_index++) {  	echo "<div class=\"$widget_class elgg-widgets\" id=\"elgg-widget-col-$column_index\">";  	if (is_array($column_widgets) && sizeof($column_widgets) > 0) {  		foreach ($column_widgets as $widget) { -			echo elgg_view_entity($widget); +			echo elgg_view_entity($widget, array('show_access' => $show_access));  		}  	}  	echo '</div>'; @@ -48,4 +50,4 @@ for ($column_index = 1; $column_index <= $num_columns; $column_index++) {  elgg_pop_context(); -echo elgg_view('graphics/ajax_loader', array('internalid' => 'elgg-widget-loader'));
\ No newline at end of file +echo elgg_view('graphics/ajax_loader', array('internalid' => 'elgg-widget-loader')); diff --git a/views/default/layout/shells/widgets/add_button.php b/views/default/layout/shells/widgets/add_button.php index 492f0f6fc..51b03edbb 100644 --- a/views/default/layout/shells/widgets/add_button.php +++ b/views/default/layout/shells/widgets/add_button.php @@ -3,6 +3,8 @@   * Button area for showing the add widgets panel   */  ?> -<div class="elgg-widget-add-control elgg-toggle" id="elgg-toggler-add-widgets"> -	<a class="elgg-action-button"><?php echo elgg_echo('widgets:add'); ?></a> +<div class="elgg-widget-add-control"> +	<a class="elgg-action-button elgg-toggle" id="elgg-toggler-add-widgets"> +		<?php echo elgg_echo('widgets:add'); ?> +	</a>  </div> diff --git a/views/default/layout/shells/widgets/add_panel.php b/views/default/layout/shells/widgets/add_panel.php index 2d2a05a08..ff789cbd3 100644 --- a/views/default/layout/shells/widgets/add_panel.php +++ b/views/default/layout/shells/widgets/add_panel.php @@ -31,10 +31,10 @@ foreach ($widgets as $column_widgets) {  			$id = "elgg-widget-type-$handler";  			// check if widget added and only one instance allowed  			if ($widget_type->multiple == false && in_array($handler, $current_handlers)) { -				$class = 'elgg-widget-unavailable'; +				$class = 'elgg-state-unavailable';  				$tooltip = elgg_echo('widget:unavailable');  			} else { -				$class = 'elgg-widget-available'; +				$class = 'elgg-state-available';  				$tooltip = $widget_type->description;  			} | 
