Skip to content

Commit 3cd224c

Browse files
author
duaraghav8@gmail
committed
Added scrolling in Files Bar
1 parent 6600ac6 commit 3cd224c

2 files changed

Lines changed: 55 additions & 7 deletions

File tree

css/stylesheet.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,18 @@ section {
220220
height: 30px;
221221
}
222222

223+
.files_bar_right_button {
224+
height: 30px;
225+
float: right;
226+
position: relative;
227+
}
228+
229+
.files_bar_left_button {
230+
height: 30px;
231+
float: left;
232+
position: relative;
233+
}
234+
223235
.files_bar {
224236
height: 30px;
225237
}

js/script.js

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -151,22 +151,58 @@ var showAlgorithm = function(category, algorithm) {
151151
codeEditor.setValue('');
152152
};
153153
var showFiles = function(category, algorithm, files) {
154-
$('.files_bar').empty();
155-
var init = false;
156-
for (var file in files) {
157-
(function(file, explanation) {
158-
var $file = $('<button>').append(file).click(function() {
154+
var maxButtonCount = 3, fileNames = Object.keys (files), lastFile = -1;
155+
var init = false;
156+
var currentFileBarButtons = [];
157+
158+
function addFileButton (file, explanation) {
159+
var $file = $('<button>').append(file).click(function () {
159160
loadFile(category, algorithm, file, explanation);
160161
$('.files_bar > button').removeClass('active');
161162
$(this).addClass('active');
162163
});
163164
$('.files_bar').append($file);
165+
currentFileBarButtons.push ($file);
166+
164167
if (!init) {
165168
init = true;
166169
$file.click();
167170
}
168-
})(file, files[file]);
169-
}
171+
}
172+
173+
function clearFileBar () {
174+
currentFileBarButtons.forEach (function (f) {
175+
f.remove ();
176+
});
177+
}
178+
179+
$('.files_bar').empty();
180+
181+
var $nextButton = $('<button>').append ('<b>&gt;</b>').addClass ('files_bar_right_button').click (function () {
182+
if (lastFile >= fileNames.length) { return; }
183+
clearFileBar (); //first, remove the previously visible buttons
184+
185+
init = false;
186+
fileNames.slice (lastFile+1, lastFile+1+maxButtonCount).forEach (function (file) {
187+
file && addFileButton (file, files [file]);
188+
});
189+
lastFile += maxButtonCount;
190+
});
191+
$ ('.files_bar').append ($nextButton);
192+
193+
var $prevButton = $('<button>').append ('<b>&lt;</b>').addClass ('files_bar_left_button').click (function () {
194+
if (lastFile === maxButtonCount-1) { return; }
195+
196+
clearFileBar (); //first, remove the previously visible buttons
197+
lastFile -= maxButtonCount;
198+
init = false;
199+
fileNames.slice (lastFile+1-maxButtonCount, lastFile+1).forEach (function (file) {
200+
addFileButton (file, files [file]);
201+
});
202+
});
203+
$ ('.files_bar').append ($prevButton);
204+
205+
$nextButton.click (); //initialize the file bar with the First 3 Buttons
170206
};
171207
var loadAlgorithm = function(category, algorithm) {
172208
if (checkLoading()) return;

0 commit comments

Comments
 (0)