Skip to content
Snippets Groups Projects
Commit 9ee9c49e authored by Eric Rasmussen's avatar Eric Rasmussen
Browse files

[gh-312] Merging test into staging -c1538

git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x/staging@1539 20a16fea-79d4-4915-8869-1ea9d5ebf173
parent 125e2467
No related branches found
No related tags found
No related merge requests found
sites/all/modules/unl/images/feedback_toolbar.png

426 B

<?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;
}
......@@ -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().
*/
......@@ -329,8 +353,6 @@ function unl_preprocess_page(&$vars) {
* Implementation of hook_menu().
*/
function unl_menu() {
global $user;
$items = array();
// Returns confirmation 'user_loggedin' if user is logged into the system
......@@ -341,34 +363,36 @@ 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',
);
// Adds UNL Migration Tool to the Content menu for admin
$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/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
......@@ -384,20 +408,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')) {
......@@ -405,7 +429,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'),
......@@ -417,7 +441,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'),
......
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment