You are here

function lti_tool_provider_outcomes_resource_manage_form in LTI Tool Provider 7

Form to manage outcomes.

Parameters

array $form: The form array.

array $form_state: The form state array.

Return value

array The form array.

1 string reference to 'lti_tool_provider_outcomes_resource_manage_form'
lti_tool_provider_outcomes_menu in lti_tool_provider_outcomes/lti_tool_provider_outcomes.module
Implements hook_menu().

File

lti_tool_provider_outcomes/lti_tool_provider_outcomes.admin.inc, line 19
Admin forms and menu page callbacks for LTI Tool Provider module.

Code

function lti_tool_provider_outcomes_resource_manage_form($form, &$form_state, $current = FALSE) {
  $form = array();
  if (isset($_SESSION['lti_tool_provider_context_info'])) {
    $consumer_id = $_SESSION['lti_tool_provider_context_info']['consumer_id'];
    $context_id = $_SESSION['lti_tool_provider_context_info']['context_id'];
    $resource_link_id = $_SESSION['lti_tool_provider_context_info']['resource_link_id'];
    $consumer = lti_tool_provider_consumer_load($consumer_id);
    if ($current) {
      $resource = lti_tool_provider_outcomes_get_resource($consumer_id, $context_id, $resource_link_id);
      if (isset($resource)) {
        $resources = array();
        $resources[] = $resource;
      }
      else {
        $resources = NULL;
      }
    }
    else {
      $resources = lti_tool_provider_outcomes_get_resources_for_context($consumer_id, $context_id);
    }
    $form['title'] = array(
      '#type' => 'item',
      '#markup' => t('Consumer: <b>@consumer</b>', array(
        '@consumer' => $consumer->lti_tool_provider_consumer_consumer,
      )),
    );
    $form['context'] = array(
      '#type' => 'item',
      '#markup' => t('Context: <b>@context</b>', array(
        '@context' => $context_id,
      )),
    );
    if (isset($resources)) {
      $form['records'] = array(
        '#type' => 'value',
        '#value' => $resources,
      );
      $form['table'] = array(
        '#prefix' => '<div id="replace-table">',
        '#suffix' => '</div>',
        '#tree' => TRUE,
        '#theme' => 'table',
        '#rows' => array(),
        '#header' => array(
          t('No'),
          t('Resource Title'),
          t('Score Datatype'),
          t('Date Created'),
          t('Operations'),
        ),
        '#empty' => t('No records found.'),
      );
      $rows = 0;
      foreach ($resources as $resource) {
        $entity = array(
          '#type' => 'value',
          '#value' => $resource,
        );
        $no = array(
          '#type' => 'item',
          '#markup' => $rows + 1,
        );
        $title = array(
          '#type' => 'item',
          '#markup' => check_plain($resource->lti_tool_provider_outcomes_resource_resource_link_title),
        );
        $datatype_arr = lti_tool_provider_outcomes_datatype_array($resource->lti_tool_provider_outcomes_resource_resultvalue_sourcedids);
        $def_value = isset($form_state['input']['table'][$rows]['container'][1]) ? $form_state['input']['table'][$rows]['container'][1] : array_search($resource->lti_tool_provider_outcomes_resource_score_datatype, $datatype_arr);
        $datatype_container = array();
        $datatype_container_start = array(
          '#prefix' => '<div id=' . $resource->lti_tool_provider_outcomes_resource_id . '"_datatype_container" class="container-inline">',
        );
        $datatype = array(
          '#type' => 'select',
          '#options' => $datatype_arr,
          '#default_value' => $def_value,
          '#ajax' => array(
            'callback' => 'lti_tool_provider_outcomes_resource_datatype_callback',
            'wrapper' => 'replace-table',
            'effect' => 'fade',
            'method' => 'replace',
          ),
        );
        if (strcasecmp($datatype_arr[$def_value], 'ratio') == 0) {
          $prefix = '<div id="' . $resource->lti_tool_provider_outcomes_resource_id . '_base_no_value" style="visibility:visible;">';
          $is_visible = TRUE;
          $base_no = $resource->lti_tool_provider_outcomes_resource_score_datatype_base_value;
        }
        else {
          $prefix = '<div id="' . $resource->lti_tool_provider_outcomes_resource_id . '_base_no_value" style="visibility:hidden;">';
          $is_visible = FALSE;
          $base_no = '0';
        }
        $baseno = array(
          '#prefix' => $prefix,
          '#type' => 'textfield',
          '#size' => 3,
          '#maxlength' => 3,
          '#required' => FALSE,
          '#suffix' => '</div>',
          '#is_visible' => $is_visible,
          '#default_value' => $base_no,
        );
        $datatype_container_end = array(
          '#prefix' => '</div>',
        );
        $datatype_container[] = $datatype_container_start;
        $datatype_container[] = $datatype;
        $datatype_container[] = $baseno;
        $datatype_container[] = $datatype_container_end;
        $date_created = array(
          '#type' => 'item',
          '#markup' => '<div style=" white-space:normal;">' . t(format_date($resource->lti_tool_provider_outcomes_resource_timestamp_created)) . "</div>",
        );
        $operations = array(
          '#type' => 'item',
          '#markup' => l(t('Outcomes'), 'lti-tool-provider-outcomes/outcomes/by-resource/' . $resource->lti_tool_provider_outcomes_resource_id) . '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp' . l(t('Delete'), 'lti-tool-provider-outcomes/resource/' . $resource->lti_tool_provider_outcomes_resource_id . '/confirm_delete') . '&nbsp&nbsp',
        );
        $rows++;
        $form['table'][] = array(
          'entity' => &$entity,
          'no' => $no,
          'title' => &$title,
          'container' => &$datatype_container,
          'date_created' => &$date_created,
          'operations' => &$operations,
        );
        $form['table']['#rows'][] = array(
          array(
            'data' => &$no,
          ),
          array(
            'data' => &$title,
          ),
          array(
            'data' => &$datatype_container,
            'width' => '160px',
          ),
          array(
            'data' => &$date_created,
          ),
          array(
            'data' => &$operations,
          ),
        );
        unset($no);
        unset($title);
        unset($datatype_container);
        unset($date_created);
        unset($operations);
        unset($entity);
      }
      $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Save'),
        '#submit' => array(
          'lti_tool_provider_outcomes_resource_manage_form_submit',
        ),
      );
    }
    else {
      $form['message'] = array(
        '#type' => 'item',
        '#markup' => t('<b> No records avaliable</b>'),
      );
    }
  }
  else {
    $form['message'] = array(
      '#type' => 'item',
      '#markup' => t('<b> This is not a valid LTI Session</b>'),
    );
  }
  return $form;
}