diff --git a/Ubuntu README.rdoc b/Ubuntu README.rdoc new file mode 100644 index 00000000..b468eb4c --- /dev/null +++ b/Ubuntu README.rdoc @@ -0,0 +1,101 @@ +Firstly this walkthrough is done with a 14.04 32bit install of Ubuntu. + +All Commands are quoted with "" which are not to be included in the command. + +All commands that I could are terminal based. + +Lets check if all updates for the system are installed first + +in terminal type + +"sudo apt-get update" + +now we need to install git + +"sudo apt-get install git" + +lets get our RVM installed (Ruby Version Manager) now this is fun because the package you will get from apt-get is outdated. + +so we are going to use CURL to get RVM + +"sudo apt-get install curl" + +then lets install RVM with curl like this + +"curl -L get.rvm.io | bash -s stable" + +"PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting" + +"[[ -s "$HOME/.profile" ]] && source "$HOME/.profile"" + +"[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"" + +"source ~/.rvm/scripts/rvm" + +now we can actually install RVM + +"rvm requirements" + +running this will check your system for requirements as well so you will need to put your system password in. + +alright now we can download metamaps from the master using git + +"git clone https://github.com/Connoropolous/metamaps_gen002.git" + +now there is a couple other things we are going to need which is nodejs, postgresql, libpq-dev and redis-server + +"sudo apt-get install nodejs" + +"sudo apt-get install postgresql" + +"sudo apt-get install libpq-dev" + +"sudo apt-get install redis-server" + +Install the specific version of ruby needed this will take some time *Note you will get a warning about this being an outdated version* + +"rvm install ruby-1.9.3-p125" + +Now we also need to rename your database file which is in ./config/database.default.yml to database.yml + +now run inside your metamaps_gen002 folder + +"bundle install" + +in your top lvl directory for metamaps this is a lengthy process so you might want to go and make a coffee or something :) + +alright now we need to make sure your postgres password is the same as it is listed in the DB file so we are going to set it by + +"sudo -u postgres psql" + +Select postgres like this + +"\password postgres" + +set the password to 3112 + +Then to quit + +"\q" + +now we can run the rake install and db creation + +"rake db:create" + +"rake db:schema:load" + +"rake db:fixtures:load" + +Execute the server : "rails s" + +and dont forget to run realtime too open a new terminal + +navigate to ./realtime and run + +"nodejs realtime-server.js" + +Now your all set enjoy your personal server of metamaps :) + + + + diff --git a/app/assets/javascripts/Jit/graphsettings-event-handlers.js b/app/assets/javascripts/Jit/graphsettings-event-handlers.js index 7860bdee..e699146c 100644 --- a/app/assets/javascripts/Jit/graphsettings-event-handlers.js +++ b/app/assets/javascripts/Jit/graphsettings-event-handlers.js @@ -31,6 +31,25 @@ function selectEdgeOnClickHandler(adj, e) { selectEdge(adj); } + var edgeIsSelected = MetamapsModel.selectedEdges.indexOf(adj); + if (edgeIsSelected == -1) edgeIsSelected = false; + else if (edgeIsSelected != -1) edgeIsSelected = true; + + if (edgeIsSelected && e.shiftKey) { + //deselecting an edge with shift + deselectEdge(adj); + } else if (!edgeIsSelected && e.shiftKey) { + //selecting an edge with shift + selectEdge(adj); + } else if (edgeIsSelected && !e.shiftKey) { + //deselecting an edge without shift - unselect all + deselectAllEdges(); + } else if (!edgeIsSelected && !e.shiftKey) { + //selecting an edge without shift - unselect all but new one + deselectAllEdges(); + selectEdge(adj); + } + Mconsole.plot(); } //selectEdgeOnClickHandler @@ -204,13 +223,13 @@ function selectNodeOnClickHandler(node, e) { selectNodeOnRightClickHandler(node, e) return; } - + // if on a topic page, let alt+click center you on a new topic if (!mapid && e.altKey) { centerOn(node.id); return; } - + var check = nodeWasDoubleClicked(); if (check) { nodeDoubleClickHandler(node, e); diff --git a/app/assets/javascripts/jquery/EveryPage.js b/app/assets/javascripts/jquery/EveryPage.js index ae101ae1..1d9ade1f 100644 --- a/app/assets/javascripts/jquery/EveryPage.js +++ b/app/assets/javascripts/jquery/EveryPage.js @@ -144,6 +144,7 @@ $(document).ready(function () { $('.sidebarSearchField').typeahead([ { name: 'topics', + limit: 9999, dupChecker: function (datum1, datum2) { return false; }, @@ -174,6 +175,7 @@ $(document).ready(function () { }, { name: 'maps', + limit: 9999, dupChecker: function (datum1, datum2) { return false; }, @@ -203,6 +205,7 @@ $(document).ready(function () { }, { name: 'mappers', + limit: 9999, dupChecker: function (datum1, datum2) { return false; }, @@ -224,6 +227,18 @@ $(document).ready(function () { header: '

Mappers

' } ]); + + //Set max height of the search results box to prevent it from covering bottom left footer + $('.sidebarSearchField').bind('typeahead:opened', function (event) { + var h = $(window).height(); + $(".tt-dropdown-menu").css('max-height', h - 100); + }); + $(window).resize(function () { + var h = $(window).height(); + $(".tt-dropdown-menu").css('max-height', h - 100); + }); + + // tell the autocomplete to launch a new tab with the topic, map, or mapper you clicked on $('.sidebarSearchField').bind('typeahead:selected', function (event, datum, dataset) { console.log(event); diff --git a/app/assets/javascripts/typeahead.js b/app/assets/javascripts/typeahead.js index 74e3de5d..e7f72913 100644 --- a/app/assets/javascripts/typeahead.js +++ b/app/assets/javascripts/typeahead.js @@ -1147,4 +1147,4 @@ } }; })(); -})(window.jQuery); \ No newline at end of file +})(window.jQuery); diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 5934201d..6a85c898 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -964,9 +964,12 @@ h3.filterByMetacode { font-family: 'LatoRegular'; } .sidebarSearch .tt-dropdown-menu { - left: -35px !important; - background: #0F1519; - min-width: 440px; +left:-35px !important; +background: #0F1519; +min-width: 440px; +width: 440px; +overflow-y: scroll; +overflow-x: hidden; } .sidebarSearch .tt-dropdown-menu h3 { font-family: 'vinyl', helvetica, sans-serif; @@ -1011,11 +1014,13 @@ h3.filterByMetacode { .sidebarSearch .tt-suggestion { background: #2A343C; } -.sidebarSearch .tt-is-under-cursor { +.sidebarSearch .tt-is-under-cursor, .sidebarSearch .tt-is-under-mouse-cursor { background: #0E161D; } .sidebarSearch .tt-dataset-maps .tt-is-under-cursor .resultmap, -.sidebarSearch .tt-dataset-topics .tt-is-under-cursor .resulttopic { +.sidebarSearch .tt-dataset-maps .tt-is-under-mouse-cursor .resultmap, +.sidebarSearch .tt-dataset-topics .tt-is-under-cursor .resulttopic, +.sidebarSearch .tt-dataset-topics .tt-is-under-mouse-cursor .resulttopic { min-height: 57px; } .sidebarSearch .tt-suggestion .icon { @@ -1033,14 +1038,16 @@ h3.filterByMetacode { width: 36px; height: 36px; } -.sidebarSearch .tt-dataset-topics .tt-is-under-cursor .topicIcon { +.sidebarSearch .tt-dataset-topics .tt-is-under-cursor .topicIcon, +.sidebarSearch .tt-dataset-topics .tt-is-under-mouse-cursor .topicIcon { margin: 0 auto; padding-left: 2px } .sidebarSearch .tt-dataset-topics .metacodeTip { display: none; } -.sidebarSearch .tt-dataset-topics .tt-is-under-cursor .metacodeTip { +.sidebarSearch .tt-dataset-topics .tt-is-under-cursor .metacodeTip, +.sidebarSearch .tt-dataset-topics .tt-is-under-mouse-cursor .metacodeTip { display: block; font-family: 'vinyl'; text-transform: uppercase; @@ -1055,9 +1062,10 @@ h3.filterByMetacode { padding: 4px; } .sidebarSearch .resultText { - width: 250px; + width: 225px; display: block; float: left; + word-wrap: break-word; } .sidebarSearch .resultTitle { font-weight: normal; @@ -1083,7 +1091,8 @@ h3.filterByMetacode { position: relative; display: none; } -.sidebarSearch .tt-is-under-cursor .autoOptions { +.sidebarSearch .tt-is-under-cursor .autoOptions, +.sidebarSearch .tt-is-under-mouse-cursor .autoOptions { display: block; } .sidebarSearch .tt-suggestion .resultnoresult .autoOptions { @@ -1121,7 +1130,7 @@ h3.filterByMetacode { background: url(/assets/MMCCicon_map.png) no-repeat 0px center; background-size: 14px 14px; top: 7px; - left: 39px; + left: 38px; padding-left: 18px; font-size: 12px; line-height: 20px; @@ -1157,34 +1166,32 @@ h3.filterByMetacode { left: 13px; } .sidebarSearch .tip { - position: absolute; - background: white; - width: auto; - bottom: 0; - left: 23px; - color: black; - white-space: nowrap; - border-radius: 4px; - font-size: 15px !important; - font-family: 'LatoRegular'; - line-height: 17px; - padding: 3px 5px 2px; - z-index: 100; + position: absolute; + background: white; + width: auto; + bottom: 0; + right: 25px; + color: black; + white-space: nowrap; + border-radius: 4px; + font-size:15px !important; + font-family:'LatoRegular'; + line-height:17px; + padding: 3px 5px 2px; + z-index:100; } -.sidebarSearch .mapCount .tip, -.sidebarSearch .synapseCount .tip, -.sidebarSearch .topicCount .tip { - left: -3px; - bottom: 24px; +.sidebarSearch .mapCount .tip,.sidebarSearch .synapseCount .tip, .sidebarSearch .topicCount .tip { + right:-3px; + bottom:24px; } .sidebarSearch .hoverForTip:hover .tip { display: block; } .sidebarSearch .mapContributorsIcon .mapContributors { - left: 0; - bottom: 21px; - white-space: normal; - width: 200px; + right:0; + bottom:21px; + white-space:normal; + width:200px; } .sidebarSearch div.mapContributorsIcon { height: 20px; @@ -2474,4 +2481,4 @@ span.blue { } .templates { display: none; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/users.css.scss b/app/assets/stylesheets/users.css.scss index ff75b57e..829f76f8 100644 --- a/app/assets/stylesheets/users.css.scss +++ b/app/assets/stylesheets/users.css.scss @@ -2,6 +2,7 @@ // They will automatically be included in application.css. // You can use Sass (SCSS) here: http://sass-lang.com/ + .allMetacodes { float:left; } @@ -62,4 +63,4 @@ .editMetacodes li.toggledOff { opacity: 0.4; -} \ No newline at end of file +} diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb index c450bdfc..a3ba3b43 100644 --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -161,7 +161,7 @@ class MainController < ApplicationController # !connor why is the limit 5 done here and not above? also, why not limit after sorting alphabetically? @maps = Map.where(query, search).limit(5).order('"name"') elsif user - @maps = Map.where(query, search).where('user_id = ?', user).limit(5).order('"name"') + @maps = Map.where(query, search).where('user_id = ?', user).order('"name"') end else @maps = [] @@ -182,7 +182,7 @@ class MainController < ApplicationController #remove "mapper:" if appended at beginning term = term[7..-1] if term.downcase[0..6] == "mapper:" - @mappers = User.where('LOWER("name") like ?', term.downcase + '%').limit(5).order('"name"') + @mappers = User.where('LOWER("name") like ?', term.downcase + '%').order('"name"') else @mappers = [] end diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 79dde314..732b0f03 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -11,7 +11,6 @@ <%= form.input :name, label: "Name", class: "name" %> <%= form.input :email, label: "Email", class: "email" %> <%= form.input :password, label: "Password", class: "password", :autocomplete => :off %> - <%= form.submit "Update", class: "update" %> - + <%= form.submit "Update", class: "update" %> <% end %>