* Copyright 2010-2011, Franck Villaume - Capgemini
* Copyright 2010-2011, Alain Peyrat - Alcatel-Lucent
* Copyright © 2011 Thorsten Glaser – tarent GmbH
+ * Copyright 2011 - Marc-Etienne Vargenau, Alcatel-Lucent
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
}
/**
- * Constructs a list of Javascript files followed by some timestamp
+ * Build the list of required Javascript files.
+ *
+ * If js file is found, then a timestamp is automatically added to ensure
+ * that file is cached only if not changed.
*
- * TODO document the purpose of this : probably to avoid caching versions updated on the server
* @param string $js path to the JS file
*/
function addJavascript($js) {
- // TODO : what's the point of this ? ... unused ?
+ // If a minified version of the javascript is available, then use it.
if (isset($this->js_min[$js])) {
$js = $this->js_min[$js];
}
<script type="text/javascript" src="/scripts/codendi/ReorderColumns.js"></script>
<script type="text/javascript" src="/scripts/codendi/codendi-1236793993.js"></script>
<script type="text/javascript" src="/scripts/codendi/validate.js"></script>
- <script type="text/javascript" src="'. util_make_uri('/js/common.js') .'"></script>';
+ <script type="text/javascript" src="'. util_make_uri('/js/common.js') .'"></script>
+ <script language="JavaScript" type="text/javascript">/* <![CDATA[ */';
+ plugin_hook ("javascript",false);
+ echo '
+ /* ]]> */</script>';
plugin_hook ("javascript_file",false);
echo $this->getJavascripts();
<tr class="align-center">
<td colspan="2" style="background:url('.$this->imgbaseurl.'box-grad.png)"><span class="titlebar">'.$title.'</span></td>
</tr>
- <tr align="left">
+ <tr class="align-left">
<td colspan="2">
<!-- Box Middle End -->';
}
echo '
<form id="quicknavform" name="quicknavform" action=""><div>
- <select name="quicknav" id="quicknav">
+ <select name="quicknav" id="quicknav" onchange="location.href=document.quicknavform.quicknav.value">
<option value="">'._('Quick Jump To...').'</option>';
foreach ($groups as $g) {
// $rowspan=(($issel)?'rowspan="2" ' : '');
$return .= '
- <td '.$rowspan.'valign="top" width="10" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-end-'.(($issel) ? '' : 'not').'selected.png)">'.
+ <td '.$rowspan.'class="top" width="10" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-end-'.(($issel) ? '' : 'not').'selected.png)">'.
'<img src="'.$this->imgbaseurl . 'clear.png" height="25" width="10" alt="" /></td>'.
'<td '.$rowspan.'style="background:url('.$this->imgbaseurl . $bgimg.')" width="'.$width.'%" align="center">'.util_make_link ($TABS_DIRS[$i],$TABS_TITLES[$i],array('class'=>(($issel)?'tabsellink':'tablink')),true).'</td>';
} elseif ($i==$count-1) {
// Build image between current and prior tab
//
$return .= '
- <td '.$rowspan.'colspan="2" valign="top" width="20" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-'.(($wassel) ? '' : 'not').'selected-'.(($issel) ? '' : 'not').'selected.png)">'.
+ <td '.$rowspan.'colspan="2" class="top" width="20" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-'.(($wassel) ? '' : 'not').'selected-'.(($issel) ? '' : 'not').'selected.png)">'.
'<img src="'.$this->imgbaseurl . 'clear.png" height="2" width="20" alt="" /></td>'.
'<td '.$rowspan.'style="background:url('.$this->imgbaseurl . $bgimg.')" width="'.$width.'%" align="center">'.util_make_link($TABS_DIRS[$i], $TABS_TITLES[$i], array('class'=>(($issel)?'tabsellink':'tablink')), true).'</td>';
//
// Last graphic on right-side
//
$return .= '
- <td '.$rowspan.'valign="top" width="10" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-'.(($issel) ? '' : 'not').'selected-end.png)">'.
+ <td '.$rowspan.'class="top" width="10" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-'.(($issel) ? '' : 'not').'selected-end.png)">'.
'<img src="'.$this->imgbaseurl . 'clear.png" height="2" width="10" alt="" /></td>';
} else {
// Build image between current and prior tab
//
$return .= '
- <td '.$rowspan.'colspan="2" valign="top" width="20" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-'.(($wassel) ? '' : 'not').'selected-'.(($issel) ? '' : 'not').'selected.png)">'.
+ <td '.$rowspan.'colspan="2" class="top" width="20" style="background:url('.$this->imgbaseurl . 'theme-'.$inner.'-'.(($wassel) ? '' : 'not').'selected-'.(($issel) ? '' : 'not').'selected.png)">'.
'<img src="'.$this->imgbaseurl . 'clear.png" height="2" width="20" alt="" /></td>'.
'<td '.$rowspan.'style="background:url('.$this->imgbaseurl . $bgimg.')" width="'.$width.'%" align="center">'.util_make_link($TABS_DIRS[$i], $TABS_TITLES[$i], array('class'=>(($issel)?'tabsellink':'tablink')), true).'</td>';
$return = '';
for ($i=0; $i<$count; $i++) {
- $return .= util_make_link($links_arr[$i],$title_arr[$i],$attr_arr[$i]).' | ';
+ $return .= util_make_link($links_arr[$i],$title_arr[$i],$attr_arr[$i]). $this->subMenuSeparator();
}
$return .= util_make_link($links_arr[$i],$title_arr[$i],$attr_arr[$i]);
return $return;
}
+ /**
+ * subMenuSeparator() - returns the separator used between submenus
+ *
+ * @return string Html to build a submenu separator.
+ */
+ function subMenuSeparator() {
+ return '';
+ }
+
/**
* subMenu() - Takes two array of titles and links and build a menu.
*
return '';
} else {
return '
- <div class="feedback">'.strip_tags($feedback, '<br>').'</div>';
+ <p class="feedback">'.strip_tags($feedback, '<br>').'</p>';
}
}
/**
return '';
} else {
return '
- <div class="warning_msg">'.strip_tags($msg, '<br>').'</div>';
+ <p class="warning_msg">'.strip_tags($msg, '<br>').'</p>';
}
}
return '';
} else {
return '
- <div class="error">'.strip_tags($msg, '<br>').'</div>';
+ <div class="error">' .
+ util_pwrap(strip_tags($msg, '<br>')) .
+ "</div>\n";
}
}
+ /**
+ * information() - returns the htmlized information string.
+ *
+ * @param string msg string
+ * @return string htmlized information
+ */
+ function information($msg) {
+ if (!$msg) {
+ return '';
+ } else {
+ return '
+ <p class="information">'.strip_tags($msg, '<br>').'</p>';
+ }
+ }
/**
* getThemeIdFromName()
function printSoftwareMapLinks() {
$subMenuTitle = array();
$subMenuUrl = array();
+ $subMenuAttr = array();
if (forge_get_config('use_project_tags')) {
$subMenuTitle[] = _('Tag cloud');
$subMenuUrl[] = '/softwaremap/tag_cloud.php';
+ $subMenuAttr[] = array('title' => _('Browse per tags defined by the projects.'), 'class' => 'tabtitle-nw');
}
if (forge_get_config('use_trove')) {
$subMenuTitle[] = _('Project Tree');
$subMenuUrl[] = '/softwaremap/trove_list.php';
+ $subMenuAttr[] = array('title' => _('Browse per category.'), 'class' => 'tabtitle');
}
if (forge_get_config('use_project_full_list')) {
$subMenuTitle[] = _('Project List');
$subMenuUrl[] = '/softwaremap/full_list.php';
+ $subMenuAttr[] = array('title' => _('Complete listing of available projects.'), 'class' => 'tabtitle');
}
- echo $this->subMenu($subMenuTitle, $subMenuUrl);
+ echo $this->subMenu($subMenuTitle, $subMenuUrl, $subMenuAttr);
}
}