Better integration of bootstrap tour tooltips
This commit is contained in:
parent
e5f2b64d98
commit
f036f960ca
6 changed files with 153 additions and 149 deletions
|
@ -162,65 +162,65 @@ function zuitedesk_preprocess_page(&$vars, $hook) {
|
|||
$pl = '';
|
||||
if ($vars['logged_in'] && !empty($deskmenu)) {
|
||||
// Home option:
|
||||
$pl .= _zuitedesk_option(TRUE, "$lang/", t('Home'), NULL, t('Desktop'));
|
||||
$pl .= _zuitedesk_option(TRUE, "$lang/", t('Home'), 'home', NULL, t('Desktop'));
|
||||
// CRM submenu:
|
||||
$submenu = '';
|
||||
$submenu .= _zuitedesk_option(!empty($_SESSION['SuiteCRM_Session_ID']), "$lang/suitecrm", 'SuiteCRM', 'crm', t('Core sales, customer service and marketing processes with SuiteCRM'));
|
||||
$submenu .= _zuitedesk_option($deskmenu[7], "$lang/organizations", t('Organizations'), 'org');
|
||||
$submenu .= _zuitedesk_option(!empty($_SESSION['SuiteCRM_Session_ID']), "$lang/suitecrm", 'SuiteCRM', 'suitecrm', 'crm', t('Core sales, customer service and marketing processes with SuiteCRM'));
|
||||
$submenu .= _zuitedesk_option($deskmenu[7], "$lang/organizations", t('Organizations'), 'org', 'org');
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option($deskmenu[1], "$lang/admin/user/user/local", t('User list'), 'login', t('Allows to view list users and register new users'));
|
||||
$partial .= _zuitedesk_option($deskmenu[8], "$lang/people", t('People'), 'people');
|
||||
$partial .= _zuitedesk_option($deskmenu[9], "$lang/teams", t('Teams'), 'team');
|
||||
$partial .= _zuitedesk_option($deskmenu[1], "$lang/admin/user/user/local", t('User list'), 'userlist', 'login', t('Allows to view list users and register new users'));
|
||||
$partial .= _zuitedesk_option($deskmenu[8], "$lang/people", t('People'), 'people', 'people');
|
||||
$partial .= _zuitedesk_option($deskmenu[9], "$lang/teams", t('Teams'), 'teams', 'team');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option(FALSE, "$lang/activity", t('Activity'), 'eye');
|
||||
$partial .= _zuitedesk_option(FALSE, "$lang/activity", t('Activity'), 'activity', 'eye');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$pl .= _zuitedesk_submenu($submenu, t('Contacts'));
|
||||
$pl .= _zuitedesk_submenu($submenu, t('Contacts'), 'contacts');
|
||||
// Plan submenu:
|
||||
$submenu = '';
|
||||
$submenu .= _zuitedesk_option($deskmenu[2], "$lang/projects", t('Projects'), 'project');
|
||||
$submenu .= _zuitedesk_option($deskmenu[3], "$lang/tasks", t('Tasks'), 'task');
|
||||
$submenu .= _zuitedesk_option($deskmenu[4], "$lang/tasks/kanban", t('Tasks Kanban'), 'kanban', t('Kanban board view for your tasks'));
|
||||
$submenu .= _zuitedesk_option($deskmenu[2], "$lang/projects", t('Projects'), 'projects', 'project');
|
||||
$submenu .= _zuitedesk_option($deskmenu[3], "$lang/tasks", t('Tasks'), 'tasks', 'task');
|
||||
$submenu .= _zuitedesk_option($deskmenu[4], "$lang/tasks/kanban", t('Tasks Kanban'), 'kanban', 'kanban', t('Kanban board view for your tasks'));
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option($deskmenu[5], "$lang/events", t('Events'), 'event');
|
||||
$partial .= _zuitedesk_option($deskmenu[5], "$lang/calendar", t('Calendar'), 'calendar');
|
||||
$partial .= _zuitedesk_option($deskmenu[5], "$lang/events", t('Events'), 'events', 'event');
|
||||
$partial .= _zuitedesk_option($deskmenu[5], "$lang/calendar", t('Calendar'), 'calendar', 'calendar');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option($deskmenu[6], "$lang/doks", t('Documentation'), 'doc');
|
||||
$partial .= _zuitedesk_option($deskmenu[6], "$lang/lexicon", t('Glossary'), 'glossary');
|
||||
$partial .= _zuitedesk_option($deskmenu[6], "$lang/doks", t('Documentation'), 'dok', 'doc');
|
||||
$partial .= _zuitedesk_option($deskmenu[6], "$lang/lexicon", t('Glossary'), 'glossary', 'glossary');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$pl .= _zuitedesk_submenu($submenu, t('Plan'));
|
||||
$pl .= _zuitedesk_submenu($submenu, t('Plan'), 'plan');
|
||||
// Assistance submenu:
|
||||
$submenu = '';
|
||||
$submenu .= _zuitedesk_option($deskmenu[10], "$lang/tickets", t('Tickets'), 'ticket');
|
||||
$submenu .= _zuitedesk_option($deskmenu[10], "$lang/tickets", t('Tickets'), 'tickets', 'ticket');
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option($deskmenu[11], "$lang/timetrackings", t('Timetrackings'), 'timetracking');
|
||||
$partial .= _zuitedesk_option($deskmenu[12], "$lang/expenses", t('Expenses'), 'expense');
|
||||
$partial .= _zuitedesk_option($deskmenu[13], "$lang/invoices", t('Invoices'), 'invoice');
|
||||
$partial .= _zuitedesk_option($deskmenu[11], "$lang/timetrackings", t('Timetrackings'), 'timetracking', 'timetracking');
|
||||
$partial .= _zuitedesk_option($deskmenu[12], "$lang/expenses", t('Expenses'), 'expenses', 'expense');
|
||||
$partial .= _zuitedesk_option($deskmenu[13], "$lang/invoices", t('Invoices'), 'invoices', 'invoice');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option($deskmenu[16], "$lang/trash", t('Trash'), 'trash');
|
||||
$partial .= _zuitedesk_option($deskmenu[16], "$lang/trash", t('Trash'), 'trash', 'trash');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$pl .= _zuitedesk_submenu($submenu, t('Assistance'));
|
||||
$pl .= _zuitedesk_submenu($submenu, t('Assistance'), 'assistance');
|
||||
// User submenu:
|
||||
$submenu = '';
|
||||
$submenu .= _zuitedesk_option($deskmenu[14], "$lang/notes", t('My notes'), 'note');
|
||||
$submenu .= _zuitedesk_option($deskmenu[15], "$lang/ideas", t('My ideas'), 'idea');
|
||||
$submenu .= _zuitedesk_option(TRUE, "$lang/?tour=suitedesk", 'SuiteDesk Tour', 'help', t('A beginner\'s guide to SuiteDesk'));
|
||||
$submenu .= _zuitedesk_option($deskmenu[14], "$lang/notes", t('My notes'), 'notes', 'note');
|
||||
$submenu .= _zuitedesk_option($deskmenu[15], "$lang/ideas", t('My ideas'), 'ideas', 'idea');
|
||||
$submenu .= _zuitedesk_option(TRUE, '', 'SuiteDesk Tour', 'help', 'help', t('A beginner\'s guide to SuiteDesk'));
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option($deskmenu[17], "$lang/user/watcher", t('Watcher'), 'apply');
|
||||
$partial .= _zuitedesk_option($deskmenu[17], "$lang/user/watcher", t('Watcher'), 'watcher', 'apply');
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$partial = '';
|
||||
$partial .= _zuitedesk_option(TRUE, "$lang/" . drupal_get_path_alias('user/' . $user->uid) . '/edit', t('My SuiteDesk profile'), 'user', t('Edit my personal account options'));
|
||||
$partial .= _zuitedesk_option(TRUE, "$lang/logout", t('Logout'), 'logout', t('Close your session'));
|
||||
$partial .= _zuitedesk_option(TRUE, "$lang/" . drupal_get_path_alias('user/' . $user->uid) . '/edit', t('My SuiteDesk profile'), 'profile', 'user', t('Edit my personal account options'));
|
||||
$partial .= _zuitedesk_option(TRUE, "$lang/logout", t('Logout'), 'logout', 'logout', t('Close your session'));
|
||||
$submenu .= _zuitedesk_divider($submenu, $partial);
|
||||
$user_name = !empty($user->picture) ? '<div id="picture-menu"><img src="/' . preg_replace('/\/files\/suitedesk\//', '/system/files/', $user->picture) . '" alt="' . $user->name . '" /></div>' : '';
|
||||
$firstname = strpos($user->name, ' ');
|
||||
$user_name .= $firstname === FALSE ? $user->name : substr($user->name, 0, $firstname);
|
||||
$pl .= _zuitedesk_submenu($submenu, $user_name);
|
||||
$pl .= _zuitedesk_submenu($submenu, $user_name, 'user');
|
||||
}
|
||||
else {
|
||||
$pl = _zuitedesk_option(TRUE, "$lang/user/login", t('Login') . ' <span class="icon-login"></span>', NULL, t('New session for authenticated users'));
|
||||
$pl = _zuitedesk_option(TRUE, "$lang/user/login", t('Login') . ' <span class="icon-login"></span>', 'login', NULL, t('New session for authenticated users'));
|
||||
}
|
||||
|
||||
$vars['primary_links'] = '<h2 class="element-invisible">' . t('Main menu') . '</h2>';
|
||||
|
@ -242,8 +242,6 @@ function zuitedesk_preprocess_page(&$vars, $hook) {
|
|||
// Special class and bootstrap tour for SuiteDesk pages:
|
||||
$vars['classes_array'][] = 'suitedesk';
|
||||
|
||||
$closure = FALSE;
|
||||
|
||||
// Node vars.
|
||||
if (!empty($vars['node'])) {
|
||||
$node = $vars['node'];
|
||||
|
@ -254,32 +252,20 @@ function zuitedesk_preprocess_page(&$vars, $hook) {
|
|||
// Javascript to confirm projects cloning.
|
||||
if ($vars['node']->type == 'stormproject' && user_access('Storm project: clone projects')) {
|
||||
drupal_add_js('(function($) {$("li.stormproject_clone_run a").on("click", function() {return confirm("' . t('WARNING! This operation will duplicate all the project, tasks and documents in book. Are you sure?') . '");});})($jq);', 'inline', 'footer', FALSE);
|
||||
$closure = TRUE;
|
||||
$vars['closure'] .= drupal_get_js('footer');
|
||||
}
|
||||
}
|
||||
|
||||
// For first time users login or on demand:
|
||||
if ($_SESSION['deskmenu'][0] || !empty($_GET['tour'])) {
|
||||
drupal_add_js(drupal_get_path('theme', 'zuitedesk') . '/js/bootstrap-tour.min.js', 'theme', 'footer');
|
||||
drupal_add_js(drupal_get_path('theme', 'zuitedesk') . '/js/tourpro.js', 'theme', 'footer');
|
||||
$closure = TRUE;
|
||||
}
|
||||
|
||||
if ($closure) {
|
||||
$vars['closure'] = drupal_get_js('footer');
|
||||
}
|
||||
/*
|
||||
$vars['sample_variable'] = t('Lorem ipsum.');
|
||||
|
||||
// To remove a class from $classes_array, use array_diff().
|
||||
//$vars['classes_array'] = array_diff($vars['classes_array'], array('class-to-remove'));
|
||||
*/
|
||||
// Guided tour:
|
||||
$tour = 'tourmenu';
|
||||
drupal_add_js(drupal_get_path('theme', 'zuitedesk') . "/js/$tour.js", 'theme', 'footer', FALSE);
|
||||
}
|
||||
|
||||
function _zuitedesk_option($access, $url, $text, $icon = NULL, $message = NULL) {
|
||||
function _zuitedesk_option($access, $url, $text, $id = NULL, $icon = NULL, $message = NULL) {
|
||||
$option = '';
|
||||
if ($access) {
|
||||
$option .= '<li><a href="' . $url . '"';
|
||||
$option .= empty($id) ? '<li>' : '<li id="menu-' . $id . '">';
|
||||
$option .= '<a href="' . $url . '"';
|
||||
$option .= empty($message) ? '' : ' title="' . $message . '"';
|
||||
$option .= empty($icon) ? '>' : ' class="icon-' . $icon . '"> ';
|
||||
$option .= $text . '</a></li>';
|
||||
|
@ -291,8 +277,14 @@ function _zuitedesk_divider(&$submenu, &$partial) {
|
|||
return !empty($submenu) && !empty($partial) ? '<li class="divider"></li>' . $partial : $partial;
|
||||
}
|
||||
|
||||
function _zuitedesk_submenu(&$submenu, $text) {
|
||||
return !empty($submenu) ? '<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">' . $text . ' <span class="caret"></span></a><ul class="dropdown-menu">' . $submenu . '</ul></li>' : '';
|
||||
function _zuitedesk_submenu(&$submenu, $text, $id = NULL) {
|
||||
$options = '';
|
||||
if (!empty($submenu)) {
|
||||
$options .= empty($id) ? '<li class="dropdown">' : '<li id="menu-' . $id . '" class="dropdown">';
|
||||
$options .= '<a href="#" class="dropdown-toggle" data-toggle="dropdown">' . $text . ' <span class="caret"></span></a>';
|
||||
$options .= '<ul class="dropdown-menu">' . $submenu . '</ul></li>';
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
|
||||
function _zuitedesk_social_link($social_field, $title, $class) {
|
||||
|
|
Reference in a new issue