Skip to content
This repository has been archived by the owner on Jul 21, 2019. It is now read-only.

Commit

Permalink
Merge pull request #71 from sprintly/drop-target
Browse files Browse the repository at this point in the history
Drop target styling
  • Loading branch information
Sam Breed committed Jul 27, 2015
2 parents ba3069c + fb68c41 commit 56be323
Show file tree
Hide file tree
Showing 13 changed files with 58 additions and 194 deletions.
1 change: 0 additions & 1 deletion app/lib/config.js

This file was deleted.

10 changes: 10 additions & 0 deletions app/lib/status-map.js
@@ -0,0 +1,10 @@
const STATUSES = {
'someday': 'Someday',
'backlog': 'Backlog',
'in-progress': 'Current',
'completed': 'Complete',
'accepted': 'Accepted'
};

export default STATUSES;

9 changes: 2 additions & 7 deletions app/stores/product-store.js
Expand Up @@ -9,13 +9,8 @@ import AppDispatcher from '../dispatchers/app-dispatcher';
import ProductConstants from '../constants/product-constants';
import FilterActions from '../actions/filter-actions';

const ITEM_STATUSES = [
'someday',
'backlog',
'in-progress',
'completed',
'accepted'
];
import STATUSES from '../lib/status-map';
const ITEM_STATUSES = _.keys(STATUSES);

let productVelocity = {};
let columnCollections = {};
Expand Down
8 changes: 1 addition & 7 deletions app/views/components/item-card/details.js
Expand Up @@ -10,13 +10,7 @@ import SubItems from './subitems'
import {TagEditor, Tags} from 'sprintly-ui';
import {DropdownButton, MenuItem, OverlayTrigger, Tooltip, Button, Input} from 'react-bootstrap';

const STATUSES = {
'someday': 'Someday',
'backlog': 'Backlog',
'in-progress': 'Current',
'completed': 'Complete',
'accepted': 'Accepted'
};
import STATUSES from '../../../lib/status-map';

var ItemCardDetails = React.createClass({

Expand Down
4 changes: 2 additions & 2 deletions app/views/components/item-card/index.js
Expand Up @@ -21,8 +21,7 @@ const cardSpec = {
},

isDragging(props, monitor) {
console.log('is dragging');
return true;
return monitor.getItem().number === props.item.number;
}
};

Expand Down Expand Up @@ -148,6 +147,7 @@ let ItemCard = React.createClass({
let connectDragSource = this.props.connectDragSource;
let classes = {
'item-card': true,
'is-dragging': this.props.isDragging,
'active': this.props.active || this.state.showDetails,
[this.props.item.type]: true,
'parent': this.props.item.sub_items && this.props.item.sub_items.length > 0
Expand Down
18 changes: 15 additions & 3 deletions app/views/components/item-column/index.js
@@ -1,6 +1,7 @@
import _ from 'lodash';
import React, { PropTypes } from 'react/addons';
import ScoreMap from '../../../lib/score-map';
import classNames from 'classnames';
import STATUS_MAP from '../../../lib/status-map';
// Components
import ItemCard from '../item-card';
import PlaceholderCards from './placeholder-cards';
Expand Down Expand Up @@ -58,7 +59,9 @@ let ItemColumn = React.createClass({
limit: PropTypes.number.isRequired,
items: PropTypes.array.isRequired,
// DnD
connectDropTarget: PropTypes.func.isRequired
connectDropTarget: PropTypes.func.isRequired,
isOver: PropTypes.bool.isRequired,
canDrop: PropTypes.bool.isRequired
},

getInitialState() {
Expand Down Expand Up @@ -197,8 +200,14 @@ let ItemColumn = React.createClass({
this.setSortCriteria(this.props.sortField, direction);
};

let classes = classNames({
column: true,
[this.props.status]: true,
'dropzone-active': this.props.canDrop && this.props.isOverCurrent
});

return this.props.connectDropTarget(
<div style={this.props.colWidth} className={`column ${this.props.status}`} {...this.props}>
<div style={this.props.colWidth} className={classes} {...this.props}>
<ColumnHeader {...this.props}
reverse={reverseSort}
setSortCriteria={this.setSortCriteria}
Expand All @@ -207,6 +216,9 @@ let ItemColumn = React.createClass({
/>
{this.columnContent()}
{this.renderLoadMore()}
<div className="column__dropzone">
<h3>Move to {STATUS_MAP[this.props.status]}</h3>
</div>
</div>
);
}
Expand Down
29 changes: 0 additions & 29 deletions app/views/components/product-nav/button-bar-item.js

This file was deleted.

38 changes: 0 additions & 38 deletions app/views/components/product-nav/index.js

This file was deleted.

77 changes: 0 additions & 77 deletions app/views/components/product-nav/item.js

This file was deleted.

22 changes: 0 additions & 22 deletions app/views/components/product-nav/toggle.js

This file was deleted.

9 changes: 1 addition & 8 deletions app/views/pages/items.js
Expand Up @@ -15,14 +15,7 @@ import ProductActions from '../../actions/product-actions';
import VelocityActions from '../../actions/velocity-actions';

import helpers from './helpers';

const ITEM_STATUSES = {
someday: 'Someday',
backlog: 'Backlog',
'in-progress': 'Current',
completed: 'Done',
accepted: 'Accepted'
};
import ITEM_STATUSES from '../../lib/status-map';

let ItemsViewController = React.createClass({

Expand Down
23 changes: 23 additions & 0 deletions public/less/components/columns.less
Expand Up @@ -55,6 +55,29 @@
max-width: 500px;
}

.column__dropzone {
display: none;
background: rgba(0,0,0,0.5);
border: 3px dashed #333;
position: absolute;
float: left;
top: 0;
left: 0;
bottom: 0;
right: 0;

h3 {
color: #ececec;
text-align: center;
margin-top: 50%;
}

}

.column.dropzone-active .column__dropzone {
display: block;
}

.column__nav {
margin-top: 93px;

Expand Down
4 changes: 4 additions & 0 deletions public/less/components/item-card.less
Expand Up @@ -102,6 +102,10 @@
.opacity(100);
}

&.is-dragging {
.opacity(0.5);
}

.item-card__controls > a:hover {
color: @darker-grey;
}
Expand Down

0 comments on commit 56be323

Please sign in to comment.