Skip to content

Commit

Permalink
Only allow fc admins to edit rcs reference data #3429
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisala committed Feb 5, 2025
1 parent 4497960 commit 007d2f1
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 12 deletions.
2 changes: 1 addition & 1 deletion grails-app/assets/javascripts/organisation.js
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ EditOrganisationViewModel = function(props, options) {
OrganisationPageViewModel = function (props, options) {
var self = this;
_.extend(self, new OrganisationViewModel(props, options));

self.areTargetsAndFundingEditable = options.areTargetsAndFundingEditable;
var tabs = {
'about': {
initialiser: function() {
Expand Down
9 changes: 6 additions & 3 deletions grails-app/assets/javascripts/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@ function OrganisationDetailsViewModel(o, organisation, budgetHeaders, allService
var period = budgetHeaders,
serviceIds = o.services && o.services.serviceIds || [],
targets = o.services && o.services.targets || [];
self.services = new OrganisationServicesViewModel(serviceIds, config.services, targets, budgetHeaders);
self.areTargetsAndFundingEditable = config.areTargetsAndFundingEditable;
self.services = new OrganisationServicesViewModel(serviceIds, config.services, targets, budgetHeaders, {areTargetsEditable:config.areTargetsAndFundingEditable});
self.funding = new BudgetViewModel(o.funding, budgetHeaders);
self.funding.isEditable = config.areTargetsAndFundingEditable;

function clearHiddenFields(jsData) {

};
Expand Down Expand Up @@ -34,13 +37,13 @@ function OrganisationDetailsViewModel(o, organisation, budgetHeaders, allService
* @param outputTargets The current organisation targets
* @param periods An array of periods, each of which require a target to be set
*/
function OrganisationServicesViewModel(serviceIds, allServices, outputTargets, periods) {
function OrganisationServicesViewModel(serviceIds, allServices, outputTargets, periods, options) {
var self = this,
OPERATION_SUM = "SUM",
OPERATION_AVG = "AVG",
operation = OPERATION_AVG;

self.isProjectDetailsLocked = ko.observable(false);
self.areTargetsEditable = options.areTargetsEditable;

allServices = _.sortBy(allServices || [], function (service) {
return service.name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class OrganisationController {
dashboardData = organisationService.scoresForOrganisation(organisation, scores?.collect{it.scoreId}, !hasEditorAccess)
}
boolean showTargets = userService.userIsSiteAdmin() && services && targetPeriods

boolean targetsEditable = userService.userIsAlaOrFcAdmin()
List reportOrder = null
if (reportingVisible) {
// TODO change me to use the configuration once it's been decided how that
Expand Down Expand Up @@ -114,7 +114,7 @@ class OrganisationController {
projects : [label: 'Reporting', template:"/shared/projectListByProgram", visible: reportingVisible, stopBinding:true, default:reportingVisible, type: 'tab', reports:organisation.reports, adHocReportTypes:adHocReportTypes, reportOrder:reportOrder, hideDueDate:true, displayedPrograms:projectGroups.displayedPrograms, reportsFirst:true, declarationType:SettingPageType.RDP_REPORT_DECLARATION],
sites : [label: 'Sites', visible: reportingVisible, type: 'tab', stopBinding:true, projectCount:organisation.projects?.size()?:0, showShapefileDownload:adminVisible],
dashboard : [label: 'Dashboard', visible: reportingVisible, stopBinding:true, type: 'tab', template:'dashboard', reports:dashboardReports, dashboardData:dashboardData],
admin : [label: 'Admin', visible: adminVisible, type: 'tab', template:'admin', showEditAnnoucements:showEditAnnoucements, availableReportCategories:availableReportCategories, targetPeriods:targetPeriods, services: services, showTargets:showTargets]]
admin : [label: 'Admin', visible: adminVisible, type: 'tab', template:'admin', showEditAnnoucements:showEditAnnoucements, availableReportCategories:availableReportCategories, targetPeriods:targetPeriods, services: services, showTargets:showTargets, targetsEditable:targetsEditable]]

}

Expand Down
2 changes: 1 addition & 1 deletion grails-app/views/organisation/_funding.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<tr>
<!-- ko foreach: costs -->
<td class="budget-amount">
<input type="number" class="form-control form-control-sm" data-bind="value: dollar, numeric: $root.number, disable: $root.isProjectDetailsLocked()" data-validation-engine="validate[custom[number],min[0]"/>
<input type="number" class="form-control form-control-sm" data-bind="value: dollar, numeric: $root.number, enable: $parents[1].isEditable" data-validation-engine="validate[custom[number],min[0]"/>
</td>
<!-- /ko -->
</tr>
Expand Down
10 changes: 5 additions & 5 deletions grails-app/views/organisation/_serviceTargets.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@
<tr>
<td class="index"><span data-bind="text:$index()+1"></span></td>
<td class="service">
<select class="form-control form-control-sm" data-bind="options: selectableServices, optionsText:'name', optionsValue:'id', value:serviceId, disable: $root.isProjectDetailsLocked()"
<select class="form-control form-control-sm" data-bind="options: selectableServices, optionsText:'name', optionsValue:'id', value:serviceId, enable: $parent.areTargetsEditable"
data-validation-engine="validate[required]"></select>
</td>
<td class="score">
<select class="form-control form-control-sm" data-bind="options: selectableScores, optionsText:'label', optionsValue:'scoreId', value:scoreId, disable: $root.isProjectDetailsLocked()"
<select class="form-control form-control-sm" data-bind="options: selectableScores, optionsText:'label', optionsValue:'scoreId', value:scoreId, enable: $parent.areTargetsEditable"
data-validation-engine="validate[required]"></select>
</td>
<td class="budget-cell">
Expand All @@ -45,7 +45,7 @@
<g:if test="${showTargetDate}">
<td class="target-date">
<div class="input-group">
<input class="form-control form-control-sm" data-bind="datepicker:targetDate.date, disable: $root.isProjectDetailsLocked()" type="text" size="16" data-validation-engine="validate[required]">
<input class="form-control form-control-sm" data-bind="datepicker:targetDate.date, enable: $parent.areTargetsEditable" type="text" size="16" data-validation-engine="validate[required]">
<div class="input-group-append open-datepicker">
<span class="input-group-text">
<i class="fa fa-th ">&nbsp;</i>
Expand All @@ -58,7 +58,7 @@
<!-- ko foreach: periodTargets -->
<td class="budget-cell">
<input class="form-control form-control-sm" type="number"
data-bind="value: target, disable: $root.isProjectDetailsLocked()"
data-bind="value: target, enable: $parents[1].areTargetsEditable"
data-validation-engine="validate[custom[number],min[0]]"/>
</td>
<!-- /ko -->
Expand All @@ -68,4 +68,4 @@
</table>
<!-- /ko -->
<!-- /ko -->
<button class="btn btn-sm btn-primary" data-bind="click: saveCustomFields">Save changes</button>
<button class="btn btn-sm btn-primary" data-bind="click: saveCustomFields, enable:areTargetsAndFundingEditable">Save changes</button>
2 changes: 2 additions & 0 deletions grails-app/views/organisation/index.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,14 @@
var availableReportCategories = <fc:modelAsJavascript model="${content.admin?.availableReportCategories}"/>;
var services = <fc:modelAsJavascript model="${content.admin?.services}"/>;
var targetPeriods = <fc:modelAsJavascript model="${content.admin?.targetPeriods}"/>;
var areTargetsAndFundingEditable = ${Boolean.valueOf(content.admin?.targetsEditable)};
var config = _.extend({
reportingConfigSelector:'#reporting-config form',
availableReportCategories:availableReportCategories,
targetPeriods: targetPeriods,
services: services,
organisationDetailsSelector: '#organisation-details',
areTargetsAndFundingEditable: areTargetsAndFundingEditable

}, fcConfig);

Expand Down

0 comments on commit 007d2f1

Please sign in to comment.