aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/lib/navigation.php50
-rw-r--r--js/lib/ui.widgets.js2
-rw-r--r--views/default/css/elements/modules.php15
-rw-r--r--views/default/css/elements/navigation.php24
-rw-r--r--views/default/object/widget/elements/controls.php49
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',
+));