diff options
| author | Ismayil Khayredinov <ismayil.khayredinov@hypejunction.com> | 2011-12-15 05:20:57 +0100 | 
|---|---|---|
| committer | cash <cash.costello@gmail.com> | 2011-12-18 17:59:39 -0500 | 
| commit | bd5c0005158ca136fe87b34dacdf75491e69ed03 (patch) | |
| tree | 11b11cf73ed880a63256a1f7e43f67fcb6d830fd | |
| parent | 2aa0e3846b60a44c6f2dbfe2f9a690776533dca3 (diff) | |
| download | elgg-bd5c0005158ca136fe87b34dacdf75491e69ed03.tar.gz elgg-bd5c0005158ca136fe87b34dacdf75491e69ed03.tar.bz2  | |
Fix #4200: Converting widgets controls into an elgg menu
| -rw-r--r-- | engine/lib/navigation.php | 50 | ||||
| -rw-r--r-- | js/lib/ui.widgets.js | 2 | ||||
| -rw-r--r-- | views/default/css/elements/modules.php | 15 | ||||
| -rw-r--r-- | views/default/css/elements/navigation.php | 24 | ||||
| -rw-r--r-- | views/default/object/widget/elements/controls.php | 49 | 
5 files changed, 82 insertions, 58 deletions
diff --git a/engine/lib/navigation.php b/engine/lib/navigation.php index 176790188..956ca220a 100644 --- a/engine/lib/navigation.php +++ b/engine/lib/navigation.php @@ -385,6 +385,55 @@ function elgg_entity_menu_setup($hook, $type, $return, $params) {  }  /** + * Widget menu is a set of widget controls + * @access private + */ +function elgg_widget_menu_setup($hook, $type, $return, $params) { + +	$widget = $params['entity']; +	$show_edit = elgg_extract('show_edit', $params, true); + +	$collapse = array( +		'name' => 'collapse', +		'text' => ' ', +		'href' => "#elgg-widget-content-$widget->guid", +		'class' => 'elgg-widget-collapse-button', +		'rel' => 'toggle', +		'priority' => 1 +	); +	$return[] = ElggMenuItem::factory($collapse); + +	if ($widget->canEdit()) { +		$delete = array( +			'name' => 'delete', +			'text' => elgg_view_icon('delete-alt'), +			'title' => elgg_echo('widget:delete', array($widget->getTitle())), +			'href' => "action/widgets/delete?widget_guid=$widget->guid", +			'is_action' => true, +			'class' => 'elgg-widget-delete-button', +			'id' => "elgg-widget-delete-button-$widget->guid", +			'priority' => 900 +		); +		$return[] = ElggMenuItem::factory($delete); + +		if ($show_edit) { +			$edit = array( +				'name' => 'settings', +				'text' => elgg_view_icon('settings-alt'), +				'title' => elgg_echo('widget:edit'), +				'href' => "#widget-edit-$widget->guid", +				'class' => "elgg-widget-edit-button", +				'rel' => 'toggle', +				'priority' => 800, +			); +			$return[] = ElggMenuItem::factory($edit); +		} +	} + +	return $return; +} + +/**   * Adds a delete link to "generic_comment" annotations   * @access private   */ @@ -418,6 +467,7 @@ function elgg_nav_init() {  	elgg_register_plugin_hook_handler('prepare', 'menu:site', 'elgg_site_menu_setup');  	elgg_register_plugin_hook_handler('register', 'menu:river', 'elgg_river_menu_setup');  	elgg_register_plugin_hook_handler('register', 'menu:entity', 'elgg_entity_menu_setup'); +	elgg_register_plugin_hook_handler('register', 'menu:widget', 'elgg_widget_menu_setup');  	elgg_register_plugin_hook_handler('register', 'menu:annotation', 'elgg_annotation_menu_setup');  } diff --git a/js/lib/ui.widgets.js b/js/lib/ui.widgets.js index f12ae02c1..a44585843 100644 --- a/js/lib/ui.widgets.js +++ b/js/lib/ui.widgets.js @@ -107,7 +107,7 @@ elgg.ui.widgets.move = function(event, ui) {   * @return void   */  elgg.ui.widgets.remove = function(event) { -	var $widget = $(this).parent().parent(); +	var $widget = $(this).closest('.elgg-module-widget');  	// if widget type is single instance type, enable the add buton  	var type = $widget.attr('class'); diff --git a/views/default/css/elements/modules.php b/views/default/css/elements/modules.php index ef85d4dd5..7750c208f 100644 --- a/views/default/css/elements/modules.php +++ b/views/default/css/elements/modules.php @@ -158,16 +158,7 @@  .elgg-module-widget.elgg-state-draggable > .elgg-head {  	cursor: move;  } -.elgg-module-widget > .elgg-head a { -	position: absolute; -	top: 4px; -	display: inline-block; -	width: 18px; -	height: 18px; -	padding: 2px 2px 0 0; -}  a.elgg-widget-collapse-button { -	left: 5px;  	color: #c5c5c5;  }  a.elgg-widget-collapse-button:hover, @@ -181,12 +172,6 @@ a.elgg-widget-collapse-button:before {  a.elgg-widget-collapsed:before {  	content: "\25BA";  } -a.elgg-widget-delete-button { -	right: 5px; -} -a.elgg-widget-edit-button { -	right: 25px; -}  .elgg-module-widget > .elgg-body {  	background-color: white;  	width: 100%; diff --git a/views/default/css/elements/navigation.php b/views/default/css/elements/navigation.php index d5b20896a..62f370069 100644 --- a/views/default/css/elements/navigation.php +++ b/views/default/css/elements/navigation.php @@ -534,4 +534,26 @@  *************************************** */  .elgg-menu-extras {  	margin-bottom: 15px; -}
\ No newline at end of file +} + +/* *************************************** +	WIDGET MENU +*************************************** */ +.elgg-menu-widget > li { +	position: absolute; +	top: 4px; +	display: inline-block; +	width: 18px; +	height: 18px; +	padding: 2px 2px 0 0; +} + +.elgg-menu-widget > .elgg-menu-item-collapse { +	left: 5px; +} +.elgg-menu-widget > .elgg-menu-item-delete { +	right: 5px; +} +.elgg-menu-widget > .elgg-menu-item-settings { +	right: 25px; +} diff --git a/views/default/object/widget/elements/controls.php b/views/default/object/widget/elements/controls.php index 866dcc787..d1d630c4f 100644 --- a/views/default/object/widget/elements/controls.php +++ b/views/default/object/widget/elements/controls.php @@ -6,44 +6,11 @@   * @uses $vars['show_edit'] Whether to show the edit button (true)   */ -$widget = $vars['widget']; -$show_edit = elgg_extract('show_edit', $vars, true); - -$params = array( -	'text' => ' ', -	'href' => "#elgg-widget-content-$widget->guid", -	'class' => 'elgg-widget-collapse-button', -	'rel' => 'toggle', -); -$collapse_link = elgg_view('output/url', $params); - -$delete_link = $edit_link = ''; -if ($widget->canEdit()) { -	$params = array( -		'text' => elgg_view_icon('delete-alt'), -		'title' => elgg_echo('widget:delete', array($widget->getTitle())), -		'href' => "action/widgets/delete?widget_guid=$widget->guid", -		'is_action' => true, -		'is_trusted' => true, -		'class' => 'elgg-widget-delete-button', -		'id' => "elgg-widget-delete-button-$widget->guid" -	); -	$delete_link = elgg_view('output/url', $params); - -	if ($show_edit) { -		$params = array( -			'text' => elgg_view_icon('settings-alt'), -			'title' => elgg_echo('widget:edit'), -			'href' => "#widget-edit-$widget->guid", -			'class' => "elgg-widget-edit-button", -			'rel' => 'toggle', -		); -		$edit_link = elgg_view('output/url', $params); -	} -} - -echo <<<___END -	$collapse_link -	$delete_link -	$edit_link -___END; +echo elgg_view_menu('widget', array( +	'entity' => elgg_extract('widget', $vars), +	'params' => array( +		'show_edit' => elgg_extract('show_edit', $vars, true) +	), +	'sort_by' => 'priority', +	'class' => 'elgg-menu-hz', +));  | 
