ILIAS  release_8 Revision v8.23
ilFileVersionFormGUI Class Reference

Class ilFileVersionFormGUI. More...

+ Collaboration diagram for ilFileVersionFormGUI:

Public Member Functions

 __construct (ilFileVersionsGUI $file_version_gui, $mode=self::MODE_ADD)
 ilFileVersionFormGUI constructor. More...
 
 saveObject ()
 
 getHTML ()
 

Data Fields

const MODE_ADD = 1
 
const MODE_REPLACE = 2
 
const F_TITLE = 'title'
 
const F_DESCRIPTION = "description"
 
const F_FILE = "file"
 
const F_SAVE_MODE = 'save_mode'
 

Private Member Functions

 initForm ()
 
 resolveParentCommand (int $mode)
 

Private Attributes

ilObjFile $file
 
ILIAS UI Component Input Container Form Standard $form
 
ILIAS UI Factory $ui_factory
 
ILIAS UI Renderer $ui_renderer
 
RequestInterface $request
 
ilGlobalTemplateInterface $global_tpl
 
ilLanguage $lng
 
ILIAS ResourceStorage Services $resource_services
 
int $save_mode = self::MODE_ADD
 
string $post_url
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilFileVersionFormGUI::__construct ( ilFileVersionsGUI  $file_version_gui,
  $mode = self::MODE_ADD 
)

ilFileVersionFormGUI constructor.

Definition at line 54 of file class.ilFileVersionFormGUI.php.

References $DIC, ilFileVersionsGUI\getFile(), initForm(), ILIAS\Repository\lng(), and resolveParentCommand().

55  {
56  global $DIC;
57  $this->file = $file_version_gui->getFile();
58  ;
59  $this->lng = $DIC->language();
60  $this->save_mode = $mode;
61  $this->ui_factory = $DIC->ui()->factory();
62  $this->ui_renderer = $DIC->ui()->renderer();
63  $this->request = $DIC->http()->request();
64  $this->global_tpl = $DIC->ui()->mainTemplate();
65  $this->resource_services = $DIC->resourceStorage();
66  $this->post_url = $DIC->ctrl()->getFormAction(
67  $file_version_gui,
68  $this->resolveParentCommand($mode)
69  );
70  $this->lng->loadLanguageModule('file');
71  $this->initForm();
72  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

Member Function Documentation

◆ getHTML()

ilFileVersionFormGUI::getHTML ( )

Definition at line 144 of file class.ilFileVersionFormGUI.php.

References ILIAS\Repository\form().

144  : string
145  {
146  return $this->ui_renderer->render($this->form);
147  }
form( $class_path, string $cmd)
+ Here is the call graph for this function:

◆ initForm()

ilFileVersionFormGUI::initForm ( )
private

Definition at line 74 of file class.ilFileVersionFormGUI.php.

References ILIAS\UI\Implementation\Component\Input\$inputs, ILIAS\Repository\form(), ilFileUtils\getUploadSizeLimitBytes(), ILIAS\Repository\lng(), ilFileVersionsUploadHandlerGUI\MODE_APPEND, ilFileVersionsUploadHandlerGUI\MODE_REPLACE, ilObject\TITLE_LENGTH, and ILIAS\UI\Implementation\Component\Input\withValue().

Referenced by __construct().

74  : void
75  {
76  switch ($this->save_mode) {
77  case self::MODE_REPLACE:
78  $this->global_tpl->setOnScreenMessage('info', $this->lng->txt('replace_file_info'));
79  $group_title = $this->lng->txt('replace_file');
80  break;
81  case self::MODE_ADD:
82  default:
83  $this->global_tpl->setOnScreenMessage('info', $this->lng->txt('file_new_version_info'));
84  $group_title = $this->lng->txt('file_new_version');
85  break;
86  }
87 
88  $inputs = [
89  self::F_TITLE => $this->ui_factory->input()->field()->text(
90  $this->lng->txt(self::F_TITLE),
91  $this->lng->txt("if_no_title_then_filename")
92  )
93  ->withValue($this->file->getTitle())
94  ->withRequired(false)
95  ->withMaxLength(ilObject::TITLE_LENGTH),
96  self::F_DESCRIPTION => $this->ui_factory->input()->field()->textarea(
97  $this->lng->txt(self::F_DESCRIPTION)
98  ),
99  self::F_FILE => $this->ui_factory->input()->field()->file(
101  $this->file,
102  $this->save_mode === self::MODE_REPLACE
105  ),
106  $this->lng->txt(self::F_FILE)
107  )->withMaxFileSize(ilFileUtils::getUploadSizeLimitBytes())
108  ];
109 
110  $group = $this->ui_factory->input()->field()->group($inputs, $group_title);
111 
112  $this->form = $this->ui_factory->input()->container()->form()->standard($this->post_url, [$group]);
113  }
const TITLE_LENGTH
static getUploadSizeLimitBytes()
Class ilFileVersionsUploadHandlerGUI.
form( $class_path, string $cmd)
withValue($value)
Get an input like this with another value displayed on the client side.
Definition: Group.php:59
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resolveParentCommand()

ilFileVersionFormGUI::resolveParentCommand ( int  $mode)
private

Definition at line 149 of file class.ilFileVersionFormGUI.php.

References ilFileVersionsGUI\CMD_CREATE_NEW_VERSION, and ilFileVersionsGUI\CMD_CREATE_REPLACING_VERSION.

Referenced by __construct().

149  : string
150  {
151  switch ($mode) {
152  case self::MODE_ADD:
153  default:
155  case self::MODE_REPLACE:
157  }
158  }
+ Here is the caller graph for this function:

◆ saveObject()

ilFileVersionFormGUI::saveObject ( )

Definition at line 115 of file class.ilFileVersionFormGUI.php.

References $data, ensureSuffix(), ILIAS\Repository\form(), and ILIAS\Repository\int().

115  : bool
116  {
117  $this->form = $this->form->withRequest($this->request);
118  $data = $this->form->getData()[0];
119 
120  $title = !empty($data[self::F_TITLE]) ? $data[self::F_TITLE] : $this->file->getTitle();
121  $description = $data[self::F_DESCRIPTION] !== '' ? $data[self::F_DESCRIPTION] : $this->file->getDescription();
122  $revision_number = $data[self::F_FILE][0] ?? null;
123  if ($revision_number === null) {
124  return false;
125  }
126  $revision_number = (int) $revision_number;
127 
128  // Title differs, update Revision and Object
129  $rid = $this->resource_services->manage()->find($this->file->getResourceId());
130  $resource = $this->resource_services->manage()->getResource($rid);
131  $new_revision = $resource->getSpecificRevision($revision_number);
132 
133  $new_revision->setTitle(
134  $this->ensureSuffix($title, $new_revision->getInformation()->getSuffix())
135  );
136  $this->resource_services->manage()->updateRevision($new_revision);
137 
138  $this->file->setDescription($description);
139  $this->file->updateObjectFromCurrentRevision();
140 
141  return true;
142  }
form( $class_path, string $cmd)
ensureSuffix(string $title, ?string $suffix=null)
+ Here is the call graph for this function:

Field Documentation

◆ $file

ilObjFile ilFileVersionFormGUI::$file
private

Definition at line 39 of file class.ilFileVersionFormGUI.php.

◆ $form

ILIAS UI Component Input Container Form Standard ilFileVersionFormGUI::$form
private

Definition at line 40 of file class.ilFileVersionFormGUI.php.

◆ $global_tpl

ilGlobalTemplateInterface ilFileVersionFormGUI::$global_tpl
private

Definition at line 44 of file class.ilFileVersionFormGUI.php.

◆ $lng

ilLanguage ilFileVersionFormGUI::$lng
private

Definition at line 45 of file class.ilFileVersionFormGUI.php.

◆ $post_url

string ilFileVersionFormGUI::$post_url
private

Definition at line 49 of file class.ilFileVersionFormGUI.php.

◆ $request

RequestInterface ilFileVersionFormGUI::$request
private

Definition at line 43 of file class.ilFileVersionFormGUI.php.

◆ $resource_services

ILIAS ResourceStorage Services ilFileVersionFormGUI::$resource_services
private

Definition at line 46 of file class.ilFileVersionFormGUI.php.

◆ $save_mode

int ilFileVersionFormGUI::$save_mode = self::MODE_ADD
private

Definition at line 48 of file class.ilFileVersionFormGUI.php.

◆ $ui_factory

ILIAS UI Factory ilFileVersionFormGUI::$ui_factory
private

Definition at line 41 of file class.ilFileVersionFormGUI.php.

◆ $ui_renderer

ILIAS UI Renderer ilFileVersionFormGUI::$ui_renderer
private

Definition at line 42 of file class.ilFileVersionFormGUI.php.

◆ F_DESCRIPTION

const ilFileVersionFormGUI::F_DESCRIPTION = "description"

Definition at line 35 of file class.ilFileVersionFormGUI.php.

◆ F_FILE

const ilFileVersionFormGUI::F_FILE = "file"

Definition at line 36 of file class.ilFileVersionFormGUI.php.

◆ F_SAVE_MODE

const ilFileVersionFormGUI::F_SAVE_MODE = 'save_mode'

Definition at line 37 of file class.ilFileVersionFormGUI.php.

◆ F_TITLE

const ilFileVersionFormGUI::F_TITLE = 'title'

Definition at line 34 of file class.ilFileVersionFormGUI.php.

◆ MODE_ADD

const ilFileVersionFormGUI::MODE_ADD = 1

Definition at line 32 of file class.ilFileVersionFormGUI.php.

Referenced by ilFileVersionsGUI\performCommand().

◆ MODE_REPLACE

const ilFileVersionFormGUI::MODE_REPLACE = 2

Definition at line 33 of file class.ilFileVersionFormGUI.php.

Referenced by ilFileVersionsGUI\performCommand().


The documentation for this class was generated from the following file: