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($enableIssueDoi) use ($form) {
63 return $form->getData(
'enableIssueDoi') || $form->getData(
'enablePublicationDoi') || $form->getData(
'enableRepresentationDoi');
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,
'doiIssueSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiIssueSuffixPatternRequired',
function($doiIssueSuffixPattern) use ($form) {
67 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enableIssueDoi'))
return $doiIssueSuffixPattern !=
'';
70 $this->
addCheck(
new FormValidatorCustom($this,
'doiPublicationSuffixPattern',
'required',
'plugins.pubIds.doi.manager.settings.doiPublicationSuffixPatternRequired',
function($doiPublicationSuffixPattern) use ($form) {
71 if ($form->getData(
'doiSuffix') ==
'pattern' && $form->getData(
'enablePublicationDoi'))
return $doiPublicationSuffixPattern !=
'';
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 !=
'';
82 import(
'lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
87 $request->getSession(),
88 __(
'plugins.pubIds.doi.manager.settings.doiReassign.confirm'),
90 $request->url(
null,
null,
'manage',
null, array(
'verb' =>
'clearPubIds',
'plugin' => $plugin->getName(),
'category' =>
'pubIds')),
93 __(
'plugins.pubIds.doi.manager.settings.doiReassign'),
99 $request->getSession(),
100 __(
'plugins.pubIds.doi.manager.settings.doiAssignJournalWide.confirm'),
101 __(
'plugins.pubIds.doi.manager.settings.doiAssignJournalWide'),
102 $request->url(
null,
null,
'manage',
null, array(
'verb' =>
'assignPubIds',
'plugin' => $plugin->getName(),
'category' =>
'pubIds')),
105 __(
'plugins.pubIds.doi.manager.settings.doiAssignJournalWide'),
108 $this->
setData(
'pluginName', $plugin->getName());
122 $this->
setData($fieldName, $plugin->getSetting($contextId, $fieldName));
136 function execute(...$functionArgs) {
140 $plugin->updateSetting($contextId, $fieldName, $this->
getData($fieldName), $fieldType);
142 parent::execute(...$functionArgs);
151 'enableIssueDoi' =>
'bool',
152 'enablePublicationDoi' =>
'bool',
153 'enableRepresentationDoi' =>
'bool',
154 'doiPrefix' =>
'string',
155 'doiSuffix' =>
'string',
156 'doiIssueSuffixPattern' =>
'string',
157 'doiPublicationSuffixPattern' =>
'string',
158 'doiRepresentationSuffixPattern' =>
'string',