}
}
});
+ $routeProvider.when('/clone/:name', {
+ controller: 'afAdminGui',
+ template: '<af-gui-editor mode="clone" data="$ctrl.data"></af-gui-editor>',
+ resolve: {
+ // Load data for gui editor
+ data: function($route, crmApi4) {
+ return crmApi4('Afform', 'loadAdminData', {
+ definition: {name: $route.current.params.name}
+ }, 0);
+ }
+ }
+ });
});
})(angular, CRM.$, CRM._);
<td>{{afform.is_public ? ts('Frontend') : ts('Backend')}}</td>
<td>
<a ng-if="afform.type !== 'system'" href="#/edit/{{ afform.name }}" class="btn btn-xs btn-primary">{{ ts('Edit') }}</a>
+ <a ng-if="afform.type !== 'system'" href="#/clone/{{ afform.name }}" class="btn btn-xs btn-primary">{{ ts('Clone') }}</a>
<a href ng-if="afform.has_local" class="btn btn-xs btn-danger" crm-confirm="{type: afform.has_base ? 'revert' : 'delete', obj: afform}" on-yes="$ctrl.revert(afform)">
{{ afform.has_base ? ts('Revert') : ts('Delete') }}
</a>
if (!$scope.afform) {
alert('Error: unknown form');
}
+ if (editor.mode === 'clone') {
+ delete $scope.afform.name;
+ $scope.afform.title += ' ' + ts('(copy)');
+ }
$scope.canvasTab = 'layout';
$scope.layoutHtml = '';
editor.layout = {'#children': []};