Skip to content

Commit

Permalink
remove show of duplicate dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
nakul9597 committed Nov 9, 2019
1 parent 690d2ae commit b96459c
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 48 deletions.
49 changes: 18 additions & 31 deletions app/assets/javascripts/transitive_dependencies.js
@@ -1,73 +1,60 @@
$(document).on('click', '.caret', function () {
var current = $(this)
var gem_id = $(this).attr('data-gem_id');
var ver_id = $(this).attr('data-ver');
$.ajax({
type: "get",
url: "/gems/"+gem_id+"/versions/"+ver_id+"/transitive_dependencies.json",
success: function(resp) {
ajaxDepActions(resp,gem_id)
ajaxDepActions(resp,gem_id,current)
}
});
})

function ajaxDepActions(resp,gem_id) {
function ajaxDepActions(resp,gem_id,current) {

// when we have gems like http_parser.rb, we need to replace . with \. to access any ids with the name
gem_id = gem_id.replace(/\./, "\\.")

var all_deps = $('.deps_item').map(function() {
return $(this).attr('data-gem_name');
}).get();

if (resp.run_deps.length != 0){
$("#"+gem_id+'runtime').find(".deps_scope").before("<span class='scope scope--expanded'>Runtime :</span>");
deps_display(resp.run_deps,gem_id,all_deps,"runtime")
var new_gems = current.parent().next().next().find(".deps_scope")
new_gems.before("<span class='scope scope--expanded'>Runtime :</span>");
deps_display(resp.run_deps,gem_id,"runtime",new_gems)
}

if (resp.dev_deps.length != 0){
$("#"+gem_id+'development').find(".deps_scope").before("<span class='scope'>Development :</span>");
deps_display(resp.dev_deps,gem_id,all_deps,"development")
var new_gems = current.parent().next().next().next().find(".deps_scope")
new_gems.before("<span class='scope'>Development :</span>");
deps_display(resp.dev_deps,gem_id,"development",new_gems)
}

var toggler = "<span class='deps_expanded deps_expanded-down'></span>";
$('#'+gem_id+'-toggle').html(toggler);
$('#'+gem_id+'-toggle').click(function() {

current.parent().click(function() {
$(this).parent().parent().find('div').first().toggleClass('deps_toggle');
$(this).parent().parent().find('div').first().next().toggleClass('deps_toggle');
$(this).find('span').first().toggleClass('deps_expanded-down');
});

$('#'+gem_id+'-title').addClass('deps_item--title')
$('.deps_item--duplicate').css("padding", "20")
current.parent().html(toggler);
}

function deps_display(deps_names,gem_id,all_deps,scope) {
var new_gems = $("#"+gem_id+scope).find(".deps_scope")
var duplicate_gems = $("#"+gem_id+scope).find(".dup_scope")
function deps_display(deps_names,gem_id,scope,new_gems) {
$.each(deps_names, function (idx,dep_details) {
dep = dep_details[0]
ver_num = dep_details[1]
req = dep_details[2]
if(all_deps.includes(dep)) {
var value = "<li><span class='deps_item deps_item--dup'>"+dep+" "+ver_num+"<span class='deps_item--details'> "+req+"</span></span></li>";
var link_to_gem = "<a href='/gems/"+dep+"/versions/"+ver_num+"' target='_blank'>"+value+"</a>";
duplicate_gems.append(link_to_gem);
}
else {
var link = "<span class='caret' data-gem_id='"+dep+"' data-ver='"+ver_num+"'></span>";
var value = "<span data-gem_name='"+dep+"' id='"+dep+"-title' class='deps_item'>"+dep+" "+ver_num+"<span class='deps_item--details'> "+req+"</span></span>";
var value = "<span class='deps_item'>"+dep+" "+ver_num+"<span class='deps_item--details'> "+req+"</span></span>";

var toggle_link = "<span id='"+dep+"-toggle'>"+link+"</span>";
var toggle_link = "<span>"+link+"</span>";
var link_to_gem = " <a href='/gems/"+dep+"/versions/"+ver_num+"' target='_blank'>"+value+"</a>";
var deps_org = "<div id='"+dep+"runtime'><div class='deps_scope'></div><div class='dup_scope'></div></div>"
var deps_dup = "<div id='"+dep+"development'>\n<div class='deps_scope'></div>\n<div class='dup_scope'></div></div>"
var deps_list = deps_org+deps_dup;
var deps_run = "<div><div class='deps_scope'></div></div>"
var deps_dev = "<div><div class='deps_scope'></div></div>"
var deps_list = deps_run+deps_dev;
new_gems.append("<ul class='deps'><li>"+toggle_link+link_to_gem+deps_list+"</li></ul>");
}
});
if (scope == "development"){
new_gems.toggleClass("deps_toggle")
duplicate_gems.toggleClass("deps_toggle")
}
}

Expand Down
10 changes: 0 additions & 10 deletions app/assets/stylesheets/modules/dependencies.css
Expand Up @@ -70,16 +70,6 @@
transition: 0.3s;
}

.deps_item--title{
color: #060606;
}

.deps_item--dup{
padding-top: 4px;
padding-left: 25px;
color: #e9000f;
}

.deps_expanded{
cursor: pointer;
user-select: none;
Expand Down
12 changes: 5 additions & 7 deletions app/views/dependencies/_dependencies.html.erb
Expand Up @@ -9,21 +9,19 @@
<% @dependencies[scope].each do |name,version,req| %>
<ul class="deps">
<li>
<span id="<%=name%>-toggle">
<span>
<span class="caret" data-gem_id="<%=name%>" data-ver="<%=version%>"></span>
</span>
<%= link_to rubygem_version_path(rubygem_id: name, id: version), target: :_blank do %>
<span data-gem_name="<%=name%>" id="<%=name%>-title" class="deps_item"><%= name %> <%= version %>
<span class="deps_item"><%= name %> <%= version %>
<span class='deps_item--details'> <%=req%></span></span>
<%end%>

<div id="<%=name+'runtime'%>"><div class="deps_scope"></div>
<div class="dup_scope"></div></div>
<div id="<%=name+'development'%>"><div class="deps_scope"></div>
<div class="dup_scope"></div></div>
<div><div class="deps_scope"></div></div>
<div><div class="deps_scope"></div></div>
</li>
</ul>
<% end %>
</div>
<div class="dup_scope"></div></div>
</div>
<% end %>

0 comments on commit b96459c

Please sign in to comment.