Skip to content
Snippets Groups Projects
Commit d8ebceac authored by Satish's avatar Satish
Browse files

Fixes #419 - vt7 user with no delete rights gets option to delete records under duplicate search

parent 807de91b
No related branches found
No related tags found
1 merge request!179Fixes #416, #418, #419
......@@ -10,72 +10,98 @@
{* START YOUR IMPLEMENTATION FROM BELOW. Use {debug} for information *}
<div>
{include file="FindDuplicateHeader.tpl"|vtemplate_path:$MODULE}
{include file="FindDuplicateHeader.tpl"|vtemplate_path:$MODULE}
</div>
<div id="findDuplicateContents" class="container-fluid" style="padding-top:5px;">
<div class="row">
<div class="col-lg-12">
<input type="hidden" id="listViewEntriesCount" value="{$LISTVIEW_ENTRIES_COUNT}" />
<input type="hidden" id="pageStartRange" value="{$PAGING_MODEL->getRecordStartRange()}" />
<input type="hidden" id="pageEndRange" value="{$PAGING_MODEL->getRecordEndRange()}" />
<input type="hidden" id="previousPageExist" value="{$PAGING_MODEL->isPrevPageExists()}" />
<input type="hidden" id="nextPageExist" value="{$PAGING_MODEL->isNextPageExists()}" />
<input type="hidden" id="pageNumber" value= "{$PAGE_NUMBER}"/>
<input type="hidden" id="pageLimit" value= "{$PAGING_MODEL->getPageLimit()}" />
<input type="hidden" id="noOfEntries" value= "{$LISTVIEW_ENTRIES_COUNT}" />
<input type="hidden" id="duplicateSearchFields" value={Zend_Json::encode($DUPLICATE_SEARCH_FIELDS)} />
<input type="hidden" id="viewName" value="{$VIEW_NAME}" />
<input type="hidden" id="totalCount" value="{$TOTAL_COUNT}" />
<input type='hidden' id='ignoreEmpty' value="{$IGNORE_EMPTY}" />
<input type="hidden" id="mergeSelectedIds" />
<table id="listview-table" class="listview-table table table-bordered">
<thead>
<tr class="listViewContentHeader">
<th>
<center><input type="checkbox" class="listViewEntriesMainCheckBox" /></center>
</th>
{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
<th>
<center>{vtranslate($LISTVIEW_HEADER->get('label'), $MODULE)}</center>
</th>
{/foreach}
<th> <center>{vtranslate('LBL_MERGE_SELECT', $MODULE)}</center></th>
<th> <center>{vtranslate('LBL_ACTION', $MODULE)}</center></th>
</tr>
</thead>
{foreach item=LISTVIEW_ENTRY key=GROUP_NAME from=$LISTVIEW_ENTRIES}
{assign var=groupCount value=$LISTVIEW_ENTRY|@sizeof}
{assign var=recordCount value=0}
{foreach item=RECORD from=$LISTVIEW_ENTRY name=listview}
<tr class="listViewEntries" data-id='{$RECORD.recordid}' id="{$MODULE}_listView_row_{$smarty.foreach.listview.index+1}">
<td>
<center><input type="checkbox" value="{$RECORD.recordid}" class="listViewEntriesCheckBox"/></center>
</td>
{assign var=sameRowValues value=true}
{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
{if $LISTVIEW_HEADER->get('name') eq 'recordid'}
<td nowrap>
<center><a href="{$MODULE_MODEL->getDetailViewUrl($RECORD.recordid)}">{$RECORD[$LISTVIEW_HEADER->get('name')]}</a></center>
</td>
{else}
<td name="{$LISTVIEW_HEADER->get('name')}" nowrap style='border-bottom:1px solid #DDD;' data-value="{strip_tags($LISTVIEW_HEADER->getDisplayValue($RECORD[$LISTVIEW_HEADER->get('column')], $RECORD.recordid))}">
<center>{$LISTVIEW_HEADER->getDisplayValue($RECORD[$LISTVIEW_HEADER->get('column')], $RECORD.recordid)}</center>
</td>
{/if}
{/foreach}
<td>
<center><input type="checkbox" data-id='{$RECORD.recordid}' name="mergeRecord" data-group="{$GROUP_NAME}"/></center>
</td>
{if $recordCount eq 0}
<td rowspan="{$groupCount}" style="vertical-align: middle;">
<center><input type="button" value="{vtranslate('Merge', $MODULE)}" name="merge" class="btn btn-success" data-group="{$GROUP_NAME}"></center>
</td>
{/if}
{assign var=recordCount value=$recordCount+1}
</tr>
{/foreach}
{/foreach}
</table>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<input type="hidden" id="listViewEntriesCount" value="{$LISTVIEW_ENTRIES_COUNT}" />
<input type="hidden" id="pageStartRange" value="{$PAGING_MODEL->getRecordStartRange()}" />
<input type="hidden" id="pageEndRange" value="{$PAGING_MODEL->getRecordEndRange()}" />
<input type="hidden" id="previousPageExist" value="{$PAGING_MODEL->isPrevPageExists()}" />
<input type="hidden" id="nextPageExist" value="{$PAGING_MODEL->isNextPageExists()}" />
<input type="hidden" id="pageNumber" value= "{$PAGE_NUMBER}"/>
<input type="hidden" id="pageLimit" value= "{$PAGING_MODEL->getPageLimit()}" />
<input type="hidden" id="noOfEntries" value= "{$LISTVIEW_ENTRIES_COUNT}" />
<input type="hidden" id="duplicateSearchFields" value={Zend_Json::encode($DUPLICATE_SEARCH_FIELDS)} />
<input type="hidden" id="viewName" value="{$VIEW_NAME}" />
<input type="hidden" id="totalCount" value="{$TOTAL_COUNT}" />
<input type='hidden' id='ignoreEmpty' value="{$IGNORE_EMPTY}" />
<input type="hidden" id="mergeSelectedIds" />
{assign var=IS_EDITABLE value=$CURRENT_USER_PRIVILAGES_MODEL->hasModuleActionPermission($MODULE_MODEL->getId(), 'EditView')}
{assign var=IS_DELETABLE value=$CURRENT_USER_PRIVILAGES_MODEL->hasModuleActionPermission($MODULE_MODEL->getId(), 'Delete')}
<table id="listview-table" class="listview-table table table-bordered" style="border-top:1px solid #ddd;">
<thead>
<tr class="listViewContentHeader">
{if $IS_DELETABLE}
<th>
<center><input type="checkbox" class="listViewEntriesMainCheckBox" /></center>
</th>
{/if}
{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
<th>
<center>{vtranslate($LISTVIEW_HEADER->get('label'), $MODULE)}</center>
</th>
{/foreach}
{if $IS_EDITABLE && $IS_DELETABLE}
<th> <center>{vtranslate('LBL_MERGE_SELECT', $MODULE)}</center></th>
<th> <center>{vtranslate('LBL_ACTION', $MODULE)}</center></th>
{/if}
</tr>
</thead>
{foreach item=LISTVIEW_ENTRY key=GROUP_NAME from=$LISTVIEW_ENTRIES}
{assign var=groupCount value=$LISTVIEW_ENTRY|@sizeof}
{assign var=recordCount value=0}
{foreach item=RECORD from=$LISTVIEW_ENTRY name=listview}
<tr class="listViewEntries" data-id='{$RECORD.recordid}' id="{$MODULE}_listView_row_{$smarty.foreach.listview.index+1}">
{if $IS_DELETABLE}
<td>
<center><input type="checkbox" value="{$RECORD.recordid}" class="listViewEntriesCheckBox"/></center>
</td>
{/if}
{assign var=sameRowValues value=true}
{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
{if $LISTVIEW_HEADER->get('name') eq 'recordid'}
<td nowrap>
<center><a href="{$MODULE_MODEL->getDetailViewUrl($RECORD.recordid)}">{$RECORD[$LISTVIEW_HEADER->get('name')]}</a></center>
</td>
{else}
<td name="{$LISTVIEW_HEADER->get('name')}" nowrap style='border-bottom:1px solid #DDD;' data-value="{strip_tags($LISTVIEW_HEADER->getDisplayValue($RECORD[$LISTVIEW_HEADER->get('column')], $RECORD.recordid))}">
<center>{strip_tags($LISTVIEW_HEADER->getDisplayValue($RECORD[$LISTVIEW_HEADER->get('column')], $RECORD.recordid))}</center>
</td>
{/if}
{/foreach}
{if $IS_EDITABLE && $IS_DELETABLE}
<td>
<center><input type="checkbox" data-id='{$RECORD.recordid}' name="mergeRecord" data-group="{$GROUP_NAME}"/></center>
</td>
{if $recordCount eq 0}
<td rowspan="{$groupCount}" style="vertical-align: middle;">
<center><input type="button" value="{vtranslate('Merge', $MODULE)}" name="merge" class="btn btn-success" data-group="{$GROUP_NAME}"></center>
</td>
{/if}
{/if}
{assign var=recordCount value=$recordCount+1}
</tr>
{/foreach}
{/foreach}
</table>
{if $recordCount eq 0}
<div class="col-md-12 col-sm-12 col-xs-12 col-lg-12 listViewContentDiv list-table-wrapper" id="listViewContents">
<table class="emptyRecordsDiv">
<tbody class="overflow-y">
<tr class="emptyRecordDiv">
<td colspan="8">
<div class="emptyRecordsContent portal-empty-records-content">
{vtranslate('LBL_NO_DUPLICATED_FOUND')}.
</div>
</td>
</tr>
</tbody>
</table>
</div>
{/if}
</div>
</div>
</div>
\ No newline at end of file
......@@ -8,43 +8,45 @@
************************************************************************************}
<div class="container-fluid">
<div class="row">
{assign var=HEADER_TITLE value={vtranslate('LBL_DUPLICATE')|cat:' '|cat:vtranslate($MODULE, $MODULE)}}
<h3>
<div class="col-lg-7">
{$HEADER_TITLE}
</div>
<div class="col-lg-5">
<div class="alert alert-static">
<span class="fa fa-info-circle icon"></span>
<span class="message">{vJsTranslate('JS_ALLOWED_TO_SELECT_MAX_OF_THREE_RECORDS',$MODULE)}</span>
</div>
</div>
</h3>
</div>
<div class="row">
<div class="col-lg-1">
{foreach item=LISTVIEW_BASICACTION from=$LISTVIEW_LINKS}
<button id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($LISTVIEW_BASICACTION->getLabel())}" class="btn btn-danger pull-left"
{if stripos($LISTVIEW_BASICACTION->getUrl(), 'javascript:')===0} onclick='{$LISTVIEW_BASICACTION->getUrl()|substr:strlen("javascript:")};'{else} onclick='window.location.href="{$LISTVIEW_BASICACTION->getUrl()}"'{/if}>
<strong>{vtranslate($LISTVIEW_BASICACTION->getLabel(), $MODULE)}</strong>
</button>
{/foreach}
</div>
<div class="col-lg-11">
<div class="col-lg-1">
&nbsp;
</div>
<div class="col-lg-9 select-deselect-container" >
<div class="hide messageContainer" style = "height:30px;">
<center><a id="selectAllMsgDiv" href="#">{vtranslate('LBL_SELECT_ALL',$MODULE)}&nbsp;{vtranslate($MODULE ,$MODULE)}&nbsp;(<span id="totalRecordsCount" value=""></span>)</a></center>
</div>
<div class="hide messageContainer" style = "height:30px;">
<center><a id="deSelectAllMsgDiv" href="#">{vtranslate('LBL_DESELECT_ALL_RECORDS',$MODULE)}</a></center>
</div>
</div>
{assign var=RECORD_COUNT value=$LISTVIEW_ENTRIES_COUNT}
<div class="row">
{assign var=HEADER_TITLE value={vtranslate('LBL_DUPLICATE')|cat:' '|cat:vtranslate($MODULE, $MODULE)}}
<h3>
<div class="col-lg-7">
{$HEADER_TITLE}
</div>
<div class="col-lg-5">
<div class="alert alert-static">
<span class="fa fa-info-circle icon"></span>
<span class="message">{vJsTranslate('JS_ALLOWED_TO_SELECT_MAX_OF_THREE_RECORDS',$MODULE)}</span>
</div>
</div>
</h3>
</div>
<div class="row">
<div class="col-lg-1">
{if $LISTVIEW_ENTRIES_COUNT > 0}
{foreach item=LISTVIEW_BASICACTION from=$LISTVIEW_LINKS}
<button id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($LISTVIEW_BASICACTION->getLabel())}" class="btn btn-danger pull-left"
{if stripos($LISTVIEW_BASICACTION->getUrl(), 'javascript:')===0} onclick='{$LISTVIEW_BASICACTION->getUrl()|substr:strlen("javascript:")};'{else} onclick='window.location.href="{$LISTVIEW_BASICACTION->getUrl()}"'{/if}>
<strong>{vtranslate($LISTVIEW_BASICACTION->getLabel(), $MODULE)}</strong>
</button>
{/foreach}
{/if}
</div>
<div class="col-lg-11">
<div class="col-lg-1">
&nbsp;
</div>
<div class="col-lg-9 select-deselect-container" >
<div class="hide messageContainer" style = "height:30px;">
<center><a id="selectAllMsgDiv" href="#">{vtranslate('LBL_SELECT_ALL',$MODULE)}&nbsp;{vtranslate($MODULE ,$MODULE)}&nbsp;(<span id="totalRecordsCount" value=""></span>)</a></center>
</div>
<div class="hide messageContainer" style = "height:30px;">
<center><a id="deSelectAllMsgDiv" href="#">{vtranslate('LBL_DESELECT_ALL_RECORDS',$MODULE)}</a></center>
</div>
</div>
{assign var=RECORD_COUNT value=$LISTVIEW_ENTRIES_COUNT}
{include file="Pagination.tpl"|vtemplate_path:$MODULE SHOWPAGEJUMP=true}
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
......@@ -60,13 +60,19 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View {
$module = $request->getModule();
$moduleModel = Vtiger_Module_Model::getInstance($module);
$massActionLink = array(
'linktype' => 'LISTVIEWBASIC',
'linklabel' => 'LBL_DELETE',
'linkurl' => 'Javascript:Vtiger_FindDuplicates_Js.massDeleteRecords("index.php?module='.$module.'&action=MassDelete");',
'linkicon' => ''
);
$massActionLinks[] = Vtiger_Link_Model::getInstanceFromValues($massActionLink);
$massActionLinks = array();
$userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
if ($userPrivilegesModel->hasModuleActionPermission($moduleModel->getId(), 'Delete')) {
$massActionLink = array(
'linktype' => 'LISTVIEWBASIC',
'linklabel' => 'LBL_DELETE',
'linkurl' => 'Javascript:Vtiger_FindDuplicates_Js.massDeleteRecords("index.php?module='.$module.'&action=MassDelete");',
'linkicon' => ''
);
$massActionLinks[] = Vtiger_Link_Model::getInstanceFromValues($massActionLink);
}
$viewer->assign('CURRENT_USER_PRIVILAGES_MODEL', $userPrivilegesModel);
$viewer->assign('LISTVIEW_LINKS', $massActionLinks);
$viewer->assign('MODULE_MODEL', $moduleModel);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment