From e593bbc8b2b633a833d4dcf3f82e54f08c173f31 Mon Sep 17 00:00:00 2001 From: Connor Turland Date: Fri, 4 Jan 2013 21:39:16 -0500 Subject: [PATCH] added ability to hide topics from canvas, remove topics from map, and delete topics, all from the graph. --- app/assets/images/delete.png | Bin 0 -> 2991 bytes app/assets/images/go-arrow-2.png | Bin 0 -> 4005 bytes app/assets/images/go-arrow.png | Bin 22015 -> 3730 bytes app/assets/images/minus.png | Bin 0 -> 2815 bytes app/assets/images/removeFromCanvas.png | Bin 0 -> 2825 bytes app/assets/images/removeFromMap.png | Bin 0 -> 2926 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes app/assets/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes app/assets/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes app/assets/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes app/assets/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes app/assets/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes app/assets/javascripts/Jit/graphsettings.js | 60 ++++++- app/assets/javascripts/application.js | 21 ++- app/assets/stylesheets/topics.css.scss | 155 +++++++++++------- app/controllers/maps_controller.rb | 8 - app/controllers/topics_controller.rb | 27 ++- app/views/main/console.html.erb | 52 +++--- app/views/maps/edit.html.erb | 2 - app/views/maps/show.html.erb | 39 +++-- app/views/topics/destroy.js.erb | 18 +- app/views/topics/removefrommap.js.erb | 14 ++ config/routes.rb | 1 + 29 files changed, 270 insertions(+), 127 deletions(-) create mode 100644 app/assets/images/delete.png create mode 100644 app/assets/images/go-arrow-2.png create mode 100644 app/assets/images/minus.png create mode 100644 app/assets/images/removeFromCanvas.png create mode 100644 app/assets/images/removeFromMap.png create mode 100644 app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 app/assets/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 app/assets/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 app/assets/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 app/assets/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 app/assets/images/ui-icons_222222_256x240.png create mode 100644 app/assets/images/ui-icons_2e83ff_256x240.png create mode 100644 app/assets/images/ui-icons_454545_256x240.png create mode 100644 app/assets/images/ui-icons_888888_256x240.png create mode 100644 app/assets/images/ui-icons_cd0a0a_256x240.png create mode 100644 app/views/topics/removefrommap.js.erb diff --git a/app/assets/images/delete.png b/app/assets/images/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..9e290c1ffe3566204dc6a97aa68bc2b15a3d8c72 GIT binary patch literal 2991 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/go-arrow-2.png b/app/assets/images/go-arrow-2.png new file mode 100644 index 0000000000000000000000000000000000000000..646b645164ae68d4f5637d5aa20fdfc6c40fcd48 GIT binary patch literal 4005 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 wE8?^ITQYekJ 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�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 b|NjF3A5aP#?<=bx00000NkvXXu0mjfn_4$} literal 0 HcmV?d00001 diff --git a/app/assets/images/removeFromMap.png b/app/assets/images/removeFromMap.png new file mode 100644 index 0000000000000000000000000000000000000000..5b95117fd7c838fc444a63d7537c756d3da0d6c9 GIT binary patch literal 2926 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 Y04e?-1hg)=XaE2J07*qoM6N<$f?O4G6951J literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png b/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png b/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3d6346e00f246102f72f2e026ed0491988b394 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-bg_glass_65_ffffff_1x400.png b/app/assets/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-bg_glass_75_dadada_1x400.png b/app/assets/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..5a46b47cb16631068aee9e0bd61269fc4e95e5cd GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uP{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9fa6c6edcfcdd3e5b77e6f547b719e6fc66e30 GIT binary patch literal 101 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-icons_2e83ff_256x240.png b/app/assets/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-icons_454545_256x240.png b/app/assets/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105 GIT binary patch literal 4369 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 oBo%DI*Kv;w;*%(i9W@f3_WCF#rGn literal 0 HcmV?d00001 diff --git a/app/assets/images/ui-icons_cd0a0a_256x240.png b/app/assets/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d GIT binary patch literal 4369 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'; + var littleHTML = ' \ +

$_name_$
\ +
'; + littleHTML = littleHTML.replace(/\$_id_\$/g, node.id); + littleHTML = littleHTML.replace(/\$_mapid_\$/g, mapid); + littleHTML = littleHTML.replace(/\$_name_\$/g, node.name); + nameContainer.innerHTML = littleHTML; domElement.appendChild(nameContainer); style.fontSize = "0.9em"; style.color = "#222222"; // add some events to the label - nameContainer.onclick = function(){ + $(nameContainer).find('.label').click(function(){ selectNodeOnClickHandler(node) + }); + + nameContainer.onmouseover = function(){ + $('.name.topic_' + node.id + ' .nodeOptions').css('display','block'); } + + nameContainer.onmouseout = function(){ + $('.name.topic_' + node.id + ' .nodeOptions').css('display','none'); + } + //bind callbacks $(showCard).find('.type.best_in_place').bind("ajax:success", function() { diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 4c057ec0..86ffa8b5 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -21,7 +21,7 @@ // other options are 'graph' var viewMode = "list"; -var labelType, useGradients, nativeTextSupport, animate, json, Mconsole = null, gType, tempNode = null, tempInit = false, tempNode2 = null, metacodeIMGinit = false, findOpen = false, analyzeOpen = false, organizeOpen = false, goRealtime = false; +var labelType, useGradients, nativeTextSupport, animate, json, Mconsole = null, gType, tempNode = null, tempInit = false, tempNode2 = null, metacodeIMGinit = false, findOpen = false, analyzeOpen = false, organizeOpen = false, goRealtime = false, mapid = null; $(document).ready(function() { @@ -54,7 +54,6 @@ var labelType, useGradients, nativeTextSupport, animate, json, Mconsole = null, if (! sliding1) { sliding1 = true; if (userid != null) { - $('.footer .menu').css('border','1px solid #000'); $('.footer .menu').animate({ height: '252px' }, 300, function() { @@ -78,7 +77,6 @@ var labelType, useGradients, nativeTextSupport, animate, json, Mconsole = null, height: '0px' }, 300, function() { sliding1 = false; - $('.footer .menu').css('border','none'); }); } },800); @@ -125,6 +123,23 @@ function saveToMap() { $('#new_map').fadeIn('fast'); } + +// this is for hiding one topic from your canvas +function removeFromCanvas(topic_id) { + var node = Mconsole.graph.getNode(topic_id); + node.setData('alpha', 0, 'end'); + node.eachAdjacency(function(adj) { + adj.setData('alpha', 0, 'end'); + }); + Mconsole.fx.animate({ + modes: ['node-property:alpha', + 'edge-property:alpha'], + duration: 1000 + }); + Mconsole.graph.removeNode(topic_id); + Mconsole.labels.disposeLabel(topic_id); +} + function addMetacode() { // code from http://www.professorcloud.com/mainsite/carousel-integration.htm //mouseWheel:true, diff --git a/app/assets/stylesheets/topics.css.scss b/app/assets/stylesheets/topics.css.scss index ecf313fb..6ed2b6b6 100644 --- a/app/assets/stylesheets/topics.css.scss +++ b/app/assets/stylesheets/topics.css.scss @@ -1,58 +1,97 @@ -// Place all the styles related to the Topics controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ - -.topic { display:block; float:left; position:relative; width:175px; height:300px; padding:10px 5px 10px 35px; background: url('bg.png'); border-radius:15px; margin:30px 0 30px 50px; color:#000; } - -.close-link, -.topic .delete { -position: absolute; -top: -14px; -left: 0px; -background: none; -border: 0; -color: white; -border: none; -font-size: 14px; -margin: 0; -padding: 0; -cursor:pointer; -} - -.topic .scroll { display:block; height:283px; } - -.topic .type {position: absolute; -color: white; -top: -22px; -right: 0; -font-weight: bold; -font-size: 20px; -line-height: 24px;} - -.topic .icon { position:absolute; top:135px; left:-25px; } - -.topic .title { font-size:22px; line-height:25px; display:block; border-bottom:2px solid #000; padding-bottom:5px; } - -.topic .desc { font-size:15px; font-family:Arial, Helvetica, sans-serif; } -.topic .desc h3 { font-style:normal; margin-top:5px; } - -.topic .link { position:absolute; width:170px; top:295px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } - -.best_in_place_name { - max-width:130px; - float:left; -} - -.best_in_place_name input{ - max-width:130px; -} - -.topic-go-arrow { - width: 1em; - height: 1em; - float: right; -} - -.gray { - color: #999999; -} +// Place all the styles related to the Topics controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ + +.nodeOptions { + display:none; + position: absolute; + top: -5px; + right: -17px; +} + +.onCanvas .removeFromMap { + display:none !important; +} + +.onMap .removeFromCanvas { + display:none !important; +} + +.unauthenticated .deleteTopic { + display:none !important; +} + +.removeFromCanvas { + display: block; + width: 17px; + height: 16px; + background: url('removeFromCanvas.png') no-repeat 2px 0; +} + +.removeFromMap { + display: block; + width: 17px; + height: 16px; + background: url('removeFromMap.png') no-repeat 2px 0; +} + +.deleteTopic { + display: block; + width: 17px; + height: 16px; + background: url('delete.png') no-repeat 2px 0; +} + +.topic { display:block; float:left; position:relative; width:175px; height:300px; padding:10px 5px 10px 35px; background: url('bg.png'); border-radius:15px; margin:30px 0 30px 50px; color:#000; } + +.topic .delete { +position: absolute; +top: -14px; +left: 0px; +background: none; +border: 0; +color: white; +border: none; +font-size: 14px; +margin: 0; +padding: 0; +cursor:pointer; +} + +.topic .scroll { display:block; height:283px; } + +.topic .type {position: absolute; +color: white; +top: -22px; +right: 0; +font-weight: bold; +font-size: 20px; +line-height: 24px;} + +.topic .icon { position:absolute; top:135px; left:-25px; } + +.topic .title { font-size:22px; line-height:25px; display:block; border-bottom:2px solid #000; padding-bottom:5px; } + +.topic .desc { font-size:15px; font-family:Arial, Helvetica, sans-serif; } +.topic .desc h3 { font-style:normal; margin-top:5px; } + +.topic .link { position:absolute; width:170px; top:295px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } + +.best_in_place_name { + max-width:130px; + float:left; +} + +.best_in_place_name input{ + max-width:130px; +} + +.topic-go-arrow { + width: 25px; + height: 25px; + float: right; +} + +.gray { + color: #999999; +} diff --git a/app/controllers/maps_controller.rb b/app/controllers/maps_controller.rb index 70ace5f6..347d70f1 100644 --- a/app/controllers/maps_controller.rb +++ b/app/controllers/maps_controller.rb @@ -107,14 +107,6 @@ class MapsController < ApplicationController @map.attributes = params[:map] @map.save - if params[:outtopics] - @outtopics = params[:outtopics] - @outtopics.each do |topic| - @mapping = Mapping.where("map_id = ? AND topic_id = ?", @map.id, topic).first - @mapping.delete - end - end - respond_with(@user, location: map_path(@map)) do |format| end end diff --git a/app/controllers/topics_controller.rb b/app/controllers/topics_controller.rb index fb49ae15..5b95df3c 100644 --- a/app/controllers/topics_controller.rb +++ b/app/controllers/topics_controller.rb @@ -129,7 +129,32 @@ class TopicsController < ApplicationController # respond_with(@user, location: topic_url(@topic)) do |format| # end end - + + # GET mappings/:map_id/:topic_id/removefrommap + def removefrommap + @current = current_user + @mapping = Mapping.find_by_topic_id_and_map_id(params[:topic_id],params[:map_id]) + + @map = Map.find(params[:map_id]) + @topic = Topic.find(params[:topic_id]) + @mappings = @map.mappings.select{|m| + if m.category == "Synapse" + m.synapse.topic1 == @topic || m.synapse.topic2 == @topic + else + false + end + } + @mappings.each do |m| + m.delete + end + + @mapping.delete + + respond_to do |format| + format.js + end + end + # DELETE topics/:id def destroy @current = current_user diff --git a/app/views/main/console.html.erb b/app/views/main/console.html.erb index d3f8d28a..4fe2cf66 100644 --- a/app/views/main/console.html.erb +++ b/app/views/main/console.html.erb @@ -1,27 +1,27 @@ -
- <% if authenticated? %><% end %> - -
-
-
-
-
-
-
-
- <% if authenticated? %> - <%= render :partial => 'topics/new' %> - <%= render :partial => 'synapses/new' %> - <%= render :partial => 'maps/new' %> - <% end %> - - -<%= render :partial => 'find' %> -<%= render :partial => 'analyze' %> +
+ <% if authenticated? %><% end %> + +
+
+
+
+
+
+
+
+ <% if authenticated? %> + <%= render :partial => 'topics/new' %> + <%= render :partial => 'synapses/new' %> + <%= render :partial => 'maps/new' %> + <% end %> + + +<%= render :partial => 'find' %> +<%= render :partial => 'analyze' %> <%= render :partial => 'organize' %> \ No newline at end of file diff --git a/app/views/maps/edit.html.erb b/app/views/maps/edit.html.erb index 131617be..c1ead879 100644 --- a/app/views/maps/edit.html.erb +++ b/app/views/maps/edit.html.erb @@ -4,8 +4,6 @@ <%= form.text_field :name %> <%= form.text_area :desc, class: "description", :rows => 5 %> - - <%= select_tag "outtopics", options_from_collection_for_select(@outtopics, "id", "name"), { :multiple => true } %> <%= form.select :permission, options_for_select(['commons', 'public', 'private'], @map.permission) %> <%= form.submit "Update", class: "update" %> diff --git a/app/views/maps/show.html.erb b/app/views/maps/show.html.erb index 90e0aa13..b545be79 100644 --- a/app/views/maps/show.html.erb +++ b/app/views/maps/show.html.erb @@ -22,15 +22,31 @@
-
+
-
-
+<% if authenticated? %> + <%= render :partial => 'newtopic' %> + <%= render :partial => 'newsynapse' %> +<% end %> +<%= form_for @map, :url => realtime_path(@map), :method => "GET", :html => { :id => "MapRealtime"}, remote: true do |form| %> + <%= form.hidden_field :time, :value => Time.now.to_i %> + <%= form.hidden_field :ids, :value => 0 %> +<% end %> + + - -<% if authenticated? %> - <%= render :partial => 'newtopic' %> - <%= render :partial => 'newsynapse' %> -<% end %> -<%= form_for @map, :url => realtime_path(@map), :method => "GET", :html => { :id => "MapRealtime"}, remote: true do |form| %> - <%= form.hidden_field :time, :value => Time.now.to_i %> - <%= form.hidden_field :ids, :value => 0 %> -<% end %> - \ No newline at end of file diff --git a/app/views/topics/destroy.js.erb b/app/views/topics/destroy.js.erb index da2a26ae..42d2677c 100644 --- a/app/views/topics/destroy.js.erb +++ b/app/views/topics/destroy.js.erb @@ -1 +1,17 @@ -$('#<%= dom_id(@topic) %>').fadeOut('slow'); \ No newline at end of file +if (Mconsole != null) { + var node = Mconsole.graph.getNode(<%= @topic.id %>); + node.setData('alpha', 0, 'end'); + node.eachAdjacency(function(adj) { + adj.setData('alpha', 0, 'end'); + }); + Mconsole.fx.animate({ + modes: ['node-property:alpha', + 'edge-property:alpha'], + duration: 1000 + }); + Mconsole.graph.removeNode(<%= @topic.id %>); + Mconsole.labels.disposeLabel(<%= @topic.id %>); +} +else { + $('#<%= dom_id(@topic) %>').fadeOut('slow'); +} \ No newline at end of file diff --git a/app/views/topics/removefrommap.js.erb b/app/views/topics/removefrommap.js.erb new file mode 100644 index 00000000..7241640d --- /dev/null +++ b/app/views/topics/removefrommap.js.erb @@ -0,0 +1,14 @@ +if (Mconsole != null) { + var node = Mconsole.graph.getNode(<%= @mapping.topic_id %>); + node.setData('alpha', 0, 'end'); + node.eachAdjacency(function(adj) { + adj.setData('alpha', 0, 'end'); + }); + Mconsole.fx.animate({ + modes: ['node-property:alpha', + 'edge-property:alpha'], + duration: 1000 + }); + Mconsole.graph.removeNode(<%= @mapping.topic_id %>); + Mconsole.labels.disposeLabel(<%= @mapping.topic_id %>); +} \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 6ae5eff9..98020f20 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,6 +10,7 @@ ISSAD::Application.routes.draw do match 'maps/:id/savelayout', to: 'maps#savelayout', via: :put, as: :savelayout match 'maps/:id/realtime', to: 'maps#realtime', via: :get, as: :realtime + match 'mappings/:map_id/:topic_id/removefrommap', to: 'topics#removefrommap', via: :get, as: :removefrommap resource :session