Skip to content

Commit 2a4fcea

Browse files
committed
Implement cell filter (cont.).
1 parent 77cc674 commit 2a4fcea

File tree

1 file changed

+17
-15
lines changed
  • src/jupyter_contrib_nbextensions/nbextensions/cell_filter

1 file changed

+17
-15
lines changed

src/jupyter_contrib_nbextensions/nbextensions/cell_filter/cell_filter.js

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*
66
* @version 0.1.0
77
* @author Benjamin Ellenberger, https://github.com/benelot
8-
* @updated 2018-02-03
8+
* @updated 2018-02-16
99
*
1010
*
1111
*/
@@ -56,12 +56,14 @@ define([
5656

5757
Jupyter.notebook.get_cells().forEach(function (cell, idx, cells) { // toggle visibility of cells depending on their tags
5858
var tags = cell.metadata.tags || [];
59-
tags = tags.join(' ');
60-
if(tags.search(matchExpr) !== -1){
61-
cell.element.find("div.input").show(); // cell.element.style.display = '';
59+
tags = tags.join(' ');
60+
if(filterText === ".*(?=.*).*" || filterText === "" || tags.search(matchExpr) !== -1 && tags.length > 0){ // empty filter or match expression on non-zero tags
61+
cell.element.show(); // cell.element.style.display = '';
62+
//cell.element.find("div.inner_cell").show();
6263
}
6364
else{
64-
cell.element.find("div.input").hide(); // cell.element.style.display = 'none';
65+
cell.element.hide(); // cell.element.style.display = 'none';
66+
//cell.element.find("div.inner_cell").hide();
6567
}
6668
});
6769
}
@@ -72,14 +74,14 @@ define([
7274

7375
function load_ipython_extension () {
7476

75-
var form = $('<form/>') // insert a form into the main toolbar container
76-
.css('padding', '0 7px 4px')
77+
var form_tgrp = $('<div/>')
78+
.addClass('btn-group') // insert a top form-group to make the form appear next to the buttons
7779
.appendTo('#maintoolbar-container');
7880

7981
var frm_grp = $('<div/>')
8082
.addClass('form-group') // insert a form-group
8183
.css('margin-bottom', 0)
82-
.appendTo(form);
84+
.appendTo(form_tgrp);
8385

8486
var grp = $('<div/>')
8587
.addClass('input-group') // insert an input-group
@@ -90,12 +92,12 @@ define([
9092
.addClass('form-control input-sm')
9193
.attr('title', 'Keyword for filtering cells by tags')
9294
.attr('id', 'filterkeyword')
93-
.attr('placeholder', 'Filter')
95+
.attr('placeholder', 'Cell Tag Filter')
9496
.css('font-weight', 'bold')
95-
.appendTo(grp);
96-
97-
var btns = $('<div/>')
98-
.addClass('input-group-btn') // insert a div to group buttons
97+
.css('width', '70%')
98+
.css('height', '24px')
99+
.on('focus', function (evt) { Jupyter.notebook.keyboard_manager.disable();})
100+
.on('blur', function (evt) { Jupyter.notebook.keyboard_manager.enable();})
99101
.appendTo(grp);
100102

101103
$('<button/>')
@@ -107,7 +109,7 @@ define([
107109
.attr('title', 'Use regex (JavaScript regex syntax)')
108110
.text('.*')
109111
.on('click', function (evt) { setTimeout(filterRowsDefaultParams); })
110-
.appendTo(btns);
112+
.appendTo(grp);
111113

112114
$('<button/>') // insert case sensitive button
113115
.attr('type', 'button')
@@ -119,7 +121,7 @@ define([
119121
.css('font-weight', 'bold')
120122
.text('Aa')
121123
.on('click', function (evt) { setTimeout(filterRowsDefaultParams); })
122-
.appendTo(btns);
124+
.appendTo(grp);
123125

124126
$('#filterkeyword').on('keyup', filterRowsDefaultParams); // trigger filtering right with typing
125127
}

0 commit comments

Comments
 (0)