Ejemplo n.º 1
0
 /**
  * @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();
 }
Ejemplo n.º 2
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 
    }
 /**
  * @param FORM_RENDERER $renderer
  * @param PERMISSIONS_FORMATTER $formatter
  * @access private
  * @abstract
  */
 protected function _draw_permission_controls($renderer, $formatter)
 {
     $renderer->draw_text_row('', 'The settings on the left can override content permissions, either <em>Granting</em> or <em>Denying</em> them. <em>Default</em> uses the permissions defined in the folder.');
     if ($this->visible('use_defaults')) {
         $props = $renderer->make_list_properties();
         $props->on_click_script = 'update_controls ()';
         if ($this->_object->is_anonymous()) {
             $props->add_item('Use default permissions for anonymous users.', 1);
         } else {
             $props->add_item('Use default permissions for registered users.', 1);
         }
         $props->add_item('Use the permissions below.', 0);
         $renderer->start_row();
         echo $renderer->radio_group_as_HTML('use_defaults', $props);
         $renderer->finish_row();
     }
     $this->_draw_buttons($renderer);
     $props = $renderer->make_list_properties();
     $props->add_item('Default', Privilege_controlled_by_content);
     $props->add_item('Granted', Privilege_always_granted);
     $props->add_item('Denied', Privilege_always_denied);
     $props->css_class = 'tiny-small';
     ?>
 <div class="columns text-flow">
   <div>
     <?php 
     foreach ($this->content_groups as $group) {
         $renderer->start_block($group->title);
         foreach ($group->maps as $map) {
             $this->_draw_tri_permission($map, $formatter, $renderer, $props);
         }
         $renderer->finish_block();
     }
     ?>
   </div>
   <div>
     <?php 
     foreach ($this->global_groups as $group) {
         $renderer->start_block($group->title);
         foreach ($group->maps as $map) {
             $this->_draw_permission($map, $formatter, $renderer, $props);
         }
         $renderer->finish_block();
     }
     ?>
   </div>
 </div>
 <?php 
     $this->_draw_buttons($renderer);
 }