17 import(
'lib.pkp.classes.form.Form');
56 $this->_contextId = $contextId;
57 $this->_plugin = $plugin;
59 parent::__construct($plugin->getTemplateResource(
'settingsForm.tpl'));
62 $this->
addCheck(
new FormValidatorCustom($this,
'doiObjects',
'required',
'plugins.pubIds.doi.manager.settings.doiObjectsRequired',
function($enablePublicationDoi) use ($form) {
63 return $form->getData(
'enablePublicationDoi') || $form->getData(
'enableRepresentationDoi') || $form->getData(
'enableSubmissionFileDoi');
65 $this->
addCheck(
new FormValidatorRegExp($this,
'doiPrefix',
'required',
'plugins.pubIds.doi.manager.settings.doiPrefixPattern',
'/^10\.[0-9]{4,7}$/'));
66 $this->
addCheck(
new FormValidatorCustom($this,
'doiPublicationSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiPublicationSuffixPatternRequired',
function($doiPublicationSuffixPattern) use ($form) {
67 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enablePublicationDoi'))
return $doiPublicationSuffixPattern !=
'';
70 $this->
addCheck(
new FormValidatorCustom($this,
'doiChapterSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiChapterSuffixPatternRequired',
function($doiChapterSuffixPattern) use ($form) {
71 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enableChapterDoi'))
return $doiChapterSuffixPattern !=
'';
74 $this->
addCheck(
new FormValidatorCustom($this,
'doiRepresentationSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiRepresentationSuffixPatternRequired',
function($doiRepresentationSuffixPattern) use ($form) {
75 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enableRepresentationDoi'))
return $doiRepresentationSuffixPattern !=
'';
78 $this->
addCheck(
new FormValidatorCustom($this,
'doiSubmissionFileSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiSubmissionFileSuffixPatternRequired',
function($doiSubmissionFileSuffixPattern) use ($form) {
79 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enableSubmissionFileDoi'))
return $doiSubmissionFileSuffixPattern !=
'';
86 import(
'lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
91 $request->getSession(),
92 __(
'plugins.pubIds.doi.manager.settings.doiReassign.confirm'),
94 $request->url(
null,
null,
'manage',
null, array(
'verb' =>
'clearPubIds',
'plugin' => $plugin->getName(),
'category' =>
'pubIds')),
97 __(
'plugins.pubIds.doi.manager.settings.doiReassign'),
100 $this->
setData(
'pluginName', $plugin->getName());
114 $this->
setData($fieldName, $plugin->getSetting($contextId, $fieldName));
128 public function execute(...$functionArgs) {
132 $plugin->updateSetting($contextId, $fieldName, $this->
getData($fieldName), $fieldType);
134 parent::execute(...$functionArgs);
143 'enablePublicationDoi' =>
'bool',
144 'enableChapterDoi' =>
'bool',
145 'enableRepresentationDoi' =>
'bool',
146 'enableSubmissionFileDoi' =>
'bool',
147 'doiPrefix' =>
'string',
148 'doiSuffix' =>
'string',
149 'doiPublicationSuffixPattern' =>
'string',
150 'doiChapterSuffixPattern' =>
'string',
151 'doiRepresentationSuffixPattern' =>
'string',
152 'doiSubmissionFileSuffixPattern' =>
'string',