diff --git a/ .patch b/ .patch new file mode 100644 index 0000000..bb3daee --- /dev/null +++ b/ .patch @@ -0,0 +1,72 @@ +diff --git a/views/webform.views.inc b/views/webform.views.inc +index eebcb8d..b2bb1af 100644 +--- a/views/webform.views.inc ++++ b/views/webform.views.inc +@@ -6,6 +6,37 @@ + */ + + function webform_views_data() { ++ ++ /** ++ * Webform table definitions. ++ */ ++ $data['webform']['table']['group'] = t('Webform'); ++ $data['webform']['table']['join'] = array( ++ 'node' => array( ++ 'left_field' => 'nid', ++ 'field' => 'nid', ++ 'type' => 'INNER', ++ ), ++ ); ++ ++ // status ++ $data['webform']['status'] = array( ++ 'title' => t('Status'), ++ 'help' => t('The open or closed status of a webform.'), ++ 'field' => array( ++ 'handler' => 'webform_handler_field_webform_status', ++ 'click sortable' => TRUE, ++ ), ++ 'filter' => array( ++ 'label' => t('Status'), ++ 'handler' => 'webform_handler_filter_webform_status', ++ 'type' => 'open-closed', ++ ), ++ 'sort' => array( ++ 'handler' => 'views_handler_sort', ++ ), ++ ); ++ + /** + * Submissions table definitions. + */ +@@ -260,6 +291,14 @@ function webform_views_handlers() { + 'parent' => 'views_handler_filter_in_operator', + 'file' => 'webform_handler_filter_is_draft.inc', + ), ++ 'webform_handler_field_webform_status' => array( ++ 'parent' => 'views_handler_field_boolean', ++ 'file' => 'webform_handler_field_webform_status.inc', ++ ), ++ 'webform_handler_filter_webform_status' => array( ++ 'parent' => 'views_handler_filter_boolean_operator', ++ 'file' => 'webform_handler_filter_webform_status.inc', ++ ), + ), + ); + } +\ No newline at end of file +diff --git a/webform.info b/webform.info +index 149b887..a47535b 100644 +--- a/webform.info ++++ b/webform.info +@@ -14,7 +14,9 @@ files[] = views/webform_handler_field_node_link_edit.inc + files[] = views/webform_handler_field_node_link_results.inc + files[] = views/webform_handler_field_submission_count.inc + files[] = views/webform_handler_field_submission_link.inc ++files[] = views/webform_handler_field_webform_status.inc + files[] = views/webform_handler_filter_is_draft.inc ++files[] = views/webform_handler_filter_webform_status.inc + files[] = views/webform.views.inc + + files[] = tests/components.test diff --git a/views/webform.views.inc b/views/webform.views.inc index eebcb8d..dab3fe3 100644 --- a/views/webform.views.inc +++ b/views/webform.views.inc @@ -6,6 +6,37 @@ */ function webform_views_data() { + + /** + * Webform table definitions. + */ + $data['webform']['table']['group'] = t('Webform'); + $data['webform']['table']['join'] = array( + 'node' => array( + 'left_field' => 'nid', + 'field' => 'nid', + 'type' => 'INNER', + ), + ); + + // status + $data['webform']['status'] = array( + 'title' => t('Status'), + 'help' => t('The open or closed status of a webform.'), + 'field' => array( + 'handler' => 'webform_handler_field_webform_status', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'label' => t('Status'), + 'handler' => 'webform_handler_filter_webform_status', + 'type' => 'open-closed', + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + ); + /** * Submissions table definitions. */ @@ -166,6 +197,7 @@ ); // Submission count (node). $data['node']['webform_submission_count_node'] = array( + 'group' => t('Webform'), 'field' => array( 'title' => t('Webform submission count'), 'help' => t('The number of webform submissions on this node.'), @@ -199,6 +231,7 @@ // Link for editing the webform. $data['node']['webform_edit'] = array( + 'group' => t('Webform'), 'field' => array( 'title' => t('Webform edit link'), 'help' => t('Provide a simple link to edit the webform components and configuration.'), @@ -208,6 +241,7 @@ // Link for viewing webform results. $data['node']['webform_results'] = array( + 'group' => t('Webform'), 'field' => array( 'title' => t('Webform results link'), 'help' => t('Provide a simple link to view the results of a webform.'), @@ -217,6 +251,7 @@ // Webform form content. $data['node']['webform_form_body'] = array( + 'group' => t('Webform'), 'field' => array( 'title' => t('Webform form body'), 'help' => t('The Webform form body display for this node.'), @@ -260,6 +295,14 @@ 'parent' => 'views_handler_filter_in_operator', 'file' => 'webform_handler_filter_is_draft.inc', ), + 'webform_handler_field_webform_status' => array( + 'parent' => 'views_handler_field_boolean', + 'file' => 'webform_handler_field_webform_status.inc', + ), + 'webform_handler_filter_webform_status' => array( + 'parent' => 'views_handler_filter_boolean_operator', + 'file' => 'webform_handler_filter_webform_status.inc', + ), ), ); } \ No newline at end of file diff --git a/views/webform_handler_field_webform_status.inc b/views/webform_handler_field_webform_status.inc new file mode 100644 index 0000000..cae02cd --- /dev/null +++ b/views/webform_handler_field_webform_status.inc @@ -0,0 +1,38 @@ + t('Open/Closed')) + $form['type']['#options']; + } + + function option_definition() { + $options = parent::option_definition(); + $options['type']['default'] = 'open-closed'; + return $options; + } + + function render($values) { + $value = $values->{$this->field_alias}; + if (!empty($this->options['not'])) { + $value = !$value; + } + switch ($this->options['type']) { + case 'yes-no': + return $value ? t('Yes') : t('No'); + case 'true-false': + return $value ? t('True') : t('False'); + case 'on-off': + return $value ? t('On') : t('Off'); + case 'open-closed': + default: + return $value ? t('Open') : t('Closed'); + } + } +} + diff --git a/views/webform_handler_filter_webform_status.inc b/views/webform_handler_filter_webform_status.inc new file mode 100644 index 0000000..429fc24 --- /dev/null +++ b/views/webform_handler_filter_webform_status.inc @@ -0,0 +1,15 @@ +value_options)) { + $this->value_title = t('Status'); + $options = array('1' => t('Open'), '0' => t('Closed')); + $this->value_options = $options; + } + } +} diff --git a/webform.info b/webform.info index 149b887..a47535b 100644 --- a/webform.info +++ b/webform.info @@ -14,7 +14,9 @@ files[] = views/webform_handler_field_node_link_results.inc files[] = views/webform_handler_field_submission_count.inc files[] = views/webform_handler_field_submission_link.inc +files[] = views/webform_handler_field_webform_status.inc files[] = views/webform_handler_filter_is_draft.inc +files[] = views/webform_handler_filter_webform_status.inc files[] = views/webform.views.inc files[] = tests/components.test