-
Notifications
You must be signed in to change notification settings - Fork 0
- bootstrap orgcharts http://www.capricasoftware.co.uk/legacy/projects/jquery-orgchart/index.html https://github.com/bigeyex/jquery.orgChart http://www.jugnoon.com/products/php/jtree/
- encapsulated services around V1Epics
function doSomething (inputParam,callback) {
// do stuff
callAnother asyncFunction(function(err , docs){
// do more stuff
callback(returnObject);
// important to return after callback as control flow would continue
return;
);
}
// do stuff
return;
}
call it:
doSomething("my param",function(returnObject){
// do something with my returnObject
});
[DONE] :-)
- stores on import snapshots of Health and HealthComment
- to track health changes over time
http://www.materialui.co/colors
- detached from dropbox
- deleted dropbox dev folder "kanbanexpress"
http://fezvrasta.github.io/bootstrap-material-design/bootstrap-elements.html
bower install bootstrap-material-design
https://github.com/sgentle/phantomjs-node
=> experiment in routes/users.js => not working yet
thänx to lukas
bash shell script
#Find the Process ID for www running instance
echo "....trying to kill running s2t instance"
PID=`ps -eaf | grep 'node ./bin/www' | grep -v grep | awk '{print $2}'`
if [[ "" != "$PID" ]]; then
echo "killing $PID"
kill -9 $PID
fi
cd s2t
. ~/.bash_profile
nohup npm start > /dev/null 2>&1 &
- created new github repository https://github.com/gkathan/strategy2tactics
- inital add and push
- https://blog.safaribooksonline.com/2014/03/10/express-js-middleware-demystified/
- https://scotch.io/quick-tips/route-middleware-to-check-if-a-user-is-authenticated-in-node-js
- adding config object to all responses
- [OK] first middleware in services/middleware/addconfig.js
var addconfig = require('./services/middleware/addconfig.js'); app.use(addconfig());
[TODO] bpty mailrelay does not work
- CERT UNTRUSTED ??
git tag tag 2.0.0
- install git
- install nodeJS
- install mongodb ** what else to prepare
- npm install -g bower
- npm install -g grunt
- npm install -g grunt-cli
=> fixed some missing dependcies and files => now [OK]
git clone https://github.com/gkathan/strategy2tactics
cd strategy2tacics
npm install
bower install (2 resolves: latest bootstrap + old other)
-
eonasdan-bootstrap-datetimepicker#3.1.3
-
bootstrap#~3.3.2 which resolved to 3.3.2 and is required by kanban
- npm start
** https://github.com/kyrstenkelly/grunt-timestamp-release ** [STORY] migrate from Ant to GRUNT
** grunt zip = https://github.com/twolfson/grunt-zip npm install grunt-zip --save-dev ** grunt scp = https://github.com/spmjs/grunt-scp npm install grunt-scp --save-dev ** grunt ssh = https://github.com/chuckmo/grunt-ssh npm install grunt-ssh --save-dev ** grunt exec = https://github.com/jharding/grunt-exec npm install grunt-exec --save-dev
task DEPLOY
(1) init - create timestamp (2) zip deployment package + rename with timestamp (3) copy package to archive (4) deploy (4.1) scp file="${TARGET}" todir="gkathan@cloud.ea.bwinparty.corp:/home/gkathan/" password="***" port="22" trust="true" (4.2) sshexec host="cloud.ea.bwinparty.corp" username="" password="*******" command="./deployv2.sh" trust="true" port="22"
in test.html
- bower install --save alpaca ** downloads lots of dependent components ** important to use v1 of datetimepicker
- custom layouts: http://www.alpacajs.org/docs/api/layouts.html
-
http://www.snip2code.com/Snippet/95287/Capture-screenshots-%28png%29-from-multiple-
-
[ok] works C:\Users\cactus\Dropbox_work\d3\kanban\js\phantomjs\capture_boards.js
-
capture_labels.js ** based on label list from product matrix portfolio
=> returns a code => code is valid 1 minutes
code needs to be sent to http://v1.bwinparty.corp/V1-Production/oauth.v1/token
?code=68ZP%21IAAAAEDMrHJUYFC4803T89ats6p_pNdxc4PNvGan8A54Oqwp8QAAAAGT7OoEzzgHcEVv61UszI4hQEJnIGeMWg8Nhlu-qgoLPZfadBNL3MdhXqvX9WsVCBlec_KDmxAtq9a2xun3HVR7DmGVifokOdqhBeUoC0o3hT8I26OIz4B-UxoovQV2a-pAiFVrTqAgZbq7qcCfSLys0tq99UjY2cPzL6APUnCHm-azlFQNouwtMMSEopZTVTWMvH7uM3kRX4npZWbWs-nF261wRkwqnlJbYmYdd7quyIN4wljN4md3sl80PTgTbFpaBaq3nHx2PO5GvW6xoTyGj0e3cxjswcEWv1c7XvyBxdD1n5yq7fGPDio24LWvhxE
- looks like they are stored under ** http://v1.bwinparty.corp/V1-Production/attachment.img//
- API sum ups ** http://stackoverflow.com/questions/16092833/how-do-i-obtain-the-versionones-done-hours-through-its-restful-api/16093799#16093799 ** https:///VersionOne/rest-1.v1/Data/Task?sel=Name,Actuals.Value.@Sum
-
config ** expose config via REST API ** for client javascripts ** .../api/config
-
fixing excel exports and admin views
[EPIC]
- passportauth + private boards as default
- publish boards
- connect login bpty user to targets etc..
how to monitor express app ?
-
http://stackoverflow.com/questions/5580776/monitoring-a-node-js-server
-
http://coenraets.org/blog/2012/10/real-time-web-analytics-with-node-js-and-socket-io/
sending emails from node
exporting modules / functions
- http://bites.goodeggs.com/posts/export-this/ [OK] test mail works
-
yep works also on windows
-
requires a environemnet variable set to describe which environment we are on ** default ** stage ** production
-
in windows => advanced settings -> set environment variable NODE_ENV
-
in linux export NODE_ENV = production
- start npm on PROD
ps aux |grep node kill -9 processID nohup /opt/node/bin/npm start &
- mongo /opt/mongodb/bin/mongorestore --drop -d kanbanv2 kanbanv2
integrating employee data / pictures
=> there is a profile page per employee accessible on
https://my.bwinparty.com/People/H/HaasJefferyE7635.aspx
https://my.bwinparty.com/People/K/KathanGeroldE2988.aspx
https://my.bwinparty.com/~/media/651906AE6469400A9A55AD99426BE8FC.ashx?h=125&la=en&w=100
- mark initiatives which have a different state compared to previous set
=> for every state for every item check item.STATE from previous date if (==) nothing if (!) mark and add previous state
-
learning Q (promises async handling)
-
and apply in phantomJS based image scraper ==> Q is quite weird ==> using async instead
-
fixed admin.js column filter ** is now checking that searchstring in column is part of ++ [works]
-
phantomJS 2.0 released ...
-
fixed plain excel upload/import ** implemented blank cell filler for excel
-
integrated incidents ** trying to enhance the REST API with filters ** e.g db.incidents.find({"Incident state":{$ne:"Closed"}})
[ok] took a while but here we go
- now just included in generic findAll api method
e.g.
v...value o..operator n...name
http://localhost:3000/api/kanbanv2/rest/incidents?n=Incident%20state&o=$ne&v=Closed
[TODO] _handlePlain in upload
- // !!!!!!!!!!!!! NEEDS some REFACTORING as it always fills up blanks now !!!! // also when i do NOT want it ;-)
- response and rendering of success
- handling of "fillblanks" = now optional in xlsx filename (e.g. productcatalog)
- and some other tweaks
- added additional script in package.json "startDEV" => calls nodemon instead of node
- npm run-script startDEV
=> it is time to checkin the kanbanv2 to GIT
-
YEEES - rsvg transcoder works !!!!!
-
sorting in portfoliogate [done]
-
split & refactor kanban_items.js
-
split in 3 parts: ** kanban_items.js ** kanban_targets.js ** kanban_postits.js
learning jade
- time for my first "mixin"
- in menu_switch_visibility.jade
https://github.com/walling/node-rsvg
-
experiment to reimplent batik transcode in nodejs
-
sudo apt-get install librsvg2-dev
-
npm install rsvg
wui :-) works - but stylesheeet yet only working when inlind...
=> would need to embed and pump the kanbanv2.css into the CDATA section
<style type="text/css" > </style>- created new api/ endpoint to receive the POST data from kanban save/transcode form (submit_form_..) ** in api.js under new route /api/kanbanv2/transcode
=> starting alpaca forms with NEW BOARD
http://www.alpacajs.org/demos/form-builder/form-builder.html
- test deployment on PROD ** new domain = http://kanbanv2.ea.bwinparty.corp/ ** just copied kanbanexpress directory ** on npm start => i get ERROR npmlog not found ** upgrade node version on server [OK] now
adapted build.xml and put it into kanbanv2/ express dir
ant deploy:
- zips
- scps
- execute deployv2.sh on remote
- stop app
- unpacks
- and starts app
sticky force d3 https://github.com/mbostock/d3/wiki/Force-Layout
http://bl.ocks.org/mbostock/3750558
multi force http://bl.ocks.org/mbostock/1021953
directed: http://www.d3noob.org/2013/03/d3js-force-directed-graph-example-basic.html
-
successfully migrated firts org diagram to kanbanexpress ** org_tree [OK] and working
-
trying to fix/refactor the upload/import stuff ** currently hardcoded for pgates in app.js
** need to extract the multer handling somehow ** [OK] moved all multer and upload handling into routes/upload.js :-) ** and next comes the different handling of import based on a filename convention for the uploads
[OK] done
but some of the excels e.g. 2013-04-29 are not inserted .. ?????
-
scheduled task which every x minutes just writes current snapshot of v1 knbproxy list into mongoDB
-
create a REST API interface => /sync/v1/epics
- calls /api/v1sync
- and inserts --drop into v1Epics DB + createDate ** npm install node-rest-client ** https://www.npmjs.com/package/node-rest-client
-
[OK] works => now syncing every 5 minutes into v1epics colection => also used for join in portfoliogate view
[TODO] check diff between portfoliogates [TODO] check which boards an epic is on => join with boards[].items
[EPIC] global app config
-
e.g. config of v1_sync scheduler
-
global context variables .. =>
-
did some phantomJS screen capturing => in old kanban/js/phantomjs/capture.js :-)
- bootstrap dropdown box in kanban_menu
!!!!! excel export crashing => it boiled down to a NEWER version of exccel-export module !!!! 0.4 instead 0.3.11 => fixed version my express package.json to 0.3.11
- fixing admin remove handling
http://justinklemm.com/node-js-async-tutorial/ ** npm install async ** learming how to do a async.foreach()
[OK] works for remove :-)
- migrating save handler ** ported legacy async code [OK] ** should be refactored with async.series()...
- nodejs v1 experiment
=> in V1-> memberdetails -> permitted app management => got client_secret
{ "installed": { "client_id": "client_fo8d2rsj", "client_name": "v1nodegateway", "client_secret": "khyw6wf2e2cp2wd7dgqg", "redirect_uris": [ "urn:ietf:wg:oauth:2.0:oob" ], "auth_uri": "http://v1.bwinparty.corp/V1-Production/oauth.v1/auth", "token_uri": "http://v1.bwinparty.corp/V1-Production/oauth.v1/token", "server_base_uri": "http://v1.bwinparty.corp/V1-Production", "expires_on": "9999-12-31T23:59:59.9999999" } }
https://snow.bwin.corp/cmdb_ci_service_list.do?JSON
https://snow.bwinparty.corp/incident_list.do?JSON
- bower install slickgrid => had to fiddle a bit to get the css sytles back => created admin.css and copied the inlined syles from admin.php & the slickgrid.example css together ;-)
=> handling for custom extensions of slickgrid.... ==> created folder "extensions" in /javascripts ==> slick.formatters have some extensions ==> !!! had to use a older version of bootstrap due to jquery 1.7 dependcy from slickgrid..
[OK] admin works now
[TODO] => looks like that v1sync can be merged into admin => most of the stuff is the same => just some sync and compare methods in addition...
-
direct sync from v1gateway/prxy
-
auto / scheduled sync of this data to have it locally in mongodb
-
initial import from json
=> can act as a local "mock" gateway fo v1data... => in /v1nodegateway/v1epics => changed in kanban_config.js V1_DATA_URL... ... took me 3 minutes :-)
[OK] boards admin (at least the flat attributes, the itemview sub config i need to think of...)
[STORY]
- save, del in admin/
[STORY]
- reorganize organization collections into one ** sub fields for date of import (ala pboard..)
- excel import / upload (+ refactoring=
-
cleaning up javascripts / css
-
all (except wiki2html) now integrated via bower
-
cleaning up kanban js code ** remove all RUNMODE / LEGACY STUFF ** new v2.0 headers
-
copy mongoDB to "kanbanv2" and adapted all db calls ** kanban_node_gateway ** express controllers
[ok]
- goal is to have just one node.js process running hanling all server side stuff
=> explicit route
- "api/"
[OK] step-1
- findAllByName, FindById migrated from gateway to express/api
http://localhost:3000/api/kanbanv2/rest/ etc
- board works with legacy MONGO_GATEWAY :-)
next step-2 write / save / delete for admin and syc => but first also admin un v1sync from php to nodejs...
loading initiatives on the fly:
var d = $.getJSON(dataSourceFor("initiatives")); d.responseJSON = array of objects
always include --dev-save = adds into dev package.json
- playing with bower clientside package manager
- bower.json for kanban2.0 => wiki2html is not in github
=> added bower.json to app root http://stackoverflow.com/questions/14079833/how-to-change-bowers-default-components-folder => installs stuff into public/javascripts/components
http://gruntjs.com/getting-started
http://bocoup.com/weblog/introducing-grunt/
- sudo npm install -g grunt
- sudo npm install -g grunt-cli
[EPIC]
- json schema
- alpaca form
- edit details for boards
[EPIC]
- user / login management
- passport node.js
[EPIC]
- think about requireJS
[EPIC]
- board lane handling
- create empty board
- add / remove / update lanes and store them in lanes
[EPIC]
- drag drop initiatives onto new board handling
[EPIC]
- isolate v1 initiatives
- automated regular v1 sync => done 20150129
[EPIC]
- alternative item renderer
- whiteboard sketchy stlye vs. existing detailed planning stlye
[EPIC]
- find a way fo kanban menu
- refactor slidr
- [done] 20150201
[EPIC]
- send email from express
- notifcations, reports... http://www.sitepoint.com/sending-email-using-node-js/
[EPIC] package and deploy app
[EPIC] scrum tool
=> free versionone for a single project :-) https://www53.v1host.com/kathanat
- uid: *****
- pwd: ***********
http://nodejs.org/docs/latest/api/modules.html
quite simple
- create a file "module1.js"
- is like a class => e.g. if you declare a var x in this file thsi will stay private
- interfaces are exposed via "exports.myInterface()"
and the consumer just references the module with
- var module1 = require ("module1.js")
- module1.myInterface()
-
npm install jsdoc -g => does not work
-
sidr
$.sidr("close")
start a new branch of kanban js package for the express version
=> includes all NG features => reomve all legacy features => v2.0 => directly edit out of kanbanexpress dir
refactor all GLOBAL js variables to be stored in one of the available HTML5 resources
- sessionStorage
=> replace global var AUTH with getAUTH() call (in kanban_util.js)
=> started to get the save functions to work:
-
hidden form in kanban.jad
-
submit_download_form() function copied into kanban_util.js => might be better idea to introduce new "kanban_view.js" ??
-
manual call of submit_download_form("pdf"); => works but css is not handled correct
-
FIXED hack in css declaration for transcoder => in kanban_util.js
kanbanexpress
-
session handling
-
login
-
base for kanban views / routes
-
update PROD kanban with portfolio changes => history.xlsx
[TODO] upload and checker for portfoliogate excel
=> only show items with v1 status = "Implemnetation" d3.select("#items").selectAll("g").filter(function(d){return ((d.status!="Implementation"))}).style("visibility","hidden")
further refactored
- kanban_core
=> ITEMDATA_NEST no longer needed in "NG" !
NODE express playfield
-
created in /express folder
-
npm install express --save
-
npm install -g nodemon => start apps now via nodemon !
-
doing some tutorial stuff
http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/
kanbanexpress
- fileupload working
- login with bootstrap testing
ideas:
- lanes sollten auch referenzierbar in boards sein
- einmal eine lane definieren - eg. bwin und je nach board in verschiedenen views anzeigen !
- ähnlich wie mit items
- name
- description
- swot ?
- strategy pillars
- logo
- type (p&l, costcenter,...)
- REF to metrics
- REF to items ?
==> first experiment with a second board instance ..... board.id=2 board.name=studios
[IMPORTANT]
-
im boards.items.itemView => der path sollte NICHT den boardnamen drin haben sondern nur /lane1/lane2/lane3 !!
=> hab ich mal manuell im board (id=2,name="studios") gemacht und geht :-)
=> im legacy board (id=0, name="b2c gaming" sind die path noch mit "b2c gaming/lane/lane" drin...
-
switch boards without postback:
renderBoard(boardsData[1]); drawAll();
targets [TODO] refactoring
==> needs a REAL refactoring ==> raus aus items ==> bissi nachdenken
BMM
vision-> goals -> objectives
- was sind da "targets" überhaupt ?
- kpi / metrics
means <-> end
- brauchen auch noch ein "path" feld !!
- zuordnung wo sie sind analog zu items in boards
OK now we go into the core with lane, board , etc schema design !!!
=> added new field "path" in collection.lanes
contain the FQ path
=> mongoDEVdump
mongodump --db kanban --out mongodump_DEV_20150117
export LC_ALL="en_US.UTF-8"
- copy inititives collection to initiativesOLD
mongo use kanban db.initiatives.copyTo("initiativesOLD");
- remove non-initiative data fields to get a pure data collection
- accuracy
- bm
- lanePath
- onKanban
- size
- sublaneOffset
db.initiatives.find().forEach(function (elem) {db.initiatives.update({_id: elem._id},{ $unset: { accuracy:"",bm:"",lanePath:"",onKanban:"",size:"",sublaneOffset:"" }});});
- create new collection "boards"
- will hold the instances of concrete kanbanboards => our current one will be called "b2c gaming" (formerly known as "bm" field)
-
name (string)
-
height (int)
-
width (int)
-
itemScale (float)
-
laneboxRightWidth (int)
-
kanbanStart (date)
-
kanbanEnd (date)
-
viewConfig (default visibility of layers,...)
-
itemsOnBoard (array of item references mixed with the view information per item (the ones stripped out above) [{_id:xxxxx,itemRef:_id from initiative,itemViemInfo:{lanePath:xx,size:xx,sublaneOffset:xx,accuracy,}
-
lanesOnBoard (array of lane references)
=> import of items as an example
console:
var _items = [] for (var i in filteredInitiativeData){var _f = filteredInitiativeData[i];_items.push({itemRef:_f._id,itemView:{sublaneOffset:_f.sublaneOffset,size:_f.size,lanePath:_f.lanePath,accuracy:_f.accuracy}})}
- application level join to "emulate" current needed initiativeData
[OK] have a version running "NG" mode
=> alle the filteredInititaive data becomes obsolete in "NG" !!
so i have now:
- initiatives and boards split (mongo)
- app level join in kanban.renderB2Cgaming()
UUUUUUUHH => das ganze admin v1sync save / remove handling muss adaptiert werden .....
split write and remove... = ganze menge TODO :o)
*** initiative becomes transient in NG mode *** just temporary data for rendering !!! *** needs to be refreshed on updates joinBoard2Initiatives
howto remove an element from array
- search for item
var i =BOARD.items[100] BOARD.items.indexOf(i) => 100
BOARD.items.splice(100,1);
on PROD
/opt/mongodb/bin/mongoimport ./x2015jan15.json --jsonArray --db kanban --drop --collection org2015jan15
/opt/mongodb/bin/mongoimport ./scrumteams2014jul25.json --jsonArray --db kanban --drop --collection scrumteams
[EPIC] rewrite tree stuff
=> refactor hardcoded theme,lane,sublane, fields to generic path like structure
item.bm="b2c gaming" item.theme="topline" item.lane"bwin" item.sublane="mobile"
and then use _.nest("
http://stackoverflow.com/questions/8781983/build-a-json-tree-from-materialized-paths
conceptually we are now just talking about "nested lanes" => lane in a lane in a lane .....
item.path="/b2c gaming/topline/bwin/mobile/"
- decide whether items can only sit under leaf node of path or not
=> build tree based on path
step1:
- encapsulate all calls / references to hardcoded item.lane, item.topline,... calls
- generic format could be e.g. get
=> current implementation has more or less one hardcoded structure
bm = the board instance e.g. "b2c gaming" theme = first lane level lane = second lane level sublane = third lane level themeSl = experiment with alternative grouping => can be scrapped
all calls to _item.lane should be replaced with a getter/setter() method call
var items =[{item:"item1",path:"/b2cgaming/topline/bwin/touch"},{item:"item2",path:"/b2cgaming/topline/bwin/click"},{item:"item3",path:"/b2cgaming/topline/bwin/product"},{item:"item4",path:"/b2cgaming/topline/pp/market"},{item:"item5",path:"/b2cgaming/enabling/studios/agile"}];
items = items.map(function(d) { return d.path.split('/'); });
=> in kanban_util.js first experiment with function called
var items =[{item:"item1",lanePath:"/b2cgaming/topline/bwin/touch"},{item:"item2",lanePath:"/b2cgaming/topline/bwin/click"},{item:"item3",lanePath:"/b2cgaming/topline/bwin/product"},{item:"item4",lanePath:"/b2cgaming/topline/pp/market"},{item:"item5",lanePath:"/b2cgaming/enabling/studios/agile"}]; items = items.map(function(d) { return d.lanePath.split('/'); }); var t = buildTreeFromPathArray(items)
structure of initiativeData = array of item objects [item1,item2,..] item= {id:"id",name:"name",lane:"lane",.....]
- in kanban_core.createLaneHierarchy()
in console:
- ITEMDATA_NEST= ["theme","lane","sublane"];
- var h = _.nest(initiativeData,ITEMDATA_NEST)
- h
STEP1 = create new field in mongo.collection "initiatives" called "path" => should be automatically doable to take the bm+theme+lane+sublane and string it together
use kanban
// bulk update to create new field lanePath and prefill with existing data from hardcoded fields
db.initiatives.find().forEach(function (elem) {db.initiatives.update({_id: elem._id},{ $set: { lanePath: elem.bm + '/' + elem.theme + '/' + elem.lane + '/' + elem.sublane }});});
[OK]
- in kanban console i can now already apply the new tree building based on lanePath field
var items = initiativeData.map(function(d) { return d.lanePath.split('/'); }); var t = buildTreeFromPathArray(items)
t[0] has the same structure needed for createLaneHierarchy() :o)
=> only thing missing is to put the concrete initiatives in the leaf nodes where the last "/" is !
=> HOLY SHIT => i do not even need to have the items in the leave path !!!! => works also without that !!! => experiment in kanban_core.createLaneHierarchy() works !!!!!
LEARNING = itemTree does NOT need to have items in leaf path ! => therefore it could/should be renamed to "laneTree" !
[OK]
- added RUNMODE configuration to switch between "LEGACY" and "NG" mode
kanban current flow
- itemTree is "only" needed for lanes
- currently implicitly called in kanban.drawInitiatives() => drawLanes() is called in that function ...
=> all the kanban_util.getLanesNEW()... methods call the generic method
function getElementsByDepth(depth){ var _elements = new Array(); traverse(itemTree,0,depth,_elements); return _elements; }
=> which uses the itemTree !
- das ist eh schon alles total richtig !
- wenn ich die draItems() auskommentiere baut er mir im NG mode bereits fixfertig die lane structure auf !!!!
ABER das ganze ist ja leider immer noch auf basis der impliziten lanePath info von der summe aller initiatives ;-) => sprich das lane gerüst ist derzeit NICHT explizit definiert (unabhängig von den initiatives) sondern in den dingern drin ...
it looks like we have a 3 level lane default
level 0 = sublane ==> items level 1 = lane level 2 = theme (level 3 = bm ?) ==> board
how to map now calls like ?
check path depth
- item.theme => item.lanePath.split("/").first()
- item.lane => item.lanePath.split("/").middle()
- item.sublane => item.lanePath.split("/").last()
remove theme,lane,sublane,themesl fields
db.initiatives.find().forEach(function (elem) {db.initiatives.update({_id: elem._id},{ $unset: { lane:"",theme:"",sublane:"",themesl:"" }});});
- immerhin zeichnet er mir wieder die ganze lane structure
- now works already nearly :-)
refactoring admin.php
=> extracting ajaxCall function into kanban_util => can be called from everywhere now
testing initiative on drop sublaneOffset save
- works EASILY => just had to call the new ajaxCall() method on dragEnd and voila :-)
=> OK now also lane, sublane works BUT !!!!
the sublaneOffset Handling is broken as it takes the absolute moved pixels as offset !!!!!
=> OK fixed
- drag & drop only in ISOLATIONMODE
- sublaneoffset only within same sublane
- crossing lanes possible
continuation from https://github.com/gkathan/kanban/
experimenting with drag drop
=> currently a specific dragdrop handler for items is implemented in kanban_utils => try to get lanes movable => experimental reuse of drag_item behaviour in kanban_lanes.drawLaneBox()
=> i am still not fully back with my brain but getting there ;-)
[STORY] = make laneboxtext inline editable via html overlay form => derzeit ist lanetext zeilenweise in mongodb
- experimenting with console and my textarea helper class (in d3_util.js)
=> yet quite weird => braucht als erstes ein "text" element => und dann kann man damit ein textarea ding machen
textarea(svg.append("text"),"UBBA BAZOOKA | + list item1 | +list item2 | +list item3",0,-170,200);
=> " | " ist zeilenumbruch
- setup kanban on HOME DEV WORKSTATION (bender)
- install mongodb on WIN (a bit quirky .)
- ant mongodumpPROD
- restore manually C:\Program Files\MongoDB 2.6 Standard\bin>mongorestore --drop C:\Users\cactus\Dropbox_work\d3\kanban\data\mongo\mongodump_PROD_20150111_193900
- SUCCESS
[EPIC]
- migrate php webfiles (only used for session handling) to node.js express
[STORY]
- selective filter view for ITEMS e.g. show only DONE items d3.select("#items").selectAll("g").filter(function(d){return d.state!="done"}).style("visibility","hidden")
=> check whether the DONE percentage count is accurate => seems currently not to be the case => only those which also have the planned End date in the visible kanban corridor are counted