Skip to content

Commit

Permalink
*6339* Removing LegacyLinkAction usage
Browse files Browse the repository at this point in the history
  • Loading branch information
asmecher committed Sep 26, 2012
1 parent 6628c7c commit 83874d7
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 117 deletions.
29 changes: 12 additions & 17 deletions classes/controllers/grid/filter/PKPFilterGridHandler.inc.php
Expand Up @@ -128,13 +128,17 @@ function initialize(&$request) {

// Grid action
$router =& $request->getRouter();
import('lib.pkp.classes.linkAction.request.AjaxModal');
$this->addAction(
new LegacyLinkAction(
new LinkAction(
'addFilter',
LINK_ACTION_MODE_MODAL,
LINK_ACTION_TYPE_APPEND,
$router->url($request, null, null, 'addFilter'),
'grid.action.addItem'
new AjaxModal(
$router->url($request, null, null, 'addFilter'),
__('grid.action.addItem'),
'modal_manage'
),
__('grid.action.addItem'),
'add_filter'
)
);

Expand Down Expand Up @@ -235,22 +239,13 @@ function updateFilter(&$args, &$request) {
// Persist the filter.
$filterForm->execute($request);

// Render the updated filter row into
// a JSON response
$row =& $this->getRowInstance();
$row->setGridId($this->getId());
$row->setId($filter->getId());
$row->setData($filter);
$row->initialize($request);
$json = new JSONMessage(true, $this->renderRowInternally($request, $row));
return DAO::getDataChangedEvent();
} else {
// Re-display the filter form with error messages
// so that the user can fix it.
$json = new JSONMessage(false, $filterForm->fetch($request));
return $json->getString();
}

// Return the serialized JSON response
return $json->getString();
}

/**
Expand All @@ -267,7 +262,7 @@ function deleteFilter(&$args, &$request) {
$result = $filterDao->deleteObject($filter);

if ($result) {
$json = new JSONMessage(true);
return DAO::getDataChangedEvent();
} else {
$json = new JSONMessage(false, __('manager.setup.filter.grid.errorDeletingFilter'));
}
Expand Down
32 changes: 18 additions & 14 deletions classes/controllers/grid/filter/PKPFilterGridRow.inc.php
Expand Up @@ -48,29 +48,33 @@ function initialize(&$request) {
// settings to be configured.
$filter =& $this->getData();
assert(is_a($filter, 'Filter'));
import('lib.pkp.classes.linkAction.request.AjaxModal');
if ($filter->hasSettings()) {
$this->addAction(
new LegacyLinkAction(
new LinkAction(
'editFilter',
LINK_ACTION_MODE_MODAL,
LINK_ACTION_TYPE_REPLACE,
$router->url($request, null, null, 'editFilter', null, $actionArgs),
'grid.action.edit',
null,
new AjaxModal(
$router->url($request, null, null, 'editFilter', null, $actionArgs),
__('grid.action.edit'),
'edit'
),
__('grid.action.edit'),
'edit'
)
);
}
import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
$this->addAction(
new LegacyLinkAction(
new LinkAction(
'deleteFilter',
LINK_ACTION_MODE_CONFIRM,
LINK_ACTION_TYPE_REMOVE,
$router->url($request, null, null, 'deleteFilter', null, $actionArgs),
'grid.action.delete',
null,
'delete',
__('manager.setup.filter.grid.confirmDelete', array('filterName' => $filter->getDisplayName()))
new RemoteActionConfirmationModal(
__('manager.setup.filter.grid.confirmDelete', array('filterName' => $filter->getDisplayName())),
__('common.delete'),
$router->url($request, null, null, 'deleteFilter', null, $actionArgs),
'modal_delete'
),
__('common.delete'),
'delete'
)
);
}
Expand Down
2 changes: 1 addition & 1 deletion classes/controllers/grid/filter/form/FilterForm.inc.php
Expand Up @@ -60,7 +60,7 @@ function FilterForm(&$filter, $title, $description, $filterGroupSymbolic) {
$this->setData('filterSettings', $filter->getSettings());
foreach($filter->getSettings() as $filterSetting) {
// Add check corresponding to filter setting.
$settingCheck =& $filterSetting->getCheck($form);
$settingCheck =& $filterSetting->getCheck($this);
if (!is_null($settingCheck)) $this->addCheck($settingCheck);
}
}
Expand Down
2 changes: 1 addition & 1 deletion classes/filter/BooleanFilterSetting.inc.php
Expand Up @@ -40,4 +40,4 @@ function &getCheck(&$form) {
return $check;
}
}
?>
?>
17 changes: 16 additions & 1 deletion js/classes/Handler.js
Expand Up @@ -231,7 +231,7 @@
/**
* Completely remove all traces of the handler from the
* HTML element to which it is bound and leave the element in
* it's previous state.
* its previous state.
*
* Subclasses should override this method if necessary but
* should always call this implementation.
Expand Down Expand Up @@ -278,6 +278,21 @@
};


/**
* Sets the HTML element this handler is bound to.
*
* @protected
* @param {jQuery} $htmlElement The element this handler should be bound to.
* @return {jQuery} Passes through the supplied parameter.
*/
$.pkp.classes.Handler.prototype.setHtmlElement = function($htmlElement) {
$.pkp.classes.Handler.checkContext_(this);

// Return the HTML element.
return this.$htmlElement_ = $htmlElement;
};


/**
* Bind an event to a handler operation.
*
Expand Down
142 changes: 59 additions & 83 deletions templates/controllers/grid/filter/form/filterForm.tpl
Expand Up @@ -7,95 +7,71 @@
* Filter grid form
*}

{assign var=uid value="-"|uniqid}
<div id="editFilterFormContainer{$uid}">
{assign var="uid" value="-"|uniqid}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#editFilterForm{$uid|escape:"javascript"}').pkpHandler(
'$.pkp.controllers.grid.filter.form.FilterFormHandler',
{ldelim}
noMoreTemplates: {if $noMoreTemplates}true{else}false{/if},
filterTemplates: {if $filterTemplates}true{else}false{/if},
editFilterUrlTemplate: '{url|escape:"javascript" op="editFilter" filterTemplateId="DUMMY_FILTER_TEMPLATE_ID"}',
pulldownSelector: '#filterTemplateSelect{$uid|escape:"javascript"}',
{rdelim}
);
{rdelim});
</script>

<form class="pkp_form" id="editFilterForm{$uid|escape}" method="post" action="{url op="updateFilter"}" >
{if $noMoreTemplates}
{literal}<script type='text/javascript'>
<!--
$(function() {
// Hide the OK button.
$('.ui-dialog:has(#editFilterFormContainer{/literal}{$uid}{literal}) :button:first')
.hide()
});
// -->
</script>{/literal}
<p>{translate key='manager.setup.filter.noMoreTemplates'}</p>
{else}
<form class="pkp_form" id="editFilterForm" method="post" action="{url op="updateFilter"}" >
<h3>{translate key=$formTitle}</h3>

<p>{translate key=$formDescription filterDisplayName=$filterDisplayName}</p>
<h3>{translate key=$formTitle}</h3>

{include file="common/formErrors.tpl"}
<p>{translate key=$formDescription filterDisplayName=$filterDisplayName}</p>

{if $filterTemplates}
{* Template selection *}
{fbvElement type="select" id="filterTemplateSelect"|concat:$uid name="filterTemplateId"
from=$filterTemplates translate=false defaultValue="-1" defaultLabel="manager.setup.filter.pleaseSelect"|translate}
{literal}<script type='text/javascript'>
<!--
$(function() {
// Hide the OK button as long as we
// don't have a filter selected.
$('.ui-dialog:has(#editFilterFormContainer{/literal}{$uid}{literal}) :button:first')
.hide()
{include file="common/formErrors.tpl"}

ajaxAction(
'post',
'#editFilterFormContainer{/literal}{$uid}{literal}',
'#filterTemplateSelect{/literal}{$uid}{literal}',
'{/literal}{url op="editFilter"}{literal}',
undefined,
'change'
);
});
// -->
</script>{/literal}
{else}
{literal}<script type='text/javascript'>
<!--
$(function() {
// Switch the OK button back on.
$('.ui-dialog:has(#editFilterFormContainer{/literal}{$uid}{literal}) :button:first')
.show()
});
// -->
</script>{/literal}
{if $filterTemplates}
{* Template selection *}
{fbvElement type="select" id="filterTemplateSelect"|concat:$uid name="filterTemplateId"
from=$filterTemplates translate=false defaultValue="-1" defaultLabel="manager.setup.filter.pleaseSelect"|translate}
{else}
{assign var=hasRequiredField value=false}
<table>
{foreach from=$filterSettings item=filterSetting}
{if $filterSetting->getRequired() == $smarty.const.FORM_VALIDATOR_REQUIRED_VALUE}
{assign var=filterSettingRequired value='1'}
{assign var=hasRequiredField value=true}
{else}
{assign var=filterSettingRequired value=''}
{/if}
<tr valign="top">
<td class="label">{fieldLabel name=$filterSetting->getName() key=$filterSetting->getDisplayName() required=$filterSettingRequired}</td>
{capture assign=settingValueVar}{ldelim}${$filterSetting->getName()}{rdelim}{/capture}
{eval|assign:"settingValue" var=$settingValueVar}
<td class="value">
{if $filterSetting|is_a:SetFilterSetting}
{fbvElement type="select" id=$filterSetting->getName() name=$filterSetting->getName()
from=$filterSetting->getLocalizedAcceptedValues() selected=$settingValue translate=false}
{elseif $filterSetting|is_a:BooleanFilterSetting}
{fbvElement type="checkbox" id=$filterSetting->getName() name=$filterSetting->getName()
checked=$settingValue}
{else}
{fbvElement type="text" id=$filterSetting->getName() name=$filterSetting->getName()
size=$fbvStyles.size.LARGE maxlength=250 value=$settingValue}
{/if}
</td>
</tr>
{/foreach}
</table>
{if $hasRequiredField}<p><span class="formRequired">{translate key="common.requiredField"}</span></p>{/if}

{assign var=hasRequiredField value=false}
<table>
{foreach from=$filterSettings item=filterSetting}
{if $filterSetting->getRequired() == $smarty.const.FORM_VALIDATOR_REQUIRED_VALUE}
{assign var=filterSettingRequired value='1'}
{assign var=hasRequiredField value=true}
{else}
{assign var=filterSettingRequired value=''}
{/if}
<tr valign="top">
<td class="label">{fieldLabel name=$filterSetting->getName() key=$filterSetting->getDisplayName() required=$filterSettingRequired}</td>
{capture assign=settingValueVar}{ldelim}${$filterSetting->getName()}{rdelim}{/capture}
{eval|assign:"settingValue" var=$settingValueVar}
<td class="value">
{if $filterSetting|is_a:SetFilterSetting}
{fbvElement type="select" id=$filterSetting->getName() name=$filterSetting->getName()
from=$filterSetting->getLocalizedAcceptedValues() selected=$settingValue translate=false}
{elseif $filterSetting|is_a:BooleanFilterSetting}
{fbvElement type="checkbox" id=$filterSetting->getName() name=$filterSetting->getName()
checked=$settingValue}
{else}
{fbvElement type="text" id=$filterSetting->getName() name=$filterSetting->getName()
size=$fbvStyles.size.LARGE maxlength=250 value=$settingValue}
{/if}
</td>
</tr>
{/foreach}
</table>
{if $hasRequiredField}<p><span class="formRequired">{translate key="common.requiredField"}</span></p>{/if}
{if $filterId}<input type="hidden" name="filterId" value="{$filterId|escape}" />{/if}
{if $filterTemplateId}<input type="hidden" name="filterTemplateId" value="{$filterTemplateId|escape}" />{/if}
{/if}

{if $filterId}<input type="hidden" name="filterId" value="{$filterId|escape}" />{/if}
{if $filterTemplateId}<input type="hidden" name="filterTemplateId" value="{$filterTemplateId|escape}" />{/if}
{/if}
</form>
{/if}
</div>
{fbvFormButtons submitText="common.save"}
</form>

0 comments on commit 83874d7

Please sign in to comment.