<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title></title>
  <link rel="stylesheet" href="http://mleibman.github.io/SlickGrid/slick.grid.css" />
  <link rel="stylesheet" href="http://mleibman.github.io/SlickGrid/css/smoothness/jquery-ui-1.8.16.custom.css" />
  <link rel="stylesheet" href="style.css" />
  <script data-require="jquery" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>

<body>
  <div id="myGrid" style="width:600px;height:500px;"></div>
  <script src="http://mleibman.github.io/SlickGrid/lib/jquery-1.7.min.js"></script>
  <script src="http://mleibman.github.io/SlickGrid/lib/jquery.event.drag-2.2.js"></script>
  <script src="http://mleibman.github.io/SlickGrid/slick.core.js"></script>
  <script src="http://mleibman.github.io/SlickGrid/slick.grid.js"></script>
  <script src="http://mleibman.github.io/SlickGrid/plugins/slick.autotooltips.js"></script>
  <script src="script.js"></script>
</body>

</html>
var grid;
var columns = [
  { id: 'title', name: 'Title', field: 'title', sortable: true },
  {
    id: 'long-val',
    name: 'Really Really Really Long Title',
    field: 'longVal',
    sortable: true,
    toolTip: 'Really Really Really Long Title',
  },
  {
    id: 'duration',
    name: 'Duration',
    field: 'duration',
    sortable: true,
    formatter: dayFormatter,
  },
  { id: '%', name: '% Complete', field: 'percentComplete', sortable: true },
  {
    id: 'start',
    name: 'Start',
    field: 'start',
    formatter: dateFormatter,
    sortable: true,
  },
  {
    id: 'finish',
    name: 'Finish',
    field: 'finish',
    formatter: dateFormatter,
    sortable: true,
  },
  {
    id: 'effort-driven',
    name: 'Effort Driven',
    field: 'effortDriven',
    sortable: true,
  },
];

function dayFormatter(row, cell, value, columnDef, dataContext) {
  return value + ' days';
}

function dateFormatter(row, cell, value, columnDef, dataContext) {
  return value.getMonth() + '/' + value.getDate() + '/' + value.getFullYear();
}

var options = {
  enableColumnReorder: false,
  multiColumnSort: true,
  enableCellNavigation: true,
  autoExpandColumns: false,
  forceFitColumns: false,
  showFooterRow: false,
 // rowHeight: 45,
  //headerRowHeight: 50
};

$(function() {
  var MS_PER_DAY = 24 * 60 * 60 * 1000;
  var data = [];
  for (var i = 0; i < 500; i++) {
    var startDate = new Date(
      new Date('1/1/1980').getTime() +
        Math.round(Math.random() * 365 * 25) * MS_PER_DAY
    );
    var endDate = new Date(
      startDate.getTime() + Math.round(Math.random() * 365) * MS_PER_DAY
    );
    data[i] = {
      title: 'Task ' + i,
      longVal: 'Super duper long string here',
      duration: Math.round(Math.random() * 30) + 2,
      percentComplete: Math.round(Math.random() * 100),
      start: startDate,
      finish: endDate,
      effortDriven: i % 5 == 0,
    };
  }

  grid = new Slick.Grid('#myGrid', data, columns, options);

  grid.registerPlugin( new Slick.AutoTooltips({ enableForHeaderCells: true }) );

  grid.onSort.subscribe(function(e, args) {
    var cols = args.sortCols;

    data.sort(function(dataRow1, dataRow2) {
      for (var i = 0, l = cols.length; i < l; i++) {
        var field = cols[i].sortCol.field;
        var sign = cols[i].sortAsc ? 1 : -1;
        var value1 = dataRow1[field],
          value2 = dataRow2[field];
        var result = (value1 == value2 ? 0 : value1 > value2 ? 1 : -1) * sign;
        if (result != 0) {
          return result;
        }
      }
      return 0;
    });
    //grid.setHeaderRowHeight(30);
    grid.invalidate();
    grid.render();
  });
});
@import url('../slick-default-theme.css');

* {
  font-family: arial;
  font-size: 8pt;
}

body {
  background: beige;
  padding: 0;
  margin: 8px;
}

h2 {
  font-size: 10pt;
  border-bottom: 1px dotted gray;
}

ul {
  margin-left: 0;
  padding: 0;
  cursor: default;
}

li {
  background: url('../images/arrow_right_spearmint.png') no-repeat center left;
  padding: 0 0 0 14px;

  list-style: none;
  margin: 0;
}

#myGrid {
  background: white;
  outline: 0;
  border: 1px solid gray;
}

/* .grid-header {
  border: 1px solid gray;
  border-bottom: 0;
  border-top: 0;
  background: url('../images/header-bg.gif') repeat-x center top;
  color: black;
  height: 24px;
  line-height: 24px;
}

.grid-header label {
  display: inline-block;
  font-weight: bold;
  margin: auto auto auto 6px;
}

.grid-header .ui-icon {
  margin: 4px 4px auto 6px;
  background-color: transparent;
  border-color: transparent;
}

.grid-header .ui-icon.ui-state-hover {
  background-color: white;
}

.grid-header #txtSearch {
  margin: 0 4px 0 4px;
  padding: 2px 2px;
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border: 1px solid silver;
} */

.options-panel {
  -moz-border-radius: 6px;
  -webkit-border-radius: 6px;
  border: 1px solid silver;
  background: #f0f0f0;
  padding: 4px;
  margin-bottom: 20px;
  width: 320px;
  position: absolute;
  top: 0px;
  left: 650px;
}

/* Individual cell styles */
.slick-cell.task-name {
  font-weight: bold;
  text-align: right;
}

.slick-cell.task-percent {
  text-align: right;
}

.slick-cell.cell-move-handle {
  font-weight: bold;
  text-align: right;
  border-right: solid gray;

  background: #efefef;
  cursor: move;
}

.cell-move-handle:hover {
  background: #b6b9bd;
}

.slick-row.selected .cell-move-handle {
  background: #d5dc8d;
}

.slick-row .cell-actions {
  text-align: left;
}

.slick-row.complete {
  background-color: #dfd;
  color: #555;
}

.percent-complete-bar {
  display: inline-block;
  height: 6px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
}

/* Slick.Editors.Text, Slick.Editors.Date */
input.editor-text {
  width: 100%;
  height: 100%;
  border: 0;
  margin: 0;
  background: transparent;
  outline: 0;
  padding: 0;
}

.ui-datepicker-trigger {
  margin-top: 2px;
  padding: 0;
  vertical-align: top;
}

/* Slick.Editors.PercentComplete */
input.editor-percentcomplete {
  width: 100%;
  height: 100%;
  border: 0;
  margin: 0;
  background: transparent;
  outline: 0;
  padding: 0;

  float: left;
}

.editor-percentcomplete-picker {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 100%;
  background: url('../images/pencil.gif') no-repeat center center;
  overflow: visible;
  z-index: 1000;
  float: right;
}

.editor-percentcomplete-helper {
  border: 0 solid gray;
  position: absolute;
  top: -2px;
  left: -9px;
  background: url('../images/editor-helper-bg.gif') no-repeat top left;
  padding-left: 9px;

  width: 120px;
  height: 140px;
  display: none;
  overflow: visible;
}

.editor-percentcomplete-wrapper {
  background: beige;
  padding: 20px 8px;

  width: 100%;
  height: 98px;
  border: 1px solid gray;
  border-left: 0;
}

.editor-percentcomplete-buttons {
  float: right;
}

.editor-percentcomplete-buttons button {
  width: 80px;
}

.editor-percentcomplete-slider {
  float: left;
}

.editor-percentcomplete-picker:hover .editor-percentcomplete-helper {
  display: block;
}

.editor-percentcomplete-helper:hover {
  display: block;
}

/* Slick.Editors.YesNoSelect */
select.editor-yesno {
  width: 100%;
  margin: 0;
  vertical-align: middle;
}

/* Slick.Editors.Checkbox */
input.editor-checkbox {
  margin: 0;
  height: 100%;
  padding: 0;
  border: 0;
}
.slick-header-columns {
  white-space: normal !important;
  height: 50px;
}

.slick-header-column.ui-state-default {
  height: 100% !important;
}

/* .slickgrid-word-wrap .slick-cell {
    white-space: normal;
    overflow: hidden;
} */