function initEventListeners()

in ui/src/app/experiment/experiment-detail/experiment-detail.directive.js [404:464]


    function initEventListeners() {
        var entityUpdate = $scope.$on('entity-updated', function(event, data) {
            if (isSaving) {
                return;
            }

            vm.loading.then(function() {
                var currentEntity = {
                    projectId: params.projectId,
                    notebookId: params.notebookId,
                    experimentId: params.experimentId,
                    version: vm.experiment.version,
                    type: 'Experiment',
                    title: entityTitle
                };
                var updatedEntity = data.entity;
                updatedEntity.version = data.version;

                entityHelper.onEntityUpdate(
                    currentEntity, updatedEntity, vm.isEntityChanged, refresh, restoreVersion
                );
            });
        });

        var entitySave = $scope.$on('ON_ENTITY_SAVE', function(event, data) {
            if (_.isEqual(data.tab.params, $stateParams)) {
                save().then(data.defer.resolve);
            }
        });

        var experimentWatch = $scope.$watch('vm.experiment', function(newEntity) {
            if (vm.isStatusOpen && vm.isEditAllowed) {
                var isDirty = autorecoveryHelper.isEntityDirty(originalExperiment, newEntity);
                toggleDirty(isDirty);
                updateRecovery(newEntity, isDirty);
            }
        }, true);

        var accessList = $scope.$on('access-list-changed', function() {
            vm.experiment.accessList = permissionService.getAccessList();
        });

        var batchRegistrationStatus = $scope.$on('batch-registration-status-changed', function(event, statuses) {
            var message = getRegistrationStatusMessage(statuses);
            if (message) {
                notifyService.info(message);
                vm.loading = getExperiment().then(function(experiment) {
                    return initExperiment(experiment, true).then(updateOriginal);
                });
            }
        });

        $scope.$on('$destroy', function() {
            entityUpdate();
            entitySave();
            experimentWatch();
            accessList();
            batchRegistrationStatus();
            experimentUtil.closeDialog();
        });
    }