153 lines
4.6 KiB
HTML
153 lines
4.6 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7"><![endif]-->
|
||
|
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8"><![endif]-->
|
||
|
<!--[if IE 8]><html class="no-js lt-ie9"><![endif]-->
|
||
|
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
|
<title>Selectize.js Demo</title>
|
||
|
<meta name="description" content="">
|
||
|
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
|
||
|
<link rel="stylesheet" href="css/normalize.css">
|
||
|
<link rel="stylesheet" href="css/stylesheet.css">
|
||
|
<!--[if IE 8]><script src="js/es5.js"></script><![endif]-->
|
||
|
<script src="js/jquery.js"></script>
|
||
|
<script src="../dist/js/standalone/selectize.js"></script>
|
||
|
<script src="js/index.js"></script>
|
||
|
<style type="text/css">
|
||
|
.selectize-control.repositories .selectize-dropdown > div {
|
||
|
border-bottom: 1px solid rgba(0,0,0,0.05);
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .by {
|
||
|
font-size: 11px;
|
||
|
opacity: 0.8;
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .by::before {
|
||
|
content: 'by ';
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .name {
|
||
|
font-weight: bold;
|
||
|
margin-right: 5px;
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .title {
|
||
|
display: block;
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .description {
|
||
|
font-size: 12px;
|
||
|
display: block;
|
||
|
color: #a0a0a0;
|
||
|
white-space: nowrap;
|
||
|
width: 100%;
|
||
|
text-overflow: ellipsis;
|
||
|
overflow: hidden;
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .meta {
|
||
|
list-style: none;
|
||
|
margin: 0;
|
||
|
padding: 0;
|
||
|
font-size: 10px;
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .meta li {
|
||
|
margin: 0;
|
||
|
padding: 0;
|
||
|
display: inline;
|
||
|
margin-right: 10px;
|
||
|
}
|
||
|
.selectize-control.repositories .selectize-dropdown .meta li span {
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
.selectize-control.repositories::before {
|
||
|
-moz-transition: opacity 0.2s;
|
||
|
-webkit-transition: opacity 0.2s;
|
||
|
transition: opacity 0.2s;
|
||
|
content: ' ';
|
||
|
z-index: 2;
|
||
|
position: absolute;
|
||
|
display: block;
|
||
|
top: 12px;
|
||
|
right: 34px;
|
||
|
width: 16px;
|
||
|
height: 16px;
|
||
|
background: url(images/spinner.gif);
|
||
|
background-size: 16px 16px;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
.selectize-control.repositories.loading::before {
|
||
|
opacity: 0.4;
|
||
|
}
|
||
|
.icon {
|
||
|
width: 16px;
|
||
|
height: 16px;
|
||
|
display: inline-block;
|
||
|
vertical-align: middle;
|
||
|
background-size: 16px 16px;
|
||
|
margin: 0 3px 0 0;
|
||
|
}
|
||
|
.icon.fork {
|
||
|
background-image: url(images/repo-fork.png);
|
||
|
}
|
||
|
.icon.source {
|
||
|
background-image: url(images/repo-source.png);
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="wrapper">
|
||
|
<h1>Selectize.js</h1>
|
||
|
<div class="demo">
|
||
|
<h2>Loading + Custom Scoring</h2>
|
||
|
<p>This demo shows how to integrate third-party data and override the scoring method.</p>
|
||
|
<div class="control-group">
|
||
|
<label for="select-repo">Repository:</label>
|
||
|
<select id="select-repo" class="repositories" placeholder="Pick a repository..."></select>
|
||
|
</div>
|
||
|
<script>
|
||
|
// <select id="select-repo"></select>
|
||
|
$('#select-repo').selectize({
|
||
|
valueField: 'url',
|
||
|
labelField: 'name',
|
||
|
searchField: 'name',
|
||
|
options: [],
|
||
|
create: false,
|
||
|
render: {
|
||
|
option: function(item, escape) {
|
||
|
return '<div>' +
|
||
|
'<span class="title">' +
|
||
|
'<span class="name"><i class="icon ' + (item.fork ? 'fork' : 'source') + '"></i>' + escape(item.name) + '</span>' +
|
||
|
'<span class="by">' + escape(item.username) + '</span>' +
|
||
|
'</span>' +
|
||
|
'<span class="description">' + escape(item.description) + '</span>' +
|
||
|
'<ul class="meta">' +
|
||
|
(item.language ? '<li class="language">' + escape(item.language) + '</li>' : '') +
|
||
|
'<li class="watchers"><span>' + escape(item.watchers) + '</span> watchers</li>' +
|
||
|
'<li class="forks"><span>' + escape(item.forks) + '</span> forks</li>' +
|
||
|
'</ul>' +
|
||
|
'</div>';
|
||
|
}
|
||
|
},
|
||
|
score: function(search) {
|
||
|
var score = this.getScoreFunction(search);
|
||
|
return function(item) {
|
||
|
return score(item) * (1 + Math.min(item.watchers / 100, 1));
|
||
|
};
|
||
|
},
|
||
|
load: function(query, callback) {
|
||
|
if (!query.length) return callback();
|
||
|
$.ajax({
|
||
|
url: 'https://api.github.com/legacy/repos/search/' + encodeURIComponent(query),
|
||
|
type: 'GET',
|
||
|
error: function() {
|
||
|
callback();
|
||
|
},
|
||
|
success: function(res) {
|
||
|
callback(res.repositories.slice(0, 10));
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
</script>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|