Skip to content

Commit

Permalink
separated widget module from initialization
Browse files Browse the repository at this point in the history
moving widget functionality to separate file required adding a new
module which assumes responsibility for initialization ("glue code"),
since that doesn't happen automatically anymore (cf. previous commit;
e74be2e)
  • Loading branch information
FND committed Sep 15, 2013
1 parent e74be2e commit c8da415
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 31 deletions.
1 change: 1 addition & 0 deletions index.html
Expand Up @@ -32,6 +32,7 @@ <h1>Contacts</h1>
</ul>

<script src="extlib/jquery.js"></script>
<script src="lib/filter_widget.js"></script>
<script src="lib/main.js"></script>
</body>

Expand Down
30 changes: 30 additions & 0 deletions lib/filter_widget.js
@@ -0,0 +1,30 @@
(function($) {

"use strict";

window.createFilterWidget = function(contactList) {
$('<input type="search" />').insertBefore(contactList).
on("keyup", onFilter);
}

function onFilter(ev) {
var filterField = $(this);
var contacts = filterField.next();
var input = filterField.val();

var names = contacts.find("li .p-name");
names.each(function(i, node) {
var el = $(node);
var name = el.text();

var match = name.indexOf(input) === 0;
var container = el.closest(".h-card");
if(match) {
container.slideDown();
} else {
container.slideUp();
}
});
}

}(jQuery));
31 changes: 1 addition & 30 deletions lib/main.js
@@ -1,30 +1 @@
(function($) {

"use strict";

window.createFilterWidget = function(contactList) {
$('<input type="search" />').insertBefore(contactList).
on("keyup", onFilter);
}

function onFilter(ev) {
var filterField = $(this);
var contacts = filterField.next();
var input = filterField.val();

var names = contacts.find("li .p-name");
names.each(function(i, node) {
var el = $(node);
var name = el.text();

var match = name.indexOf(input) === 0;
var container = el.closest(".h-card");
if(match) {
container.slideDown();
} else {
container.slideUp();
}
});
}

}(jQuery));
createFilterWidget(jQuery("ul.contacts"));
2 changes: 1 addition & 1 deletion test/index.html
Expand Up @@ -35,7 +35,7 @@
</div>

<script src="../extlib/jquery.js"></script>
<script src="../lib/main.js"></script>
<script src="../lib/filter_widget.js"></script>

<script src="extlib/qunit.js"></script>

Expand Down

0 comments on commit c8da415

Please sign in to comment.