aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/lib/ui.widgets.js17
-rw-r--r--pages/dashboard.php1
-rw-r--r--views/default/admin/dashboard.php1
-rw-r--r--views/default/css/admin.php29
-rw-r--r--views/default/css/elements/core.php35
-rw-r--r--views/default/layout/objects/widget.php63
-rw-r--r--views/default/layout/objects/widget/controls.php27
-rw-r--r--views/default/layout/objects/widget/settings.php24
-rw-r--r--views/default/layout/shells/widgets.php6
-rw-r--r--views/default/layout/shells/widgets/add_button.php6
-rw-r--r--views/default/layout/shells/widgets/add_panel.php4
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;
}