/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { $renderer->start(); $renderer->draw_text_line_row('title'); if ($this->_has_options()) { $this->_draw_options($renderer); } $icons = $this->app->display_options->comment_icons(); if (sizeof($icons)) { $props = $renderer->make_list_properties(); $props->items_per_row = 8; $i = 0; foreach ($icons as $icon) { $i += 1; $props->add_item($icon->icon_as_html(Fifteen_px), $i); } $renderer->draw_radio_group_row('kind', $props); } $renderer->draw_text_box_row('description', 'medium-height'); if ($this->_captcha_enabled()) { $this->_draw_captcha_controls($renderer); } $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', $this->description_control_css_class); if ($this->_has_options()) { $this->_draw_options($renderer); } $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(); $options = new FORM_TEXT_CONTROL_OPTIONS(); $options->on_change_script = 'on_title_changed (this)'; $renderer->draw_text_line_row('title', $options); if ($this->visible('location')) { $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('Local', Album_location_type_local, 'Store pictures on this server under URL Root; uploading is supported.'); $props->add_item('Remote', Album_location_type_remote, 'Retrieve pictures from another server at URL Root; uploading is <b>not</b> supported.'); $renderer->draw_radio_group_row('location', $props); } $options->on_change_script = 'on_url_root_changed (this)'; $renderer->draw_text_line_row('url_root', $options); $item = $renderer->make_check_properties(); $item->on_click_script = 'on_url_root_enabled_changed (this)'; $renderer->draw_check_box_row('url_root_enabled', $item); $options->on_change_script = null; $renderer->start_block('Dates'); $props = $renderer->make_list_properties(); $props->on_click_script = 'on_day_mode_changed (this)'; $props->show_descriptions = true; $props->add_item('One day', Album_is_single_day, 'For parties or sporting events.'); $props->add_item('Several days', Album_is_span, 'For trips; both first and last day are fixed.'); $props->add_item('Journal', Album_is_journal, 'First day is fixed; last day is always today\'s date.'); $props->add_item('Free-form', Album_is_adjusted, 'Calculated automatically from pictures and journals.'); $renderer->start_row(''); echo $renderer->radio_group_as_html('date_style', $props); $renderer->finish_row(); $renderer->draw_date_row('first_day'); $renderer->draw_date_row('last_day'); $renderer->draw_error_row('dates'); $renderer->finish_block(); $renderer->start_block('Settings'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('is_visible', 1); $props->add_item('show_times', 1); $props->add_item('is_organizational', 1); $item = $renderer->make_check_properties(); $item->title = 'constrain_picture_size'; $options = new FORM_TEXT_CONTROL_OPTIONS(); $options->css_class = 'tiny'; $picture_width_control = $renderer->text_line_as_HTML('max_picture_width', $options); $picture_height_control = $renderer->text_line_as_HTML('max_picture_height', $options); $item->text = ' ' . $picture_width_control . ' x ' . $picture_height_control; $item->on_click_script = 'on_pic_size_constraint_changed (this)'; $item->css_class = 'text-line'; $props->add_item_object($item); $renderer->draw_check_boxes_row('', $props); $renderer->start_row('Temperature'); $props = $renderer->make_list_properties(); $props->items_per_row = 2; $props->add_item('Celsius', 1); $props->add_item('Fahrenheit', 0); echo $renderer->radio_group_as_HTML('show_celsius', $props); $renderer->finish_row(); $renderer->finish_block(); $this->_draw_key_photo($renderer); $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(); if ($this->object_exists()) { /** @var ATTACHMENT $attachment */ $attachment = $this->_object; $img = $attachment->icon_as_html(Thirty_two_px); if ($attachment->is_image) { $thumb = $attachment->thumbnail_as_html(); if ($thumb) { $img = $thumb; } } $renderer->start_row('Current file'); echo '<div class="info-box-top"><p>' . $this->_object->original_file_name . '</p>'; echo '<p>' . $this->_object->mime_type . ' (' . file_size_as_text($this->_object->size) . ')</p></div>'; echo '<p>' . $img . '</p>'; $renderer->finish_row(); $renderer->draw_text_line_row('title'); $renderer->draw_check_box_row('is_visible'); $renderer->draw_text_box_row('description'); if ($this->login->is_allowed(Privilege_set_attachment, Privilege_upload, $this->_folder)) { $renderer->start_block('Options'); $renderer->draw_text_row(' ', 'Replacing the file for the attachment is optional; you can regenerate the thumbnail from the current image by clicking "Save" below.', 'notes'); $this->_draw_file_controls($renderer); $renderer->finish_block(); } } else { if ($this->login->is_allowed(Privilege_set_attachment, Privilege_upload, $this->_folder)) { $this->_draw_file_controls($renderer); } $renderer->draw_text_line_row('title'); $renderer->draw_check_box_row('is_visible'); $renderer->draw_text_box_row('description'); } $renderer->draw_submit_button_row(); $this->_draw_history_item_controls($renderer); $renderer->finish(); }
/** * Draw all fields into the form. * @param FORM $form * @param FORM_RENDERER $renderer */ public function draw_fields($form, $renderer) { $renderer->draw_text_line_row('search_text'); if (read_var('quick_search')) { $layer = $renderer->start_layer_row('advanced-search-settings', 'Advanced', 'Toggle advanced settings'); } $props = $renderer->make_list_properties(); foreach (array_keys($this->_texts) as $id) { $props->add_item($id, 1); } $renderer->draw_check_boxes_row('In', $props); $this->_draw_user_fields($form, $renderer); $this->_draw_date_fields($form, $renderer); $this->_draw_sort_fields($form, $renderer); if (isset($layer)) { $renderer->finish_layer_row($layer); } }
/** * @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_text_line_row('title'); $renderer->draw_check_box_row('is_visible'); $this->_draw_kind_controls($renderer); $this->_draw_component_controls($renderer); // Start the branch section $this->_draw_branch_controls($renderer); $renderer->draw_submit_button_row(); $renderer->draw_text_box_row('description'); $renderer->draw_text_box_row('files'); $renderer->draw_submit_button_row(); $renderer->draw_text_box_row('extra_description'); $branch_id = $this->value_for('main_branch_id'); /** @var $folder PROJECT */ $folder = $this->_folder; $branch_query = $folder->branch_query(); /** @var $branch BRANCH */ $branch = $branch_query->object_at_id($branch_id); $release_id = $this->value_for("branch_{$branch_id}_release_id"); if ($release_id) { $release_query = $branch->release_query(); $release = $release_query->object_at_id($release_id); $entry_query = $release->entry_query(); } else { $entry_query = $branch->entry_query(); } $entry_query->set_type('job'); if ($this->object_exists()) { $t = $this->_object->time_created; } else { $t = new DATE_TIME(); } $job_id = $this->value_for('job_id'); if (empty($job_id)) { $job_id = 0; } $entry_query->restrict("(entry.id = {$job_id}) OR (closer_id <> 0) <> 0 OR (job.time_closed < '" . $t->as_iso() . "')"); $this->_jobs = $entry_query->objects(); $num_jobs = sizeof($this->_jobs); if ($num_jobs) { $props = $renderer->make_list_properties(); $props->height = min($num_jobs + 1, 10); $props->add_item('[None]', 0); /** @var $j JOB */ foreach ($this->_jobs as $j) { $t = $j->title_formatter(); $t->max_visible_output_chars = 55; $props->add_item($j->title_as_plain_text($t), $j->id); } $job = $this->job_at($this->value_for('job_id')); $job_text = 'A change can be attached to the job to which it contributed. Only the jobs for the selected branch and release are shown.'; if ($job) { $renderer->draw_text_row(' ', $job_text . ' The current job is previewed above.', 'notes'); $renderer->draw_list_box_row('job_id', $props); } else { $renderer->draw_text_row(' ', $job_text, 'notes'); $renderer->draw_list_box_row('job_id', $props); } } $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(); $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('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) { $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(); }
/** * Draw captcha controls to verify human input. * Captcha handling is provided by default, but a form must determine on its * own where the controls appear. * @param FORM_RENDERER $renderer * @access private */ protected function _draw_captcha_controls($renderer) { if (isset($this->captcha)) { $renderer->draw_text_row(' ', $this->captcha->as_html()); $renderer->draw_text_line_row('verification_answer'); } }
/** * @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) { ?> <div class="columns text-flow"> <div class="left-sidebar"> <?php $folder_query = $this->login->folder_query(); /** @var PROJECT[] $folders */ $folders = $folder_query->tree(); include_once 'projects/gui/project_tree_node_info.php'; $tree_node_info = new PROJECT_TREE_NODE_INFO($this->app); $tree_node_info->page_link = $this->env->url(Url_part_file_name); $tree_node_info->set_visible_node($this->_folder); $tree_node_info->set_selected_node($this->_folder); $tree_node_info->set_defined_nodes_visible($folders); /* Make a copy (not a reference). */ $tree = $this->app->make_tree_renderer(); $tree->node_info = $tree_node_info; $tree->display($folders); ?> </div> <div> <?php $renderer->start(); $renderer->draw_text_line_row('title'); $renderer->draw_icon_browser_row('icon_url'); $renderer->draw_check_box_row('is_visible'); $item = $renderer->make_check_properties(); $item->on_click_script = 'on_organizational_changed (this)'; $renderer->draw_check_box_row('is_organizational', $item); if (!$this->object_exists() || !$this->_object->is_root()) { if (!$this->object_exists()) { $renderer->draw_text_line_row('branch_title'); } elseif (!$this->_object->is_root()) { /** @var PROJECT_BRANCH_QUERY $branch_query */ $branch_query = $this->_object->branch_query(); /** @var BRANCH[] $branches */ $branches = $branch_query->objects(); $props = $renderer->make_list_properties(); $props->css_class = 'small'; foreach ($branches as $branch) { $props->add_item($branch->title_as_plain_text(), $branch->id); } $renderer->draw_drop_down_row('trunk_id', $props); } } // if this folder has a parent, then show the inheritance options /** @var PROJECT $parent */ $parent = null; if (!$this->object_exists()) { $parent = $this->_folder; } else { $parent = $this->_folder->parent_folder(); } if ($parent) { $renderer->start_block('Options'); /** @var FOLDER $options_folder */ $options_folder = $folder_query->object_at_id($parent->options_id); $props = $renderer->make_list_properties(); $props->css_class = 'medium'; $props->on_click_script = 'on_inherit_changed (this)'; if ($this->login->is_allowed(Privilege_set_folder, Privilege_modify, $options_folder)) { $t = $options_folder->title_formatter(); $t->set_name($this->env->url(Url_part_file_name)); $title = 'Inherit options from ' . $options_folder->title_as_link($t); } else { $title = 'Inherit options from ' . $options_folder->title_as_html(); } $props->add_item($title, 0); $props->add_item('Define options below.', 1); echo $renderer->radio_group_as_HTML('defines_options', $props); } else { $renderer->start_block(''); $renderer->draw_hidden('defines_options'); } $props = $renderer->make_list_properties(); $props->css_class = 'small'; $props->add_item('[No warning]', 0); $props->add_item('1 day', 86400); $props->add_item('2 days', 2 * 86400); $props->add_item('3 days', 3 * 86400); $props->add_item('5 days', 5 * 86400); $props->add_item('1 week', 7 * 86400); $props->add_item('2 weeks', 14 * 86400); $props->add_item('1 month', 30 * 86400); $renderer->draw_drop_down_row('seconds_until_deadline', $props); /* Prepare the option and group lists for assignees and reporters. */ $props = $this->_make_user_list_properties_for($renderer, 'assignee_group_id'); $renderer->draw_radio_group_row('assignee_group_type', $props); $props = $this->_make_user_list_properties_for($renderer, 'reporter_group_id'); $renderer->draw_radio_group_row('reporter_group_type', $props); if (isset($this->_user_list_error_message)) { $renderer->draw_caution_row(' ', $this->_user_list_error_message); } $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(); ?> </div> </div> <?php }
/** * @param FORM_RENDERER $renderer * @access private */ protected function _draw_controls($renderer) { /** @var UPLOADED_FILE_SET $file_set */ $file_set = $this->value_for('upload_file'); /** @var ALBUM $folder */ $folder = $this->_folder; $upload_allowed = $folder->uploads_allowed(); $upload_found = isset($file_set) && $file_set->is_valid(); $is_uploading = $this->value_for('use_upload'); $this->set_enabled('file_name', !$is_uploading); $this->set_enabled('overwrite', $is_uploading); $this->set_enabled('upload_file', $is_uploading); if (!$upload_allowed || $upload_found) { $renderer->draw_hidden('use_upload'); } if ($upload_found) { $renderer->draw_hidden('overwrite'); } $renderer->start(); $renderer->draw_text_line_row('title'); if (!$this->object_exists()) { $renderer->start_block('Day'); $props = $renderer->make_list_properties(); $props->on_click_script = 'on_date_changed (this)'; if (isset($this->_exif_date)) { $caption = 'Use <span class="field">' . $this->_exif_date->format() . '</span> (snapshot date)'; } else { $caption = 'Use date stored by a digital camera'; } $props->add_item($caption, 1); $props->add_item('Use the date below', 0); $renderer->start_row(); echo $renderer->radio_group_as_html('read_exif', $props); $renderer->finish_row(); $renderer->draw_date_row('day'); $renderer->draw_error_row('read_exif'); $renderer->draw_error_row('day'); $renderer->finish_block(); } else { $renderer->draw_date_row('day'); } $renderer->draw_text_box_row('description', 'short-medium'); if ($upload_allowed) { if (!$upload_found) { $options = new FORM_TEXT_CONTROL_OPTIONS(); $renderer->start_block('Picture'); if ($this->object_exists()) { /** @var PICTURE $pic */ $pic = $this->_object; echo '<img class="pullquote right align-right" src="' . $pic->full_thumbnail_name() . '" alt="Picture">'; } $props = $renderer->make_list_properties(); $props->on_click_script = 'file_option_changed (this)'; $props->add_item($this->app->resolve_icon_as_html('{icons}buttons/upload', Sixteen_px, 'Upload') . ' Upload the picture below', 1); $renderer->start_row(); echo $renderer->radio_group_as_html('use_upload', $props); $renderer->finish_row(); $renderer->start_row(); $options->on_change_script = 'upload_file_changed (this)'; echo $renderer->file_as_html('upload_file', $options); echo $renderer->check_box_as_html('overwrite'); $renderer->finish_row(); $renderer->draw_error_row('upload_file'); $props->clear_items(); $props->add_item('Show the picture from the URL below', 0); $renderer->start_row(); echo $renderer->radio_group_as_html('use_upload', $props); $renderer->finish_row(); $renderer->start_row(); $options->on_change_script = 'file_name_changed (this)'; echo $renderer->text_line_as_html('file_name', $options); $renderer->finish_row(); $renderer->draw_error_row('file_name'); $this->_draw_thumbnail_options($renderer, ''); $renderer->finish_block(); } else { $renderer->draw_file_row('upload_file'); $this->_draw_thumbnail_options($renderer, ' '); } } else { $renderer->start_row(); if ($this->object_exists()) { /** @var PICTURE $pic */ $pic = $this->_object; echo '<img class="pullquote right align-right" src="' . $pic->full_thumbnail_name() . '" alt="Picture">'; } $renderer->finish_row(); $renderer->draw_text_line_row('file_name'); $this->_draw_thumbnail_options($renderer, ' '); } $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_password_row('password1'); $renderer->draw_password_row('password2'); $renderer->draw_text_line_row('real_first_name'); $renderer->draw_text_line_row('real_last_name'); $renderer->draw_text_line_row('email'); $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('Keep private', User_email_hidden, 'Do not display this email under any circumstances. Used only for sending subscriptions.'); $props->add_item('Show scrambled', User_email_scrambled, 'Email is displayed, but scrambled (e.g. bob [at] network [dot] com)'); $props->add_item('Show normally', User_email_visible, 'Email is displayed normally (open to screen-scraping; not recommended)'); $renderer->draw_radio_group_row('email_visibility', $props); if ($this->_captcha_enabled()) { $this->_draw_captcha_controls($renderer); } $renderer->draw_submit_button_row(); $layer = $renderer->start_layer_row('other_options', 'More Options', '%s more user account options'); $renderer->draw_text_line_row('home_page_url'); $renderer->draw_text_line_row('picture_url'); $renderer->draw_icon_browser_row('icon_url'); $renderer->draw_text_box_row('signature', 'short-medium'); $renderer->draw_text_box_row('description', 'short-medium'); $renderer->finish_layer_row($layer); $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('category'); $renderer->draw_text_line_row('url'); $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('sender_name'); $renderer->draw_text_line_row('sender_email'); $renderer->draw_text_line_row('subject'); $renderer->draw_text_box_row('message', 'short-medium'); $renderer->draw_text_line_row('send_to'); $this->_draw_options($renderer); $this->_draw_captcha_controls($renderer); $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'); $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) { $renderer->start(); $renderer->draw_text_line_row('title'); $this->_draw_kind_controls($renderer); $this->_draw_component_controls($renderer); /** @var $folder PROJECT */ $folder = $this->_folder; /** @var $project_options PROJECT_OPTIONS */ $project_options = $folder->options(); /* Draw the assignee box */ $props = $this->_prepare_list_properties_for($renderer, $project_options->assignee_query()); $renderer->draw_drop_down_row('assignee_id', $props); /* Draw the reporter box */ /* Rebuild the list only if necessary. */ if (!$project_options->reporters_equals_assigners()) { $props = $this->_prepare_list_properties_for($renderer, $project_options->reporter_query()); } /* The default reporter is (Me), not (None). */ $props->replace_item(0, '(Me)', $this->login->id); $renderer->draw_drop_down_row('reporter_id', $props); /* Draw other options */ $renderer->draw_date_row('time_needed'); $renderer->draw_check_box_row('is_visible'); /* Start the branch section */ $this->_draw_branch_controls($renderer); $renderer->draw_submit_button_row(); $renderer->draw_text_box_row('description'); $renderer->draw_text_box_row('extra_description'); $renderer->draw_submit_button_row(); $renderer->draw_text_row('Subscriptions', 'Check the following to subscribe the following users to this job.', 'notes'); // TODO this should probably go in the load_from_object/load_from_defaults methods if ($this->object_exists()) { $creator = $this->_object->creator(); } else { $creator = $this->app->login; } $field = $this->field_at('subscribe_creator'); $field->caption = $field->caption . ' (' . $creator->title_as_link() . ')'; $props = $renderer->make_list_properties(); $props->show_descriptions = true; $props->add_item('subscribe_creator', 1); $props->add_item('subscribe_assignee', 1); $props->add_item('subscribe_reporter', 1); $renderer->draw_check_boxes_row(' ', $props); $this->_draw_history_item_controls($renderer); $renderer->finish(); }