diff --git a/.gitignore b/.gitignore index 991c275435eb5f28a26b2dd2a129f75f8a83a207..bfa6a22a524852a8df1d6462f0323d20449c4e95 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1 @@ -node_modules -.project -.settings -morpheus_3rd_party.xlsx -js/morpheus-external.js -js/morpheus-external.min.js -js/morpheus.js \ No newline at end of file +# Created by .ignore support plugin (hsz.mobi) diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml new file mode 100644 index 0000000000000000000000000000000000000000..7fb8ed00def85cd0fa9e3692d2786fc224c2273e --- /dev/null +++ b/.idea/codeStyleSettings.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000000000000000000000000000000000..97d68e389fd15ed747ceb370a44a1bd866545f2e --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..3b312839bf2e939fea3ebdef15630a4b33e57caf --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Gruntfile.apps.js b/Gruntfile.apps.js new file mode 100644 index 0000000000000000000000000000000000000000..d52fcfeda7e055b636b29bb52db187caca3b2892 --- /dev/null +++ b/Gruntfile.apps.js @@ -0,0 +1,122 @@ +/*global module:false*/ +module.exports = function(grunt) { + grunt + .initConfig({ + pkg : grunt.file.readJSON('package.json'), + meta : { + banner : '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + + '<%= grunt.template.today("yyyy-mm-dd") %>\n' + + '<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' + + '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>; %> */' + }, + 's3-sync' : { + options : { + key : 'AKIAIJEUG7S3IGYDERQQ', + secret : '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', + bucket : 'appdata.cmap.org' + }, + tcga : { + files : [ { + root : 'U:/users/jgould/tcga_current/test', + src : [ 'U:/users/jgould/tcga_current/test/**' ], + dest : 'morpheus/tcga/', + gzip : true, + compressionLevel : 9 + } ] + } + }, + uglify : { + extApps : { + options : { + mangle : false + }, + files : { + 'js/morpheus.external.apps.min.js' : [ 'js/morpheus.external.apps.js' ] + } + } + }, + cssmin : { + apps : { + src : 'css/morpheus.external.apps.css', + dest : 'css/morpheus.external.apps.min.css' + } + }, + concat : { + extCss : { + src : [ 'css/jquery-ui.min.css', + 'css/font-awesome.min.css', + 'css/hopscotch.min.css', 'css/slick.grid.css' ], + dest : 'css/morpheus.external.apps.css' + }, + extJs : { + nonull : true, + dest : 'js/morpheus.external.apps.js', + src : [ 'js/newick.js', 'js/hammer.min.js', + 'js/jquery.mousewheel.min.js', + 'js/bootstrap-select.min.js', + 'js/xlsx.full.min.js', 'js/canvas2svg.js', + 'js/canvg.js', 'js/rgbcolor.js', + 'js/jquery-ui.min.js', 'js/parser.js', + 'js/FileSaver.min.js', 'js/Blob.js', + 'js/canvas-toBlob.js', 'js/colorbrewer.js', + 'js/hopscotch.min.js', 'js/typed.min.js', + 'js/jquery.event.drag-2.2.js', + 'js/slick.min.js', 'js/quadtree.min.js', + 'js/clipboard.min.js', 'js/d3.min.js', + 'js/d3.layout.cloud.js' ] + }, + morpheus : { + nonull : true, + dest : 'js/morpheus.js', + src : [ 'src/util/util.js', 'src/util/*.js', + 'src/io/*.js', 'src/matrix/vector_adapter.js', + 'src/table/list.js', 'src/matrix/*.js', + 'src/*.js', 'src/tools/*.js', 'src/ui/*.js', + 'src/**/*.js' ] + } + }, + watch : { + files : [ 'src/*.js', 'src/**/*.js' ], + tasks : [ 'concat:morpheus', 'copy:apps' ] + }, + copy : { + apps : { + src : 'js/morpheus.js', + dest : '../kafejo/public/lib/js/morpheus.js' + }, + appsMin : { + src : 'js/morpheus.min.js', + dest : '../kafejo/public/lib/js/morpheus.min.js' + }, + morpheus : { + files : [ { + src : [ 'css/**' ], + dest : '../kafejo/public/morpheus/', + }, { + + src : [ 'fonts/**' ], + dest : '../kafejo/public/morpheus/', + }, { + src : [ 'js/**' ], + dest : '../kafejo/public/morpheus/', + }, { + src : [ '*.html' ], + dest : '../kafejo/public/morpheus/', + }, { + src : [ 'images/**' ], + dest : '../kafejo/public/morpheus/', + } ] + + } + } + }); + // Default task. + grunt.registerTask('default', 'copy'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-s3-sync'); +}; diff --git a/SlickGrid/.gitignore b/SlickGrid/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..d2f89b666461eaad83e75083feaaf90f18a30350 --- /dev/null +++ b/SlickGrid/.gitignore @@ -0,0 +1,3 @@ +.gitk* +.idea/* +.DS_Store diff --git a/SlickGrid/MIT-LICENSE.txt b/SlickGrid/MIT-LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..60f65425c0d49a6a7534bd7d5b26b657ac1f3511 --- /dev/null +++ b/SlickGrid/MIT-LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2010 Michael Leibman, http://github.com/mleibman/slickgrid + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/SlickGrid/README.md b/SlickGrid/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8aa4fd54f2ca8377fb04522b32fc1996c6186fbf --- /dev/null +++ b/SlickGrid/README.md @@ -0,0 +1,74 @@ +## This is the 6pac slickgrid repo + +I am maintaining this branch as a separate 'alternative master'. Check [my wiki](https://github.com/6pac/SlickGrid/wiki) for details. + +Once we take on SlickGrid we all add [my patch for my specific app requirement]. This 'application noise' makes it much harder to share updates to SlickGrid with other users, who may want some of the changes, but find others irrelevant. + +This repo is deliberately **non-customised**. We have *only* kept jQuery up to date, made bug fixes where necessary and added small features carefully considered to enhance the overall usefulness of the grid. +Example pages showcase any new features. + +The following, in short, are the changes made since forking from the main MLeibman branch, a significant number in response to issues or pull requests. + +**Maintenance:** + +* update to jquery-1.11.2 and jquery-ui-1.11.3, with minor patches to accommodate the change +* Fix bug in dataview causing model benchmark test to throw an error +* Remove redundant slick pager code +* Fix unnecessary horizontal scroll for autosized columns when viewport has fractional pixel width +* Make default group comparer function more robust +* fix grouping bug (issue #841 & #896 mleibman#898) +* update DataView compiled-expression regex to deal with some forms of minification +* Fix Issue #963 ajax example not working +* additional version of ajax loading page, using Yahoo news and YQL as a source. the format of the grid rows is more in keeping with the newsfeed style of the original +* Fix tooltip error with draggable columns +* Prevent useless onSelectedRangesChanged events in selectionmodels' setSelectedRanges +* Fix jQueryUI css interfering with SlickGrid css issues +* Fix column resizing issues with Bootstrap 3/box-sizing:border-box +* Patch absBox for null element bug (MLeibman #1066) +* fix bugs identified by JsHint +* remove deprecated jquery .browser property +* fix error in autotooltips test +* add internal keycode enums +* fix bug in compound editor example 'isValueChanged' method + +**New features:** + +* Add css manipulation so that grid initialises successfully if the parent element is hidden +* Add jQueryUI accordion and Bootstrap 3 examples +* Add multi grid on page example (example-multi-grid-basic) +* Add async post render async cleanup +* Allow custom editors to suppress automatic cell clear on edit +* Add Floating Point editor +* Add grid as member of args parameter for all events, and to column formatter. Add dataView as member of args parameter for all dataView events +* add custom validator option to integer, float and date editors +* Add example of dynamic tab and grid creation for basic grid +* Add example of dynamic tab and grid creation for grid with all the features of example-4-model + +# Original mleibman README follows: + + + + + +Find documentation and examples in [the wiki](https://github.com/mleibman/SlickGrid/wiki). + +# Welcome to SlickGrid + +## SlickGrid is an advanced JavaScript grid/spreadsheet component + +Some highlights: + +* Adaptive virtual scrolling (handle hundreds of thousands of rows with extreme responsiveness) +* Extremely fast rendering speed +* Supports jQuery UI Themes +* Background post-rendering for richer cells +* Configurable & customizable +* Full keyboard navigation +* Column resize/reorder/show/hide +* Column autosizing & force-fit +* Pluggable cell formatters & editors +* Support for editing and creating new rows. +* Grouping, filtering, custom aggregators, and more! +* Advanced detached & multi-field editors with undo/redo support. +* “GlobalEditorLock” to manage concurrent edits in cases where multiple Views on a page can edit the same data. +* Support for [millions of rows](http://stackoverflow.com/a/2569488/1269037) diff --git a/SlickGrid/controls/slick.columnpicker.css b/SlickGrid/controls/slick.columnpicker.css new file mode 100644 index 0000000000000000000000000000000000000000..bcbb37584c2d3b4a50fd9b34246ec34b296e4576 --- /dev/null +++ b/SlickGrid/controls/slick.columnpicker.css @@ -0,0 +1,31 @@ +.slick-columnpicker { + border: 1px solid #718BB7; + background: #f0f0f0; + padding: 6px; + -moz-box-shadow: 2px 2px 2px silver; + -webkit-box-shadow: 2px 2px 2px silver; + box-shadow: 2px 2px 2px silver; + min-width: 100px; + cursor: default; +} + +.slick-columnpicker li { + list-style: none; + margin: 0; + padding: 0; + background: none; +} + +.slick-columnpicker input { + margin: 4px; +} + +.slick-columnpicker li a { + display: block; + padding: 4px; + font-weight: bold; +} + +.slick-columnpicker li a:hover { + background: white; +} diff --git a/SlickGrid/controls/slick.columnpicker.js b/SlickGrid/controls/slick.columnpicker.js new file mode 100644 index 0000000000000000000000000000000000000000..dc16720997523c5c99315e05a96b4039f3979f8b --- /dev/null +++ b/SlickGrid/controls/slick.columnpicker.js @@ -0,0 +1,152 @@ +(function ($) { + function SlickColumnPicker(columns, grid, options) { + var $menu; + var columnCheckboxes; + + var defaults = { + fadeSpeed:250 + }; + + function init() { + grid.onHeaderContextMenu.subscribe(handleHeaderContextMenu); + grid.onColumnsReordered.subscribe(updateColumnOrder); + options = $.extend({}, defaults, options); + + $menu = $("