aboutsummaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to 'views')
-rw-r--r--views/default/css.php12
-rw-r--r--views/default/layouts/widgets.php7
-rw-r--r--views/default/widgets/add_panel.php30
3 files changed, 30 insertions, 19 deletions
diff --git a/views/default/css.php b/views/default/css.php
index 286beeece..e0be90b2b 100644
--- a/views/default/css.php
+++ b/views/default/css.php
@@ -894,13 +894,19 @@ li.navigation_more ul li {
float: left;
margin: 2px 10px;
list-style: none;
-}
-.widgets_add_panel li a {
- display: block;
width: 200px;
padding: 4px;
background-color: #cccccc;
}
+.widgets_add_panel li a {
+ display: block;
+}
+.widget_available {
+ cursor: pointer;
+}
+.widget_unavailable {
+ color: #888888;
+}
.widget {
background-color: #dedede;
padding: 2px;
diff --git a/views/default/layouts/widgets.php b/views/default/layouts/widgets.php
index 149e3d327..4b097dcf6 100644
--- a/views/default/layouts/widgets.php
+++ b/views/default/layouts/widgets.php
@@ -4,7 +4,7 @@
*
* @uses $vars['box'] Optional display box at the top of layout
* @uses $vars['num_columns'] Number of widget columns for this layout
- * @uses $vars['show_add_widgets'] Display the add widgets button
+ * @uses $vars['show_add_widgets'] Display the add widgets button and panel
*/
$box = elgg_get_array_value('box', $vars, '');
@@ -28,8 +28,6 @@ if (elgg_can_edit_widget_layout($context)) {
echo elgg_view('widgets/add_panel', $params);
}
-echo '<div class="widget_layout">';
-
echo $vars['box'];
$widget_class = "widget_{$num_columns}_columns";
@@ -45,7 +43,4 @@ for ($column_index = 1; $column_index <= $num_columns; $column_index++) {
echo '</div>';
}
-echo '<div class="clearfloat"></div>';
-echo '</div>';
-
elgg_pop_context(); \ No newline at end of file
diff --git a/views/default/widgets/add_panel.php b/views/default/widgets/add_panel.php
index 70d80f41c..09511487c 100644
--- a/views/default/widgets/add_panel.php
+++ b/views/default/widgets/add_panel.php
@@ -1,10 +1,17 @@
<?php
$widgets = $vars['widgets'];
-$widget_types = elgg_get_widget_types();
-
$context = $vars['context'];
+$widget_types = elgg_get_widget_types($context);
+
+$current_handlers = array();
+foreach ($widgets as $column_widgets) {
+ foreach ($column_widgets as $widget) {
+ $current_handlers[] = $widget->handler;
+ }
+}
+
?>
<div class="widgets_add_panel hidden">
<p>
@@ -12,14 +19,17 @@ $context = $vars['context'];
</p>
<ul>
<?php
- foreach ($widget_types as $handler => $widget_type) {
- $options = array(
- 'text' => $widget_type->name,
- 'href' => '#',
- 'internalid' => $handler,
- );
- $link = elgg_view('output/url', $options);
- echo "<li>$link</li>";
+ foreach ($widget_types as $handler => $widget_type) {
+ // check if widget added and only one instance allowed
+ if ($widget_type->multiple == false && in_array($handler, $current_handlers)) {
+ $class = 'widget_unavailable';
+ $tooltip = elgg_echo('widget:unavailable');
+ } else {
+ $class = 'widget_available';
+ $tooltip = $widget_type->description;
+ }
+
+ echo "<li title=\"$tooltip\" id=\"$handler\" class=\"$class\">$widget_type->name</li>";
}
?>
</ul>