diff --git a/hostmaster.make b/hostmaster.make index fd232de..ff590f2 100644 --- a/hostmaster.make +++ b/hostmaster.make @@ -7,6 +7,10 @@ projects[openidadmin][version] = "1.2" projects[install_profile_api][version] = "2.1" projects[jquery_ui][version] = "1.4" projects[modalframe][version] = "1.6" +projects[views][version] = "3.0" +projects[views_bulk_operations][version] = "1.13" +; Add support for row classes - http://drupal.org/node/1843166#comment-6743346 +projects[views_bulk_operations][patch][] = "http://drupal.org/files/views_row_classes-6.x-1.13-1843166-2.patch" ; These are contrib modules, but come under the Aegir 'umbrella' of control. projects[hosting_platform_pathauto][version] = "2.0-beta1" diff --git a/modules/hosting/client/hosting_client.module b/modules/hosting/client/hosting_client.module index 7fe1344..50d2f9e 100644 --- a/modules/hosting/client/hosting_client.module +++ b/modules/hosting/client/hosting_client.module @@ -491,14 +491,6 @@ function hosting_client_view($node, $teaser = FALSE, $page = FALSE) { $node->content['info']['#suffix'] = ''; if ($page) { - $node->content['sites_view'] = array( - '#type' => 'item', - '#value' => drupal_get_form('hosting_site_list_form', 'client', $node->nid), - '#prefix' => '
', - '#suffix' => '
', - '#weight' => 10 - ); - $users = hosting_client_users($node); foreach ($users as $uid => $uname) { if (user_access('access user profiles') || ($uid == $GLOBALS['user']->uid)) { diff --git a/modules/hosting/hosting.css b/modules/hosting/hosting.css index 8b23cc7..1b7b4e5 100644 --- a/modules/hosting/hosting.css +++ b/modules/hosting/hosting.css @@ -68,6 +68,18 @@ td.hosting-actions .hosting-button-disabled { } /** + * Hosting queue list. + */ + +.view-hosting-task-list .views-field-task-type { + text-transform: capitalize; +} + +.view-hosting-task-list .views-field-task-type a { + text-transform: none; +} + +/** * Status icons, colors. */ @@ -212,7 +224,7 @@ div.hosting-site-field-description { -webkit-border-radius: 3px; } -div#hosting-task-list, div#hosting-task-queue-block { position: relative } +div#hosting-task-list, div.view-hosting-task-list .view-content { position: relative } div.modalframe-page-wrapper { background: white } diff --git a/modules/hosting/hosting.info b/modules/hosting/hosting.info index 16a0a04..e5e6a10 100755 --- a/modules/hosting/hosting.info +++ b/modules/hosting/hosting.info @@ -2,6 +2,8 @@ name = Hosting description = Allow this Drupal site to deploy hosted sites. package = Hosting dependencies[] = modalframe +dependencies[] = views +dependencies[] = views_bulk_operations #dependencies[] = hosting_task #dependencies[] = hosting_client #dependencies[] = hosting_db_server diff --git a/modules/hosting/hosting.install b/modules/hosting/hosting.install index 6bf1171..fc9d2ae 100755 --- a/modules/hosting/hosting.install +++ b/modules/hosting/hosting.install @@ -398,3 +398,32 @@ function hosting_update_6015(&$sandbox) { return $ret; } + +/** + * Replace lists with Views. + */ +function hosting_update_6016() { + $ret = array(); + + // Enable and install Views and Views Bulk operations. + module_enable(array('views', 'views_bulk_operations')); + views_install(); + + // Flush all Drupal caches. + drupal_flush_all_caches(); + + // Enable Install Profile API module and load includes. + module_enable(array('install_profile_api')); + drupal_load('module', 'install_profile_api'); + install_include(array('block')); + + // Enable blocks. + $theme = 'eldir'; + install_set_block('views', 'hosting_task_list-block' , $theme, 'right', 0); + install_set_block('views', '-exp-hosting_site_list-page_1' , $theme, 'content_top', 0, 1, 'hosting/sites'); + install_set_block('views', 'hosting_site_list-block_1' , $theme, 'content_bottom', 0, 1, 'hosting/c/platform_*'); + install_set_block('views', 'hosting_site_list-block_2' , $theme, 'content_bottom', 0, 2, "package_type == 'profile';\n}\n?>"); + install_set_block('views', 'hosting_site_list-block_3' , $theme, 'content_bottom', 0, 2, "type == 'client';\n}\n?>"); + + return $ret; +} diff --git a/modules/hosting/hosting.module b/modules/hosting/hosting.module index 73e9b8c..38c9a4e 100755 --- a/modules/hosting/hosting.module +++ b/modules/hosting/hosting.module @@ -342,16 +342,11 @@ function hosting_block($op = 'list', $delta = 0, $edit = array()) { case 'list' : $blocks['hosting_summary'] = array('info' => t('Hosting summary'), 'enabled' => 1, 'region' => 'left', 'weight' => 10); - $blocks['hosting_queues'] = array('info' => t('Hosting queues'), - 'enabled' => 1, 'region' => 'right', 'weight' => 0); $blocks['hosting_queues_summary'] = array('info' => t('Hosting queues summary'), 'enabled' => 1, 'region' => 'right', 'weight' => 1, 'cache' => BLOCK_NO_CACHE); return $blocks; case 'view' : switch ($delta) { - case 'hosting_queues': - return array('title' => t('Queues'), - 'content' => hosting_queue_block()); case 'hosting_queues_summary': return array('title' => t('Queues summary'), 'content' => hosting_queue_summary_block()); @@ -390,25 +385,6 @@ function hosting_queue_summary_block() { } /** - * Build a block of the hosting queues. - * - * @see hosting_TASK_SINGULAR_summary() - */ -function hosting_queue_block() { - if (user_access('access task logs')) { - $queues = hosting_get_queues(); - $output = ''; - foreach ($queues as $queue => $info) { - $func = 'hosting_'.$info['singular'].'_summary'; - if (function_exists($func)) { - $output .= $func(); - } - } - return $output; - } -} - -/** * Check site URL is allowed. * * This function hooks into hook_allow_domain to let contrib modules diff --git a/modules/hosting/package/hosting_package.module b/modules/hosting/package/hosting_package.module index 82f2508..ec3d370 100644 --- a/modules/hosting/package/hosting_package.module +++ b/modules/hosting/package/hosting_package.module @@ -32,45 +32,6 @@ function hosting_package_node_info() { return $types; } -/** - * Implementation of hook_menu(). - */ -function hosting_package_menu() { - $items = array(); - - $items['node/%hosting_package_node/packages'] = array( - 'title' => 'Packages', - 'description' => 'List of packages available for this platform', - 'page callback' => 'hosting_package_list', - 'page arguments' => array(1), - 'type' => MENU_LOCAL_TASK, - 'access arguments' => array('view package'), - 'weight' => 1, - ); - $items['node/%hosting_package_node/packages/all'] = array( - 'title' => 'All packages', - 'description' => 'List of all packages', - 'page callback' => 'hosting_package_list', - 'page arguments' => array(1), - 'access arguments' => array('view package'), - 'type' => MENU_DEFAULT_LOCAL_TASK, - 'weight' => -1, - ); - $x = 0; - foreach (_hosting_package_types() as $type => $description) { - $items['node/%hosting_package_node/packages/' . $type] = array( - 'title' => $description, - 'description' => $description, - 'page callback' => 'hosting_package_list', - 'page arguments' => array(1, $type), - 'access arguments' => array('view package'), - 'type' => MENU_LOCAL_TASK, - 'weight' => $x++, - ); - } - return $items; -} - function hosting_package_node_load($arg) { if (!is_numeric($arg)) { return FALSE; @@ -319,17 +280,7 @@ function hosting_package_view($node, $teaser = FALSE, $page = FALSE) { } $node->content['info']['#suffix'] = ''; - if ($node->package_type == 'profile') { - $node->content['sites_view'] = array( - '#type' => 'item', - '#value' => drupal_get_form('hosting_site_list_form', 'profile', $node->nid), - '#prefix' => '
', - '#suffix' => '
', - '#weight' => 10 - ); - } - else { // For modules & themes - + if (!$node->package_type == 'profile') { $node->content['hosting-package-usage'] = array( '#prefix' => '
', '#suffix' => '
', @@ -461,55 +412,11 @@ function hosting_package_sync(&$data) { } /** - * Display a list of packages associated to a node - * @TODO Add ability to filter by additional fields - * @TODO Add paging. - */ -function hosting_package_list($ref, $type = null) { - drupal_set_title(t('Packages on @reference', array('@reference' => $ref->title))); - $header = array( - array('data' => t('Status'), 'field' => 'status', 'sort' => 'DESC'), - array('data' => t('Package'), 'field' => 'short_name'), - array('data' => t('Release'), 'field' => 'version'), - array('data' => t('Package type'), 'field' => 'package_type'), - ); - $args[] = $ref->nid; - - if (!is_null($type)) { - $cond = " AND h.package_type = '%s'"; - $args[] = $type; - } - - $sql = "SELECT h.nid as 'package', i.status, h.short_name, i.version, h.package_type, i.status FROM {hosting_package} h - LEFT JOIN {hosting_package_instance} i ON i.package_id=h.nid WHERE i.rid=%d" . $cond; - $sql .= tablesort_sql($header); - // @TODO hide deleted sites - $result = pager_query(db_rewrite_sql($sql, 'h'), 25, 2, null, $args); - $view_package_perm = user_access('view package'); - - if (!$result) { - return t('No packages are associated with @reference', array('@reference' => $ref->title)); - } - $rows = array(); - while ($package = db_fetch_object($result)) { - $row_class = ($package->status == 1) ? 'hosting-success' : 'hosting-info'; - $row = array(); - $row[] = array('data' => ($package->status) ? t('Enabled') : t('Available') , 'class'=> 'hosting-status'); - $row[] = ($view_package_perm) ? l(filter_xss($package->short_name), 'node/' . $package->package) : $package->short_name; - $row[] = $package->version; - $row[] = filter_xss($package->package_type); - $rows[] = array('data' => $row, 'class' => $row_class); - } - - return theme('table', $header, $rows, array('class' => 'hosting-table')) . theme('pager', null, 25, 2); -} - -/** * Implementation of hook_views_api(). */ function hosting_package_views_api() { return array( - 'api' => 2, + 'api' => 3, 'path' => drupal_get_path('module', 'hosting_package'), ); } diff --git a/modules/hosting/package/hosting_package.views.inc b/modules/hosting/package/hosting_package.views.inc index 89772cf..446b93e 100644 --- a/modules/hosting/package/hosting_package.views.inc +++ b/modules/hosting/package/hosting_package.views.inc @@ -11,10 +11,11 @@ function hosting_package_views_handlers() { return array( 'info' => array( 'path' => drupal_get_path('module', 'hosting_package'), - ), + ), 'handlers' => array( - 'hosting_package_handler_filter_hosting_package_type' => array( - 'parent' => 'views_handler_filter_in_operator', + // field handlers + 'views_handler_field_hosting_package_status' => array( + 'parent' => 'views_handler_field_hosting_site_status', ), ), ); @@ -24,46 +25,193 @@ function hosting_package_views_handlers() { * Implementation of hook_views_data(). */ function hosting_package_views_data() { - $data['hosting_package'] = array( - 'table' => array( - 'group' => 'Hosting Package', - 'title' => 'Package', - 'join' => array( - 'node' => array( - 'left_field' => 'vid', - 'field' => 'vid', - ), + // Hosting package. + $data['hosting_package']['table'] = array( + 'group' => 'Hosting Package', + 'title' => 'Package', + 'join' => array( + 'node' => array( + 'left_field' => 'vid', + 'field' => 'vid', ), ), - 'package_type' => array( - 'title' => t('Type'), - 'help' => t('The type of the package (e.g. module, theme, profile).'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), - 'filter' => array( - 'handler' => 'hosting_package_handler_filter_hosting_package_type', - ), + ); + + $data['hosting_package']['package_type'] = array( + 'title' => t('Type'), + 'help' => t('The package type.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_in_operator', + 'options callback' => '_hosting_package_types', ), - 'short_name' => array( - 'title' => t('Name'), - 'help' => t('The name used .'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), - 'sort' => array( - 'handler' => 'views_handler_sort', - ), + 'sort' => array( + 'handler' => 'views_handler_sort', ), - 'description' => array( - 'title' => t('Description'), - 'help' => t('The description information for this package.'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), + 'argument' => array( + 'handler' => 'views_handler_argument_string', + ), + ); + + + // Hosting package instance. + $data['hosting_package_instance']['table']['group'] = t('Hosting Package Instance'); + + $data['hosting_package_instance']['table']['base'] = array( + 'field' => 'filename', + 'title' => t('Hosting package instances'), + 'help' => t('Hosting package instances'), + ); + + $data['hosting_package_instance']['iid'] = array( + 'title' => t('Instance ID'), + 'help' => t('The package instance ID.'), + 'field' => array( + 'handler' => 'views_handler_field_numeric', + 'click sortable' => TRUE, + ), + 'argument' => array( + 'handler' => 'views_handler_argument_numeric', + 'numeric' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + $data['hosting_package_instance']['rid'] = array( + 'title' => t('Reference ID'), + 'help' => t('The package instance reference ID.'), + 'field' => array( + 'handler' => 'views_handler_field_node', + 'click sortable' => TRUE, + ), + 'relationship' => array( + 'handler' => 'views_handler_relationship', + 'base' => 'node', + 'base field' => 'nid', + 'label' => t('site'), + ), + 'argument' => array( + 'handler' => 'views_handler_argument_node_nid', + ), + ); + + $data['hosting_package_instance']['package_id'] = array( + 'title' => t('Package ID'), + 'help' => t('The package ID.'), + 'field' => array( + 'handler' => 'views_handler_field_node', + 'click sortable' => TRUE, + ), + 'relationship' => array( + 'handler' => 'views_handler_relationship', + 'base' => 'node', + 'base field' => 'nid', + 'label' => t('package'), + ), + 'argument' => array( + 'handler' => 'views_handler_argument_node_nid', + ), + ); + + $data['hosting_package_instance']['filename'] = array( + 'title' => t('File'), + 'help' => t('The package instance file.'), + 'field' => array( + 'handler' => 'views_handler_field_file', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_string', + ), + 'argument' => array( + 'handler' => 'views_handler_argument_string', + ), + ); + + $data['hosting_package_instance']['schema_version'] = array( + 'title' => t('Schema version'), + 'help' => t('The package instance schema version.'), + 'field' => array( + 'handler' => 'views_handler_field_numeric', + 'click sortable' => TRUE, + ), + 'argument' => array( + 'handler' => 'views_handler_argument_numeric', + 'numeric' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + $data['hosting_package_instance']['version'] = array( + 'title' => t('Version'), + 'help' => t('The package instance version.'), + 'field' => array( + 'handler' => 'views_handler_field_numeric', + 'click sortable' => TRUE, + ), + 'argument' => array( + 'handler' => 'views_handler_argument_numeric', + 'numeric' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + $data['hosting_package_instance']['version_code'] = array( + 'title' => t('Version code'), + 'help' => t('The package instance version code.'), + 'field' => array( + 'handler' => 'views_handler_field_numeric', + 'click sortable' => TRUE, + ), + 'argument' => array( + 'handler' => 'views_handler_argument_numeric', + 'numeric' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + + $data['hosting_package_instance']['status'] = array( + 'title' => t('Status'), + 'help' => t('The status of the pckage instance.'), + 'field' => array( + 'handler' => 'views_handler_field_hosting_package_status', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_boolean_operator', + 'label' => t('Status'), + 'type' => 'on-off', + // use boolean_field = 1 instead of boolean_field <> 0 in WHERE statment + 'use equal' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', ), ); diff --git a/modules/hosting/package/hosting_platform.views_default.inc b/modules/hosting/package/hosting_platform.views_default.inc new file mode 100644 index 0000000..9078251 --- /dev/null +++ b/modules/hosting/package/hosting_platform.views_default.inc @@ -0,0 +1,249 @@ +name = 'hosting_package_list'; + $view->description = 'Display a list of packages for a hosted site'; + $view->tag = ''; + $view->base_table = 'hosting_package_instance'; + $view->human_name = ''; + $view->core = 6; + $view->api_version = '3.0'; + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + + /* Display: Defaults */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->display->display_options['use_ajax'] = TRUE; + $handler->display->display_options['access']['type'] = 'none'; + $handler->display->display_options['cache']['type'] = 'none'; + $handler->display->display_options['query']['type'] = 'views_query'; + $handler->display->display_options['exposed_form']['type'] = 'basic'; + $handler->display->display_options['pager']['type'] = 'full'; + $handler->display->display_options['pager']['options']['items_per_page'] = '25'; + $handler->display->display_options['pager']['options']['offset'] = '0'; + $handler->display->display_options['pager']['options']['id'] = '0'; + $handler->display->display_options['pager']['options']['expose']['items_per_page_options_all'] = 0; + $handler->display->display_options['style_plugin'] = 'table'; + $handler->display->display_options['style_options']['row_class'] = '[status]'; + $handler->display->display_options['style_options']['columns'] = array( + 'status' => 'status', + 'status_1' => 'status_1', + 'title' => 'title', + 'version' => 'version', + 'package_type' => 'package_type', + ); + $handler->display->display_options['style_options']['default'] = 'status_1'; + $handler->display->display_options['style_options']['info'] = array( + 'status' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'status_1' => array( + 'sortable' => 1, + 'default_sort_order' => 'desc', + 'align' => '', + 'separator' => '', + ), + 'title' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'version' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'package_type' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + ); + $handler->display->display_options['style_options']['override'] = 1; + $handler->display->display_options['style_options']['sticky'] = 0; + $handler->display->display_options['style_options']['empty_table'] = 0; + /* Relationship: Hosting Package Instance: Package ID */ + $handler->display->display_options['relationships']['package_id']['id'] = 'package_id'; + $handler->display->display_options['relationships']['package_id']['table'] = 'hosting_package_instance'; + $handler->display->display_options['relationships']['package_id']['field'] = 'package_id'; + $handler->display->display_options['relationships']['package_id']['required'] = 0; + /* Field: Class */ + $handler->display->display_options['fields']['status']['id'] = 'status'; + $handler->display->display_options['fields']['status']['table'] = 'hosting_package_instance'; + $handler->display->display_options['fields']['status']['field'] = 'status'; + $handler->display->display_options['fields']['status']['ui_name'] = 'Class'; + $handler->display->display_options['fields']['status']['exclude'] = TRUE; + $handler->display->display_options['fields']['status']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['status']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['status']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['status']['alter']['external'] = 0; + $handler->display->display_options['fields']['status']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['status']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['status']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['status']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['status']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['status']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['status']['alter']['trim'] = 0; + $handler->display->display_options['fields']['status']['alter']['html'] = 0; + $handler->display->display_options['fields']['status']['element_label_colon'] = 1; + $handler->display->display_options['fields']['status']['element_default_classes'] = 1; + $handler->display->display_options['fields']['status']['hide_empty'] = 0; + $handler->display->display_options['fields']['status']['empty_zero'] = 0; + $handler->display->display_options['fields']['status']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['status']['status_mode'] = 'class'; + /* Field: Hosting Package Instance: Status */ + $handler->display->display_options['fields']['status_1']['id'] = 'status_1'; + $handler->display->display_options['fields']['status_1']['table'] = 'hosting_package_instance'; + $handler->display->display_options['fields']['status_1']['field'] = 'status'; + $handler->display->display_options['fields']['status_1']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['external'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['trim'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['html'] = 0; + $handler->display->display_options['fields']['status_1']['element_class'] = 'hosting-status'; + $handler->display->display_options['fields']['status_1']['element_label_colon'] = 1; + $handler->display->display_options['fields']['status_1']['element_default_classes'] = 1; + $handler->display->display_options['fields']['status_1']['hide_empty'] = 0; + $handler->display->display_options['fields']['status_1']['empty_zero'] = 0; + $handler->display->display_options['fields']['status_1']['hide_alter_empty'] = 1; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title']['id'] = 'title'; + $handler->display->display_options['fields']['title']['table'] = 'node'; + $handler->display->display_options['fields']['title']['field'] = 'title'; + $handler->display->display_options['fields']['title']['relationship'] = 'package_id'; + $handler->display->display_options['fields']['title']['label'] = 'Package'; + $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title']['alter']['external'] = 0; + $handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['title']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title']['alter']['html'] = 0; + $handler->display->display_options['fields']['title']['element_label_colon'] = 1; + $handler->display->display_options['fields']['title']['element_default_classes'] = 1; + $handler->display->display_options['fields']['title']['hide_empty'] = 0; + $handler->display->display_options['fields']['title']['empty_zero'] = 0; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title']['link_to_node'] = 1; + /* Field: Hosting Package Instance: Version */ + $handler->display->display_options['fields']['version']['id'] = 'version'; + $handler->display->display_options['fields']['version']['table'] = 'hosting_package_instance'; + $handler->display->display_options['fields']['version']['field'] = 'version'; + $handler->display->display_options['fields']['version']['label'] = 'Release'; + $handler->display->display_options['fields']['version']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['version']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['version']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['version']['alter']['external'] = 0; + $handler->display->display_options['fields']['version']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['version']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['version']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['version']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['version']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['version']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['version']['alter']['trim'] = 0; + $handler->display->display_options['fields']['version']['alter']['html'] = 0; + $handler->display->display_options['fields']['version']['element_label_colon'] = 1; + $handler->display->display_options['fields']['version']['element_default_classes'] = 1; + $handler->display->display_options['fields']['version']['hide_empty'] = 0; + $handler->display->display_options['fields']['version']['empty_zero'] = 0; + $handler->display->display_options['fields']['version']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['version']['format_plural'] = 0; + /* Field: Hosting Package: Type */ + $handler->display->display_options['fields']['package_type']['id'] = 'package_type'; + $handler->display->display_options['fields']['package_type']['table'] = 'hosting_package'; + $handler->display->display_options['fields']['package_type']['field'] = 'package_type'; + $handler->display->display_options['fields']['package_type']['relationship'] = 'package_id'; + $handler->display->display_options['fields']['package_type']['label'] = 'Package type'; + $handler->display->display_options['fields']['package_type']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['external'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['package_type']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['package_type']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['trim'] = 0; + $handler->display->display_options['fields']['package_type']['alter']['html'] = 0; + $handler->display->display_options['fields']['package_type']['element_label_colon'] = 1; + $handler->display->display_options['fields']['package_type']['element_default_classes'] = 1; + $handler->display->display_options['fields']['package_type']['hide_empty'] = 0; + $handler->display->display_options['fields']['package_type']['empty_zero'] = 0; + $handler->display->display_options['fields']['package_type']['hide_alter_empty'] = 1; + /* Sort criterion: Hosting Package Instance: Status */ + $handler->display->display_options['sorts']['status']['id'] = 'status'; + $handler->display->display_options['sorts']['status']['table'] = 'hosting_package_instance'; + $handler->display->display_options['sorts']['status']['field'] = 'status'; + $handler->display->display_options['sorts']['status']['order'] = 'DESC'; + /* Sort criterion: Node: Title */ + $handler->display->display_options['sorts']['title']['id'] = 'title'; + $handler->display->display_options['sorts']['title']['table'] = 'node'; + $handler->display->display_options['sorts']['title']['field'] = 'title'; + $handler->display->display_options['sorts']['title']['relationship'] = 'package_id'; + /* Argument: Hosting Package Instance: Reference ID */ + $handler->display->display_options['arguments']['rid']['id'] = 'rid'; + $handler->display->display_options['arguments']['rid']['table'] = 'hosting_package_instance'; + $handler->display->display_options['arguments']['rid']['field'] = 'rid'; + $handler->display->display_options['arguments']['rid']['default_action'] = 'default'; + $handler->display->display_options['arguments']['rid']['style_plugin'] = 'default_summary'; + $handler->display->display_options['arguments']['rid']['title'] = 'Packages on %1'; + $handler->display->display_options['arguments']['rid']['default_argument_type'] = 'node'; + $handler->display->display_options['arguments']['rid']['default_argument_skip_url'] = 0; + $handler->display->display_options['arguments']['rid']['validate_type'] = 'node'; + $handler->display->display_options['arguments']['rid']['validate_options']['types'] = array( + 'site' => 'site', + ); + $handler->display->display_options['arguments']['rid']['validate_options']['access'] = 0; + $handler->display->display_options['arguments']['rid']['break_phrase'] = 0; + $handler->display->display_options['arguments']['rid']['not'] = 0; + /* Filter: Hosting Package: Type */ + $handler->display->display_options['filters']['package_type']['id'] = 'package_type'; + $handler->display->display_options['filters']['package_type']['table'] = 'hosting_package'; + $handler->display->display_options['filters']['package_type']['field'] = 'package_type'; + $handler->display->display_options['filters']['package_type']['relationship'] = 'package_id'; + $handler->display->display_options['filters']['package_type']['exposed'] = TRUE; + $handler->display->display_options['filters']['package_type']['expose']['operator'] = 'package_type_op'; + $handler->display->display_options['filters']['package_type']['expose']['limit_operators'] = array(); + $handler->display->display_options['filters']['package_type']['expose']['label'] = 'Type'; + $handler->display->display_options['filters']['package_type']['expose']['identifier'] = 'package_type'; + $handler->display->display_options['filters']['package_type']['expose']['reduce'] = 0; + + /* Display: Page */ + $handler = $view->new_display('page', 'Page', 'page_1'); + $handler->display->display_options['path'] = 'node/%/packages'; + $handler->display->display_options['menu']['type'] = 'tab'; + $handler->display->display_options['menu']['title'] = 'Packages'; + $handler->display->display_options['menu']['weight'] = '1'; + + $views[$view->name] = $view; + + return $views; +} diff --git a/modules/hosting/package/views_handler_field_hosting_package_status.inc b/modules/hosting/package/views_handler_field_hosting_package_status.inc new file mode 100644 index 0000000..d5fe7d4 --- /dev/null +++ b/modules/hosting/package/views_handler_field_hosting_package_status.inc @@ -0,0 +1,33 @@ +{$this->field_alias}; + $output = $value ? t('Enabled') : t('Disabled'); + + switch ($this->options['status_mode']) { + case 'image': + return ""; + + case 'text_image': + return "{$output}"; + + case 'class': + return $value ? 'hosting-success' : 'hosting-info'; + } + return $output; + } +} diff --git a/modules/hosting/platform/hosting_platform.module b/modules/hosting/platform/hosting_platform.module index f588ee0..c64907d 100644 --- a/modules/hosting/platform/hosting_platform.module +++ b/modules/hosting/platform/hosting_platform.module @@ -448,7 +448,7 @@ function hosting_platform_view($node, $teaser = FALSE, $page = FALSE) { $node->content['info']['status'] = array( '#type' => 'item', '#title' => t('Status'), - '#value' => _hosting_platform_status($node), + '#value' => _hosting_platform_status($node->platform_status), ); if ($node->makefile) { @@ -468,33 +468,23 @@ function hosting_platform_view($node, $teaser = FALSE, $page = FALSE) { '#weight' => -6 ); } - - if ($page) { - $node->content['sites_view'] = array( + + // Task list + if ($page && $node->nid) { + $node->content['tasks_view'] = array( '#type' => 'item', - '#value' => drupal_get_form('hosting_site_list_form', 'platform', $node->nid), - '#prefix' => '
', + '#value' => hosting_task_table($node), + '#prefix' => '
', '#suffix' => '
', - '#weight' => 10 + '#weight' => 10, + ); + $settings['hostingTaskRefresh'] = array( + 'nid' => $node->nid, + 'changed' => $node->changed, ); + drupal_add_js($settings, 'setting'); - // Task list - if ($node->nid) { - $node->content['tasks_view'] = array( - '#type' => 'item', - '#value' => hosting_task_table($node), - '#prefix' => '
', - '#suffix' => '
', - '#weight' => 10, - ); - $settings['hostingTaskRefresh'] = array( - 'nid' => $node->nid, - 'changed' => $node->changed, - ); - drupal_add_js($settings, 'setting'); - - drupal_add_js(drupal_get_path('module','hosting_task') . '/hosting_task.js'); - } + drupal_add_js(drupal_get_path('module','hosting_task') . '/hosting_task.js'); } return $node; } @@ -506,14 +496,14 @@ function hosting_platform_hosting_site_site_list_filters() { return array('platform'); } -function _hosting_platform_status($node) { +function _hosting_platform_status($status) { static $labels = array( HOSTING_PLATFORM_QUEUED => "Queued", HOSTING_PLATFORM_ENABLED => "Enabled", HOSTING_PLATFORM_DELETED => "Deleted", HOSTING_PLATFORM_LOCKED => "Locked", ); - return $labels[$node->platform_status]; + return is_object($status) ? $labels[$status->platform_status] : $labels[$status]; } /** @@ -546,15 +536,14 @@ function hosting_platform_views_api() { /** * Define the classes that correspond to the platform status. */ -function _hosting_platform_list_class($node) { +function _hosting_platform_list_class($status) { static $labels = array( HOSTING_PLATFORM_QUEUED => "hosting-queue", HOSTING_PLATFORM_ENABLED => "hosting-success", HOSTING_PLATFORM_DELETED => "hosting-error", HOSTING_PLATFORM_LOCKED => "hosting-warning", ); - - return $labels[$node->platform_status]; + return is_object($status) ? $labels[$status->platform_status] : $labels[$status]; } /** @@ -578,7 +567,7 @@ function hosting_platform_listing() { $row[] = hosting_format_interval($node->verified); $total += $count = hosting_site_count($nid, array(HOSTING_SITE_ENABLED, HOSTING_SITE_DISABLED, HOSTING_SITE_QUEUED)); $row[] = $count; - $rows[] = array('data' => $row, 'class' => _hosting_platform_list_class($node)); + $rows[] = array('data' => $row, 'class' => _hosting_platform_list_class($node->platform_status)); } $row = array(); $row[] = array('data' => t('Total sites hosted'), 'colspan' => 4); diff --git a/modules/hosting/platform/hosting_platform.views.inc b/modules/hosting/platform/hosting_platform.views.inc index b753b61..823ebd9 100644 --- a/modules/hosting/platform/hosting_platform.views.inc +++ b/modules/hosting/platform/hosting_platform.views.inc @@ -13,86 +13,92 @@ function hosting_platform_views_handlers() { 'path' => drupal_get_path('module', 'hosting_platform'), ), 'handlers' => array( - 'hosting_platform_handler_filter_hosting_platform_type' => array( - 'parent' => 'views_handler_filter_in_operator', + // field handlers + 'views_handler_field_hosting_platform_status' => array( + 'parent' => 'views_handler_field_hosting_site_status', + ), + // field handlers + 'views_handler_field_hosting_platform_sites' => array( + 'parent' => 'views_handler_field', ), ), ); } -/** +/** * Implements hook_views_data(). */ function hosting_platform_views_data() { - $data['hosting_platform'] = array( - 'table' => array( - 'group' => 'Hosting Platform', - 'title' => 'Platform', - 'join' => array( - 'node' => array( - 'left_field' => 'vid', - 'field' => 'vid', - ), + $data['hosting_platform']['table'] = array( + 'group' => 'Hosting Platform', + 'title' => 'Platform', + 'join' => array( + 'node' => array( + 'left_field' => 'vid', + 'field' => 'vid', ), - ) + ), ); - $data['hosting_platform']['web_server'] = array( - 'title' => t('Web Server'), - 'help' => t('Relate a platform to the web server it is hosted on.'), - 'relationship' => array( + $data['hosting_platform']['web_server'] = array( + 'title' => t('Web Server'), + 'help' => t('Relate a platform to the web server it is hosted on.'), + 'relationship' => array( 'handler' => 'views_handler_relationship', 'base' => 'node', - 'field' => 'nid', + 'field' => 'web_server', 'label' => t('web server'), ), ); - $data['hosting_platform']['publish_path'] = array( - 'title' => t('Publish Path'), - 'help' => t('The path on the server where this platform is installed.'), - 'field' => array( - 'handler' => 'views_handler_field_xss', - 'click sortable' => TRUE, - ), - ); -/* + $data['hosting_platform']['publish_path'] = array( + 'title' => t('Publish Path'), + 'help' => t('The path on the server where this platform is installed.'), + 'field' => array( + 'handler' => 'views_handler_field_xss', + 'click sortable' => TRUE, + ), + ); - 'web_server' => array( - 'title' => t('Web Server'), - 'help' => t('The webserver this platform is installed on.'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), + // $data['hosting_platform']['release_id'] = array( + // 'title' => t('Release ID'), + // 'help' => t('The release ID.'), + // 'field' => array( + // 'handler' => 'views_handler_field', + // 'click sortable' => TRUE, + // ), + // ); + + $data['hosting_platform']['verified'] = array( + 'title' => t('Verified Date'), + 'help' => t('The most recent date that this platform was verified.'), + 'field' => array( + 'handler' => 'views_handler_field_date', + 'click sortable' => TRUE, ), - 'release_id' => array( - 'title' => t('Release ID'), - 'help' => t('The release ID.'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), + ); + + $data['hosting_platform']['status'] = array( + 'title' => t('Status'), + 'help' => t('The current state of this platform.'), + 'field' => array( + 'handler' => 'views_handler_field_hosting_platform_status', + 'click sortable' => TRUE, ), - 'verified' => array( - 'title' => t('Verfied Date'), - 'help' => t('The description information for this platform.'), - 'field' => array( - 'handler' => 'views_handler_field_date', - 'click sortable' => TRUE, - ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', ), - 'status' => array( - 'title' => t('Status'), - 'help' => t('The descri.'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), + ); + + $data['hosting_platform']['sites'] = array( + 'title' => t('Sites'), + 'help' => t('The number of sites in this platform.'), + 'field' => array( + 'handler' => 'views_handler_field_hosting_platform_sites', + 'field' => 'nid', + // 'click sortable' => TRUE, ), ); - */ + return $data; } - - diff --git a/modules/hosting/platform/hosting_platform.views_default.inc b/modules/hosting/platform/hosting_platform.views_default.inc new file mode 100644 index 0000000..476657b --- /dev/null +++ b/modules/hosting/platform/hosting_platform.views_default.inc @@ -0,0 +1,407 @@ +name = 'hosting_platform_list'; + $view->description = 'Display a list of platforms in aegir'; + $view->tag = 'hosting_platform'; + $view->base_table = 'node'; + $view->human_name = ''; + $view->core = 6; + $view->api_version = '3.0'; + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + + /* Display: Defaults */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->display->display_options['title'] = 'Platforms'; + $handler->display->display_options['use_ajax'] = TRUE; + $handler->display->display_options['access']['type'] = 'none'; + $handler->display->display_options['cache']['type'] = 'none'; + $handler->display->display_options['query']['type'] = 'views_query'; + $handler->display->display_options['exposed_form']['type'] = 'basic'; + $handler->display->display_options['pager']['type'] = 'none'; + $handler->display->display_options['pager']['options']['offset'] = '0'; + $handler->display->display_options['style_plugin'] = 'bulk'; + $handler->display->display_options['style_options']['row_class'] = '[status]'; + $handler->display->display_options['style_options']['columns'] = array( + 'status' => 'status', + 'status_1' => 'status_1', + 'title' => 'title', + 'title_1' => 'title_1', + 'verified' => 'verified', + 'sites' => 'sites', + ); + $handler->display->display_options['style_options']['default'] = 'title'; + $handler->display->display_options['style_options']['info'] = array( + 'status' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'status_1' => array( + 'sortable' => 1, + 'default_sort_order' => 'desc', + 'align' => '', + 'separator' => '', + ), + 'title' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'title_1' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'verified' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'sites' => array( + 'align' => '', + 'separator' => '', + ), + ); + $handler->display->display_options['style_options']['override'] = 1; + $handler->display->display_options['style_options']['sticky'] = 0; + $handler->display->display_options['style_options']['empty_table'] = 0; + $handler->display->display_options['style_options']['operations'] = array( + 'node_assign_owner_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-d5753f4149333e6bb163b78489af62a7' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-cbcdb2f1b1694e48f1d2a1956d5b34aa' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_delete_node_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-a27b9efabcd054685a549378b174ad11' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-2e697b94e1c2d6cfa04148e13bbf09ab' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'system_message_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-2b33c2655429ff68933d62ef1c2c5dbf' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_ruleset_action_rules_set_1' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_script_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_make_sticky_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_make_unsticky_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-c4d3b28efb86fd703619a50b74d43794' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_argument_selector_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_promote_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-14de7d028b4bffdf2b4a266562ca18ac' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-9c585624b9b3af0b4687d5f97f35e047' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_publish_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'system_goto_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_unpromote_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-8ce21b08bb8e773d10018b484fe4815e' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-62832bfa32dda6f49c47986802958a8d' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_save_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'system_send_email_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-0ccad85c1ebe4c9ceada1aa64293b080' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_unpublish_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_unpublish_by_keyword_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-1ba8dfdca72110c3d78b76f9b18bf909' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + ); + $handler->display->display_options['style_options']['execution_type'] = '1'; + $handler->display->display_options['style_options']['display_type'] = '0'; + $handler->display->display_options['style_options']['display_result'] = 1; + $handler->display->display_options['style_options']['merge_single_action'] = 1; + $handler->display->display_options['style_options']['hide_selector'] = 0; + $handler->display->display_options['style_options']['preserve_selection'] = 1; + /* Relationship: Hosting Platform: Web Server */ + $handler->display->display_options['relationships']['web_server']['id'] = 'web_server'; + $handler->display->display_options['relationships']['web_server']['table'] = 'hosting_platform'; + $handler->display->display_options['relationships']['web_server']['field'] = 'web_server'; + $handler->display->display_options['relationships']['web_server']['required'] = 0; + /* Field: Class */ + $handler->display->display_options['fields']['status']['id'] = 'status'; + $handler->display->display_options['fields']['status']['table'] = 'hosting_platform'; + $handler->display->display_options['fields']['status']['field'] = 'status'; + $handler->display->display_options['fields']['status']['ui_name'] = 'Class'; + $handler->display->display_options['fields']['status']['exclude'] = TRUE; + $handler->display->display_options['fields']['status']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['status']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['status']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['status']['alter']['external'] = 0; + $handler->display->display_options['fields']['status']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['status']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['status']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['status']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['status']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['status']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['status']['alter']['trim'] = 0; + $handler->display->display_options['fields']['status']['alter']['html'] = 0; + $handler->display->display_options['fields']['status']['element_label_colon'] = 1; + $handler->display->display_options['fields']['status']['element_default_classes'] = 1; + $handler->display->display_options['fields']['status']['hide_empty'] = 0; + $handler->display->display_options['fields']['status']['empty_zero'] = 0; + $handler->display->display_options['fields']['status']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['status']['status_mode'] = 'class'; + /* Field: Hosting Platform: Status */ + $handler->display->display_options['fields']['status_1']['id'] = 'status_1'; + $handler->display->display_options['fields']['status_1']['table'] = 'hosting_platform'; + $handler->display->display_options['fields']['status_1']['field'] = 'status'; + $handler->display->display_options['fields']['status_1']['alter']['alter_text'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['text'] = ' '; + $handler->display->display_options['fields']['status_1']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['external'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['trim'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['html'] = 0; + $handler->display->display_options['fields']['status_1']['element_class'] = 'hosting-status'; + $handler->display->display_options['fields']['status_1']['element_label_colon'] = 1; + $handler->display->display_options['fields']['status_1']['element_default_classes'] = 1; + $handler->display->display_options['fields']['status_1']['hide_empty'] = 0; + $handler->display->display_options['fields']['status_1']['empty_zero'] = 0; + $handler->display->display_options['fields']['status_1']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['status_1']['status_mode'] = 'image'; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title']['id'] = 'title'; + $handler->display->display_options['fields']['title']['table'] = 'node'; + $handler->display->display_options['fields']['title']['field'] = 'title'; + $handler->display->display_options['fields']['title']['label'] = 'Platform'; + $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title']['alter']['external'] = 0; + $handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['title']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title']['alter']['html'] = 0; + $handler->display->display_options['fields']['title']['element_label_colon'] = 1; + $handler->display->display_options['fields']['title']['element_default_classes'] = 1; + $handler->display->display_options['fields']['title']['hide_empty'] = 0; + $handler->display->display_options['fields']['title']['empty_zero'] = 0; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title']['link_to_node'] = 1; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title_1']['id'] = 'title_1'; + $handler->display->display_options['fields']['title_1']['table'] = 'node'; + $handler->display->display_options['fields']['title_1']['field'] = 'title'; + $handler->display->display_options['fields']['title_1']['relationship'] = 'web_server'; + $handler->display->display_options['fields']['title_1']['label'] = 'Server'; + $handler->display->display_options['fields']['title_1']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['external'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title_1']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title_1']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title_1']['alter']['html'] = 0; + $handler->display->display_options['fields']['title_1']['element_label_colon'] = 1; + $handler->display->display_options['fields']['title_1']['element_default_classes'] = 1; + $handler->display->display_options['fields']['title_1']['hide_empty'] = 0; + $handler->display->display_options['fields']['title_1']['empty_zero'] = 0; + $handler->display->display_options['fields']['title_1']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title_1']['link_to_node'] = 1; + /* Field: Hosting Platform: Verified Date */ + $handler->display->display_options['fields']['verified']['id'] = 'verified'; + $handler->display->display_options['fields']['verified']['table'] = 'hosting_platform'; + $handler->display->display_options['fields']['verified']['field'] = 'verified'; + $handler->display->display_options['fields']['verified']['label'] = 'Verified'; + $handler->display->display_options['fields']['verified']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['verified']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['verified']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['verified']['alter']['external'] = 0; + $handler->display->display_options['fields']['verified']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['verified']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['verified']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['verified']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['verified']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['verified']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['verified']['alter']['trim'] = 0; + $handler->display->display_options['fields']['verified']['alter']['html'] = 0; + $handler->display->display_options['fields']['verified']['element_label_colon'] = 1; + $handler->display->display_options['fields']['verified']['element_default_classes'] = 1; + $handler->display->display_options['fields']['verified']['hide_empty'] = 0; + $handler->display->display_options['fields']['verified']['empty_zero'] = 0; + $handler->display->display_options['fields']['verified']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['verified']['date_format'] = 'time ago'; + /* Field: Hosting Platform: Sites */ + $handler->display->display_options['fields']['sites']['id'] = 'sites'; + $handler->display->display_options['fields']['sites']['table'] = 'hosting_platform'; + $handler->display->display_options['fields']['sites']['field'] = 'sites'; + $handler->display->display_options['fields']['sites']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['sites']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['sites']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['sites']['alter']['external'] = 0; + $handler->display->display_options['fields']['sites']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['sites']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['sites']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['sites']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['sites']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['sites']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['sites']['alter']['trim'] = 0; + $handler->display->display_options['fields']['sites']['alter']['html'] = 0; + $handler->display->display_options['fields']['sites']['element_label_colon'] = 1; + $handler->display->display_options['fields']['sites']['element_default_classes'] = 1; + $handler->display->display_options['fields']['sites']['hide_empty'] = 0; + $handler->display->display_options['fields']['sites']['empty_zero'] = 0; + $handler->display->display_options['fields']['sites']['hide_alter_empty'] = 1; + /* Filter: Node: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'platform' => 'platform', + ); + /* Filter: Node: Published */ + $handler->display->display_options['filters']['status']['id'] = 'status'; + $handler->display->display_options['filters']['status']['table'] = 'node'; + $handler->display->display_options['filters']['status']['field'] = 'status'; + $handler->display->display_options['filters']['status']['value'] = '1'; + /* Filter: Hosting Platform: Status */ + $handler->display->display_options['filters']['status_1']['id'] = 'status_1'; + $handler->display->display_options['filters']['status_1']['table'] = 'hosting_platform'; + $handler->display->display_options['filters']['status_1']['field'] = 'status'; + $handler->display->display_options['filters']['status_1']['operator'] = '!='; + $handler->display->display_options['filters']['status_1']['value']['value'] = '-2'; + $handler->display->display_options['filters']['status_1']['allow_null'] = 1; + + /* Display: Page */ + $handler = $view->new_display('page', 'Page', 'page_1'); + $handler->display->display_options['path'] = 'hosting/platforms'; + + $views[$view->name] = $view; + + return $views; +} diff --git a/modules/hosting/platform/views_handler_field_hosting_platform_sites.inc b/modules/hosting/platform/views_handler_field_hosting_platform_sites.inc new file mode 100644 index 0000000..3758bd5 --- /dev/null +++ b/modules/hosting/platform/views_handler_field_hosting_platform_sites.inc @@ -0,0 +1,8 @@ +{$this->field_alias}; + return hosting_site_count($value, array(HOSTING_SITE_ENABLED, HOSTING_SITE_DISABLED, HOSTING_SITE_QUEUED));; + } +} diff --git a/modules/hosting/platform/views_handler_field_hosting_platform_status.inc b/modules/hosting/platform/views_handler_field_hosting_platform_status.inc new file mode 100644 index 0000000..9f49e41 --- /dev/null +++ b/modules/hosting/platform/views_handler_field_hosting_platform_status.inc @@ -0,0 +1,25 @@ +{$this->field_alias}; + $output = _hosting_platform_status($value); + + switch ($this->options['status_mode']) { + case 'image': + return ""; + + case 'text_image': + return "{$output}"; + + case 'class': + return _hosting_platform_list_class($value); + } + return $output; + } +} diff --git a/modules/hosting/server/hosting_server.module b/modules/hosting/server/hosting_server.module index db65746..7a09e41 100644 --- a/modules/hosting/server/hosting_server.module +++ b/modules/hosting/server/hosting_server.module @@ -237,7 +237,6 @@ function hosting_server_form(&$node) { if (!$node->nid) { $node->services = array(); - $node->ip_addresses = array(); } // taken mostly from the hosting_site alias stuff @@ -261,7 +260,6 @@ function hosting_server_form(&$node) { // Get the list of existing IPs $ips = $node->ip_addresses; $ips_count = max(3, empty($ips) ? 3 : count($ips) + 1); - // Add alias textfields foreach ($ips as $id => $ip) { $form['ips_wrapper']['ip_addresses'][$id] = array( @@ -575,3 +573,13 @@ function hosting_get_servers($service) { drupal_alter('hosting_servers_titles', $return, $service); return $return; } + +/** + * Views integration + */ +function hosting_server_views_api() { + return array( + 'api' => 3, + 'path' => drupal_get_path('module', 'hosting_server'), + ); +} diff --git a/modules/hosting/server/hosting_server.views.inc b/modules/hosting/server/hosting_server.views.inc new file mode 100644 index 0000000..bc60a3b --- /dev/null +++ b/modules/hosting/server/hosting_server.views.inc @@ -0,0 +1,68 @@ + 'Hosting Server', + 'title' => 'Server', + 'join' => array( + 'node' => array( + 'left_field' => 'vid', + 'field' => 'vid', + ), + ), + ); + + $data['hosting_service']['service'] = array( + 'title' => t('Service'), + 'help' => t('The type of service.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + ); + + $data['hosting_service']['type'] = array( + 'title' => t('Type'), + 'help' => t('The service sub-type.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + ); + + $data['hosting_service']['restart_cmd'] = array( + 'title' => t('Restart command'), + 'help' => t('The restart command for the service.'), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, + ), + ); + + $data['hosting_service']['port'] = array( + 'title' => t('Port'), + 'help' => t('The port for the service.'), + 'field' => array( + 'handler' => 'views_handler_field_numeric', + 'click sortable' => TRUE, + ), + ); + + $data['hosting_service']['available'] = array( + 'title' => t('Available'), + 'help' => t('Whether the service is available.'), + 'field' => array( + 'handler' => 'views_handler_field_boolean', + 'click sortable' => TRUE, + ), + ); + + return $data; +} diff --git a/modules/hosting/site/hosting_site.module b/modules/hosting/site/hosting_site.module index 2f63464..4b0572f 100644 --- a/modules/hosting/site/hosting_site.module +++ b/modules/hosting/site/hosting_site.module @@ -35,14 +35,6 @@ if (module_exists('hosting_quota')) { function hosting_site_menu() { $items = array(); - $items['hosting/sites'] = array( - 'title' => 'Sites', - 'description' => 'Display a list of sites', - 'page callback' => 'hosting_sites', - 'access arguments' => array('view site'), - 'type' => MENU_NORMAL_ITEM, - ); - $items['hosting/sites/list'] = array( 'title' => 'List', 'type' => MENU_DEFAULT_LOCAL_TASK, @@ -102,48 +94,6 @@ function hosting_site_node_load($arg) { } /** - * Get all possible filters types that could be applied to the site list. - * - * This list will be used to sanitise the selected filters in the query string. - * - * @return - * An array of the possible filters. - */ -function hosting_site_get_possible_site_list_filters() { - $filters = module_invoke_all('hosting_site_site_list_filters'); - if (!is_array($filters)) { - $filters = array(); - } - drupal_alter('hosting_site_site_list_filters', $filters); - return $filters; -} - -/** - * Page handler for displaying list of hosted sites on front page - */ -function hosting_sites() { - $filter_by = isset($_GET['filter_by']) ? $_GET['filter_by'] : NULL; - $filter_value = isset($_GET['filter_value']) ? $_GET['filter_value'] : NULL; - // Now, we need to be incredibly careful with what values of $filter_by and - // $filter_value that we let through. First ensure that $filter_by is one of - // the possible values that we send through. - if (!in_array($filter_by, hosting_site_get_possible_site_list_filters(), TRUE)) { - $filter_by = NULL; - } - // Now ensure that $filter_value is numeric. - if (!is_numeric($filter_value)) { - $filter_value = NULL; - } - - if ($list = drupal_get_form('hosting_site_list_form', $filter_by, $filter_value)) { - return $list; - } - $create_site_link = l(t('Create a site now?'), 'node/add/site'); - return t("No sites have been created yet. !link", array( - '!link' => $create_site_link)); -} - -/** * Generate a link allowing the user to log into their new site, or simply * go to the site front page if the link has expired. */ @@ -305,6 +255,52 @@ function hosting_site_hosting_tasks() { } /** + * Implements hook_node_operations(). + */ +function hosting_site_node_operations() { + $operations = array(); + + $operations['hosting-site-verify'] = array( + 'label' => t('Verify'), + 'callback' => 'hosting_task_operation', + 'callback arguments' => array('verify'), + ); + + $operations['hosting-site-disable'] = array( + 'label' => t('Disable'), + 'callback' => 'hosting_task_operation', + 'callback arguments' => array('disable'), + ); + + $operations['hosting-site-enable'] = array( + 'label' => t('Enable'), + 'callback' => 'hosting_task_operation', + 'callback arguments' => array('enable'), + ); + + $operations['hosting-site-delete'] = array( + 'label' => t('Delete'), + 'callback' => 'hosting_task_operation', + 'callback arguments' => array('delete'), + ); + + $operations['hosting-site-login-reset'] = array( + 'label' => t('Reset password'), + 'callback' => 'hosting_task_operation', + 'callback arguments' => array('login-reset'), + ); + + $operations['hosting-site-backup-delete'] = array( + 'label' => t('Delete backups'), + 'callback' => 'hosting_task_operation', + 'callback arguments' => array('backup-delete'), + ); + + + return $operations; +} + +/** * Implementation of hook_perm */ function hosting_site_perm() { @@ -513,274 +509,6 @@ function hosting_site_task_status($nid) { return hosting_task_status_output('nid', $nid, 'install'); } -/** - * Create a form for building a list of sites. - * @TODO Add ability to filter by additional fields - */ -function hosting_site_list_form($form_state, $filter_by = NULL, $filter_value = NULL) { - $step = isset($form_state['storage']['step']) ? $form_state['storage']['step'] : 1; - - // Step 1 - select sites - if ($step == 1) { - $args[] = 'site'; - $cond = ''; - - if ($filter_by && $filter_value) { - if ($filter_by == 'status') { - $cond = ' AND s.' . $filter_by . ' & %d'; - } else { - $cond = ' AND s.' . $filter_by . ' = %d'; - } - $args[] = $filter_value; - } - - $header = array( - array('data' => t('Site'), 'field' => 'title'), - array('data' => t('Profile'), 'field' => 'profile'), - array('data' => t('Language'), 'field' => 'site_language'), - array('data' => t('Created'), 'field' => 'created', 'sort' => 'desc'), - ); - $platforms = _hosting_get_platforms(); - if (sizeof($platforms) > 1) { - $header[] = array('data' => t('Platform'), 'field' => 'platform'); - } - - $sql = "SELECT n.nid, n.title, n.created, s.status as site_status, profile, s.language as site_language, platform, verified FROM {node} n left join {hosting_site} s ON n.vid=s.vid WHERE type='%s' AND s.status != -2 " . $cond; - $sql .= tablesort_sql($header); - - // @TODO hide deleted sites - $result = pager_query(db_rewrite_sql($sql), 25, 1, null, $args); - - $form['options'] = array( - '#type' => 'fieldset', - '#title' => t('Site tasks'), - '#prefix' => '
', - '#suffix' => '
', - ); - $options = array(); - - foreach (hosting_available_tasks('site') as $task => $array) { - // At this stage we only want to handle simple tasks, the presense of a - // specific task form means there are other options for this tasks. - $func = 'hosting_task_' . $task . '_form'; - if (!function_exists($func) && user_access('create '. $task .' task')) { - $options[$task] = $array['title']; - } - } - $form['options']['task'] = array( - '#type' => 'select', - '#options' => $options, - '#default_value' => 'backup', - ); - $form['options']['submit'] = array( - '#type' => 'submit', - '#value' => t('Add to queue'), - '#submit' => array('hosting_site_list_form_submit'), - ); - - $sites = array(); - while ($node = db_fetch_object($result)) { - $sites[$node->nid] = ''; - $form['site'][$node->nid] = array('#value' => l($node->title, 'node/' . $node->nid)); - $form['profile'][$node->nid] = array('#value' => ($node->profile) ? _hosting_node_link($node->profile) : t('n/a')); - $form['language'][$node->nid] = array('#value' => ($node->site_language) ? _hosting_language_name($node->site_language) : t('n/a')); - $form['created'][$node->nid] = array('#value' => t("@interval ago", array('@interval' => format_interval(time() - $node->created, 1)))); - if (sizeof($platforms) > 1) { - $form['platform'][$node->nid] = array('#value' => ($node->platform) ? _hosting_node_link($node->platform) : t('n/a')); - } - $form['site_class'][$node->nid] = array('#value' => _hosting_site_list_class($node, $node->verified)); - } - $form['sites'] = array('#type' => 'checkboxes', '#options' => $sites); - $form['pager'] = array('#value' => theme('pager', NULL, 25, 1)); - $form['#theme'] = 'hosting_site_list'; - $query = array(); - if (isset($_GET['page'])) { - $query['page'] = $_GET['page']; - } - if (isset($filter_by)) { - $query['filter_by'] = $filter_by; - } - if (isset($filter_value)) { - $query['filter_value'] = $filter_value; - } - $form['#action'] = url('hosting/sites', array('query' => $query)); - return $form; - } - elseif ($step == 2) { - $task = $form_state['values']['task']; - $tasks = hosting_available_tasks('site'); - - $title = array( - 'passed' => t("The following sites will be processed"), - 'failed' => t("The following sites failed validation checks and will not be processed") - ); - foreach (array('passed', 'failed') as $type) { - if (sizeof($form_state['storage'][$type])) { - foreach ($form_state['storage'][$type] as $site_id => $url) { - $row = array( - 'data' => array( - array('data' => l($url, 'node/'.$site_id), 'class' => 'hosting-status'), - ), - 'class' => ($type == 'passed' ? 'hosting-success' : 'hosting-error'), - ); - $rows[] = $row; - } - } - } - - $header = array(t('Site')); - $form['sites_test'] = array( - '#value' => theme('table', $header, $rows) - ); - - if (sizeof($form_state['storage']['failed']) && sizeof($form_state['storage']['passed'])) { - drupal_set_message(t('The task @task is not able to be performed on all the sites selected, the sites below that failed will not be added to the queue.', array('@task' => $task)), 'warning'); - } - elseif (sizeof($form_state['storage']['failed'])) { - drupal_set_message(t('The task @task is not able to be performed on any of the selected sites.', array('@task' => $task)), 'error'); - $form['return_link'] = array('#value' => l('Return to site listing', 'hosting/sites')); - return $form; - } - - $form['help'] = array('#value' => $tasks[$task]['description']); - - $question = t('Are you sure you want to perform the "@task" task on each of the following sites?', array('@task' => $tasks[$task]['title'])); - return confirm_form($form, $question, 'hosting/sites', '', $tasks[$task]['title']); - } -} -/** - * Validate hosting_site_list form submissions. - */ -function hosting_site_list_form_validate($form, &$form_state) { - if (isset($form_state['values']['sites'])) { - $sites = array_filter($form_state['values']['sites']); - if (count($sites) == 0) { - form_set_error('', t('No sites selected.')); - } - } -} - -/** - * Process hosting_site_list form submissions. - */ -function hosting_site_list_form_submit($form, &$form_state) { - $step = isset($form_state['storage']['step']) ? $form_state['storage']['step'] : 1; - - $task = $form_state['values']['task']; - switch ($step) { - case 1: - $form_state['storage']['task'] = $task; - // Verify tasks can be performed on each site. - $tasks = hosting_available_tasks('site'); - - // Filter out unchecked sites - $sites = array_filter($form_state['values']['sites']); - - $operations = array(); - foreach ($sites as $site) { - $operations[] = array('hosting_sites_batch_process', - array($site, $task)); - } - if (sizeof($operations)) { - $batch = array( - 'operations' => $operations, - 'title' => t('Processing'), - 'progress_message' => t('Evaluated @current out of @total sites.'), - 'error_message' => t('The update has encountered an error.'), - ); - batch_set($batch); - } - break; - case 2: - $values = $form_state['values']; - foreach ($form_state['storage']['passed'] as $site_id => $url) { - hosting_add_task($site_id, $form_state['storage']['task'], $values['parameters']); - } - unset($form_state['storage']); - $step = 0; - drupal_set_message(t('The task @task will be applied to the selected sites and have been added to the task queue.', array('@task' => $form_state['storage']['task']))); - break; - } - $form_state['storage']['step'] = $step + 1; -} - -function hosting_sites_batch_process($site_id, $task, &$context) { - if (!isset($context['sandbox']['progress'])) { - $context['sandbox']['progress'] = 0; - } - - $site = node_load($site_id); - $batch =& batch_get(); - - if (hosting_task_menu_access($site, $task)) { - $batch['form_state']['storage']['passed'][$site->nid] = $site->title; - } - else { - $batch['form_state']['storage']['failed'][$site->nid] = $site->title; - } -} - -/** - * Implementation of hook_theme(). - */ -function hosting_site_theme() { - return array( - 'hosting_site_list' => array( - 'arguments' => array('form' => NULL), - ), - ); -} - -/** - * Build the site list form. - */ -function theme_hosting_site_list($form) { - // If there are rows in this form, then $form['site'] contains a list of - // the title form elements. - $has_posts = isset($form['site']) && is_array($form['site']); - $select_header = $has_posts ? theme('table_select_header_cell') : ''; - $header = array( - $select_header, - array('data' => t('Site'), 'field' => 'title'), - array('data' => t('Profile'), 'field' => 'profile'), - array('data' => t('Language'), 'field' => 'site_language'), - array('data' => t('Created'), 'field' => 'created', 'sort' => 'desc'), - ); - if (isset($form['platform'])) { - $header[] = array('data' => t('Platform'), 'field' => 'platform'); - } - $output = ''; - - $output .= drupal_render($form['options']); - if ($has_posts) { - foreach (element_children($form['site']) as $key) { - $row = array(); - $row[] = drupal_render($form['sites'][$key]); - $row[] = array('data' => drupal_render($form['site'][$key]), 'class'=> 'hosting-status'); - $row[] = drupal_render($form['profile'][$key]); - $row[] = drupal_render($form['language'][$key]); - $row[] = drupal_render($form['created'][$key]); - if (isset($form['platform'])) { - $row[] = drupal_render($form['platform'][$key]); - } - $rows[] = array('data' => $row, 'class' => drupal_render($form['site_class'][$key])); - } - - } - else { - $rows[] = array(array('data' => t('No sites available.'), 'colspan' => sizeof($header))); - } - - $output .= theme('table', $header, $rows, array('class' => 'hosting-table')); - if ($form['pager']['#value']) { - $output .= drupal_render($form['pager']); - } - - $output .= drupal_render($form); - - return $output; -} - /** * Define the classes that correspond to the site status. @@ -806,20 +534,7 @@ function _hosting_site_list_class($node, $verified = null) { */ function hosting_site_views_api() { return array( - 'api' => 2, + 'api' => 3, 'path' => drupal_get_path('module', 'hosting_site'), ); } - - -function hosting_site_preprocess_views_view_table(&$variables) { - $view = $variables['view']; - if ($view->plugin_name == 'hosting_site_list') { - foreach ($view->result as $num => $result) { - if (isset($result->hosting_site_status) && isset($result->hosting_site_verified)) { - $variables['row_classes'][$num][] = _hosting_site_list_class($result->hosting_site_status, $result->hosting_site_verified); - } - } - } - $variables['class'] .= " hosting-table"; -} diff --git a/modules/hosting/site/hosting_site.views.inc b/modules/hosting/site/hosting_site.views.inc index e84b5ea..a8f9eab 100644 --- a/modules/hosting/site/hosting_site.views.inc +++ b/modules/hosting/site/hosting_site.views.inc @@ -1,24 +1,23 @@ 'Hosting Site', - 'title' => 'Site', - 'join' => array( - 'node' => array( - 'left_field' => 'vid', - 'field' => 'vid', - ), + 'group' => 'Hosting Site', + 'title' => 'Site', + 'join' => array( + 'node' => array( + 'left_field' => 'vid', + 'field' => 'vid', ), - ); + ), + ); $data['hosting_site']['client'] = array( 'title' => t('Client'), @@ -26,7 +25,7 @@ function hosting_site_views_data() { 'relationship' => array( 'handler' => 'views_handler_relationship', 'base' => 'node', - 'field' => 'nid', + 'base field' => 'nid', 'label' => t('client'), ), ); @@ -37,68 +36,71 @@ function hosting_site_views_data() { 'relationship' => array( 'handler' => 'views_handler_relationship', 'base' => 'node', - 'field' => 'nid', + 'base field' => 'nid', 'label' => t('db server'), ), ); - $data['hosting_site']['profile'] = array( - 'title' => t('Install Profile'), - 'help' => t('Type of drupal site.'), - 'relationship' => array( + $data['hosting_site']['profile'] = array( + 'title' => t('Install Profile'), + 'help' => t('Type of drupal site.'), + 'relationship' => array( 'handler' => 'views_handler_relationship', 'base' => 'node', - 'field' => 'nid', + 'base field' => 'nid', 'label' => t('profile'), ), ); - $data['hosting_site']['platform'] = array( + + $data['hosting_site']['platform'] = array( 'title' => t('Platform'), 'help' => t('Platform'), 'relationship' => array( 'handler' => 'views_handler_relationship', 'base' => 'node', - 'field' => 'nid', + 'base field' => 'nid', 'label' => t('platform'), ), ); $data['hosting_site']['verified'] = array( - 'title' => t('Verified'), - 'help' => t('The last date verified task run on this site.'), - 'field' => array( - 'handler' => 'hosting_views_field_handler_interval', - 'click sortable' => TRUE, - ), - ); + 'title' => t('Verified'), + 'help' => t('The last date verified task run on this site.'), + 'field' => array( + 'handler' => 'hosting_views_field_handler_interval', + 'click sortable' => TRUE, + ), + ); $data['hosting_site']['last_cron'] = array( - 'title' => t('Last Cron Run'), - 'help' => t('The time the last cron run was executed on this site.'), - 'field' => array( - 'handler' => 'hosting_views_field_handler_interval', - 'click sortable' => TRUE, - ), - ); + 'title' => t('Last Cron Run'), + 'help' => t('The time the last cron run was executed on this site.'), + 'field' => array( + 'handler' => 'hosting_views_field_handler_interval', + 'click sortable' => TRUE, + ), + ); + $data['hosting_site']['language'] = array( - 'title' => t('Language'), - 'help' => t('The default language of this site.'), - 'field' => array( - 'handler' => 'views_handler_field_hosting_language', - 'click sortable' => TRUE, - ), - ); + 'title' => t('Language'), + 'help' => t('The default language of this site.'), + 'field' => array( + 'handler' => 'views_handler_field_hosting_language', + 'click sortable' => TRUE, + ), + ); $data['hosting_site']['status'] = array( - 'title' => t('Status'), - 'help' => t('The current state of this site.'), - 'field' => array( - 'handler' => 'views_handler_field_hosting_site_status', - ), - 'filter' => array( - 'handler' => 'views_handler_filter_numeric', - ), - ); + 'title' => t('Status'), + 'help' => t('The current state of this site.'), + 'field' => array( + 'handler' => 'views_handler_field_hosting_site_status', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_numeric', + ), + ); return $data; } @@ -117,402 +119,6 @@ function hosting_site_views_handlers() { 'views_handler_field_hosting_site_status' => array( 'parent' => 'views_handler_field', ), - ), ); } - -function hosting_site_views_plugins() { - return array( - 'style' => array( - 'hosting_site_list' => array( - 'title' => t('Site listing'), - 'help' => t('Displays sites in a table.'), - 'handler' => 'views_plugin_style_site_table', - 'theme' => 'views_view_table', - 'parent' => 'table', - 'path' => drupal_get_path('module', 'hosting_site'), - 'uses row plugin' => FALSE, - 'uses fields' => TRUE, - 'uses options' => TRUE, - 'type' => 'normal', - ), - ) - ); - -} - - -function hosting_site_views_default_views() { - $view = new view; - $view->name = 'hosting_site_list'; - $view->description = 'Display a list of sites hosted in aegir'; - $view->tag = ''; - $view->view_php = ''; - $view->base_table = 'node'; - $view->is_cacheable = FALSE; - $view->api_version = 2; - $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ - $handler = $view->new_display('default', 'Defaults', 'default'); - $handler->override_option('relationships', array( - 'client' => array( - 'id' => 'client', - 'table' => 'hosting_site', - 'field' => 'client', - ), - 'db_server' => array( - 'id' => 'db_server', - 'table' => 'hosting_site', - 'field' => 'db_server', - ), - 'profile' => array( - 'id' => 'profile', - 'table' => 'hosting_site', - 'field' => 'profile', - ), - 'platform' => array( - 'id' => 'platform', - 'table' => 'hosting_site', - 'field' => 'platform', - ), - 'web_server' => array( - 'label' => 'web server', - 'required' => 0, - 'id' => 'web_server', - 'table' => 'hosting_platform', - 'field' => 'web_server', - 'relationship' => 'platform', - ), - )); - $handler->override_option('fields', array( - 'status' => array( - 'label' => '', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'status_icon' => '1', - 'exclude' => 0, - 'id' => 'status', - 'table' => 'hosting_site', - 'field' => 'status', - 'relationship' => 'none', - 'override' => array( - 'button' => 'Override', - ), - ), - 'title' => array( - 'label' => 'Domain', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'link_to_node' => 1, - 'exclude' => 0, - 'id' => 'title', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'none', - ), - 'title_3' => array( - 'label' => 'Install Profile', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'link_to_node' => 1, - 'exclude' => 0, - 'id' => 'title_3', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'profile', - ), - 'language' => array( - 'label' => 'Language', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'exclude' => 0, - 'id' => 'language', - 'table' => 'hosting_site', - 'field' => 'language', - 'relationship' => 'none', - ), - 'title_1' => array( - 'label' => 'Client', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 1, - 'max_length' => '10', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'link_to_node' => 1, - 'exclude' => 0, - 'id' => 'title_1', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'client', - 'override' => array( - 'button' => 'Override', - ), - ), - 'verified' => array( - 'label' => 'Verified', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'date_format' => 'small', - 'custom_date_format' => '', - 'exclude' => 0, - 'id' => 'verified', - 'table' => 'hosting_site', - 'field' => 'verified', - 'relationship' => 'none', - ), - 'title_2' => array( - 'label' => 'Platform', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 1, - 'max_length' => '20', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'link_to_node' => 1, - 'exclude' => 0, - 'id' => 'title_2', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'platform', - 'override' => array( - 'button' => 'Override', - ), - ), - 'title_5' => array( - 'label' => 'Web Server', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'link_to_node' => 1, - 'exclude' => 0, - 'id' => 'title_5', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'web_server', - 'override' => array( - 'button' => 'Override', - ), - ), - 'title_4' => array( - 'label' => 'Database Server', - 'alter' => array( - 'alter_text' => 0, - 'text' => '', - 'make_link' => 0, - 'path' => '', - 'link_class' => '', - 'alt' => '', - 'prefix' => '', - 'suffix' => '', - 'help' => '', - 'trim' => 0, - 'max_length' => '', - 'word_boundary' => 1, - 'ellipsis' => 1, - 'strip_tags' => 0, - 'html' => 0, - ), - 'link_to_node' => 1, - 'exclude' => 0, - 'id' => 'title_4', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'db_server', - 'override' => array( - 'button' => 'Override', - ), - ), - )); - $handler->override_option('sorts', array( - 'title' => array( - 'order' => 'ASC', - 'id' => 'title', - 'table' => 'node', - 'field' => 'title', - 'relationship' => 'none', - ), - )); - $handler->override_option('filters', array( - 'type' => array( - 'operator' => 'in', - 'value' => array( - 'site' => 'site', - ), - 'group' => '0', - 'exposed' => FALSE, - 'expose' => array( - 'operator' => FALSE, - 'label' => '', - ), - 'id' => 'type', - 'table' => 'node', - 'field' => 'type', - 'relationship' => 'none', - ), - 'status' => array( - 'operator' => '!=', - 'value' => array( - 'value' => '-2', - 'min' => '', - 'max' => '', - ), - 'group' => '0', - 'exposed' => FALSE, - 'expose' => array( - 'operator' => FALSE, - 'label' => '', - ), - 'id' => 'status', - 'table' => 'hosting_site', - 'field' => 'status', - 'relationship' => 'none', - ), - )); - $handler->override_option('access', array( - 'type' => 'none', - )); - $handler->override_option('cache', array( - 'type' => 'none', - )); - $handler->override_option('items_per_page', 30); - $handler->override_option('use_pager', 'mini'); - $handler->override_option('style_plugin', 'hosting_site_list'); - $handler->override_option('style_options', array( - 'grouping' => '', - 'override' => 1, - 'sticky' => 0, - 'order' => 'asc', - 'columns' => array( - 'title' => 'title', - 'status' => 'status', - ), - 'info' => array( - 'title' => array( - 'sortable' => 0, - 'separator' => '', - ), - 'status' => array( - 'separator' => '', - ), - ), - 'default' => '-1', - )); - - $views[$view->name] = $view; - - return $views; -} - - diff --git a/modules/hosting/site/hosting_site.views_default.inc b/modules/hosting/site/hosting_site.views_default.inc new file mode 100644 index 0000000..41149b7 --- /dev/null +++ b/modules/hosting/site/hosting_site.views_default.inc @@ -0,0 +1,559 @@ +name = 'hosting_site_list'; + $view->description = 'Display a list of sites hosted in aegir'; + $view->tag = 'hosting_site'; + $view->base_table = 'node'; + $view->human_name = ''; + $view->core = 6; + $view->api_version = '3.0'; + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + + /* Display: Defaults */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->display->display_options['title'] = 'Sites'; + $handler->display->display_options['use_ajax'] = TRUE; + $handler->display->display_options['access']['type'] = 'perm'; + $handler->display->display_options['access']['perm'] = 'view site'; + $handler->display->display_options['cache']['type'] = 'none'; + $handler->display->display_options['query']['type'] = 'views_query'; + $handler->display->display_options['exposed_form']['type'] = 'basic'; + $handler->display->display_options['exposed_form']['options']['reset_button'] = TRUE; + $handler->display->display_options['exposed_form']['options']['autosubmit'] = 0; + $handler->display->display_options['exposed_form']['options']['autosubmit_hide'] = 0; + $handler->display->display_options['pager']['type'] = 'full'; + $handler->display->display_options['pager']['options']['items_per_page'] = 25; + $handler->display->display_options['style_plugin'] = 'bulk'; + $handler->display->display_options['style_options']['row_class'] = '[status]'; + $handler->display->display_options['style_options']['columns'] = array( + 'status' => 'status', + 'status_1' => 'status_1', + 'title' => 'title', + 'title_3' => 'title_3', + 'created' => 'created', + 'title_2' => 'title_2', + ); + $handler->display->display_options['style_options']['default'] = 'status_1'; + $handler->display->display_options['style_options']['info'] = array( + 'status' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'status_1' => array( + 'sortable' => 1, + 'default_sort_order' => 'desc', + 'align' => '', + 'separator' => '', + ), + 'title' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'title_3' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'created' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'title_2' => array( + 'sortable' => 1, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + ); + $handler->display->display_options['style_options']['override'] = 1; + $handler->display->display_options['style_options']['sticky'] = 0; + $handler->display->display_options['style_options']['empty_table'] = 0; + $handler->display->display_options['style_options']['operations'] = array( + 'node_assign_owner_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-d5753f4149333e6bb163b78489af62a7' => array( + 'selected' => 1, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-cbcdb2f1b1694e48f1d2a1956d5b34aa' => array( + 'selected' => 1, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_delete_node_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-a27b9efabcd054685a549378b174ad11' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-2e697b94e1c2d6cfa04148e13bbf09ab' => array( + 'selected' => 1, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'system_message_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-2b33c2655429ff68933d62ef1c2c5dbf' => array( + 'selected' => 1, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_ruleset_action_rules_set_1' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_script_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_make_sticky_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_make_unsticky_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-c4d3b28efb86fd703619a50b74d43794' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'views_bulk_operations_argument_selector_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_promote_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-14de7d028b4bffdf2b4a266562ca18ac' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-9c585624b9b3af0b4687d5f97f35e047' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_publish_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'system_goto_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_unpromote_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-8ce21b08bb8e773d10018b484fe4815e' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-62832bfa32dda6f49c47986802958a8d' => array( + 'selected' => 1, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_save_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'system_send_email_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_mass_update-0ccad85c1ebe4c9ceada1aa64293b080' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_unpublish_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'node_unpublish_by_keyword_action' => array( + 'selected' => 0, + 'skip_confirmation' => 0, + 'label' => '', + ), + 'hosting_task_operation-1ba8dfdca72110c3d78b76f9b18bf909' => array( + 'selected' => 1, + 'skip_confirmation' => 0, + 'label' => '', + ), + ); + $handler->display->display_options['style_options']['execution_type'] = '1'; + $handler->display->display_options['style_options']['display_type'] = '0'; + $handler->display->display_options['style_options']['display_result'] = 1; + $handler->display->display_options['style_options']['merge_single_action'] = 1; + $handler->display->display_options['style_options']['hide_selector'] = 0; + $handler->display->display_options['style_options']['preserve_selection'] = 0; + $handler->display->display_options['exposed_block'] = TRUE; + /* Relationship: Hosting Site: Install Profile */ + $handler->display->display_options['relationships']['profile']['id'] = 'profile'; + $handler->display->display_options['relationships']['profile']['table'] = 'hosting_site'; + $handler->display->display_options['relationships']['profile']['field'] = 'profile'; + $handler->display->display_options['relationships']['profile']['required'] = 0; + /* Relationship: Hosting Site: Platform */ + $handler->display->display_options['relationships']['platform']['id'] = 'platform'; + $handler->display->display_options['relationships']['platform']['table'] = 'hosting_site'; + $handler->display->display_options['relationships']['platform']['field'] = 'platform'; + /* Relationship: Hosting Site: Client */ + $handler->display->display_options['relationships']['client']['id'] = 'client'; + $handler->display->display_options['relationships']['client']['table'] = 'hosting_site'; + $handler->display->display_options['relationships']['client']['field'] = 'client'; + /* Field: Class */ + $handler->display->display_options['fields']['status']['id'] = 'status'; + $handler->display->display_options['fields']['status']['table'] = 'hosting_site'; + $handler->display->display_options['fields']['status']['field'] = 'status'; + $handler->display->display_options['fields']['status']['ui_name'] = 'Class'; + $handler->display->display_options['fields']['status']['exclude'] = TRUE; + $handler->display->display_options['fields']['status']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['status']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['status']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['status']['alter']['external'] = 0; + $handler->display->display_options['fields']['status']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['status']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['status']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['status']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['status']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['status']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['status']['alter']['trim'] = 0; + $handler->display->display_options['fields']['status']['alter']['html'] = 0; + $handler->display->display_options['fields']['status']['element_label_colon'] = 1; + $handler->display->display_options['fields']['status']['element_default_classes'] = 1; + $handler->display->display_options['fields']['status']['hide_empty'] = 0; + $handler->display->display_options['fields']['status']['empty_zero'] = 0; + $handler->display->display_options['fields']['status']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['status']['status_mode'] = 'class'; + /* Field: Hosting Site: Status */ + $handler->display->display_options['fields']['status_1']['id'] = 'status_1'; + $handler->display->display_options['fields']['status_1']['table'] = 'hosting_site'; + $handler->display->display_options['fields']['status_1']['field'] = 'status'; + $handler->display->display_options['fields']['status_1']['alter']['alter_text'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['text'] = ' '; + $handler->display->display_options['fields']['status_1']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['external'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['status_1']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['trim'] = 0; + $handler->display->display_options['fields']['status_1']['alter']['html'] = 0; + $handler->display->display_options['fields']['status_1']['element_class'] = 'hosting-status'; + $handler->display->display_options['fields']['status_1']['element_label_colon'] = 1; + $handler->display->display_options['fields']['status_1']['element_default_classes'] = 1; + $handler->display->display_options['fields']['status_1']['hide_empty'] = 0; + $handler->display->display_options['fields']['status_1']['empty_zero'] = 0; + $handler->display->display_options['fields']['status_1']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['status_1']['status_mode'] = 'image'; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title']['id'] = 'title'; + $handler->display->display_options['fields']['title']['table'] = 'node'; + $handler->display->display_options['fields']['title']['field'] = 'title'; + $handler->display->display_options['fields']['title']['label'] = 'SIte'; + $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title']['alter']['external'] = 0; + $handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['title']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title']['alter']['html'] = 0; + $handler->display->display_options['fields']['title']['element_label_colon'] = 1; + $handler->display->display_options['fields']['title']['element_wrapper_class'] = 'hosting-status'; + $handler->display->display_options['fields']['title']['element_default_classes'] = 1; + $handler->display->display_options['fields']['title']['hide_empty'] = 0; + $handler->display->display_options['fields']['title']['empty_zero'] = 0; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title']['link_to_node'] = 1; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title_3']['id'] = 'title_3'; + $handler->display->display_options['fields']['title_3']['table'] = 'node'; + $handler->display->display_options['fields']['title_3']['field'] = 'title'; + $handler->display->display_options['fields']['title_3']['relationship'] = 'profile'; + $handler->display->display_options['fields']['title_3']['label'] = 'Profile'; + $handler->display->display_options['fields']['title_3']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title_3']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title_3']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title_3']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title_3']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title_3']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title_3']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title_3']['alter']['html'] = 0; + $handler->display->display_options['fields']['title_3']['hide_empty'] = 0; + $handler->display->display_options['fields']['title_3']['empty_zero'] = 0; + $handler->display->display_options['fields']['title_3']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title_3']['link_to_node'] = 1; + /* Field: Node: Post date */ + $handler->display->display_options['fields']['created']['id'] = 'created'; + $handler->display->display_options['fields']['created']['table'] = 'node'; + $handler->display->display_options['fields']['created']['field'] = 'created'; + $handler->display->display_options['fields']['created']['label'] = 'Created'; + $handler->display->display_options['fields']['created']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['created']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['created']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['created']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['created']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['created']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['created']['alter']['trim'] = 0; + $handler->display->display_options['fields']['created']['alter']['html'] = 0; + $handler->display->display_options['fields']['created']['hide_empty'] = 0; + $handler->display->display_options['fields']['created']['empty_zero'] = 0; + $handler->display->display_options['fields']['created']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['created']['date_format'] = 'time ago'; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title_2']['id'] = 'title_2'; + $handler->display->display_options['fields']['title_2']['table'] = 'node'; + $handler->display->display_options['fields']['title_2']['field'] = 'title'; + $handler->display->display_options['fields']['title_2']['relationship'] = 'platform'; + $handler->display->display_options['fields']['title_2']['label'] = 'Platform'; + $handler->display->display_options['fields']['title_2']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title_2']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title_2']['alter']['max_length'] = '20'; + $handler->display->display_options['fields']['title_2']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title_2']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title_2']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title_2']['alter']['trim'] = 1; + $handler->display->display_options['fields']['title_2']['alter']['html'] = 0; + $handler->display->display_options['fields']['title_2']['link_to_node'] = 1; + /* Sort criterion: Node: Title */ + $handler->display->display_options['sorts']['title']['id'] = 'title'; + $handler->display->display_options['sorts']['title']['table'] = 'node'; + $handler->display->display_options['sorts']['title']['field'] = 'title'; + /* Filter: Node: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'site' => 'site', + ); + $handler->display->display_options['filters']['type']['expose']['operator'] = FALSE; + /* Filter: Hosting Site: Status */ + $handler->display->display_options['filters']['status']['id'] = 'status'; + $handler->display->display_options['filters']['status']['table'] = 'hosting_site'; + $handler->display->display_options['filters']['status']['field'] = 'status'; + $handler->display->display_options['filters']['status']['operator'] = '!='; + $handler->display->display_options['filters']['status']['value']['value'] = '-2'; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter: Node: Published */ + $handler->display->display_options['filters']['status_1']['id'] = 'status_1'; + $handler->display->display_options['filters']['status_1']['table'] = 'node'; + $handler->display->display_options['filters']['status_1']['field'] = 'status'; + $handler->display->display_options['filters']['status_1']['value'] = '1'; + /* Filter: Node: Title */ + $handler->display->display_options['filters']['title']['id'] = 'title'; + $handler->display->display_options['filters']['title']['table'] = 'node'; + $handler->display->display_options['filters']['title']['field'] = 'title'; + $handler->display->display_options['filters']['title']['operator'] = 'contains'; + $handler->display->display_options['filters']['title']['exposed'] = TRUE; + $handler->display->display_options['filters']['title']['expose']['operator'] = 'title_op'; + $handler->display->display_options['filters']['title']['expose']['limit_operators'] = array(); + $handler->display->display_options['filters']['title']['expose']['label'] = 'Site'; + $handler->display->display_options['filters']['title']['expose']['identifier'] = 'title'; + $handler->display->display_options['filters']['title']['case'] = 1; + /* Filter: Node: Title */ + $handler->display->display_options['filters']['title_1']['id'] = 'title_1'; + $handler->display->display_options['filters']['title_1']['table'] = 'node'; + $handler->display->display_options['filters']['title_1']['field'] = 'title'; + $handler->display->display_options['filters']['title_1']['relationship'] = 'profile'; + $handler->display->display_options['filters']['title_1']['operator'] = 'contains'; + $handler->display->display_options['filters']['title_1']['exposed'] = TRUE; + $handler->display->display_options['filters']['title_1']['expose']['operator'] = 'title_1_op'; + $handler->display->display_options['filters']['title_1']['expose']['limit_operators'] = array(); + $handler->display->display_options['filters']['title_1']['expose']['label'] = 'Profile'; + $handler->display->display_options['filters']['title_1']['expose']['identifier'] = 'title_1'; + $handler->display->display_options['filters']['title_1']['expose']['optional'] = TRUE; + $handler->display->display_options['filters']['title_1']['expose']['single'] = TRUE; + $handler->display->display_options['filters']['title_1']['case'] = 1; + + /* Display: Page */ + $handler = $view->new_display('page', 'Page', 'page_1'); + $handler->display->display_options['exposed_block'] = TRUE; + $handler->display->display_options['path'] = 'hosting/sites'; + + /* Display: Block: Platform */ + $handler = $view->new_display('block', 'Block: Platform', 'block_1'); + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Argument: Node: Nid */ + $handler->display->display_options['arguments']['nid']['id'] = 'nid'; + $handler->display->display_options['arguments']['nid']['table'] = 'node'; + $handler->display->display_options['arguments']['nid']['field'] = 'nid'; + $handler->display->display_options['arguments']['nid']['relationship'] = 'platform'; + $handler->display->display_options['arguments']['nid']['default_action'] = 'default'; + $handler->display->display_options['arguments']['nid']['style_plugin'] = 'default_summary'; + $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node'; + $handler->display->display_options['arguments']['nid']['default_argument_skip_url'] = 0; + $handler->display->display_options['arguments']['nid']['validate_type'] = 'node'; + $handler->display->display_options['arguments']['nid']['validate_options']['types'] = array( + 'platform' => 'platform', + ); + $handler->display->display_options['arguments']['nid']['validate_options']['access'] = 0; + $handler->display->display_options['arguments']['nid']['break_phrase'] = 0; + $handler->display->display_options['arguments']['nid']['not'] = 0; + $handler->display->display_options['defaults']['filters'] = FALSE; + /* Filter: Node: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'site' => 'site', + ); + $handler->display->display_options['filters']['type']['expose']['operator'] = FALSE; + /* Filter: Hosting Site: Status */ + $handler->display->display_options['filters']['status']['id'] = 'status'; + $handler->display->display_options['filters']['status']['table'] = 'hosting_site'; + $handler->display->display_options['filters']['status']['field'] = 'status'; + $handler->display->display_options['filters']['status']['operator'] = '!='; + $handler->display->display_options['filters']['status']['value']['value'] = '-2'; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter: Node: Published */ + $handler->display->display_options['filters']['status_1']['id'] = 'status_1'; + $handler->display->display_options['filters']['status_1']['table'] = 'node'; + $handler->display->display_options['filters']['status_1']['field'] = 'status'; + $handler->display->display_options['filters']['status_1']['value'] = '1'; + + /* Display: Block: Profile */ + $handler = $view->new_display('block', 'Block: Profile', 'block_2'); + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Argument: Node: Nid */ + $handler->display->display_options['arguments']['nid']['id'] = 'nid'; + $handler->display->display_options['arguments']['nid']['table'] = 'node'; + $handler->display->display_options['arguments']['nid']['field'] = 'nid'; + $handler->display->display_options['arguments']['nid']['relationship'] = 'profile'; + $handler->display->display_options['arguments']['nid']['default_action'] = 'default'; + $handler->display->display_options['arguments']['nid']['style_plugin'] = 'default_summary'; + $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node'; + $handler->display->display_options['arguments']['nid']['default_argument_skip_url'] = 0; + $handler->display->display_options['arguments']['nid']['validate_type'] = 'node'; + $handler->display->display_options['arguments']['nid']['validate_options']['types'] = array( + 'package' => 'package', + ); + $handler->display->display_options['arguments']['nid']['validate_options']['access'] = 0; + $handler->display->display_options['arguments']['nid']['break_phrase'] = 0; + $handler->display->display_options['arguments']['nid']['not'] = 0; + $handler->display->display_options['defaults']['filters'] = FALSE; + /* Filter: Node: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'site' => 'site', + ); + $handler->display->display_options['filters']['type']['expose']['operator'] = FALSE; + /* Filter: Hosting Site: Status */ + $handler->display->display_options['filters']['status']['id'] = 'status'; + $handler->display->display_options['filters']['status']['table'] = 'hosting_site'; + $handler->display->display_options['filters']['status']['field'] = 'status'; + $handler->display->display_options['filters']['status']['operator'] = '!='; + $handler->display->display_options['filters']['status']['value']['value'] = '-2'; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter: Node: Published */ + $handler->display->display_options['filters']['status_1']['id'] = 'status_1'; + $handler->display->display_options['filters']['status_1']['table'] = 'node'; + $handler->display->display_options['filters']['status_1']['field'] = 'status'; + $handler->display->display_options['filters']['status_1']['value'] = '1'; + + /* Display: Block: Client */ + $handler = $view->new_display('block', 'Block: Client', 'block_3'); + $handler->display->display_options['defaults']['arguments'] = FALSE; + /* Argument: Node: Nid */ + $handler->display->display_options['arguments']['nid']['id'] = 'nid'; + $handler->display->display_options['arguments']['nid']['table'] = 'node'; + $handler->display->display_options['arguments']['nid']['field'] = 'nid'; + $handler->display->display_options['arguments']['nid']['relationship'] = 'client'; + $handler->display->display_options['arguments']['nid']['default_action'] = 'default'; + $handler->display->display_options['arguments']['nid']['style_plugin'] = 'default_summary'; + $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node'; + $handler->display->display_options['arguments']['nid']['default_argument_skip_url'] = 0; + $handler->display->display_options['arguments']['nid']['validate_type'] = 'node'; + $handler->display->display_options['arguments']['nid']['validate_options']['types'] = array( + 'client' => 'client', + ); + $handler->display->display_options['arguments']['nid']['validate_options']['access'] = 0; + $handler->display->display_options['arguments']['nid']['break_phrase'] = 0; + $handler->display->display_options['arguments']['nid']['not'] = 0; + $handler->display->display_options['defaults']['filters'] = FALSE; + /* Filter: Node: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'site' => 'site', + ); + $handler->display->display_options['filters']['type']['expose']['operator'] = FALSE; + /* Filter: Hosting Site: Status */ + $handler->display->display_options['filters']['status']['id'] = 'status'; + $handler->display->display_options['filters']['status']['table'] = 'hosting_site'; + $handler->display->display_options['filters']['status']['field'] = 'status'; + $handler->display->display_options['filters']['status']['operator'] = '!='; + $handler->display->display_options['filters']['status']['value']['value'] = '-2'; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + /* Filter: Node: Published */ + $handler->display->display_options['filters']['status_1']['id'] = 'status_1'; + $handler->display->display_options['filters']['status_1']['table'] = 'node'; + $handler->display->display_options['filters']['status_1']['field'] = 'status'; + $handler->display->display_options['filters']['status_1']['value'] = '1'; + + $views[$view->name] = $view; + + return $views; +} diff --git a/modules/hosting/site/views_handler_field_hosting_site_status.inc b/modules/hosting/site/views_handler_field_hosting_site_status.inc index 13e56f8..04fdb2b 100644 --- a/modules/hosting/site/views_handler_field_hosting_site_status.inc +++ b/modules/hosting/site/views_handler_field_hosting_site_status.inc @@ -1,11 +1,24 @@ additional_fields = array('verified'); + } + function option_definition() { $options = parent::option_definition(); - $options['status_icon'] = array('default' => '0'); + $options['status_mode'] = array('default' => 'text'); return $options; } @@ -13,12 +26,17 @@ class views_handler_field_hosting_site_status extends views_handler_field { function options_form(&$form, &$form_state) { parent::options_form($form, $form_state); - $form['status_icon'] = array( + $form['status_mode'] = array( '#type' => 'radios', - '#title' => t('Display icon'), - '#options' => array('Text', 'Image', 'Both'), - '#default_value' => isset($this->options['status_icon']) ? $this->options['status_icon'] : '0', - '#description' => t("Display icons instead of status values.") + '#title' => t('Display mode'), + '#options' => array( + 'text' => t('Text'), + 'image' => t('Image'), + 'text_image' => t('Text & Image'), + 'class' => t('CSS class'), + ), + '#default_value' => isset($this->options['status_mode']) ? $this->options['status_mode'] : 'text', + '#description' => t("Display mode of status values.") ); } @@ -26,11 +44,15 @@ class views_handler_field_hosting_site_status extends views_handler_field { $value = $values->{$this->field_alias}; $output = _hosting_site_status($value); - if ($this->options['status_icon'] == 1) { - $output = ""; - } - elseif ($this->options['status_icon'] == 2) { - $output = "{$output}"; + switch ($this->options['status_mode']) { + case 'image': + return ""; + + case 'text_image': + return "{$output}"; + + case 'class': + return _hosting_site_list_class($value, $values->{$this->aliases['verified']}); } return $output; } diff --git a/modules/hosting/site/views_plugin_style_site_table.inc b/modules/hosting/site/views_plugin_style_site_table.inc deleted file mode 100644 index 930a876..0000000 --- a/modules/hosting/site/views_plugin_style_site_table.inc +++ /dev/null @@ -1,3 +0,0 @@ -set_display('block'); + $view->pre_execute(); + $return['markup'] = $view->render('block'); + drupal_json($return); exit(); } @@ -375,6 +379,16 @@ function hosting_add_task($nid, $type, $args = null, $status = HOSTING_TASK_QUEU return $task; } + +/** + * Callback for Node operations. + */ +function hosting_task_operation($nodes, $type) { + foreach ($nodes as $nid) { + hosting_add_task($nid, $type); + } +} + /** * Implementation of hook_form(). */ @@ -1197,7 +1211,26 @@ function hosting_task_status_class($status = null) { */ function hosting_task_views_api() { return array( - 'api' => 2, + 'api' => 3, 'path' => drupal_get_path('module', 'hosting_task'), ); } + +/** + * Implements hook_preprocess_views_view_table(). + */ +function hosting_task_preprocess_views_view_table(&$vars) { + $id = "{$vars['view']->name}-{$vars['view']->current_display}"; + + switch ($id) { + case 'hosting_task_list-block': + modalframe_parent_js(); + drupal_add_js(drupal_get_path('module','hosting_task') . '/hosting_task.js'); + + $settings['hostingTaskRefresh'] = array( + 'queueBlock' => 1 + ); + drupal_add_js($settings, 'setting'); + break; + } +} diff --git a/modules/hosting/task/hosting_task.views.inc b/modules/hosting/task/hosting_task.views.inc index 161be54..d898707 100644 --- a/modules/hosting/task/hosting_task.views.inc +++ b/modules/hosting/task/hosting_task.views.inc @@ -4,15 +4,17 @@ */ /** - * Implementation of hook_views_handlers() to register all of the basic handlers - * views uses. + * Implements hook_views_handlers(). */ function hosting_task_views_handlers() { return array( 'info' => array( 'path' => drupal_get_path('module', 'hosting_task'), - ), + ), 'handlers' => array( + 'hosting_task_handler_field_hosting_task_status' => array( + 'parent' => 'views_handler_field', + ), 'hosting_task_handler_filter_hosting_task_type' => array( 'parent' => 'views_handler_filter_in_operator', ), @@ -24,55 +26,58 @@ function hosting_task_views_handlers() { * Implements hook_views_data(). */ function hosting_task_views_data() { - $data['hosting_task'] = array( - 'table' => array( - 'group' => 'Hosting Task', - 'title' => 'Task', - 'join' => array( - 'node' => array( - 'left_field' => 'vid', - 'field' => 'vid', - ), + $data['hosting_task']['table'] = array( + 'group' => 'Hosting Task', + 'title' => 'Task', + 'join' => array( + 'node' => array( + 'left_field' => 'vid', + 'field' => 'vid', ), ), - 'task_type' => array( - 'title' => t('Type'), - 'help' => t(''), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), - 'filter' => array( - 'handler' => 'hosting_task_handler_filter_hosting_task_type', - ), + ); + + $data['hosting_task']['task_type'] = array( + 'title' => t('Type'), + 'help' => t(''), + 'field' => array( + 'handler' => 'views_handler_field', + 'click sortable' => TRUE, ), - 'rid' => array( - 'title' => t('Reference'), - 'help' => t(''), + 'filter' => array( + 'handler' => 'hosting_task_handler_filter_hosting_task_type', + ), + ); + + $data['hosting_task']['rid'] = array( + 'title' => t('Reference'), + 'help' => t(''), 'relationship' => array( - 'handler' => 'views_handler_relationship', - 'base' => 'node', - 'field' => 'nid', - 'label' => t('Reference'), - ), + 'handler' => 'views_handler_relationship', + 'base' => 'node', + 'field' => 'rid', + 'label' => t('Reference'), ), - 'task_status' => array( - 'title' => t('Status'), - 'help' => t('Current status of the task.'), - 'field' => array( - 'handler' => 'views_handler_field', - 'click sortable' => TRUE, - ), + ); + + $data['hosting_task']['task_status'] = array( + 'title' => t('Status'), + 'help' => t('Current status of the task.'), + 'field' => array( + 'handler' => 'hosting_task_handler_field_hosting_task_status', + 'click sortable' => TRUE, ), - 'executed' => array( - 'title' => t('Executed'), - 'help' => t('Date this task was executed.'), - 'field' => array( - 'handler' => 'views_handler_field_date', - 'click sortable' => TRUE, - ), + ); + + $data['hosting_task']['executed'] = array( + 'title' => t('Executed'), + 'help' => t('Date this task was executed.'), + 'field' => array( + 'handler' => 'views_handler_field_date', + 'click sortable' => TRUE, ), ); + return $data; } diff --git a/modules/hosting/task/hosting_task.views_default.inc b/modules/hosting/task/hosting_task.views_default.inc new file mode 100644 index 0000000..0747da9 --- /dev/null +++ b/modules/hosting/task/hosting_task.views_default.inc @@ -0,0 +1,348 @@ +name = 'hosting_task_list'; + $view->description = 'Display a list of tasks in aegir'; + $view->tag = 'hosting_task'; + $view->base_table = 'node'; + $view->human_name = 'Hosting tasks list'; + $view->core = 6; + $view->api_version = '3.0'; + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + + /* Display: Defaults */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->display->display_options['title'] = 'Queues'; + $handler->display->display_options['use_ajax'] = TRUE; + $handler->display->display_options['use_more'] = TRUE; + $handler->display->display_options['use_more_text'] = 'More tasks'; + $handler->display->display_options['access']['type'] = 'perm'; + $handler->display->display_options['access']['perm'] = 'access task logs'; + $handler->display->display_options['cache']['type'] = 'none'; + $handler->display->display_options['query']['type'] = 'views_query'; + $handler->display->display_options['exposed_form']['type'] = 'basic'; + $handler->display->display_options['pager']['type'] = 'some'; + $handler->display->display_options['pager']['options']['items_per_page'] = '5'; + $handler->display->display_options['pager']['options']['offset'] = '0'; + $handler->display->display_options['style_plugin'] = 'table'; + $handler->display->display_options['style_options']['row_class'] = '[task_status]'; + $handler->display->display_options['style_options']['columns'] = array( + 'task_status' => 'task_status', + 'title' => 'title', + 'view_node' => 'view_node', + ); + $handler->display->display_options['style_options']['default'] = '-1'; + $handler->display->display_options['style_options']['info'] = array( + 'task_status' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'title' => array( + 'sortable' => 0, + 'default_sort_order' => 'asc', + 'align' => '', + 'separator' => '', + ), + 'view_node' => array( + 'align' => '', + 'separator' => '', + ), + ); + $handler->display->display_options['style_options']['override'] = 1; + $handler->display->display_options['style_options']['sticky'] = 0; + $handler->display->display_options['style_options']['empty_table'] = 0; + /* Relationship: Hosting Task: Reference */ + $handler->display->display_options['relationships']['rid']['id'] = 'rid'; + $handler->display->display_options['relationships']['rid']['table'] = 'hosting_task'; + $handler->display->display_options['relationships']['rid']['field'] = 'rid'; + $handler->display->display_options['relationships']['rid']['required'] = 0; + /* Field: Hosting Task: Status */ + $handler->display->display_options['fields']['task_status']['id'] = 'task_status'; + $handler->display->display_options['fields']['task_status']['table'] = 'hosting_task'; + $handler->display->display_options['fields']['task_status']['field'] = 'task_status'; + $handler->display->display_options['fields']['task_status']['label'] = ''; + $handler->display->display_options['fields']['task_status']['exclude'] = TRUE; + $handler->display->display_options['fields']['task_status']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['external'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['task_status']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['task_status']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['trim'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['html'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['status_mode'] = 'class'; + $handler->display->display_options['fields']['task_status']['element_label_colon'] = 1; + $handler->display->display_options['fields']['task_status']['element_default_classes'] = 1; + $handler->display->display_options['fields']['task_status']['hide_empty'] = 0; + $handler->display->display_options['fields']['task_status']['empty_zero'] = 0; + $handler->display->display_options['fields']['task_status']['hide_alter_empty'] = 1; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title']['id'] = 'title'; + $handler->display->display_options['fields']['title']['table'] = 'node'; + $handler->display->display_options['fields']['title']['field'] = 'title'; + $handler->display->display_options['fields']['title']['relationship'] = 'rid'; + $handler->display->display_options['fields']['title']['exclude'] = TRUE; + $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title']['alter']['external'] = 0; + $handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['title']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title']['alter']['html'] = 0; + $handler->display->display_options['fields']['title']['element_label_colon'] = 1; + $handler->display->display_options['fields']['title']['element_default_classes'] = 1; + $handler->display->display_options['fields']['title']['hide_empty'] = 0; + $handler->display->display_options['fields']['title']['empty_zero'] = 0; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title']['link_to_node'] = 1; + /* Field: Hosting Task: Type */ + $handler->display->display_options['fields']['task_type']['id'] = 'task_type'; + $handler->display->display_options['fields']['task_type']['table'] = 'hosting_task'; + $handler->display->display_options['fields']['task_type']['field'] = 'task_type'; + $handler->display->display_options['fields']['task_type']['label'] = 'Task'; + $handler->display->display_options['fields']['task_type']['alter']['alter_text'] = 1; + $handler->display->display_options['fields']['task_type']['alter']['text'] = '[task_type]: [title]'; + $handler->display->display_options['fields']['task_type']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['external'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['task_type']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['task_type']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['trim'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['html'] = 0; + $handler->display->display_options['fields']['task_type']['element_class'] = 'hosting-status'; + $handler->display->display_options['fields']['task_type']['element_label_colon'] = 1; + $handler->display->display_options['fields']['task_type']['element_default_classes'] = 1; + $handler->display->display_options['fields']['task_type']['hide_empty'] = 0; + $handler->display->display_options['fields']['task_type']['empty_zero'] = 0; + $handler->display->display_options['fields']['task_type']['hide_alter_empty'] = 1; + /* Field: Node: Link */ + $handler->display->display_options['fields']['view_node']['id'] = 'view_node'; + $handler->display->display_options['fields']['view_node']['table'] = 'node'; + $handler->display->display_options['fields']['view_node']['field'] = 'view_node'; + $handler->display->display_options['fields']['view_node']['label'] = 'Actions'; + $handler->display->display_options['fields']['view_node']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['make_link'] = 1; + $handler->display->display_options['fields']['view_node']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['external'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['link_class'] = 'hosting-button-enabled hosting-button-log hosting-button-dialog'; + $handler->display->display_options['fields']['view_node']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['view_node']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['view_node']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['trim'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['html'] = 0; + $handler->display->display_options['fields']['view_node']['element_class'] = 'hosting-actions'; + $handler->display->display_options['fields']['view_node']['element_label_colon'] = 1; + $handler->display->display_options['fields']['view_node']['element_default_classes'] = 1; + $handler->display->display_options['fields']['view_node']['hide_empty'] = 0; + $handler->display->display_options['fields']['view_node']['empty_zero'] = 0; + $handler->display->display_options['fields']['view_node']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['view_node']['text'] = 'View'; + /* Sort criterion: Node: Updated date */ + $handler->display->display_options['sorts']['changed']['id'] = 'changed'; + $handler->display->display_options['sorts']['changed']['table'] = 'node'; + $handler->display->display_options['sorts']['changed']['field'] = 'changed'; + $handler->display->display_options['sorts']['changed']['order'] = 'DESC'; + /* Filter: Node: Type */ + $handler->display->display_options['filters']['type']['id'] = 'type'; + $handler->display->display_options['filters']['type']['table'] = 'node'; + $handler->display->display_options['filters']['type']['field'] = 'type'; + $handler->display->display_options['filters']['type']['value'] = array( + 'task' => 'task', + ); + $handler->display->display_options['filters']['type']['expose']['operator'] = FALSE; + /* Filter: Node: Published */ + $handler->display->display_options['filters']['status']['id'] = 'status'; + $handler->display->display_options['filters']['status']['table'] = 'node'; + $handler->display->display_options['filters']['status']['field'] = 'status'; + $handler->display->display_options['filters']['status']['value'] = '1'; + $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE; + + /* Display: Block */ + $handler = $view->new_display('block', 'Block', 'block'); + + /* Display: Page */ + $handler = $view->new_display('page', 'Page', 'page_1'); + $handler->display->display_options['defaults']['pager'] = FALSE; + $handler->display->display_options['pager']['type'] = 'full'; + $handler->display->display_options['pager']['options']['items_per_page'] = '25'; + $handler->display->display_options['pager']['options']['offset'] = '0'; + $handler->display->display_options['pager']['options']['id'] = '0'; + $handler->display->display_options['pager']['options']['expose']['items_per_page_options_all'] = 0; + $handler->display->display_options['defaults']['fields'] = FALSE; + /* Field: Hosting Task: Status */ + $handler->display->display_options['fields']['task_status']['id'] = 'task_status'; + $handler->display->display_options['fields']['task_status']['table'] = 'hosting_task'; + $handler->display->display_options['fields']['task_status']['field'] = 'task_status'; + $handler->display->display_options['fields']['task_status']['label'] = ''; + $handler->display->display_options['fields']['task_status']['exclude'] = TRUE; + $handler->display->display_options['fields']['task_status']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['external'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['task_status']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['task_status']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['trim'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['html'] = 0; + $handler->display->display_options['fields']['task_status']['alter']['status_mode'] = 'class'; + $handler->display->display_options['fields']['task_status']['element_label_colon'] = 1; + $handler->display->display_options['fields']['task_status']['element_default_classes'] = 1; + $handler->display->display_options['fields']['task_status']['hide_empty'] = 0; + $handler->display->display_options['fields']['task_status']['empty_zero'] = 0; + $handler->display->display_options['fields']['task_status']['hide_alter_empty'] = 1; + /* Field: Node: Title */ + $handler->display->display_options['fields']['title']['id'] = 'title'; + $handler->display->display_options['fields']['title']['table'] = 'node'; + $handler->display->display_options['fields']['title']['field'] = 'title'; + $handler->display->display_options['fields']['title']['relationship'] = 'rid'; + $handler->display->display_options['fields']['title']['exclude'] = TRUE; + $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['title']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['title']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['title']['alter']['external'] = 0; + $handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['title']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['title']['alter']['trim'] = 0; + $handler->display->display_options['fields']['title']['alter']['html'] = 0; + $handler->display->display_options['fields']['title']['element_class'] = 'hosting-status'; + $handler->display->display_options['fields']['title']['element_label_colon'] = 1; + $handler->display->display_options['fields']['title']['element_default_classes'] = 1; + $handler->display->display_options['fields']['title']['hide_empty'] = 0; + $handler->display->display_options['fields']['title']['empty_zero'] = 0; + $handler->display->display_options['fields']['title']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['title']['link_to_node'] = 1; + /* Field: Hosting Task: Type */ + $handler->display->display_options['fields']['task_type']['id'] = 'task_type'; + $handler->display->display_options['fields']['task_type']['table'] = 'hosting_task'; + $handler->display->display_options['fields']['task_type']['field'] = 'task_type'; + $handler->display->display_options['fields']['task_type']['label'] = 'Task'; + $handler->display->display_options['fields']['task_type']['alter']['alter_text'] = 1; + $handler->display->display_options['fields']['task_type']['alter']['text'] = '[task_type]: [title]'; + $handler->display->display_options['fields']['task_type']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['external'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['task_type']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['task_type']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['trim'] = 0; + $handler->display->display_options['fields']['task_type']['alter']['html'] = 0; + $handler->display->display_options['fields']['task_type']['element_class'] = 'hosting-status'; + $handler->display->display_options['fields']['task_type']['element_label_colon'] = 1; + $handler->display->display_options['fields']['task_type']['element_default_classes'] = 1; + $handler->display->display_options['fields']['task_type']['hide_empty'] = 0; + $handler->display->display_options['fields']['task_type']['empty_zero'] = 0; + $handler->display->display_options['fields']['task_type']['hide_alter_empty'] = 1; + /* Field: Node: Post date */ + $handler->display->display_options['fields']['created']['id'] = 'created'; + $handler->display->display_options['fields']['created']['table'] = 'node'; + $handler->display->display_options['fields']['created']['field'] = 'created'; + $handler->display->display_options['fields']['created']['label'] = 'Created'; + $handler->display->display_options['fields']['created']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['created']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['created']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['created']['alter']['external'] = 0; + $handler->display->display_options['fields']['created']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['created']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['created']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['created']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['created']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['created']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['created']['alter']['trim'] = 0; + $handler->display->display_options['fields']['created']['alter']['html'] = 0; + $handler->display->display_options['fields']['created']['element_label_colon'] = 1; + $handler->display->display_options['fields']['created']['element_default_classes'] = 1; + $handler->display->display_options['fields']['created']['hide_empty'] = 0; + $handler->display->display_options['fields']['created']['empty_zero'] = 0; + $handler->display->display_options['fields']['created']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['created']['date_format'] = 'time ago'; + /* Field: Hosting Task: Executed */ + $handler->display->display_options['fields']['executed']['id'] = 'executed'; + $handler->display->display_options['fields']['executed']['table'] = 'hosting_task'; + $handler->display->display_options['fields']['executed']['field'] = 'executed'; + $handler->display->display_options['fields']['executed']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['executed']['alter']['make_link'] = 0; + $handler->display->display_options['fields']['executed']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['executed']['alter']['external'] = 0; + $handler->display->display_options['fields']['executed']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['executed']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['executed']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['executed']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['executed']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['executed']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['executed']['alter']['trim'] = 0; + $handler->display->display_options['fields']['executed']['alter']['html'] = 0; + $handler->display->display_options['fields']['executed']['element_label_colon'] = 1; + $handler->display->display_options['fields']['executed']['element_default_classes'] = 1; + $handler->display->display_options['fields']['executed']['hide_empty'] = 0; + $handler->display->display_options['fields']['executed']['empty_zero'] = 0; + $handler->display->display_options['fields']['executed']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['executed']['date_format'] = 'time ago'; + /* Field: Node: Link */ + $handler->display->display_options['fields']['view_node']['id'] = 'view_node'; + $handler->display->display_options['fields']['view_node']['table'] = 'node'; + $handler->display->display_options['fields']['view_node']['field'] = 'view_node'; + $handler->display->display_options['fields']['view_node']['label'] = 'Actions'; + $handler->display->display_options['fields']['view_node']['alter']['alter_text'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['make_link'] = 1; + $handler->display->display_options['fields']['view_node']['alter']['absolute'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['external'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['replace_spaces'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['trim_whitespace'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['link_class'] = 'hosting-button-enabled hosting-button-log hosting-button-dialog'; + $handler->display->display_options['fields']['view_node']['alter']['nl2br'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['word_boundary'] = 1; + $handler->display->display_options['fields']['view_node']['alter']['ellipsis'] = 1; + $handler->display->display_options['fields']['view_node']['alter']['strip_tags'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['trim'] = 0; + $handler->display->display_options['fields']['view_node']['alter']['html'] = 0; + $handler->display->display_options['fields']['view_node']['element_class'] = 'hosting-actions'; + $handler->display->display_options['fields']['view_node']['element_label_colon'] = 1; + $handler->display->display_options['fields']['view_node']['element_default_classes'] = 1; + $handler->display->display_options['fields']['view_node']['hide_empty'] = 0; + $handler->display->display_options['fields']['view_node']['empty_zero'] = 0; + $handler->display->display_options['fields']['view_node']['hide_alter_empty'] = 1; + $handler->display->display_options['fields']['view_node']['text'] = 'View'; + $handler->display->display_options['path'] = 'hosting/queues/tasks'; + + $views[$view->name] = $view; + + return $views; +} diff --git a/modules/hosting/task/hosting_task_handler_field_hosting_task_status.inc b/modules/hosting/task/hosting_task_handler_field_hosting_task_status.inc new file mode 100644 index 0000000..090e067 --- /dev/null +++ b/modules/hosting/task/hosting_task_handler_field_hosting_task_status.inc @@ -0,0 +1,47 @@ + 'raw'); + + return $options; + } + + function options_form(&$form, &$form_state) { + parent::options_form($form, $form_state); + + if ($this->allow_advanced_render()) { + $form['alter']['status_mode'] = array( + '#type' => 'radios', + '#title' => t('Display mode'), + '#options' => array( + 'raw' => t('Raw value'), + 'text' => t('Text value'), + 'class' => t('CSS class'), + ), + '#default_value' => $this->options['alter']['status_mode'], + '#description' => t(''), + ); + } + } + + function render($values) { + $value = $values->{$this->field_alias}; + switch ($this->options['alter']['status_mode']) { + case 'text': + return _hosting_parse_error_code($value); + + case 'class': + return hosting_task_status_class($value); + } + return $value; + } +}