diff options
Diffstat (limited to 'views')
-rw-r--r-- | views/default/css.php | 12 | ||||
-rw-r--r-- | views/default/layouts/widgets.php | 7 | ||||
-rw-r--r-- | views/default/widgets/add_panel.php | 30 |
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> |