[Fusionforge-commits] FusionForge branch master updated. 6.0.4-791-gb30af65

Franck Villaume nerville at libremir.placard.fr.eu.org
Thu Aug 25 13:59:11 CEST 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, master has been updated
       via  b30af65decc7e5cf5c5f0dd29a562e18a039b8c7 (commit)
      from  4d0d404b76391dbc57780a73a8ec386ccd2b8a98 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=b30af65decc7e5cf5c5f0dd29a562e18a039b8c7

commit b30af65decc7e5cf5c5f0dd29a562e18a039b8c7
Author: St├ęphane-Eymeric Bredthauer <sebredthauer at gmail.com>
Date:   Thu Aug 25 09:35:17 2016 +0200

    Taskboard: filter tasks on taskboard display

diff --git a/src/plugins/taskboard/common/TaskBoard.class.php b/src/plugins/taskboard/common/TaskBoard.class.php
index 7c0f3f0..199db24 100644
--- a/src/plugins/taskboard/common/TaskBoard.class.php
+++ b/src/plugins/taskboard/common/TaskBoard.class.php
@@ -617,7 +617,7 @@ class TaskBoard extends FFError {
 			$stories[$story->getID()] = array(
 				'id' => $story->getID(),
 				'title' => $story->getSummary(),
-				'description' => str_replace("\n", '<br>', $story->getDetails()),
+				'description' => str_replace("\n", '<br>', util_gen_cross_ref($story->getDetails(),$this->Group->getID())),
 				'priority' => $story->getPriority(),
 				'tasks' => array(),
 				'url' => $this->TrackersAdapter->getTaskUrl($story)
@@ -636,8 +636,7 @@ class TaskBoard extends FFError {
 				foreach($tasks_trackers as $tasks_tracker_data) {
 					$tasks = $this->TrackersAdapter->getTasks($tasks_tracker_data['group_artifact_id'], $assigned_to, NULL, $story->getID());
 					foreach($tasks as $task) {
-						$task_maped = $this->getMappedTask($task);
-						$stories[$story->getID()]['tasks'][] = $task_maped;
+						$stories[$story->getID()]['tasks'][] = $this->getMappedTask($task);;
 					}
 				}
 			}
@@ -757,7 +756,7 @@ class TaskBoard extends FFError {
 
 		$ret['id'] = $task->getID();
 		$ret['title'] = $task->getSummary();
-		$ret['description'] = str_replace("\n", '<br>', $task->getDetails() );
+		$ret['description'] = str_replace("\n", '<br>', util_gen_cross_ref($task->getDetails(),$this->Group->getID()) );
 		$ret['assigned_to'] = $task->getAssignedRealName();
 		$ret['priority'] = $task->getPriority();
 		foreach( $ef_mapping as $k => $f){
diff --git a/src/plugins/taskboard/common/actions/ajax_load_taskboard.php b/src/plugins/taskboard/common/actions/ajax_load_taskboard.php
index da77e51..fc03145 100644
--- a/src/plugins/taskboard/common/actions/ajax_load_taskboard.php
+++ b/src/plugins/taskboard/common/actions/ajax_load_taskboard.php
@@ -1,6 +1,7 @@
 <?php
 /**
  * Copyright (C) 2013 Vitaliy Pylypiv <vitaliy.pylypiv at gmail.com>
+ * Copyright 2016, St├ęphane-Eymeric Bredtthauer - TrivialDev
  *
  * This file is part of FusionForge.
  *
diff --git a/src/plugins/taskboard/common/actions/down_column.php b/src/plugins/taskboard/common/actions/down_column.php
index fb35fa4..7dac19a 100644
--- a/src/plugins/taskboard/common/actions/down_column.php
+++ b/src/plugins/taskboard/common/actions/down_column.php
@@ -36,4 +36,4 @@ if ($column->setOrder($column->getOrder() + 1)) {
 	db_rollback();
 }
 
-session_redirect('/plugins/'.$pluginTaskboard->name.'/admin/?group_id='.$group_id.'&$taskboard_id='.$$taskboard_id.'&view=columns');
+session_redirect('/plugins/'.$pluginTaskboard->name.'/admin/?group_id='.$group_id.'&$taskboard_id='.$$taskboard_id.'&view=columns', false);
diff --git a/src/plugins/taskboard/common/views/taskboard.php b/src/plugins/taskboard/common/views/taskboard.php
index 582c90c..962c787 100644
--- a/src/plugins/taskboard/common/views/taskboard.php
+++ b/src/plugins/taskboard/common/views/taskboard.php
@@ -160,7 +160,7 @@ if ($release_box) {
 			<tr>
 		<?php if ($release_box) { ?>
 				<td>
-					<?php echo _('Release'); ?>
+					<?php echo _('Release')._(': '); ?>
 				</td>
 				<td>
 					<?php echo $release_box; ?>
@@ -181,7 +181,30 @@ if ($release_box) {
 					</div>
 				</td>
 		<?php } ?>
-
+			</tr>
+			<tr valign="middle">
+				<td>
+					<?php
+						echo html_build_checkbox('filter-tasks-chk', false, false);
+						echo html_e('label', array('for'=>'filter-tasks-chk'), _('Filter tasks')._(': '));
+					?>
+				</td>
+				<td colspan=2>
+					<?php
+						echo html_e('label', array('for'=>'task-filter'), _('Filter')._(': '));
+						echo html_e('input', array('type'=>'text', 'id'=>'task-filter', 'value'=>'', 'title'=>_('Use regular expression')));
+						echo html_build_checkbox('filter-only-on-name-chk', false, true);
+						echo html_e('label', array('for'=>'filter-only-on-name-chk'), _('Filter only on task name'));
+					?>
+				</td>
+			</tr>
+			<tr valign="middle">
+				<td>
+					<?php
+						echo html_build_checkbox('hide-unlinked-task-chk', false, false);
+						echo html_e('label', array('for'=>'hide-unlinked-task-chk'), _('Hide unlinked tasks'));
+					?>
+				</td>
 			</tr>
 		</table>
 	</form>
@@ -208,7 +231,7 @@ if ($release_box) {
 		?>
 			<td class="agile-phase-title" style="<?php echo $style ?>">
 				<?php echo $column->getTitle() ?>  
-				<input type="checkbox" class="agile-minimize-column" id="phase-title-<?php echo $column->getID() ?>" phase_id="<?php echo $column->getID() ?>">
+				<div class="agile-minimize-column" id="phase-title-<?php echo $column->getID() ?>" phase_id="<?php echo $column->getID() ?>"></div>
 			</td>
 		<?php } ?>
 		</tr>
@@ -262,8 +285,10 @@ var gMessages = {
 	'progressByTasks' : "<?php echo _('Progress by tasks') ?>",
 	'progressByCost' : "<?php echo _('Progress by cost') ?>",
 	'remainingCost' : "<?php echo _('Remaining m/d') ?>",
-	'completedCost' : "<?php echo _('Completed m/d') ?>"
-};
+	'completedCost' : "<?php echo _('Completed m/d') ?>",
+	'invalidRegEx' : " <?php echo _('Invalid regular expression') ?>"
+}
+var gThemeRoot = "<?php echo $HTML->imgroot ?>";
 
 <?php
 	$releases = array();
@@ -283,6 +308,9 @@ aUserStories = [];
 aPhases = []
 
 jQuery( document ).ready(function( $ ) {
+
+	$("<style type='text/css'>.agile-toolbar-minimize, .agile-minimize-column {background-image: url('" + gThemeRoot + "ic/up-down-16.png');} .agile-toolbar-add-task {background-image: url('" + gThemeRoot + "ic/add-16.png');}</style>").appendTo('head');
+
 	loadTaskboard( <?php echo $group_id ?> );
 
 	jQuery('select[name="_assigned_to"], select[name="_release"]').change(function () {
@@ -294,6 +322,34 @@ jQuery( document ).ready(function( $ ) {
 		e.preventDefault();
 	});
 
+	jQuery('#task-filter').keyup( function ( e ) {
+		checkTaskFilter();
+		if ($('#filter-tasks-chk').is(':checked')) {
+			applyTaskFilter();
+		}
+	});
+
+	jQuery('#filter-tasks-chk').change( function ( e ) {
+		if ($('#filter-tasks-chk').is(':checked')) {
+			applyTaskFilter();
+		} else {
+			removeTaskFilter();
+		}
+	});
+
+
+	jQuery('#filter-only-on-name-chk').change( function ( e ) {
+		applyTaskFilter();
+	});
+
+	jQuery('#hide-unlinked-task-chk').change( function ( e ) {
+		if ($('#hide-unlinked-task-chk').is(':checked')) {
+			hideUnlinkedTasks();
+		} else {
+			showUnlinkedTasks();
+		}
+	});
+
 	<?php if( user_getid()) { ?>
 	jQuery('#new-task-dialog').dialog(
 	{
diff --git a/src/plugins/taskboard/www/css/agile-board.css b/src/plugins/taskboard/www/css/agile-board.css
index 56c799d..cbd89f5 100644
--- a/src/plugins/taskboard/www/css/agile-board.css
+++ b/src/plugins/taskboard/www/css/agile-board.css
@@ -30,9 +30,21 @@
 
 
 .agile-phase {
-    border: none;
-    padding: 0;
-    margin: 0;
+	border: none;
+	padding: 0;
+	margin: 0;
+}
+
+.agile-phase.minimized .agile-sticker-container.not(.filtred) {
+	display: display;
+}
+
+.agile-phase.minimized .agile-sticker-container:not(.filtred) ~ .agile-sticker-container:not(.filtred) {
+	display: none;
+}
+
+.agile-phase.minimized .agile-sticker-container:not(.filtred) ~ .agile-sticker-container:not(.filtred) ~ .agile-phase-more{
+	display: block;
 }
 
 .agile-phase-title {
@@ -48,6 +60,7 @@
 }
 
 .agile-phase-more {
+	display: none;
 	font-weight: bold;
 	float: right;
 	padding: 0 3%;
@@ -61,6 +74,10 @@
 	width: 92%;
 }
 
+.agile-sticker-container.filtred {
+	display: none;
+}
+
 .agile-sticker {
 	font-size: 10px;
 	width: 100%;
@@ -73,43 +90,72 @@
 
 .agile-sticker textarea{
 	font-size: 10px;
+	width: 98%;
+	height: 35px;
 }
 
-.agile-sticker-header, .agile-sticker-footer {
+.agile-sticker-header {
 	background-color: #AAAAAA;
 	padding: 2px;
 }
 
+.agile-sticker-footer {
+	padding: 2px;
+}
+
 .agile-sticker-header a {
 	font-weight: bold;
 }
 
+.agile-toolbar-minimize, .agile-minimize-column {
+	float: right;
+	height: 16px;
+	width: 16px;
+	background-position-y: center;
+	background-position-x: 100%;
+}
+
+.agile-toolbar-minimize.minimized, .agile-minimize-column.minimized{
+	background-position-x: 0;
+}
+
+.agile-toolbar-add-task {
+	float: right;
+	height: 16px;
+	width: 16px;
+	background-position: center;
+}
+
 .agile-sticker-body {
 	position: relative;
 	padding: 2px;
-	height: 58px;
+	min-height: 41px;
 	width: 98%;
 	overflow: hidden;
 }
+.agile-sticker-user-story .agile-sticker-body {
+	min-height: 58px;
+}
+
+.agile-sticker-name {
+	height: auto;
+	overflow: hidden;
+}
+
+.agile-sticker-description {
+	padding-top: 4px;
+	display:none;
+}
 
 .agile-sticker-assignee-face {
+	float: right;
 	position: absolute;
 	top: 0;
 	right: 0;
 }
 
-.agile-sticker-assignee {
-	position: absolute;
-	bottom: 0;
-	left: 0;
-	text-align: left;
-}
-
 .agile-sticker-effort {
-	position: absolute;
-	bottom: 0;
-	right: 0;
-	text-align: right;
+	float: right;
 }
 
 .agile-sticker-user-story {
@@ -245,8 +291,8 @@
 }
 
 .ui-datepicker table {
-    border-collapse: collapse;
-    font-size: 0.9em;
+	border-collapse: collapse;
+	font-size: 0.9em;
 }
 
 .ui-datepicker th,  .ui-datepicker td{
@@ -254,10 +300,10 @@
 }
 
 .ui-datepicker {
-    padding: 0.2em 0.2em 0;
-    border: 1px solid #dddddd;
+	padding: 0.2em 0.2em 0;
+	border: 1px solid #dddddd;
 }
 
 .ui-button {
-    margin: 2px 4px;
+	margin: 2px 4px;
 }
\ No newline at end of file
diff --git a/src/plugins/taskboard/www/js/agile-board.js b/src/plugins/taskboard/www/js/agile-board.js
index bf55dcc..98b9e13 100644
--- a/src/plugins/taskboard/www/js/agile-board.js
+++ b/src/plugins/taskboard/www/js/agile-board.js
@@ -84,30 +84,12 @@ function loadTaskboard( group_id ) {
 
 			jQuery( ".agile-minimize-column" ).click( function() {
 				var phase_id = jQuery(this).attr('phase_id');
-				var phase_locator = '.agile-phase-' + phase_id;
-				var locator = phase_locator + ' div.agile-sticker-container';
-
-				if( jQuery(this).is(':checked') ) {
-					// hide column
-					jQuery(phase_locator).each( function(j,p) {
-						jQuery(p).children('div.agile-sticker-container').each( function(i,e) {
-							if( i > 0 ) {
-								jQuery(e).hide();
-								if( i==1 && jQuery(e).parent().children(phase_locator+'-more').length == 0 ) {
-									jQuery(e).parent().append('<div class="agile-phase-' + phase_id + '-more agile-phase-more">...</div>' );
-								}
-							}
-						})
-					});
+				if( $(this).hasClass('minimized') ) {
+					maximizeColumn(phase_id);
 				} else {
-					// unhide column
-					jQuery(locator).each( function(i,e) {
-						jQuery(e).show();
-						if( i==0 && jQuery(e).parent().children(phase_locator+'-more').length > 0 ) {
-							jQuery(phase_locator+'-more').remove();
-						}
-					});
+					minimizeColumn(phase_id);
 				}
+				$(this).toggleClass('minimized');
 			});
 		} else {
 			jQuery( "#agile-board" ).append(
@@ -163,7 +145,7 @@ function drawBoardProgress() {
 		if( aPhases[j].progressTasks ) {
 			var wt = parseInt(  parseInt( aPhases[j].progressTasks ) / totalTasks * 100 );
 			if( j == lastPhaseWithTasks ) {
-				// to avoid bad presenttaion when sum of rounded percemts less then 100
+				// to avoid bad presentation when sum of rounded percemts less then 100
 				wt = 100 - buf;
 			}
 			buf += wt;
@@ -198,16 +180,28 @@ function drawUserStories() {
 	var l_sHtml = '';
 
 	for( var i=0; i<aUserStories.length; i++ ) {
-		l_sHtml += "<tr valign='top'>\n";
 		var start=0;
 		var us=aUserStories[i];
+		l_sHtml += "<tr class='agile-user-story-"+ us.id +"' valign='top'>\n";
 		if( bShowUserStories ) {
 			start=1;
-			l_sHtml += '<td class="agile-phase"><div class="agile-sticker-container">';
+			l_sHtml += '<td class="agile-phase agile-user-stories">';
+			l_sHtml += '<div class="agile-sticker-container">';
 			l_sHtml += '<div class="agile-sticker agile-sticker-user-story" id="user-story-' + us.id + '">';
-			l_sHtml += '<div class="agile-sticker-header"><a href="' + us.url + '" target="_blank">[#' + us.id + ']</a>';
-			l_sHtml += '<div style="float: right";>[<a href="" class="agile-toolbar-add-task" user_story_id="' +us.id+ '">+</a>]</div></div>\n';
-			l_sHtml += '<div class="agile-sticker-body">' + us.title + "</div>\n";
+			l_sHtml += '<div class="agile-sticker-header">';
+			if( us.id==0) {
+				l_sHtml += '<a>[#' + us.id + ']</a>';
+			} else {
+				l_sHtml += '<a href="' + us.url + '" target="_blank">[#' + us.id + ']</a>';
+			}
+			l_sHtml += '<div class="agile-toolbar-minimize minimized"></div>\n';
+			l_sHtml += '<div class="agile-toolbar-add-task" user_story_id="' +us.id+ '"></div>\n';
+			l_sHtml += '</div>\n';
+			l_sHtml += '<div class="agile-sticker-body">'
+			l_sHtml += '<div class="agile-sticker-name">' + us.title + "</div>\n";
+			l_sHtml += '<div class="agile-sticker-description">' + us.description + "</div>\n";
+			l_sHtml += "</div>\n"
+			l_sHtml += "</div>\n";
 			l_sHtml += "</div>\n";
 			l_sHtml += "</td>\n";
 		}
@@ -218,7 +212,7 @@ function drawUserStories() {
 			if( ph.background ) {
 				style = ' style="background-color:' + ph.background + ';"';
 			}
-			l_sHtml += '<td id="' + ph.id + '-' + us.id + '" class="agile-phase agile-phase-' + ph.id + '"' + style + '>';
+			l_sHtml += '<td id="' + ph.id + '-' + us.id + '" class="agile-phase agile-tasks agile-phase-' + ph.id + '"' + style + '>';
 			l_sHtml += "</td>\n";
 
 			// initialize progress counters
@@ -324,6 +318,14 @@ function initUserStories() {
 	for( var i=0; i<aUserStories.length; i++ ) {
 		initUserStory( aUserStories[i] );
 	}
+	jQuery( ".agile-toolbar-minimize" ).click( function() {
+		if( $(this).hasClass('minimized') ) {
+			$(this).parent().parent().css('height','auto').find('.agile-sticker-description').show();
+		} else {
+			$(this).parent().parent().css('height','80px').find('.agile-sticker-description').hide();
+		}
+		$(this).toggleClass('minimized');
+	});
 }
 
 function initUserStory( oUserStory ) {
@@ -348,7 +350,7 @@ function initUserStory( oUserStory ) {
 		}
 	}
 
-	jQuery('#user-story-' + oUserStory.id).data('task_id', oUserStory.id);
+	jQuery('#user-story-' + oUserStory.id).data('user_story_id', oUserStory.id);
 }
 
 function drawUserStory( oUserStory ) {
@@ -370,7 +372,7 @@ function drawUserStory( oUserStory ) {
 				.data('user_story_id', oUserStory.id)
 				.draggable( {
 					containment: '#agile-board',
-					//cursor: 'move',
+					cursor: 'move',
 					stack: 'div',
 					revert: true,
 					start: helperTaskStart,
@@ -392,13 +394,20 @@ function drawTasks( oUserStory, sPhaseId ) {
 			l_sHtml += '<div class="agile-sticker agile-sticker-task agile-sticker-task-' + tsk.user_story + '" id="task-' + tsk.id + '" >';
 			l_sHtml += '<div class="agile-sticker-header" style="background-color: ' + tsk.background + ';">';
 			l_sHtml += '<a href="' + tsk.url  +  '" target="_blank">[#' + tsk.id + ']</a>';
+			l_sHtml += '<div class="agile-toolbar-minimize minimized"></div>\n';
 			l_sHtml += "</div>\n";
-			l_sHtml += '<div class="agile-sticker-body">' + tsk.title;
+			l_sHtml += '<div class="agile-sticker-body">';
+			l_sHtml += '<div class="agile-sticker-name">' + tsk.title +'</div>';
+			l_sHtml += '<div class="agile-sticker-description">' + tsk.description +'</div>';
 			if( tsk.assigned_to_face ) {
 				l_sHtml += '<div class="agile-sticker-assignee-face">' + tsk.assigned_to_face + '</div>';
 			}
+			l_sHtml += '</div>';
+			l_sHtml += '<div class="agile-sticker-footer">';
 			if( tsk.assigned_to != "Nobody" ) {
 				l_sHtml += '<div class="agile-sticker-assignee">Assigned: ' + tsk.assigned_to + '</div>';
+			} else {
+				l_sHtml += '<div class="agile-sticker-assignee">Unassigned</div>';
 			}
 			if( tsk.estimated_dev_effort ) {
 				l_sHtml += '<div class="agile-sticker-effort">' + tsk.remaining_dev_effort + '/' + tsk.estimated_dev_effort + '</div>';
@@ -407,10 +416,69 @@ function drawTasks( oUserStory, sPhaseId ) {
 			l_sHtml += "</div></div>\n";
 		}
 	}
-
+	l_sHtml += '<div class="agile-phase-' + sPhaseId + '-more agile-phase-more">...</div>'
 	return l_sHtml;
 }
 
+function applyTaskFilter() {
+	var sFilter = $('#task-filter')[0].value;
+	var bOnlyOnName = $('#filter-only-on-name-chk').is(':checked');
+
+	if ($('#task-filter')[0].checkValidity()) {
+		$('td.agile-tasks div.agile-sticker-container').each( function(nb,container) {
+			sTaskName = $(container).find('div.agile-sticker-name').text();
+			if (bOnlyOnName) {
+				if (sTaskName.match(sFilter)) {
+					$(container).removeClass('filtred');
+				} else {
+					$(container).addClass('filtred');
+				}
+			} else {
+				$TaskDescription = $(container).find('a.agile-toolbar-get-description').attr('title');
+				if (sTaskName.match(sFilter) || $TaskDescription.match(sFilter)) {
+					$(container).removeClass('filtred');
+				} else {
+					$(container).addClass('filtred');
+				}
+			}
+		});
+	}
+}
+
+function removeTaskFilter () {
+	$('td.agile-tasks div.agile-sticker-container').removeClass('filtred');
+}
+
+function checkTaskFilter () {
+	var bReturn = true;
+	try {
+		new RegExp($('#task-filter')[0].value);
+	} catch(e) {
+		$('#task-filter')[0].setCustomValidity(gMessages.invalidRegEx);
+		bReturn = false;
+	}
+	if (bReturn) {
+		$('#task-filter')[0].setCustomValidity("");
+	}
+	return bReturn
+}
+
+function hideUnlinkedTasks() {
+	$('tr.agile-user-story-0').hide();
+}
+
+function showUnlinkedTasks() {
+	$('tr.agile-user-story-0').show();
+}
+
+function minimizeColumn(phase_id) {
+	$('table#agile-board td.agile-phase-'+phase_id).addClass('minimized');
+}
+
+function maximizeColumn(phase_id) {
+	$('table#agile-board td.agile-phase-'+phase_id).removeClass('minimized');
+}
+
 function taskInPhase( tsk, phase ) {
 	if( tsk.phase_id ==  phase) {
 		return true;
@@ -436,7 +504,7 @@ function initEditable() {
 	}
 
 	// description
-	jQuery("div.agile-sticker-body").dblclick( function () {
+	jQuery("td.agile-tasks div.agile-sticker-name").dblclick( function () {
 		if( jQuery(this).children('textarea').length == 0 ) {
 			// close open textarea
 			jQuery('#text_title').trigger('focusout');
@@ -444,14 +512,12 @@ function initEditable() {
 
 			var l_oTitle = jQuery(this);
 			var l_sTitle = l_oTitle.html();
-			var l_nTaskId = jQuery(this).parent().data('task_id');
+			var l_nTaskId = jQuery(this).parent().parent().data('task_id');
 			jQuery(this).html( '<textarea id="text_title" name="title" rows="11"></textarea>');
 
 
 			jQuery('#text_title')
 				.html( l_sTitle.replace(/<br>/g, "\n") )
-				.css('width', '98%')
-				.css('height', '95%')
 				.focus()
 				.focusout(function() {
 					l_oTitle.html( l_sTitle );
diff --git a/src/www/themes/funky-wOw/images/ic/add-16.png b/src/www/themes/funky-wOw/images/ic/add-16.png
new file mode 100644
index 0000000..3f1347e
Binary files /dev/null and b/src/www/themes/funky-wOw/images/ic/add-16.png differ
diff --git a/src/www/themes/funky-wOw/images/ic/up-down-16.png b/src/www/themes/funky-wOw/images/ic/up-down-16.png
new file mode 100644
index 0000000..9406f07
Binary files /dev/null and b/src/www/themes/funky-wOw/images/ic/up-down-16.png differ
diff --git a/src/www/themes/funky/images/ic/add-16.png b/src/www/themes/funky/images/ic/add-16.png
new file mode 100644
index 0000000..3f1347e
Binary files /dev/null and b/src/www/themes/funky/images/ic/add-16.png differ
diff --git a/src/www/themes/funky/images/ic/up-down-16.png b/src/www/themes/funky/images/ic/up-down-16.png
new file mode 100644
index 0000000..9406f07
Binary files /dev/null and b/src/www/themes/funky/images/ic/up-down-16.png differ

-----------------------------------------------------------------------

Summary of changes:
 src/plugins/taskboard/common/TaskBoard.class.php   |   7 +-
 .../common/actions/ajax_load_taskboard.php         |   1 +
 .../taskboard/common/actions/down_column.php       |   2 +-
 src/plugins/taskboard/common/views/taskboard.php   |  66 +++++++++-
 src/plugins/taskboard/www/css/agile-board.css      |  88 +++++++++----
 src/plugins/taskboard/www/js/agile-board.js        | 140 +++++++++++++++------
 src/www/themes/funky-wOw/images/ic/add-16.png      | Bin 0 -> 520 bytes
 src/www/themes/funky-wOw/images/ic/up-down-16.png  | Bin 0 -> 464 bytes
 src/www/themes/funky/images/ic/add-16.png          | Bin 0 -> 520 bytes
 src/www/themes/funky/images/ic/up-down-16.png      | Bin 0 -> 464 bytes
 10 files changed, 236 insertions(+), 68 deletions(-)
 create mode 100644 src/www/themes/funky-wOw/images/ic/add-16.png
 create mode 100644 src/www/themes/funky-wOw/images/ic/up-down-16.png
 create mode 100644 src/www/themes/funky/images/ic/add-16.png
 create mode 100644 src/www/themes/funky/images/ic/up-down-16.png


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list