Fixed gh-255 to insure that the correct component name is used when building the button on the edit view where the custom field is used.
This commit is contained in:
@ -8676,136 +8676,6 @@ class Interpretation extends Fields
|
||||
}
|
||||
}
|
||||
|
||||
public function setAddButttonToListField($targetView, $targetViews)
|
||||
{
|
||||
$addButton = array();
|
||||
$addButton[] = PHP_EOL . "\t/**";
|
||||
$addButton[] = "\t * Override to add new button";
|
||||
$addButton[] = "\t *";
|
||||
$addButton[] = "\t * @return string The field input markup.";
|
||||
$addButton[] = "\t *";
|
||||
$addButton[] = "\t * @since 3.2";
|
||||
$addButton[] = "\t */";
|
||||
$addButton[] = "\tprotected function getInput()";
|
||||
$addButton[] = "\t{";
|
||||
$addButton[] = "\t\t//" . $this->setLine(__LINE__) . " see if we should add buttons";
|
||||
$addButton[] = "\t\t\$setButton = \$this->getAttribute('button');";
|
||||
$addButton[] = "\t\t//" . $this->setLine(__LINE__) . " get html";
|
||||
$addButton[] = "\t\t\$html = parent::getInput();";
|
||||
$addButton[] = "\t\t//" . $this->setLine(__LINE__) . " if true set button";
|
||||
$addButton[] = "\t\tif (\$setButton === 'true')";
|
||||
$addButton[] = "\t\t{";
|
||||
$addButton[] = "\t\t\t\$button = array();";
|
||||
$addButton[] = "\t\t\t\$script = array();";
|
||||
$addButton[] = "\t\t\t\$buttonName = \$this->getAttribute('name');";
|
||||
$addButton[] = "\t\t\t//" . $this->setLine(__LINE__) . " get the input from url";
|
||||
$addButton[] = "\t\t\t\$app = JFactory::getApplication();";
|
||||
$addButton[] = "\t\t\t\$jinput = \$app->input;";
|
||||
$addButton[] = "\t\t\t//" . $this->setLine(__LINE__) . " get the view name & id";
|
||||
$addButton[] = "\t\t\t\$values = \$jinput->getArray(array(";
|
||||
$addButton[] = "\t\t\t\t'id' => 'int',";
|
||||
$addButton[] = "\t\t\t\t'view' => 'word'";
|
||||
$addButton[] = "\t\t\t));";
|
||||
$addButton[] = "\t\t\t//" . $this->setLine(__LINE__) . " check if new item";
|
||||
$addButton[] = "\t\t\t\$ref = '';";
|
||||
$addButton[] = "\t\t\t\$refJ = '';";
|
||||
$addButton[] = "\t\t\tif (!is_null(\$values['id']) && strlen(\$values['view']))";
|
||||
$addButton[] = "\t\t\t{";
|
||||
$addButton[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " only load referal if not new item.";
|
||||
$addButton[] = "\t\t\t\t\$ref = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];";
|
||||
$addButton[] = "\t\t\t\t\$refJ = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];";
|
||||
$addButton[] = "\t\t\t}";
|
||||
$addButton[] = "\t\t\t\$user = JFactory::getUser();";
|
||||
$addButton[] = "\t\t\t//" . $this->setLine(__LINE__) . " only add if user allowed to create " . $targetView;
|
||||
// get core permissions
|
||||
$coreLoad = false;
|
||||
if (isset($this->permissionCore[$targetView]))
|
||||
{
|
||||
$core = $this->permissionCore[$targetView];
|
||||
$coreLoad = true;
|
||||
}
|
||||
// check if the item has permissions.
|
||||
if ($coreLoad && isset($core['core.create']) && isset($this->permissionBuilder['global'][$core['core.create']]) && ComponentbuilderHelper::checkArray($this->permissionBuilder['global'][$core['core.create']]) && in_array($targetView, $this->permissionBuilder['global'][$core['core.create']]))
|
||||
{
|
||||
$addButton[] = "\t\t\tif (\$user->authorise('" . $core['core.create'] . "', 'com_" . $this->fileContentStatic['###component###'] . "') && \$app->isAdmin()) // TODO for now only in admin area.";
|
||||
}
|
||||
else
|
||||
{
|
||||
$addButton[] = "\t\t\tif (\$user->authorise('core.create', 'com_" . $this->fileContentStatic['###component###'] . "') && \$app->isAdmin()) // TODO for now only in admin area.";
|
||||
}
|
||||
$addButton[] = "\t\t\t{";
|
||||
$addButton[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " build Create button";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = trim(\$buttonName);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = preg_replace('/_+/', ' ', \$buttonNamee);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = preg_replace('/\s+/', ' ', \$buttonNamee);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = preg_replace(\"/[^A-Za-z ]/\", '', \$buttonNamee);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = ucfirst(strtolower(\$buttonNamee));";
|
||||
$addButton[] = "\t\t\t\t\$button[] = '<a id=\"'.\$buttonName.'Create\" class=\"btn btn-small btn-success hasTooltip\" title=\"'.JText:" . ":sprintf('" . $this->langPrefix . "_CREATE_NEW_S', \$buttonNamee).'\" style=\"border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;\"";
|
||||
$addButton[] = "\t\t\t\t\thref=\"index.php?option=com_" . $this->fileContentStatic['###component###'] . "&view=" . $targetView . "&layout=edit'.\$ref.'\" >";
|
||||
$addButton[] = "\t\t\t\t\t<span class=\"icon-new icon-white\"></span></a>';";
|
||||
$addButton[] = "\t\t\t}";
|
||||
$addButton[] = "\t\t\t//" . $this->setLine(__LINE__) . " only add if user allowed to edit " . $targetView;
|
||||
// check if the item has permissions.
|
||||
if ($coreLoad && isset($core['core.edit']) && isset($this->permissionBuilder['global'][$core['core.edit']]) && ComponentbuilderHelper::checkArray($this->permissionBuilder['global'][$core['core.edit']]) && in_array($targetView, $this->permissionBuilder['global'][$core['core.edit']]))
|
||||
{
|
||||
$addButton[] = "\t\t\tif ((\$buttonName === '" . $targetView . "' || \$buttonName === '" . $targetViews . "') && \$user->authorise('" . $core['core.edit'] . "', 'com_" . $this->fileContentStatic['###component###'] . "') && \$app->isAdmin()) // TODO for now only in admin area.";
|
||||
}
|
||||
else
|
||||
{
|
||||
$addButton[] = "\t\t\tif ((\$buttonName === '" . $targetView . "' || \$buttonName === '" . $targetViews . "') && \$user->authorise('core.edit', 'com_" . $this->fileContentStatic['###component###'] . "') && \$app->isAdmin()) // TODO for now only in admin area.";
|
||||
}
|
||||
$addButton[] = "\t\t\t{";
|
||||
$addButton[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " build edit button";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = trim(\$buttonName);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = preg_replace('/_+/', ' ', \$buttonNamee);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = preg_replace('/\s+/', ' ', \$buttonNamee);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = preg_replace(\"/[^A-Za-z ]/\", '', \$buttonNamee);";
|
||||
$addButton[] = "\t\t\t\t\$buttonNamee = ucfirst(strtolower(\$buttonNamee));";
|
||||
$addButton[] = "\t\t\t\t\$button[] = '<a id=\"'.\$buttonName.'Edit\" class=\"btn btn-small hasTooltip\" title=\"'.JText:" . ":sprintf('" . $this->langPrefix . "_EDIT_S', \$buttonNamee).'\" style=\"display: none; padding: 4px 4px 4px 7px;\" href=\"#\" >";
|
||||
$addButton[] = "\t\t\t\t\t<span class=\"icon-edit\"></span></a>';";
|
||||
$addButton[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " build script";
|
||||
$addButton[] = "\t\t\t\t\$script[] = \"";
|
||||
$addButton[] = "\t\t\t\t\tjQuery(document).ready(function() {";
|
||||
$addButton[] = "\t\t\t\t\t\tjQuery('#adminForm').on('change', '#jform_\".\$buttonName.\"',function (e) {";
|
||||
$addButton[] = "\t\t\t\t\t\t\te.preventDefault();";
|
||||
$addButton[] = "\t\t\t\t\t\t\tvar \".\$buttonName.\"Value = jQuery('#jform_\".\$buttonName.\"').val();";
|
||||
$addButton[] = "\t\t\t\t\t\t\t\".\$buttonName.\"Button(\".\$buttonName.\"Value);";
|
||||
$addButton[] = "\t\t\t\t\t\t});";
|
||||
$addButton[] = "\t\t\t\t\t\tvar \".\$buttonName.\"Value = jQuery('#jform_\".\$buttonName.\"').val();";
|
||||
$addButton[] = "\t\t\t\t\t\t\".\$buttonName.\"Button(\".\$buttonName.\"Value);";
|
||||
$addButton[] = "\t\t\t\t\t});";
|
||||
$addButton[] = "\t\t\t\t\tfunction \".\$buttonName.\"Button(value) {";
|
||||
$addButton[] = "\t\t\t\t\t\tif (value > 0) {"; // TODO not ideal since value may not be an (int)
|
||||
$addButton[] = "\t\t\t\t\t\t\t// hide the create button";
|
||||
$addButton[] = "\t\t\t\t\t\t\tjQuery('#\".\$buttonName.\"Create').hide();";
|
||||
$addButton[] = "\t\t\t\t\t\t\t// show edit button";
|
||||
$addButton[] = "\t\t\t\t\t\t\tjQuery('#\".\$buttonName.\"Edit').show();";
|
||||
$addButton[] = "\t\t\t\t\t\t\tvar url = 'index.php?option=com_" . $this->fileContentStatic['###component###'] . "&view=" . $targetViews . "&task=" . $targetView . ".edit&id='+value+'\".\$refJ.\"';"; // TODO this value may not be the ID
|
||||
$addButton[] = "\t\t\t\t\t\t\tjQuery('#\".\$buttonName.\"Edit').attr('href', url);";
|
||||
$addButton[] = "\t\t\t\t\t\t} else {";
|
||||
$addButton[] = "\t\t\t\t\t\t\t// show the create button";
|
||||
$addButton[] = "\t\t\t\t\t\t\tjQuery('#\".\$buttonName.\"Create').show();";
|
||||
$addButton[] = "\t\t\t\t\t\t\t// hide edit button";
|
||||
$addButton[] = "\t\t\t\t\t\t\tjQuery('#\".\$buttonName.\"Edit').hide();";
|
||||
$addButton[] = "\t\t\t\t\t\t}";
|
||||
$addButton[] = "\t\t\t\t\t}\";";
|
||||
$addButton[] = "\t\t\t}";
|
||||
$addButton[] = "\t\t\t//" . $this->setLine(__LINE__) . " check if button was created for " . $targetView . " field.";
|
||||
$addButton[] = "\t\t\tif (is_array(\$button) && count(\$button) > 0)";
|
||||
$addButton[] = "\t\t\t{";
|
||||
$addButton[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " Load the needed script.";
|
||||
$addButton[] = "\t\t\t\t\$document = JFactory::getDocument();";
|
||||
$addButton[] = "\t\t\t\t\$document->addScriptDeclaration(implode(' ',\$script));";
|
||||
$addButton[] = "\t\t\t\t//" . $this->setLine(__LINE__) . " return the button attached to input field.";
|
||||
$addButton[] = "\t\t\t\treturn '<div class=\"input-append\">' .\$html . implode('',\$button).'</div>';";
|
||||
$addButton[] = "\t\t\t}";
|
||||
$addButton[] = "\t\t}";
|
||||
$addButton[] = "\t\treturn \$html;";
|
||||
$addButton[] = "\t}";
|
||||
|
||||
return implode(PHP_EOL, $addButton);
|
||||
}
|
||||
|
||||
public function setFilterQuery($viewName_list)
|
||||
{
|
||||
if (isset($this->filterBuilder[$viewName_list]) && ComponentbuilderHelper::checkArray($this->filterBuilder[$viewName_list]))
|
||||
|
Reference in New Issue
Block a user