Merge branch 'master' of github.com:Connoropolous/metamaps_gen002
This commit is contained in:
commit
0d4e694a4c
11 changed files with 259 additions and 11 deletions
2
Gemfile
2
Gemfile
|
@ -12,7 +12,7 @@ gem 'formula'
|
||||||
gem 'formtastic'
|
gem 'formtastic'
|
||||||
gem 'json'
|
gem 'json'
|
||||||
gem 'rails3-jquery-autocomplete'
|
gem 'rails3-jquery-autocomplete'
|
||||||
|
gem 'best_in_place'
|
||||||
|
|
||||||
# Gems used only for assets and not required
|
# Gems used only for assets and not required
|
||||||
# in production environments by default.
|
# in production environments by default.
|
||||||
|
|
|
@ -32,6 +32,9 @@ GEM
|
||||||
authlogic (3.1.0)
|
authlogic (3.1.0)
|
||||||
activerecord (>= 3.0.7)
|
activerecord (>= 3.0.7)
|
||||||
activerecord (>= 3.0.7)
|
activerecord (>= 3.0.7)
|
||||||
|
best_in_place (2.0.2)
|
||||||
|
jquery-rails
|
||||||
|
rails (~> 3.1)
|
||||||
builder (3.0.3)
|
builder (3.0.3)
|
||||||
cancan (1.6.7)
|
cancan (1.6.7)
|
||||||
coffee-rails (3.2.2)
|
coffee-rails (3.2.2)
|
||||||
|
@ -118,6 +121,7 @@ PLATFORMS
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
authlogic
|
authlogic
|
||||||
|
best_in_place
|
||||||
cancan
|
cancan
|
||||||
coffee-rails (~> 3.2.1)
|
coffee-rails (~> 3.2.1)
|
||||||
formtastic
|
formtastic
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
//
|
//
|
||||||
//= require jquery
|
//= require jquery
|
||||||
//= require jquery-ui
|
//= require jquery-ui
|
||||||
|
//= require jquery.purr
|
||||||
|
//= require best_in_place
|
||||||
//= require autocomplete-rails-uncompressed
|
//= require autocomplete-rails-uncompressed
|
||||||
//= require jquery_ujs
|
//= require jquery_ujs
|
||||||
//= require_tree .
|
//= require_tree .
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
# Place all the behaviors and hooks related to the matching controller here.
|
# Place all the behaviors and hooks related to the matching controller here.
|
||||||
# All this logic will automatically be available in application.js.
|
# All this logic will automatically be available in application.js.
|
||||||
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
|
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
|
||||||
|
|
||||||
|
jQuery ->
|
||||||
|
$('.best_in_place').best_in_place()
|
||||||
|
|
180
app/assets/javascripts/jquery.purr.js
Normal file
180
app/assets/javascripts/jquery.purr.js
Normal file
|
@ -0,0 +1,180 @@
|
||||||
|
/**
|
||||||
|
* jquery.purr.js
|
||||||
|
* Copyright (c) 2008 Net Perspective (net-perspective.com)
|
||||||
|
* Licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php)
|
||||||
|
*
|
||||||
|
* @author R.A. Ray
|
||||||
|
* @projectDescription jQuery plugin for dynamically displaying unobtrusive messages in the browser. Mimics the behavior of the MacOS program "Growl."
|
||||||
|
* @version 0.1.0
|
||||||
|
*
|
||||||
|
* @requires jquery.js (tested with 1.2.6)
|
||||||
|
*
|
||||||
|
* @param fadeInSpeed int - Duration of fade in animation in miliseconds
|
||||||
|
* default: 500
|
||||||
|
* @param fadeOutSpeed int - Duration of fade out animationin miliseconds
|
||||||
|
default: 500
|
||||||
|
* @param removeTimer int - Timeout, in miliseconds, before notice is removed once it is the top non-sticky notice in the list
|
||||||
|
default: 4000
|
||||||
|
* @param isSticky bool - Whether the notice should fade out on its own or wait to be manually closed
|
||||||
|
default: false
|
||||||
|
* @param usingTransparentPNG bool - Whether or not the notice is using transparent .png images in its styling
|
||||||
|
default: false
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function( $ ) {
|
||||||
|
|
||||||
|
$.purr = function ( notice, options )
|
||||||
|
{
|
||||||
|
// Convert notice to a jQuery object
|
||||||
|
notice = $( notice );
|
||||||
|
|
||||||
|
// Add a class to denote the notice as not sticky
|
||||||
|
if ( !options.isSticky )
|
||||||
|
{
|
||||||
|
notice.addClass( 'not-sticky' );
|
||||||
|
};
|
||||||
|
|
||||||
|
// Get the container element from the page
|
||||||
|
var cont = document.getElementById( 'purr-container' );
|
||||||
|
|
||||||
|
// If the container doesn't yet exist, we need to create it
|
||||||
|
if ( !cont )
|
||||||
|
{
|
||||||
|
cont = '<div id="purr-container"></div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert cont to a jQuery object
|
||||||
|
cont = $( cont );
|
||||||
|
|
||||||
|
// Add the container to the page
|
||||||
|
$( 'body' ).append( cont );
|
||||||
|
|
||||||
|
notify();
|
||||||
|
|
||||||
|
function notify ()
|
||||||
|
{
|
||||||
|
// Set up the close button
|
||||||
|
var close = document.createElement( 'a' );
|
||||||
|
$( close ).attr(
|
||||||
|
{
|
||||||
|
className: 'close',
|
||||||
|
href: '#close',
|
||||||
|
innerHTML: 'Close'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.appendTo( notice )
|
||||||
|
.click( function ()
|
||||||
|
{
|
||||||
|
removeNotice();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add the notice to the page and keep it hidden initially
|
||||||
|
notice.appendTo( cont )
|
||||||
|
.hide();
|
||||||
|
|
||||||
|
if ( jQuery.browser.msie && options.usingTransparentPNG )
|
||||||
|
{
|
||||||
|
// IE7 and earlier can't handle the combination of opacity and transparent pngs, so if we're using transparent pngs in our
|
||||||
|
// notice style, we'll just skip the fading in.
|
||||||
|
notice.show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Fade in the notice we just added
|
||||||
|
notice.fadeIn( options.fadeInSpeed );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up the removal interval for the added notice if that notice is not a sticky
|
||||||
|
if ( !options.isSticky )
|
||||||
|
{
|
||||||
|
var topSpotInt = setInterval( function ()
|
||||||
|
{
|
||||||
|
// Check to see if our notice is the first non-sticky notice in the list
|
||||||
|
if ( notice.prevAll( '.not-sticky' ).length == 0 )
|
||||||
|
{
|
||||||
|
// Stop checking once the condition is met
|
||||||
|
clearInterval( topSpotInt );
|
||||||
|
|
||||||
|
// Call the close action after the timeout set in options
|
||||||
|
setTimeout( function ()
|
||||||
|
{
|
||||||
|
removeNotice();
|
||||||
|
}, options.removeTimer
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}, 200 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeNotice ()
|
||||||
|
{
|
||||||
|
// IE7 and earlier can't handle the combination of opacity and transparent pngs, so if we're using transparent pngs in our
|
||||||
|
// notice style, we'll just skip the fading out.
|
||||||
|
if ( jQuery.browser.msie && options.usingTransparentPNG )
|
||||||
|
{
|
||||||
|
notice.css( { opacity: 0 } )
|
||||||
|
.animate(
|
||||||
|
{
|
||||||
|
height: '0px'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
duration: options.fadeOutSpeed,
|
||||||
|
complete: function ()
|
||||||
|
{
|
||||||
|
notice.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Fade the object out before reducing its height to produce the sliding effect
|
||||||
|
notice.animate(
|
||||||
|
{
|
||||||
|
opacity: '0'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
duration: options.fadeOutSpeed,
|
||||||
|
complete: function ()
|
||||||
|
{
|
||||||
|
notice.animate(
|
||||||
|
{
|
||||||
|
height: '0px'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
duration: options.fadeOutSpeed,
|
||||||
|
complete: function ()
|
||||||
|
{
|
||||||
|
notice.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.purr = function ( options )
|
||||||
|
{
|
||||||
|
options = options || {};
|
||||||
|
options.fadeInSpeed = options.fadeInSpeed || 500;
|
||||||
|
options.fadeOutSpeed = options.fadeOutSpeed || 500;
|
||||||
|
options.removeTimer = options.removeTimer || 4000;
|
||||||
|
options.isSticky = options.isSticky || false;
|
||||||
|
options.usingTransparentPNG = options.usingTransparentPNG || false;
|
||||||
|
|
||||||
|
this.each( function()
|
||||||
|
{
|
||||||
|
new $.purr( this, options );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
})( jQuery );
|
||||||
|
|
|
@ -73,10 +73,22 @@ a {
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Utility
|
||||||
|
*/
|
||||||
|
|
||||||
.clearfloat {
|
.clearfloat {
|
||||||
clear:both;
|
clear:both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Layout stuffs
|
||||||
|
*/
|
||||||
|
|
||||||
.new_session,
|
.new_session,
|
||||||
.new_user,
|
.new_user,
|
||||||
.new_map,
|
.new_map,
|
||||||
|
|
|
@ -33,19 +33,29 @@ class ItemsController < ApplicationController
|
||||||
# GET items/:id
|
# GET items/:id
|
||||||
def show
|
def show
|
||||||
@current = current_user
|
@current = current_user
|
||||||
@item = Item.find(params[:id]).authorize_to_show(@current)
|
@item = Item.find(params[:id]).authorize_to_show(@current)
|
||||||
|
|
||||||
if @item
|
if @item
|
||||||
@relatives = @item.network_as_json(@current).html_safe
|
@relatives = @item.network_as_json(@current).html_safe
|
||||||
else
|
else
|
||||||
redirect_to root_url and return
|
redirect_to root_url and return
|
||||||
end
|
end
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { respond_with(@item, @user) }
|
format.html { respond_with(@item, @user) }
|
||||||
format.json { respond_with(@relatives) }
|
format.json { respond_with(@relatives) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# GET showcard/:id
|
||||||
|
def showcard
|
||||||
|
@user = current_user
|
||||||
|
@item = Item.find(params[:id]).authorize_to_show(@user)
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { respond_with(@item, @user) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# POST items
|
# POST items
|
||||||
def create
|
def create
|
||||||
|
|
29
app/views/items/showcard.html.erb
Normal file
29
app/views/items/showcard.html.erb
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<div class="showcard item_<%= @item.id %>">
|
||||||
|
<div class="CardOnGraph" title="Click to Hide" id="item_' + node.id + '">
|
||||||
|
<p class="type">
|
||||||
|
<%= @item.item_category.name %>
|
||||||
|
</p>
|
||||||
|
<img alt="<%= @item.item_category.name %>"
|
||||||
|
src="/assets/<%= @item.item_category.name %>.png"
|
||||||
|
class="icon" height="50" width="50" />
|
||||||
|
<div class="scroll">
|
||||||
|
<a href="/items/<%=@item.id%>" class="title">
|
||||||
|
<%= @item.name %>
|
||||||
|
</a>
|
||||||
|
<div class="contributor">
|
||||||
|
Added by:
|
||||||
|
<a href="/users/<%= @user.id %>">
|
||||||
|
<%= @user.name %>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="desc">
|
||||||
|
<p>
|
||||||
|
<%= @item.desc %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div><!-- div.scroll -->
|
||||||
|
<a href="<%= @item.link %>" class="link" target="_blank">
|
||||||
|
<%= @item.link %>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
5
app/views/layouts/_nodeinfo.html.erb
Normal file
5
app/views/layouts/_nodeinfo.html.erb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<script type="text/javascript">
|
||||||
|
//create a global array we can fill with id's of loaded nodes
|
||||||
|
var loaded_nodes = new Array();
|
||||||
|
</script>
|
||||||
|
<div id="loaded_nodes" class="hidden"></div>
|
|
@ -60,5 +60,6 @@
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= render :partial => 'layouts/ga' if Rails.env.production? %>
|
<%= render :partial => 'layouts/ga' if Rails.env.production? %>
|
||||||
|
<%= render :partial => 'layouts/nodeinfo' %>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -9,7 +9,9 @@ ISSAD::Application.routes.draw do
|
||||||
match 'search', to: 'main#search', via: :get, as: :search
|
match 'search', to: 'main#search', via: :get, as: :search
|
||||||
|
|
||||||
match 'maps/:id/savelayout', to: 'maps#savelayout', via: :put, as: :savelayout
|
match 'maps/:id/savelayout', to: 'maps#savelayout', via: :put, as: :savelayout
|
||||||
|
|
||||||
|
match 'showcard/:id', to: 'items#showcard', via: :get, as: :showcard
|
||||||
|
|
||||||
resource :session
|
resource :session
|
||||||
|
|
||||||
resources :items do
|
resources :items do
|
||||||
|
|
Loading…
Reference in a new issue