diff --git a/sites/all/modules/unl/images/feedback_toolbar.png b/sites/all/modules/unl/images/feedback_toolbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..80023e8f1a0c3a2749838f3cdbd547b46c6ccee8
Binary files /dev/null and b/sites/all/modules/unl/images/feedback_toolbar.png differ
diff --git a/sites/all/modules/unl/technical_feedback.php b/sites/all/modules/unl/technical_feedback.php
index e68b778443a72922bc1ddad3d9621b2e5f9a0348..070a403635252216840597d81d4bb8fe03239699 100644
--- a/sites/all/modules/unl/technical_feedback.php
+++ b/sites/all/modules/unl/technical_feedback.php
@@ -1,116 +1,82 @@
<?php
-function technical_feedback(){
- echo drupal_render(drupal_get_form('technical_feedback_form'));
-}
+function unl_technical_feedback($form, &$form_state) {
+ $form['root'] = array(
+ '#title' => 'UNLcms Technical Feeedback Form',
+ );
+
+ $form['root']['cas_username'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Username'),
+ '#value' => ($GLOBALS['user']->name),
+ '#disabled' => 'disabled',
+ );
+
+ $form['root']['email'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Email'),
+ '#value' => ($GLOBALS['user']->mail),
+ '#disabled' => 'disabled',
+ );
+
+ $form['root']['browser_useragent'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Browser UserAgent'),
+ '#value' => $_SERVER['HTTP_USER_AGENT'],
+ '#disabled' => 'disabled',
+ '#size' => 120,
+ );
+
+ $form['root']['site'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Site'),
+ '#value' => $GLOBALS['base_root'] . (isset($GLOBALS['base_path']) ? $GLOBALS['base_path'] : ''),
+ '#disabled' => 'disabled',
+ '#size' => 120,
+ );
+
+ $form['root']['current_url'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Page address in question'),
+ '#value' => $_SERVER['HTTP_REFERER'],
+ '#size' => 120,
+ );
-function technical_feedback_form($form, &$form_state) {
+ $form['root']['technical_feedback'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Please give your feedback or describe the issue you are having'),
+ '#required' => TRUE,
+ );
- $form['root'] = array(
- '#type' => 'fieldset',
- '#title' => 'Technical Feeedback Form',
- );
-
- $form['root']['browser_useragent'] = array(
- '#type' => 'textfield',
- '#title' => t('Browser UserAgent (textfield disabled)'),
- '#value' => $_SERVER['HTTP_USER_AGENT'],
- '#disabled' => 'disabled',
- );
-
- $form['root']['current_url'] = array(
- '#type' => 'textfield',
- '#title' => t('Current url (text disabled)'),
- '#value' => $_SERVER['HTTP_REFERER'],
- '#disabled' => 'disabled'
- );
-
- $form['root']['cas_username'] = array(
- '#type' => 'textfield',
- '#title' => t('CAS Name (textfield disabled'),
- '#value' => ($GLOBALS['user']->name),
- '#disabled' => 'disabled',
-
- );
-
- $form['root']['email'] = array(
- '#type' => 'textfield',
- '#title' => t('Email (textfield disabled)'),
- '#value' => ($GLOBALS['user']->mail),
- '#disabled' => 'disabled'
-
- );
-
- $form['root']['full_name'] = array(
- '#type' => 'textfield',
- '#title' => t('Your first, last name'),
- '#required' => TRUE,
- );
-
- $form['root']['technical_feedback'] = array(
- '#type' => 'textarea',
- '#title' => t('Please give your feedback or describe the issue you are having'),
- '#required' => TRUE,
- );
-
- $form['root']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Submit'),
- );
-
-
- return $form;
+ $form['root']['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Submit'),
+ );
+
+ return $form;
}
-function technical_feedback_form_submit($form, &$form_state){
- $browser_useragent = $form_state['values']['browser_useragent'];
- $current_url = $form_state['values']['current_url'];
- $cas_username = $form_state['values']['cas_username'];
- $email = $form_state['values']['email'];
- $full_name = $form_state['values']['full_name'];
- $technical_feedback = $form_state['values']['technical_feedback'];
-
- $to = "unlcms-dev@listserv.unl.edu";
- $from = $email;
- $subject = "UNLcms Technical Feedback";
-
- $message = '
- <html>
- <body>
- <table style="border:1px solid #bbb;cellpadding="10";">
- <tr style="background-color: #eee;">
- <td>Browser UserAgent</td><td>'.$browser_useragent.'</td>
- </tr>
- <tr>
- <td>CAS Username</td><td>'.$cas_username.'</td>
- </tr>
- <tr style="background-color: #eee;">
- <td>Full Name</td><td>'.$full_name.'</td>
- </tr>
- <tr>
- <td>Email</td><td>'.$email.'</td>
- </tr>
- <tr style="background-color: #eee;">
- <td>Page URL</td><td>'.$current_url.'</td>
- </tr>
- <tr>
- <td>Technical Feedback/Issue</td><td>'.$technical_feedback.'</td>
- </tr>
- </table>
- </body>
- </html>
- ';
-
- $technical_feedback_email_headers = 'From: ' . $email . "\r\n";
+function unl_technical_feedback_submit($form, &$form_state) {
+ $to = "unlcms-dev@listserv.unl.edu";
+ $from = $form_state['values']['email'];
+ $subject = "UNLcms technical feedback from " . $form_state['values']['cas_username'];
+
+ $message = '
+Username: '.$form_state['values']['cas_username'].'
+Email: '.$form_state['values']['email'].'
+UserAgent: '.$form_state['values']['browser_useragent'].'
+Site: '.$form_state['values']['site'].'
+Page: '.$form_state['input']['current_url'].'
+Comment:
+'.$form_state['values']['technical_feedback'];
+
+ $headers = 'From: ' . $form_state['values']['email'] . "\n";
+ $headers .= "MIME-Version: 1.0\n";
+ $headers .= "Content-type:text/plain; charset=UTF-8\n";
+
+ mail($to, $subject, $message, $headers);
+
+ drupal_set_message(t('Your feedback has been emailed to the UNLcms dev team. Thank you!'));
- $technical_feedback_email_headers .= "MIME-Version: 1.0\r\n";
- $technical_feedback_email_headers .= "Content-type:text/html; charset=ISO-8859-1\r\n";
-
-
- mail($to, $subject, $message, $technical_feedback_email_headers);
-
-
- drupal_set_message(t('Your feedback has been emailed to the UNLcms dev team. Thank you!'));
- $form_state['redirect'] = $current_url;
return;
}
diff --git a/sites/all/modules/unl/unl.module b/sites/all/modules/unl/unl.module
index ea8068cc49e2c5c391921104a99fee38488d1c45..35bd173562db576b552d246715885cea92e1317b 100644
--- a/sites/all/modules/unl/unl.module
+++ b/sites/all/modules/unl/unl.module
@@ -96,6 +96,30 @@ function unl_context_page_reaction() {
}
}
+/**
+ * Implementation of hook_page_alter().
+ */
+function unl_page_alter(&$page) {
+ // Add UNLcms technical feedback link to toolbar
+ if (isset($page['page_top']['toolbar'])) {
+ $page['page_top']['toolbar']['#pre_render'][] = 'unl_toolbar_add_links';
+ }
+}
+
+/**
+ * Custom function called from unl_page_alter() to add links to the toolbar.
+ */
+function unl_toolbar_add_links($toolbar) {
+ $link['html'] = TRUE;
+ $icon = '<span style="background-image:url('. base_path() . 'sites/all/modules/unl/images/feedback_toolbar.png); width:20px; height:20px; text-indent:-9999px; display:block;">Feedback</span>';
+ $link['title'] = t("!icon", array('!icon' => $icon));
+ $link['attributes']['title'] = t('Submit technical feedback/issues/problems about the UNLcms system');
+ $link['href'] = 'user/unl/technical_feedback';
+
+ $toolbar['toolbar_user']['#links'] = array_merge(array('unl' => $link), $toolbar['toolbar_user']['#links']);
+ return $toolbar;
+}
+
/**
* Implementation of hook_page_build().
*/
@@ -345,8 +369,6 @@ function unl_preprocess_page(&$vars) {
* Implementation of hook_menu().
*/
function unl_menu() {
- global $user;
-
$items = array();
// Adds UNL Migration Tool to the Content menu for admin
@@ -358,23 +380,25 @@ function unl_menu() {
'file' => 'unl_whoami.php',
);
- // Returns html technical feedback form
+ // Returns UNLcms technical feedback form
$items['user/unl/technical_feedback'] = array(
- 'title' => 'Technical Feedback',
- 'description' => 'Returns a form to fill out to give technical feedback',
- 'access callback' => TRUE,
- 'page callback' => 'technical_feedback',
- 'file' => 'technical_feedback.php'
+ 'title' => 'UNLcms Technical Feeedback Form',
+ 'description' => 'Submit technical feedback/issues/problems about the UNLcms system.',
+ 'access callback' => 'user_is_logged_in',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('unl_technical_feedback'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'technical_feedback.php',
);
$items['admin/content/unl/migration'] = array(
- 'title' => 'UNL Migration Tool',
- 'description' => 'Migrate a static UNL template page into drupal',
+ 'title' => 'UNL Migration Tool',
+ 'description' => 'Migrate a static UNL template page into Drupal.',
'access arguments' => array('unl migration'),
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('unl_migration'),
- 'type' => MENU_LOCAL_TASK,
- 'file' => 'unl_migration.php',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('unl_migration'),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'unl_migration.php',
);
$items['admin/content/unl/liferay_migration'] = array(
@@ -388,13 +412,13 @@ function unl_menu() {
);
$items['admin/content/unl/reset'] = array(
- 'title' => 'Reset Site',
- 'description' => 'Remove all nodes, menu items, etc from this site.',
- 'access callback' => 'unl_user_is_administrator',
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('unl_reset_site'),
- 'type' => MENU_LOCAL_TASK,
- 'file' => 'includes/reset_site.php',
+ 'title' => 'Reset Site',
+ 'description' => 'Remove all nodes, menu items, etc from this site.',
+ 'access callback' => 'unl_user_is_administrator',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('unl_reset_site'),
+ 'type' => MENU_LOCAL_TASK,
+ 'file' => 'includes/reset_site.php',
);
// Redirect the Appearance link away from admin/appearance for users who can't Administer themes but can Change Theme Settings
@@ -410,20 +434,20 @@ function unl_menu() {
// Hello world type page for performance/uptime monitoring
$items['_status'] = array(
- 'title' => 'Still Alive',
- 'page callback' => 'unl_still_alive',
+ 'title' => 'Still Alive',
+ 'page callback' => 'unl_still_alive',
'access callback' => TRUE,
);
- // UNL
+ // UNL Settings
$items['admin/config/system/unl'] = array(
- 'title' => 'UNL',
- 'description' => 'Configure UNL System Settings',
- 'access callback' => 'unl_user_is_administrator',
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('unl_config'),
- 'file' => 'includes/unl.admin.inc',
- 'weight' => 1,
+ 'title' => 'UNL',
+ 'description' => 'Configure UNL System Settings',
+ 'access callback' => 'unl_user_is_administrator',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('unl_config'),
+ 'file' => 'includes/unl.admin.inc',
+ 'weight' => 1,
);
if (module_exists('imce')) {
@@ -431,7 +455,7 @@ function unl_menu() {
$items['admin/content/imce-file-browser'] = array(
'title' => 'File browser',
'page callback' => 'imce_user_page',
- 'page arguments' => array($user->uid),
+ 'page arguments' => array($GLOBALS['user']->uid),
'access callback' => '_unl_imce_file_browser_access',
'file' => 'inc/imce.page.inc',
'file path' => drupal_get_path('module', 'imce'),
@@ -443,7 +467,7 @@ function unl_menu() {
'title' => 'File upload',
'description' => 'Upload files from your computer, such as PDF documents, to the file system.',
'page callback' => 'imce_user_page',
- 'page arguments' => array($user->uid),
+ 'page arguments' => array($GLOBALS['user']->uid),
'access callback' => '_unl_imce_file_browser_access',
'file' => 'inc/imce.page.inc',
'file path' => drupal_get_path('module', 'imce'),
diff --git a/sites/all/themes/unl_wdn/theme.js b/sites/all/themes/unl_wdn/theme.js
index fe3fad35ba48ef47a26402abfe8811f0dabb330a..a11c4fe26c02bc20b6f9aaa83e5f54921aba8e0c 100644
--- a/sites/all/themes/unl_wdn/theme.js
+++ b/sites/all/themes/unl_wdn/theme.js
@@ -1,53 +1,25 @@
WDN.loadJQuery(function () {
- // if there's no base tag on the page, we don't have to worry about this
- if (WDN.jQuery('base').length == 0) {
- return;
- }
- WDN.jQuery('a').click(function(e) {
- // if this link has a hash tag
- if (!this.href.split('#')[1]) {
- return;
- }
- // and it is specifically for this page
- if (this.getAttribute('href').split('#')[0] != '') {
- return;
- }
- // and something else hasn't already customized the link
- if (e.isDefaultPrevented()) {
- return;
- }
-
- // fix clicking the link so that it ignores the base tag
- e.preventDefault();
- document.location.hash = this.href.split('#')[1];
- });
-
- // checking using ajax if user is logged in. then the technical feedback div is shown
- var userLoggedIn = '';
-
- WDN.jQuery.ajax({
- url: "user/unl/whoami",
- dataType: "text",
- success: function(data) {
- userLoggedIn = String(data);
-
- if (userLoggedIn =='user_loggedin') {
- var technicalFeedbackHtml = WDN.jQuery.ajax({
- url: "user/unl/technical_feedback",
- dataType: "html",
- success: function(data) {
-
- var technicalFeedback = '<a id="technicalFeedbackLink">Found a bug? Report any issue with the cms (like when editing docs, uploading etc.) or give feedback</a>';
- technicalFeedback += '<div id="technicalFeedbackForm"></div>';
-
- WDN.jQuery("#footer>div:nth-child(2)").append(technicalFeedback);
-
- WDN.jQuery("#technicalFeedbackLink").click(function() {
- WDN.jQuery("#technicalFeedbackForm").append(data);
- });
- }
- });
- } // end of if userLoggedIn == 'user_loggedin'
- } // end of success: function(data)
- });
+ // if there's no base tag on the page, we don't have to worry about this
+ if (WDN.jQuery('base').length == 0) {
+ return;
+ }
+ WDN.jQuery('a').click(function(e) {
+ // if this link has a hash tag
+ if (!this.href.split('#')[1]) {
+ return;
+ }
+ // and it is specifically for this page
+ if (this.getAttribute('href').split('#')[0] != '') {
+ return;
+ }
+ // and something else hasn't already customized the link
+ if (e.isDefaultPrevented()) {
+ return;
+ }
+
+ // fix clicking the link so that it ignores the base tag
+ e.preventDefault();
+ document.location.hash = this.href.split('#')[1];
+ });
+
});
\ No newline at end of file