aboutsummaryrefslogtreecommitdiff
path: root/views/default/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/widgets')
-rw-r--r--views/default/widgets/add_panel.php30
1 files changed, 20 insertions, 10 deletions
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>