/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); $renderer->draw_text_line_row('category'); $renderer->draw_text_line_row('url'); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->labels_css_class = 'top'; /** @var FOLDER $folder */ $folder = $this->_object; if (!$folder->defines_security()) { $renderer->start(); $renderer->draw_text_row('', 'Are you sure you want to create new permissions for ' . $folder->title_as_link() . '?'); $parent_folder = $folder->parent_folder(); $permissions_folder = $parent_folder->permissions_folder(); $props = $renderer->make_list_properties(); $props->add_item('Do not create any default permissions*', Security_copy_none); $props->add_item('Copy current permissions from ' . $permissions_folder->title_as_link(), Security_copy_current); $props->add_item('Grant all permissions for user ' . $this->login->title_as_link(), Security_create_admin); $renderer->draw_radio_group_row('copy_mode', $props); $buttons[] = $renderer->button_as_HTML('No', 'view_folder_permissions.php?id=' . $this->_object->id); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $permissions = $this->login->permissions(); if ($permissions->value_for(Privilege_set_folder, Privilege_view) != Privilege_always_granted) { $renderer->draw_text_row('', $this->app->get_message('*In this case, you <span class="field">will not</span> be able to see this folder.', 'warning'), 'notes'); } else { $renderer->draw_text_row('', '*Your user will still be allowed to see this folder.', 'notes'); } $renderer->finish(); } else { $renderer->start(); $renderer->draw_text_row('', 'Are you sure you want to remove permissions for ' . $folder->title_as_link() . '?*'); $buttons[] = $renderer->button_as_HTML('No', 'view_folder_permissions.php?id=' . $folder->id); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->draw_text_row('', '*Doing so will revert all permissions to those used by the parent folder.', 'notes'); $renderer->finish(); } }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_row('', 'Are you sure you want to purge ' . $this->_object->title_as_link() . '?'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('Publish branch only', History_item_silent, 'Generate a single notification indicating that the branch was purged.'); $props->add_item('Publish all', History_item_needs_send, 'Generate individual notifications for affected jobs and changes.'); $renderer->draw_radio_group_row('sub_history_item_publication_state', $props); $folder = $this->_object->parent_folder(); $component_query = $folder->component_query(); $other_comps = $component_query->objects_at_ids($this->_object->id, true); $props = $renderer->make_list_properties(); $props->add_item('[None]', 0); foreach ($other_comps as $comp) { $props->add_item($comp->title_as_plain_text(), $comp->id); } $renderer->draw_drop_down_row('replacement_component_id', $props); $buttons[] = $renderer->button_as_HTML('No', $this->_object->home_page()); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->draw_text_row('', '*Purging an branch removes all connections to it and permanently removes it from the database.', 'notes'); $renderer->finish(); }
/** * Draw the controls for the form. * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->default_control_height = '75px'; $renderer->start(); $props = $renderer->make_list_properties(); $props->add_item('bool1', 1); $props->add_item('bool2', 1); $props->items_per_row = 4; $renderer->draw_check_boxes_row('Options', $props); $renderer->start_row('Text', 'text-line'); $text_props = new FORM_TEXT_CONTROL_OPTIONS(); $text_props->css_class = 'small'; echo $renderer->date_as_html('date'); echo ' '; echo $renderer->text_line_as_html('name', $text_props); $renderer->finish_row(); $renderer->draw_text_box_row('description'); $renderer->start_block(''); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->css_class = 'small'; $props->add_item('Option One', 0, 'Description for option one.'); $props->add_item('Option Two', 1, 'Description for option two.'); $renderer->draw_radio_group_row('select', $props); $field = $this->field_at('select'); $renderer->start_row('Menus', 'text-line'); echo $renderer->drop_down_as_html('select', $props); echo ' '; $field->required = true; echo $renderer->drop_down_as_html('select', $props); $renderer->finish_row(); $renderer->start_row('Lists'); $field->required = false; echo $renderer->list_box_as_html('select', $props); echo ' '; $field->required = true; echo $renderer->list_box_as_html('select', $props); $renderer->finish_row(); $renderer->finish_block(); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->labels_css_class = 'top right'; $renderer->start(); $props = $renderer->make_list_properties(); $props->on_click_script = 'this.form.submit()'; $props->add_item('[Default]', ''); foreach ($this->_themes as $theme) { $props->add_item($theme->title_as_plain_text(), $theme->id); } $renderer->draw_drop_down_row('main_CSS_file_name', $props); $props = $renderer->make_list_properties(); $props->on_click_script = 'this.form.submit()'; $props->add_item('[Default]', ''); $theme_font_names = $this->page->theme_options->font_names(); foreach ($theme_font_names as $name => $url) { $props->add_item($name, $url); } $renderer->draw_drop_down_row('font_name_CSS_file_name', $props); $props = $renderer->make_list_properties(); $props->on_click_script = 'this.form.submit()'; $props->add_item('[Default]', ''); $theme_font_sizes = $this->page->theme_options->font_sizes(); foreach ($theme_font_sizes as $name => $url) { $props->add_item($name, $url); } $renderer->draw_drop_down_row('font_size_CSS_file_name', $props); $check_props = $renderer->make_check_properties(); $check_props->on_click_script = 'this.form.submit ()'; $renderer->draw_check_box_row('dont_apply_to_forms', $check_props); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $user_query = $this->app->user_query(); $email = $this->value_for('email'); if (!empty($email)) { $user = $user_query->object_at_email($email); } if (isset($user)) { $field = $this->field_at('new_email'); $field->description = 'Linked to the email address for ' . $user->title_as_link(); } $renderer->start(); $options = new FORM_TEXT_CONTROL_OPTIONS(); $options->css_class = 'medium'; $renderer->draw_text_line_row('new_email', $options); $props = $renderer->make_list_properties(); $props->on_click_script = 'on_min_hours_to_wait (this)'; $props->add_item('Never', Subscriptions_disabled); $props->add_item('Immediately', 0); $props->add_item('Once an hour', 1); $props->add_item('Twice per day', 12); $props->add_item('Once per day', 24); $props->add_item('Every 2 days', 48); $props->add_item('Every 3 days', 72); $props->add_item('Once per week', 168); $props->add_item('Once per month', 720); $renderer->draw_drop_down_row('min_hours_to_wait', $props); $props = $renderer->make_list_properties(); $props->add_item('HTML', 1); $props->add_item('Plain text', 0); $renderer->draw_radio_group_row('send_as_html', $props); $renderer->start_block(''); $options->css_class = 'tiny'; $props = $renderer->make_list_properties(); $props->on_click_script = 'on_change_text_option (this)'; $props->add_item('Send all available text.', 0); // TODO add ability to send CSS class 'text-line' here $item = $props->add_item('Send at most ', 1, '', true, $renderer->text_line_as_HTML('preferred_text_length', $options) . ' characters.'); $item->css_class = 'text-line'; $renderer->draw_radio_group_row('text_options', $props); $renderer->draw_error_row('preferred_text_length'); $props = $renderer->make_list_properties(); $props->on_click_script = 'on_group_objects (this)'; $props->add_item('One item per message.', 0); $item = $props->add_item('Group items if there are more than ', 1, '', true, $renderer->text_line_as_HTML('max_individual_messages', $options) . ' at once.'); $item->css_class = 'text-line'; $renderer->draw_radio_group_row('group_objects', $props); $renderer->draw_error_row('max_individual_messages'); $props = $renderer->make_list_properties(); $props->on_click_script = 'on_split_objects (this)'; $props->add_item('Send only one message.', 0); $item = $props->add_item('Send at most ', 1, '', true, $renderer->text_line_as_HTML('max_items_per_message', $options) . ' items per message.'); $item->css_class = 'text-line'; $renderer->draw_radio_group_row('split_objects', $props); $renderer->draw_error_row('max_items_per_message'); $check_props = $renderer->make_check_properties(); $check_props->on_click_script = 'on_show_history_items (this)'; $renderer->draw_check_box_row('send_own_changes'); $renderer->draw_check_box_row('show_history_items', $check_props); $renderer->draw_check_box_row('group_history_items'); $renderer->draw_check_box_row('show_history_item_as_subject'); $renderer->finish_block(); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @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(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->width = '65%'; $renderer->start(); $renderer->start_row(); ?> <p>Are you sure you want to remove <?php echo $this->_user->title_as_link(); ?> from <?php echo $this->_object->title_as_link(); ?> ?</p> <?php $renderer->finish_row(); $buttons[] = $renderer->button_as_HTML('No', $this->_object->home_page()); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); $renderer->draw_text_line_row('main_CSS_file_name'); $renderer->draw_text_line_row('font_name_CSS_file_name'); $renderer->draw_text_line_row('font_size_CSS_file_name'); $renderer->draw_text_line_row('icon_set'); $renderer->draw_text_line_row('icon_extension'); $renderer->draw_text_line_row('renderer_class_name'); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('app_title'); $renderer->draw_text_line_row('app_id'); $renderer->draw_text_line_row('app_prefix'); $renderer->draw_text_line_row('app_url'); $renderer->draw_text_line_row('app_folder'); $renderer->draw_text_line_row('folder_name'); $renderer->draw_text_line_row('entry_name'); $renderer->draw_text_line_row('author_name'); $renderer->draw_text_line_row('author_email'); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $query = $this->_folder->subscriber_query(); $renderer->labels_css_class = 'top'; $renderer->start(); $folder_type_info = $this->app->type_info_for('FOLDER'); $renderer->draw_text_row('', 'The following emails will be notified when changes are made to this ' . $folder_type_info->singular_title . '.'); $class_name = $this->app->final_class_name('SUBSCRIBER_GRID', 'webcore/gui/subscriber_grid.php'); /** @var $grid SUBSCRIBER_GRID */ $grid = new $class_name($this->app, $this); $num_rows = max($query->size(), 1); $grid->set_page_size($num_rows); $grid->set_query($query); $renderer->start_row(); $grid->display(); $renderer->finish_row(); if ($query->size() > 0) { $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); } $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_box_row('emails'); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $props = $renderer->make_list_properties(); $names = $this->_object->test_names(); if (!empty($names)) { reset($names); do { $props->add_item(current($names), current($names)); } while (next($names) !== false); } $renderer->draw_radio_group_row('test_name', $props); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @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->start(); $renderer->draw_text_row('', 'Are you sure you want to ship ' . $this->_object->title_as_link() . '?'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item($this->app->get_icon_with_text('{app_icons}statuses/working', Sixteen_px, 'Release to testing'), Testing, 'Feature-complete internal release.'); $props->add_item($this->app->get_icon_with_text('{icons}buttons/ship', Sixteen_px, 'Ship'), Shipped, 'Jobs and changes can still be added and removed.'); $props->add_item($this->app->get_icon_with_text('{icons}indicators/locked', Sixteen_px, 'Lock'), Locked, 'Changes and jobs cannot be added or removed.'); $renderer->draw_radio_group_row('state', $props); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('Publish release only', History_item_silent, 'Generate a single notification indicating that the release has shipped.'); $props->add_item('Publish all', History_item_needs_send, 'Generate individual notifications for affected jobs and changes.'); $renderer->draw_radio_group_row('sub_history_item_publication_state', $props); $buttons[] = $renderer->button_as_HTML('No', $this->_object->home_page()); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { if (!isset($this->_search)) { $renderer->labels_css_class = 'top'; $this->button = 'Go'; $renderer->start(); $renderer->draw_text_line_with_button_row('search_text', $renderer->submit_button_as_html(), null, 'search'); $props = $renderer->make_list_properties(); /* Fill with all the registered search types. */ $type_infos = $this->app->search_type_infos(); foreach ($type_infos as $t) { $props->add_item($t->plural_title, $t->id); } $renderer->draw_drop_down_row('type', $props); $renderer->finish(); } else { $renderer->start(); $this->_search->fields->draw_fields($this, $renderer); $renderer->start_row(); echo $renderer->submit_button_as_HTML(); $renderer->finish_row(); $renderer->finish(); } }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_row('', 'Are you sure you want to purge ' . $this->_object->title_as_link() . '?'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('Publish branch only', History_item_silent, 'Generate a single notification indicating that the release was purged.'); $props->add_item('Publish all', History_item_needs_send, 'Generate individual notifications for affected jobs and changes.'); $renderer->draw_radio_group_row('sub_history_item_publication_state', $props); $buttons[] = $renderer->button_as_HTML('No', $this->_object->home_page()); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->draw_text_row('', '*Purging a release removes all connections to it and permanently removes it from the database.', 'info-box-bottom'); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { echo '<div class="log-in-form">'; $renderer->start(); $renderer->draw_text_line_row('name'); $renderer->draw_password_row('password'); $renderer->draw_check_box_row('remember'); $renderer->draw_submit_button_row(); $renderer->finish(); if ($this->app->login->is_anonymous()) { $anon = $this->app->anon_user(); if ($anon->is_allowed(Privilege_set_user, Privilege_create)) { $renderer->draw_text_row('', "Don't have an account? <a href=\"" . $this->app->page_names->user_create . "\">Register now...</a>", 'info-box-bottom'); } } echo '</div>'; }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_password_row('password1'); $renderer->draw_password_row('password2'); if ($this->login->equals($this->_object)) { $renderer->draw_check_box_row('remember'); } $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $user_query = $this->app->user_query(); $group_query = $this->app->group_query(); /** @var GROUP $group */ $group = $group_query->object_at_id($this->value_for('id')); $group_user_query = $group->user_query(); $ids = $group_user_query->indexed_objects(); if (sizeof($ids)) { $user_query->restrict_by_op('usr.id', array_keys($ids), Operator_not_in); } if (read_var('show_anon')) { $user_query->set_kind(Privilege_kind_anonymous); } else { $user_query->set_kind(Privilege_kind_registered); } /** @var USER[] $items */ $items = $user_query->objects(); $renderer->draw_text_line_with_named_object_chooser_row('name', $items); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->labels_css_class = 'top'; $renderer->start(); if ($this->show_object_as_link) { $obj_title = $this->_object->title_as_link(); } else { $obj_title = $this->_object->title_as_html(); } $renderer->draw_text_row('', 'Are you sure you want to delete ' . $obj_title . '?'); if ($this->visible('purge')) { $props = $renderer->make_list_properties(); $props->show_descriptions = true; $check_props = $renderer->make_check_properties('purge'); $check_props->on_click_script = 'on_click_purge (this)'; $props->add_item_object($check_props); $props->add_item('remove_resources', 0); $renderer->draw_check_boxes_row('', $props); } $buttons[] = $renderer->button_as_HTML('No', $this->_object->home_page()); $buttons[] = $renderer->submit_button_as_HTML(); $renderer->draw_buttons_in_row($buttons); $renderer->finish(); }