/**
  * Draw a confirmation message for this action.
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_message($renderer)
 {
     $renderer->draw_text_row('', 'Are you sure you want to publish ' . $this->object_list->description() . '?');
     $buttons[] = $renderer->button_as_HTML('No', "view_explorer.php?id={$this->_folder->id}");
     $buttons[] = $renderer->submit_button_as_HTML();
     $renderer->draw_buttons_in_row($buttons);
 }
 /**
  * @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();
 }
 /**
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_controls($renderer)
 {
     $renderer->inline_operations_enabled = true;
     $renderer->start_inline_preview_area();
     parent::_draw_controls($renderer);
     $renderer->finish_inline_preview_area($this->description_control_css_class);
 }
 /**
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_controls($renderer)
 {
     $renderer->labels_css_class = 'top';
     if ($this->object_exists()) {
         $selected_folder_ids = $this->_object->subscribed_ids_for(Subscribe_folder);
     }
     $user = $this->_object->user();
     // Try to get the user associated with this subscriber
     if (!isset($user)) {
         $user = $this->app->anon_user();
     }
     $folder_query = $user->folder_query();
     $folders = $folder_query->tree($this->app->root_folder_id);
     $selected_folders = $folder_query->objects_at_ids($selected_folder_ids);
     /* Make a copy (not a reference). */
     $tree = $this->app->make_tree_renderer();
     include_once 'webcore/gui/folder_tree_node_info.php';
     $tree_node_info = new FOLDER_TREE_NODE_INFO($this->app);
     $tree_node_info->nodes_are_links = false;
     include_once 'webcore/gui/selector_tree_decorator.php';
     $decorator = new MULTI_SELECTOR_TREE_DECORATOR($tree, $selected_folder_ids);
     $decorator->control_name = 'ids';
     $decorator->form_name = $this->name;
     $decorator->auto_toggle_children = true;
     $tree->node_info = $tree_node_info;
     $tree->decorator = $decorator;
     $tree->set_visible_nodes($selected_folders);
     $ctrl_name = $this->js_name('ids');
     $renderer->start();
     if (sizeof($folders) > 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');
         $renderer->start_row();
         $renderer->draw_buttons($buttons);
         $renderer->finish_row();
         $renderer->draw_error_row('ids');
     }
     $renderer->start_row();
     $tree->display($folders);
     $renderer->finish_row();
     $renderer->draw_submit_button_row();
     $renderer->finish();
 }
    /**
     * Draw a confirmation message for this action.
     * @param FORM_RENDERER $renderer
     * @access private
     */
    protected function _draw_message($renderer)
    {
        $renderer->start_row();
        ?>
<p>Are you sure you want to delete <?php 
        echo $this->object_list->description();
        ?>
?</p>
<?php 
        $renderer->finish_row();
        $buttons[] = $renderer->button_as_HTML('No', "view_explorer.php?id={$this->_folder->id}");
        $buttons[] = $renderer->submit_button_as_HTML();
        $renderer->draw_buttons_in_row($buttons);
        ?>
    <p class="info-box-bottom">
      *Deleting an object marks it as 'invisible', but does not delete the object.
      The object can always be restored in its entirety until it is purged.
      If you purge the object, it and all contained content (entries, comments, etc.)
      is removed from the database.
    </p>
<?php 
    }
 /**
  * Draw the permission with icon and title.
  * Adds the icon to the title. This is done when drawn so that the icon
  * calculation is not done if the form is only being submitted.
  * @param PRIVILEGE_MAP $map Information about the privilege.
  * @param PERMISSIONS_FORMATTER $formatter Use this to get formatting information.
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_permission($map, $formatter, $renderer)
 {
     $id = $map->id();
     $field = $this->field_at($id);
     $field->caption = $this->context->get_icon_with_text($formatter->icon_url_for($map), Sixteen_px, $formatter->title_for($map));
     echo $renderer->check_box_as_HTML($id);
 }
 /**
  * @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
  * @param $ctrl_id
  * @return mixed
  */
 protected function _make_user_list_properties_for($renderer, $ctrl_id)
 {
     $Result = $renderer->make_list_properties();
     $Result->on_click_script = 'on_group_type_changed (this, this.form.' . $ctrl_id . ')';
     $Result->add_item('Allow all users', Project_user_all);
     $Result->add_item('Allow only registered users', Project_user_registered_only);
     if ($this->login->is_allowed(Privilege_set_group, Privilege_view)) {
         $group_query = $this->app->group_query();
         /** @var GROUP[] $groups */
         $groups = $group_query->objects();
         if (sizeof($groups)) {
             $group_props = $renderer->make_list_properties();
             $group_props->css_class = 'small';
             foreach ($groups as $group) {
                 $group_props->add_item($group->title_as_plain_text(), $group->id);
             }
             $Result->add_item('Allow only ' . $renderer->drop_down_as_HTML($ctrl_id, $group_props), Project_user_group);
         } else {
             $this->_user_list_error_message = 'Cannot limit by group (no groups available)';
         }
     } else {
         $this->_user_list_error_message = 'Cannot limit by group (cannot see groups)';
     }
     return $Result;
 }
 /**
  * @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
  * @param PERMISSIONS_FORMATTER $formatter
  * @access private
  * @abstract
  */
 protected function _draw_permission_controls($renderer, $formatter)
 {
     $user_query = $this->app->user_query();
     /* get the list of user ids that are already mapped in this folder. */
     $folder_query = $this->app->login->folder_query();
     /** @var FOLDER $folder */
     $folder = $folder_query->object_at_id($this->value_for('id'));
     $security = $folder->security_definition();
     $permissions = $security->user_permissions();
     $ids = array();
     foreach ($permissions as $permission) {
         $ids[] = $permission->ref_id;
     }
     if (sizeof($ids)) {
         $user_query->restrict_by_op('usr.id', $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[] $users */
     $users = $user_query->objects();
     $renderer->draw_text_line_with_named_object_chooser_row('title', $users);
     parent::_draw_permission_controls($renderer, $formatter);
 }
 /**
  * @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();
 }
 /**
  * @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();
 }
 /**
  * Draw task option controls.
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_options($renderer)
 {
     if (!$this->_object->info->exists()) {
         $warning_message = 'Since there is no version in the database, the migrator for <span class="field">' . $this->_object->info->database_version . '</span> will be used and "Ignore Version in Database" is required.';
         $renderer->draw_text_row($this->context->resolve_icon_as_html('{icons}indicators/warning', Thirty_two_px, 'Warning'), $warning_message, 'caution');
     }
     parent::_draw_options($renderer);
 }
 /**
  * Draw a confirmation message for this action.
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_message($renderer)
 {
     $renderer->start_row();
     $renderer->draw_text_row('', 'Are you sure you want to purge ' . $this->object_list->description() . '?*');
     if ($this->visible('remove_resources')) {
         $renderer->start_row(' ');
         echo $renderer->check_box_as_html('remove_resources');
         $renderer->finish_row();
     }
     $renderer->draw_text_row('', '*Purging an object permanently removes it and all contained content (entries, comments, etc.) from the database.', 'notes');
     $renderer->finish_row();
     $buttons[] = $renderer->button_as_HTML('No', "view_explorer.php?id={$this->_folder->id}");
     $buttons[] = $renderer->submit_button_as_HTML();
     $renderer->draw_buttons_in_row($buttons);
 }
 /**
  * @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();
     }
 }
Example #16
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();
        }
    }
 /**
  * @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>';
     }
 }
 /**
  * @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();
     }
 }
 /**
  * @param FORM_RENDERER $renderer
  * @access private
  */
 protected function _draw_attachment_selector($renderer)
 {
     $attachments = $this->_attachments();
     if (sizeof($attachments)) {
         $props = $renderer->make_list_properties();
         $props->css_class = 'small';
         foreach ($attachments as $att) {
             $props->add_item($att->title_as_plain_text(), $att->file_name);
         }
         $attachment_control = $renderer->drop_down_as_html('attachments', $props);
         $props = $renderer->make_list_properties();
         $props->add_item('None', 'none');
         $props->add_item('Left', 'left');
         $props->add_item('Left (alone)', 'left-column');
         $props->add_item('Center', 'center');
         $props->add_item('Right', 'right');
         $props->add_item('Right (alone)', 'right-column');
         $props->css_class = 'small';
         $alignments = $renderer->drop_down_as_html('alignments', $props);
         $props = $renderer->make_list_properties();
         $props->add_item('Thumbnail', 'thumbnail');
         $props->add_item('25%', '25');
         $props->add_item('50%', '50');
         $props->add_item('75%', '75');
         $props->add_item('Full-size', '100');
         $props->css_class = 'small';
         $sizes = $renderer->drop_down_as_html('sizes', $props);
         $props = $renderer->make_list_properties();
         $props->add_item('No text', 'none');
         $props->add_item('Caption', 'caption');
         $props->add_item('Tooltip', 'tooltip');
         $props->add_item('Both', 'both');
         $props->css_class = 'small';
         $caption_modes = $renderer->drop_down_as_html('caption_modes', $props);
         $renderer->start_row('Attachments');
         echo $attachment_control;
         echo $alignments;
         echo $sizes;
         echo $caption_modes;
         echo $renderer->javascript_button_as_html('Add', 'on_insert_attachment ()');
         $renderer->finish_row();
     }
 }
Example #20
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();
 }
 /**
  * @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->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();
    }
 /**
  * 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('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();
     $this->_draw_options($renderer);
     $renderer->draw_submit_button_row();
     $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();
 }
 /**
  * @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();
 }
Example #28
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();
 }
 /**
  * @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();
 }
Example #30
0
 /**
  * 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');
     }
 }