16 import(
'lib.pkp.classes.form.Form');
27 $this->_genreId = $genreId;
44 parent::__construct(
'controllers/grid/settings/genre/form/genreForm.tpl');
47 $context = $request->getContext();
52 $this->
addCheck(
new FormValidatorCustom($this,
'key',
'optional',
'manager.setup.genres.key.exists',
function($key) use ($context, $form) {
54 return $key ==
'' || !$genreDao->keyExists($key, $context->getId(), $form->getGenreId());
56 $this->
addCheck(
new FormValidatorRegExp($this,
'key',
'optional',
'manager.setup.genres.key.alphaNumeric',
'/^[a-z0-9]+([\-_][a-z0-9]+)*$/i'));
67 $context = $request->getContext();
72 $genre = $genreDao->getById($this->
getGenreId(), $context->getId());
78 'name' => $genre->getName(
null),
79 'category' => $genre->getCategory(),
80 'dependent' => $genre->getDependent(),
81 'supplementary' => $genre->getSupplementary(),
82 'key' => $genre->getKey(),
83 'keyReadOnly' => $genre->isDefault(),
92 $this->_data[
'gridId'] = $args[
'gridId'];
93 $this->_data[
'rowId'] = isset($args[
'rowId']) ? $args[
'rowId'] :
null;
99 function fetch($request, $template =
null, $display =
false) {
101 $templateMgr->assign(
'submissionFileCategories', array(
102 GENRE_CATEGORY_DOCUMENT => __(
'submission.document'),
103 GENRE_CATEGORY_ARTWORK => __(
'submission.art'),
104 GENRE_CATEGORY_SUPPLEMENTARY => __(
'submission.supplementary'),
108 return parent::fetch($request, $template, $display);
116 $this->
readUserVars(array(
'genreId',
'name',
'category',
'dependent',
'supplementary',
'gridId',
'rowId',
'key'));
126 $context = $request->getContext();
130 $genre = $genreDao->newDataObject();
131 $genre->setContextId($context->getId());
133 $genre = $genreDao->getById($this->
getGenreId(), $context->getId());
136 $genre->setData(
'name', $this->
getData(
'name'),
null);
137 $genre->setCategory($this->
getData(
'category'));
138 $genre->setDependent($this->
getData(
'dependent'));
139 $genre->setSupplementary($this->
getData(
'supplementary'));
141 if (!$genre->isDefault()) {
142 $genre->setKey($this->
getData(
'key'));
146 $this->
setGenreId($genreDao->insertObject($genre));
148 $genreDao->updateObject($genre);
150 parent::execute(...$functionArgs);