Ejemplo n.º 1
0
    /**
     * @param FORM_RENDERER $renderer
     * @access private
     */
    protected function _draw_key_photo($renderer)
    {
        if ($this->object_exists()) {
            $main_picture_id = $this->value_for('main_picture_id');
            if ($main_picture_id) {
                /** @var $pic_query FOLDER_DRAFTABLE_ENTRY_QUERY */
                $pic_query = $this->_object->entry_query();
                $pic_query->set_type('picture');
                /** @var $main_picture PICTURE */
                $main_picture = $pic_query->object_at_id($main_picture_id);
            }
            $key_photo_field = $this->field_at('main_picture_id');
            $renderer->start_block($key_photo_field->caption);
            $renderer->start_row();
            if (isset($main_picture)) {
                $f = $main_picture->date->formatter();
                $f->clear_flags();
                $title = $main_picture->title_as_plain_text() . " (" . $this->_object->format_date($main_picture->date, $f) . ")";
                $image_source = $main_picture->full_thumbnail_name();
                ?>
        <p>
          <img src="<?php 
                echo $image_source;
                ?>
" alt="<?php 
                echo $title;
                ?>
">
        </p>
<?php 
            } else {
                ?>
        <p>[None]</p>
<?php 
            }
            ?>
      <p class="info-box-bottom">To change or set the key photo, select "Make Key Photo" from a picture's command menu.</p>
  <?php 
            $renderer->finish_row();
            $renderer->finish_block();
        }
    }
Ejemplo n.º 2
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.º 3
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();
 }
Ejemplo n.º 4
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)
 {
     $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();
 }