Ejemplo n.º 1
0
    /**
     * @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 
    }
Ejemplo n.º 2
0
 /**
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_hidden_controls($renderer)
 {
     $sub_field = $this->field_at($this->form_based_field_name('submitted'));
     $old_sub_value = $sub_field->value();
     $sub_field->set_value(1);
     /* Update the maximum number of bytes allowed for upload. */
     if ($this->contains_uploads()) {
         $this->set_value(Form_max_file_size_field_name, $this->max_upload_file_size());
     }
     /* Always reset the debug to be read from anywhere in the request, not just the form. */
     $this->set_value('debug', $this->env->debugging_flags);
     foreach ($this->_fields as $field) {
         if (!$field->visible) {
             $renderer->draw_hidden($field->id);
         }
     }
     $sub_field->set_value($old_sub_value);
 }
Ejemplo n.º 3
0
 /**
  * @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();
 }
Ejemplo n.º 4
0
 /**
  * Store field values as hidden fields in the form.
  * @param FORM $form
  * @param FORM_RENDERER $renderer
  */
 public function draw_fields_hidden($form, $renderer)
 {
     $renderer->draw_hidden($this->sort_name());
     $renderer->draw_hidden($this->direction_name());
 }
Ejemplo n.º 5
0
 /**
  * Draw the selectors for branch properties.
  * If the branch or release is locked, the values should be displayed as read-only.
  * @param BRANCH $branch
  * @param FORM_RENDERER $renderer
  * @param boolean $visible Is this branch enabled for this project entry?
  * @param RELEASE $release Release in this branch (may be empty).
  * @access private
  */
 protected function _draw_branch_info_controls($branch, $renderer, $visible, $release)
 {
     /* Get the list of statuses for this branch. */
     $selected_status = $this->value_for("branch_{$branch->id}_status");
     /** @var $display_options PROJECT_APPLICATION_DISPLAY_OPTIONS */
     $display_options = $this->app->display_options;
     if ($this->cloning() || !$this->object_exists()) {
         $statuses = $display_options->job_statuses();
     } else {
         $statuses = $display_options->job_statuses_for($selected_status);
     }
     if ($this->_branch_is_locked($branch, $release)) {
         if ($visible) {
             $renderer->draw_hidden("branch_{$branch->id}_status");
             $renderer->draw_hidden("branch_{$branch->id}_priority");
             $status = $statuses[$selected_status];
             $renderer->draw_text_row('Status', $this->context->get_icon_with_text($status->icon, Sixteen_px, $status->title));
             $renderer->draw_error_row("branch_{$branch->id}_status");
             $priorities = $display_options->job_priorities();
             $priority = $priorities[$this->value_for("branch_{$branch->id}_priority")];
             $renderer->draw_text_row('Priority', $this->context->get_icon_with_text($priority->icon, Sixteen_px, $priority->title));
             $renderer->draw_error_row("branch_{$branch->id}_priority");
         }
     } else {
         // Draw statuses
         $props = $renderer->make_list_properties();
         $props->css_class = 'medium';
         foreach ($statuses as $status) {
             $props->add_item($status->title, $status->value);
         }
         $renderer->draw_drop_down_row("branch_{$branch->id}_status", $props);
         // Draw priorities
         $props = $renderer->make_list_properties();
         $props->css_class = 'medium';
         $priorities = $display_options->job_priorities();
         foreach ($priorities as $priority) {
             $props->add_item($priority->title, $priority->value);
         }
         $renderer->draw_drop_down_row("branch_{$branch->id}_priority", $props);
     }
     // Draw inherited properties
     parent::_draw_branch_info_controls($branch, $renderer, $visible, $release);
 }
    /**
     * Draw the selector for all branches.
     * @param FORM_RENDERER $renderer
     * @access private
     */
    protected function _draw_branch_controls($renderer)
    {
        if (sizeof($this->branches)) {
            $renderer->start_block('Branches');
            ?>
      <p class="description">
        Assign this job to one or more of the following branches.
      </p>
<?php 
            $check_props = $renderer->make_check_properties();
            foreach ($this->branches as $branch) {
                $style = '';
                $visible = $this->value_for("branch_{$branch->id}_enabled");
                if ($visible || !$branch->locked()) {
                    if (!$visible) {
                        $style = 'display: none';
                    }
                    $locked = $branch->locked();
                    $release_id = $this->value_for("branch_{$branch->id}_release_id");
                    if ($release_id) {
                        /** @var $release_query BRANCH_RELEASE_QUERY */
                        $release_query = $branch->release_query();
                        /** @var $release RELEASE */
                        $release = $release_query->object_at_id($release_id);
                        $locked = $locked || $this->_branch_is_locked($branch, $release);
                    } else {
                        $release = null;
                    }
                    if ($locked) {
                        $renderer->draw_hidden("branch_{$branch->id}_enabled");
                        $title = $branch->title_as_html();
                        if ($branch->locked()) {
                            $title = $this->context->get_icon_with_text('{icons}indicators/locked', Sixteen_px, $title);
                        }
                        echo $title;
                    } else {
                        $check_props->on_click_script = "on_click_branch (this, '{$branch->id}')";
                        echo $renderer->check_box_as_HTML("branch_{$branch->id}_enabled", $check_props);
                    }
                    ?>
        <div id="branch_<?php 
                    echo $branch->id;
                    ?>
_panel" <?php 
                    if ($style) {
                        echo 'style="' . $style . '"';
                    }
                    ?>
>
          <?php 
                    $renderer->start_block('');
                    $this->_draw_branch_info_controls($branch, $renderer, $visible, $release);
                    $renderer->finish_block();
                    ?>
        </div>
        <?php 
                }
            }
            $renderer->draw_error_row('main_branch_id');
            $renderer->finish_block();
        }
    }