Ejemplo n.º 1
0
 /**
  * Returns the stripped down form on a workflow
  *
  * @param object com_meego_package_details object
  */
 public function get_stripped_forms_for_package($package = null)
 {
     $retval = array();
     $object = new com_meego_package($package->packageguid);
     $workflows = midgardmvc_helper_workflow_utils::get_workflows_for_object($object);
     if (is_array($workflows)) {
         $this->mvc->component->load_library('Workflow');
         foreach ($workflows as $name => $workflow_data) {
             $args = array('package' => $package->packagename, 'version' => $package->packageversion, 'project' => $package->repoprojectname, 'repository' => $package->reponame, 'arch' => $package->repoarch, 'workflow' => $name);
             $workflow_definition = new $workflow_data['provider']();
             $values = $workflow_definition->start($object);
             $workflow = $workflow_definition->get();
             if (isset($values['review_form'])) {
                 $form = new midgardmvc_ui_forms_form($values['review_form']);
                 $fields = midgardmvc_ui_forms_generator::list_fields($form);
                 foreach ($fields as $field) {
                     $retval[$name][$field->title]['widget'] = $field->widget;
                     $retval[$name][$field->title]['options'] = $field->options;
                 }
             } else {
                 if (isset($values['execution'])) {
                     $args['execution'] = $values['execution'];
                     $execution = new midgardmvc_helper_workflow_execution_interactive($workflow, $args['execution']);
                     $variables = $execution->getVariables();
                     if (isset($variables['review_form'])) {
                         $form = new midgardmvc_ui_forms_form($variables['review_form']);
                         $fields = midgardmvc_ui_forms_generator::list_fields($form);
                         foreach ($fields as $field) {
                             $retval[$name][$field->title]['widget'] = $field->widget;
                             $retval[$name][$field->title]['options'] = $field->options;
                         }
                     }
                 }
             }
         }
     }
     return $retval;
 }
Ejemplo n.º 2
0
 /**
  * @todo: docs
  */
 public function resume($execution_guid, array $args = null)
 {
     $workflow = $this->get();
     $execution = new midgardmvc_helper_workflow_execution_interactive($workflow, $execution_guid);
     $execution->resume($args);
     $values = array();
     if (!$execution->hasEnded()) {
         $values = $args;
         $values['execution'] = $execution->guid;
         return $values;
     }
     return $values;
 }