/**
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_controls($renderer)
 {
     $formatter = $this->app->make_permissions_formatter();
     $renderer->start();
     $this->_draw_permission_controls($renderer, $formatter);
     $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();
 }
Ejemplo n.º 3
0
 /**
  * @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();
 }
Ejemplo n.º 4
0
 /**
  * @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();
 }
 /**
  * @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();
 }
Ejemplo n.º 6
0
 /**
  * @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();
 }
Ejemplo n.º 7
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
     * @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();
    }
Ejemplo n.º 9
0
 /**
  * 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)
 {
     if ($this->object_list->has_objects()) {
         ?>
   <div class="columns text-flow">
     <div class="left-sidebar">
       <?php 
         $this->_draw_selected_objects();
         ?>
     </div>
     <div>
       <?php 
         $renderer->labels_css_class = 'top';
         $renderer->start();
         $this->_draw_message($renderer);
         $renderer->finish();
         ?>
     </div>
   </div>
   <?php 
     } else {
         $renderer->start();
         $renderer->draw_text_row('', 'No items were selected. Please select at least one item and try again.', 'error');
         $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();
 }
Ejemplo n.º 12
0
 /**
  * @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) . '&deg;C to ';
     echo $renderer->text_line_as_html('hi_temp', $options) . '&deg;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();
 }
Ejemplo n.º 13
0
 /**
  * @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();
 }
Ejemplo n.º 14
0
 /**
  * @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');
     $renderer->draw_text_box_row('description');
     $renderer->draw_submit_button_row();
     $this->_draw_history_item_controls($renderer);
     $renderer->finish();
 }
Ejemplo n.º 16
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();
 }
 /**
  * @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();
     }
 }
Ejemplo n.º 18
0
 /**
  * @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();
 }
Ejemplo n.º 19
0
 /**
  * @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();
 }
Ejemplo n.º 20
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.º 21
0
 /**
  * @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>';
 }
Ejemplo n.º 22
0
 /**
  * @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();
 }
Ejemplo n.º 23
0
 /**
  * @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();
 }
Ejemplo n.º 24
0
 /**
  * @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->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)
 {
     $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();
     $this->_draw_options($renderer);
     $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();
     }
 }
Ejemplo n.º 29
0
 /**
  * @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->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>';
     }
 }