All Downloads are FREE. Search and download functionalities are using the official Maven repository.

plugin-webapp.acm-plugin.app.services.taskService.js Maven / Gradle / Ivy

Go to download

This plugin provides information about case definitions and case instances deployed into Camunda BPM. It seamless integrates into Cockpit in the same way, as the corresponding process definition/instance pages.

There is a newer version: 1.1
Show newest version
ngDefine('cockpit.plugin.acm-plugin.services', function(module) {

  module.factory('taskService', [ 'camundaService', 'utilService', function(camundaService, utilService) {
    'use strict';

    return {
      task : function(task) {
        return camundaService.taskForm(task.id).then(function(form) {
          task.form = form;
          task.createdDate = task.created.replace('T', ' ');
          if (task.caseDefinitionId) {
            // CMMN Human Task
            return camundaService.caseDefinition(task.caseDefinitionId).then(function(caseDefinition) {
              task.definedIn = caseDefinition.name;
              return camundaService.caseInstance(task.caseInstanceId).then(function(caseInstance) {
                task.businessKey = caseInstance.businessKey;
                return camundaService.caseVariables(task.caseInstanceId).then(function(variables) {
                  task.variables = utilService.variableArrayToObject(variables);
                  return task;
                });
              });
            });

          } else if (task.processDefinitionId) {
            // BPMN user task
            return camundaService.processDefinition(task.processDefinitionId).then(function(processDefinition) {
              task.definedIn = processDefinition.name;
              return camundaService.processInstance(task.processInstanceId).then(function(processInstance) {
                task.businessKey = processInstance.businessKey;
                return camundaService.processVariables(task.processInstanceId).then(function(variables) {
                  task.variables = utilService.variableArrayToObject(variables);
                  return task;
                });
              });
            });

          } else {
            // task created via task service
            return task;
          }
        });
      },

      /*
       * Update variables and complete task.
       */
      complete : function(task) {
        if (task.caseDefinitionId) {
          return camundaService.updateCaseVariables(task.caseInstanceId, task.variables).then(function() {
            return camundaService.completeTask(task.id);
          });
        } else if (task.processDefinitionId) {
          return camundaService.updateProcessVariables(task.processInstanceId, task.variables).then(function() {
            return camundaService.completeTask(task.id);
          });
        } else {
          console.log('Error completing a general task');
        }
      }

    };
  } ]);
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy