/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->labels_css_class = 'top'; $size = 0; if ($this->object_exists()) { $ids = $this->_object->subscribed_ids_for($this->_sub_type, $this->_type); if (!empty($ids)) { $query = $this->_make_query(); $query->restrict_to_ids($ids); $size = $query->size(); } } if ($size) { $grid = $this->_make_grid(); $grid->set_page_size($size); $grid->set_query($query); $grid->items_are_selectable = true; $grid->items_are_selected = true; $ctrl_name = $this->js_name('ids'); $renderer->width = ''; $renderer->start(); if ($size > 0) { $buttons[] = $renderer->javascript_button_as_HTML('Select All', "select_all ({$ctrl_name})", '{icons}buttons/select'); $buttons[] = $renderer->javascript_button_as_HTML('Clear All', "select_none ({$ctrl_name})", '{icons}buttons/close'); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->draw_error_row('ids'); } $renderer->start_row(); $grid->display(); $renderer->finish_row(); if ($size > 0) { $renderer->draw_buttons_in_row($buttons); } $renderer->finish(); } else { echo '<div class="error">You are not subscribed to any ' . strtolower($this->_type_info->plural_title) . '.</div>'; } }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->labels_css_class = 'top'; if ($this->object_exists()) { $selected_folder_ids = $this->_object->subscribed_ids_for(Subscribe_folder); } $user = $this->_object->user(); // Try to get the user associated with this subscriber if (!isset($user)) { $user = $this->app->anon_user(); } $folder_query = $user->folder_query(); $folders = $folder_query->tree($this->app->root_folder_id); $selected_folders = $folder_query->objects_at_ids($selected_folder_ids); /* Make a copy (not a reference). */ $tree = $this->app->make_tree_renderer(); include_once 'webcore/gui/folder_tree_node_info.php'; $tree_node_info = new FOLDER_TREE_NODE_INFO($this->app); $tree_node_info->nodes_are_links = false; include_once 'webcore/gui/selector_tree_decorator.php'; $decorator = new MULTI_SELECTOR_TREE_DECORATOR($tree, $selected_folder_ids); $decorator->control_name = 'ids'; $decorator->form_name = $this->name; $decorator->auto_toggle_children = true; $tree->node_info = $tree_node_info; $tree->decorator = $decorator; $tree->set_visible_nodes($selected_folders); $ctrl_name = $this->js_name('ids'); $renderer->start(); if (sizeof($folders) > 0) { $buttons[] = $renderer->javascript_button_as_HTML('Select All', "select_all ({$ctrl_name})", '{icons}buttons/select'); $buttons[] = $renderer->javascript_button_as_HTML('Clear All', "select_none ({$ctrl_name})", '{icons}buttons/close'); $renderer->start_row(); $renderer->draw_buttons($buttons); $renderer->finish_row(); $renderer->draw_error_row('ids'); } $renderer->start_row(); $tree->display($folders); $renderer->finish_row(); $renderer->draw_submit_button_row(); $renderer->finish(); }