/** * @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) { 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>'; }
/** * 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->start(); $renderer->draw_text_line_row('title'); $renderer->draw_icon_browser_row('icon_url'); $renderer->draw_check_box_row('is_organizational'); $renderer->draw_check_box_row('is_visible'); $renderer->draw_text_box_row('summary'); $renderer->draw_text_box_row('description'); $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $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('originator'); $renderer->draw_text_box_row('description'); $renderer->draw_check_box_row('bullet_ingredients'); $renderer->draw_text_box_row('ingredients', 'medium-height'); $renderer->draw_check_box_row('number_instructions'); $renderer->draw_text_box_row('instructions', 'medium-height'); $renderer->draw_check_box_row('is_visible'); $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); $renderer->draw_date_row('day'); /** @var ALBUM_APPLICATION_DISPLAY_OPTIONS $album_display_options */ $album_display_options = $this->app->display_options; /** @var PROPERTY_VALUE[] $icons */ $icons = $album_display_options->weather_icons(); if (sizeof($icons)) { $props = $renderer->make_list_properties(); $props->items_per_row = 7; $i = 0; foreach ($icons as $icon) { $i += 1; $props->add_item($icon->icon_as_html(Thirty_px), $i); } $renderer->draw_radio_group_row('weather_type', $props); } $renderer->draw_text_box_row('weather'); $options = new FORM_TEXT_CONTROL_OPTIONS(); $options->css_class = 'tiny'; $renderer->start_row('Temps', 'text-line'); echo $renderer->text_line_as_html('lo_temp', $options) . '°C to '; echo $renderer->text_line_as_html('hi_temp', $options) . '°C '; $renderer->finish_row(); $renderer->draw_error_row('lo_temp'); $renderer->draw_error_row('hi_temp'); $renderer->draw_error_row('temps'); $renderer->draw_text_box_row('description', 'tall'); $renderer->draw_check_box_row('is_visible'); $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); $renderer->draw_text_box_row('description'); $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $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'; 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->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(); $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) { $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_box_row('emails'); $renderer->draw_submit_button_row(); $renderer->finish(); }
/** * Draws controls for history item notification. * @param FORM_RENDERER $renderer * @access private */ protected function _draw_history_item_controls($renderer) { $description = 'Change history is stored automatically. %s history options.'; $layer = $renderer->start_layer_row('history', 'History', $description, false, 'full-screen-optional'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('Default', History_item_default, 'Let the system decide whether to send notifications for this change.'); $props->add_item('Publish', History_item_needs_send, 'Send notifications for this change.'); $props->add_item('Do not publish', History_item_silent, 'Do not send notifications for this change'); $renderer->draw_radio_group_row('publication_state', $props); $renderer->draw_text_line_row('history_item_title'); $renderer->draw_text_box_row('history_item_description', 'short-medium'); $renderer->draw_submit_button_row(); $renderer->finish_layer_row($layer); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); if ($this->visible('branch_id')) { $props = $renderer->make_list_properties(); $props->css_class = 'small'; foreach ($this->_branches as $branch) { $props->add_item($branch->title_as_plain_text(), $branch->id); } $renderer->draw_drop_down_row('branch_id', $props); } if (!$this->object_exists() || !$this->_object->shipped()) { $renderer->draw_date_row('time_testing_scheduled'); $renderer->draw_date_row('time_scheduled'); } $renderer->start_block('Status'); if (!$this->object_exists() || $this->_object->planned()) { $props = $renderer->make_list_properties(); $props->show_descriptions = true; if ($this->visible('is_visible')) { $props->add_item($this->app->resolve_icon_as_html('{icons}indicators/invisible', Sixteen_px, ' ') . ' Hidden', Hidden, 'Prevent searching or browsing by non-admin users.'); } $props->add_item($this->app->resolve_icon_as_html('{icons}buttons/calendar', Sixteen_px, ' ') . ' Planned', Planned, 'Release is in development.'); $props->add_item($this->app->resolve_icon_as_html('{app_icons}statuses/working', Sixteen_px, ' ') . ' Testing', Testing, 'Release is feature-complete and in testing.'); $renderer->draw_radio_group_row('state', $props); } else { $props = $renderer->make_list_properties(); $props->show_descriptions = true; if ($this->visible('is_visible')) { $props->add_item($this->app->resolve_icon_as_html('{icons}indicators/invisible', Sixteen_px, ' ') . ' Hidden', Hidden, 'Prevent searching or browsing by non-admin users.'); } $props->add_item($this->app->resolve_icon_as_html('{icons}buttons/ship', Sixteen_px, ' ') . ' Shipped', Shipped, 'Jobs and changes can still be added and removed.'); $props->add_item($this->app->resolve_icon_as_html('{icons}indicators/locked', Sixteen_px, ' ') . ' Locked', Locked, 'Changes and jobs cannot be added or removed.'); $renderer->draw_radio_group_row('state', $props); } $renderer->finish_block(); $renderer->draw_text_box_row('summary'); $renderer->draw_text_box_row('description'); $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $renderer->finish(); }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; if ($this->visible('is_visible')) { $props->add_item($this->app->get_icon_with_text('{icons}indicators/invisible', Sixteen_px, 'Hidden'), Hidden, 'Only administrators can see this branch\'s contents.'); $props->add_item($this->app->get_icon_with_text('{icons}buttons/view', Sixteen_px, 'Visible'), Visible, 'Jobs and changes can be added and removed.'); $props->add_item($this->app->get_icon_with_text('{icons}indicators/locked', Sixteen_px, 'Locked'), Locked, 'Cannot add or remove jobs and changes (undoable).'); } else { $props->add_item($this->app->get_icon_with_text('{icons}buttons/view', Sixteen_px, 'Unlocked'), Visible, 'Jobs and changes can be added and removed.'); $props->add_item($this->app->get_icon_with_text('{icons}indicators/locked', Sixteen_px, 'Locked'), Locked, 'Cannot add or remove jobs and changes (undoable).'); } $renderer->draw_radio_group_row('state', $props); /** @var PROJECT $project */ $project = $this->_folder; /** @var PROJECT_RELEASE_QUERY $release_query */ $release_query = $project->release_query(); $release_query->restrict('rel.state = ' . Locked); /** @var RELEASE[] $releases */ $releases = $release_query->objects(); $props = $renderer->make_list_properties(); $props->css_class = 'small-medium'; $props->add_item('[None]', 0); foreach ($releases as $release) { $branch = $release->branch(); $props->add_item($branch->title_as_plain_text() . $this->app->display_options->object_separator . $release->title_as_plain_text(), $release->id); } $renderer->draw_drop_down_row('parent_release_id', $props); $renderer->draw_text_box_row('description'); $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $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(); }