0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-23 22:27:34 -05:00
verdaccio/lib/GUI/js/entry.js

63 lines
1.4 KiB
JavaScript
Raw Normal View History

2014-05-07 14:56:48 -05:00
var $ = require('unopinionate').selector,
2014-05-07 16:51:03 -05:00
onClick = require('onclick'),
transitionComplete = require('transition-complete');
2014-05-07 14:56:48 -05:00
$(function() {
onClick('.entry .name', function() {
var $this = $(this),
$entry = $this.closest('.entry');
2014-05-07 16:51:03 -05:00
//Close entry
2014-05-07 14:56:48 -05:00
if($entry.hasClass('open')) {
2014-05-07 16:51:03 -05:00
2014-05-07 14:56:48 -05:00
$entry
2014-05-07 16:51:03 -05:00
.height($entry.height())
.removeClass('open');
setTimeout(function() {
$entry.css('height', $entry.attr('data-height') + 'px');
}, 0);
transitionComplete(function() {
$entry.find('.readme').remove();
$entry.css('height', 'auto');
});
2014-05-07 14:56:48 -05:00
}
2014-05-07 16:51:03 -05:00
//Open entry
2014-05-07 14:56:48 -05:00
else {
2014-05-07 16:51:03 -05:00
//Close open entries
$('.entry.open').each(function() {
var $this = $(this);
$this
.height($this.attr('data-height'))
.removeClass('open');
});
//Add the open class
2014-05-07 14:56:48 -05:00
$entry.addClass('open');
2014-05-07 16:51:03 -05:00
//Explicitly set heights for transitions
var height = $entry.height();
$entry
.attr('data-height', height)
.css('height', height);
//Get the data
2014-05-07 14:56:48 -05:00
$.ajax({
url: '/-/readme/'+$entry.attr('data-name')+'/'+$entry.attr('data-version'),
dataType: 'text',
success: function(html) {
2014-05-07 16:51:03 -05:00
var $readme = $("<div class='readme'>")
2014-05-07 14:56:48 -05:00
.html(html)
.appendTo($entry);
2014-05-07 16:51:03 -05:00
$entry.height(height + $readme.outerHeight());
transitionComplete(function() {
$entry.css('height', 'auto');
});
2014-05-07 14:56:48 -05:00
}
});
}
});
});