_mediamosa_app_list

Versions
mediamosa-21
_mediamosa_app_list()

Show a listing of apps.

Code

sites/all/modules/mediamosa/modules/app/mediamosa_app.module, line 199

<?php
function _mediamosa_app_list() {

  // Our header.
  $header = array(
    array('data' => t('App ID'), 'field' => 'a.' . mediamosa_app_db::APP_ID),
    array('data' => t('Name'), 'field' => 'a.' . mediamosa_app_db::APP_NAME),
    array('data' => t('Quota'), 'field' => 'a.' . mediamosa_app_db::QUOTA),
    t('Offline webservices'),
    array('data' => t('Owner'), 'field' => 'a.' . mediamosa_app_db::OWNER),
    array('data' => t('Status'), 'field' => 'a.' . mediamosa_app_db::ACTIVE),
    t('Contacts'),
    t('Operations')
  );

  // Get the app nodes.
  $result = mediamosa_db::db_select(mediamosa_app_db::TABLE_NAME, 'a')->extend('PagerDefault')->extend('TableSort')
    ->fields('a')
    ->limit(mediamosa_settings::maintenance_items_per_page())
    ->orderByHeader($header)
    ->execute();

  // Get all statuses of webservices per app.
  $a_webservice_statuses = mediamosa_webservice_app::webservice_get_all_status();

  // Get destination.
  $l_options = array('query' => drupal_get_destination());

  $apps = $rows = array();
  foreach ($result as $app) {
    $app_id = $app[mediamosa_app_db::APP_ID];

    $actions = array(
      l(t('Edit'), 'admin/mediamosa/config/app/'. $app[mediamosa_app_db::NID] . '/edit', $l_options),
      l(t('Delete'), 'admin/mediamosa/config/app/'. $app[mediamosa_app_db::NID] . '/delete', $l_options),
    );

    $a_offline_webservices = array();
    if (isset($a_webservice_statuses[$app_id])) {
      foreach ($a_webservice_statuses[$app_id] as $handle => $status) {
        if (!$status) {
          $a_offline_webservices[] = $handle;
        }
      }
    }

   $rows[] = array(
      $app[mediamosa_app_db::APP_ID],
      'title' => array('data' => l($app[mediamosa_app_db::APP_NAME], 'admin/mediamosa/config/app/'. $app[mediamosa_app_db::NID]), 'field' => $app[mediamosa_app_db::APP_NAME]),
      $app[mediamosa_app_db::QUOTA],
      implode(', ', $a_offline_webservices),
      $app[mediamosa_app_db::OWNER],
      $app[mediamosa_app_db::ACTIVE] == mediamosa_app_db::ACTIVE_TRUE ? t('Enabled') : t('<b>Disabled</b>'),
      l(t('Contacts'), 'admin/mediamosa/config/app/'. $app[mediamosa_app_db::APP_ID] . '/contacts'),
      implode(' | ', $actions),
    );
  }

  $form['pager_top'] = array('#theme' => 'pager');
  $form['table'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => t('You have no client applications. Click on the <em>Add</em> tab to create one.')
  );
  $form['pager_bottom'] = array('#theme' => 'pager');

  return $form;
}
?>