angular-smart-search 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/angular-smart-search.js +37 -73
- data/lib/angular-smart-search/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de4a050a3086471deb86de73b38446373d4d085d
|
4
|
+
data.tar.gz: 098e28d748c9b93843ec08adcaee774bcc9ddb46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a9460f23144b2fdd2e4a6e46b14cdb750b193434d6fcfaa8604016c37baa52c1afebfbd063c518a4080de9d4e1901bed2bdb2912e4e940efcb5f34b9696c565
|
7
|
+
data.tar.gz: e00404550e829b3a068cf9bab7392ad011d3713a1bd71dbfaebcbb9d9639db0369b91d4128116f14f475bd3212dd35ce816bb5ac89306baa694bf8aa4123ed87
|
@@ -1,16 +1,16 @@
|
|
1
1
|
// author: Samuel Mueller
|
2
|
-
// version: 0.0.
|
2
|
+
// version: 0.0.2
|
3
3
|
// license: MIT
|
4
4
|
// homepage: http://github.com/ssmm/angular-smart-search
|
5
5
|
(function() {
|
6
|
-
var padding
|
6
|
+
var padding;
|
7
7
|
|
8
8
|
padding = 30;
|
9
9
|
|
10
10
|
angular.module("angular-smart-search", []);
|
11
11
|
|
12
12
|
angular.module("angular-smart-search").directive("smartSearch", [
|
13
|
-
"$http", "searchQueryFactory", function($http, searchQueryFactory) {
|
13
|
+
"$http", "searchQueryFactory", "templateFactory", function($http, searchQueryFactory, templateFactory) {
|
14
14
|
var QueryState;
|
15
15
|
|
16
16
|
QueryState = function() {
|
@@ -27,7 +27,7 @@
|
|
27
27
|
restrict: "A",
|
28
28
|
scope: true,
|
29
29
|
replace: true,
|
30
|
-
template:
|
30
|
+
template: templateFactory(),
|
31
31
|
compile: function(element, attributes, transclude) {
|
32
32
|
var id_field;
|
33
33
|
|
@@ -102,75 +102,6 @@
|
|
102
102
|
}
|
103
103
|
]);
|
104
104
|
|
105
|
-
template = '\
|
106
|
-
<div>\
|
107
|
-
<!-- input section you see initially -->\
|
108
|
-
<div class="input-prepend input-append">\
|
109
|
-
<!-- gray display section -->\
|
110
|
-
<span class="add-on" style="min-width: 200px;">\
|
111
|
-
<!-- result if found -->\
|
112
|
-
<span ng-show="queryState.is(\'successful\')">\
|
113
|
-
<i class="ubs-icon-small-suitability"></i>\
|
114
|
-
{{result.displayText}}\
|
115
|
-
</span>\
|
116
|
-
<!-- query states -->\
|
117
|
-
<span ng-show="queryState.is(\'changed\')">\
|
118
|
-
<em>{{queryState.query.format.name}} detected</em>\
|
119
|
-
</span>\
|
120
|
-
<span ng-show="queryState.is(\'pending\')">\
|
121
|
-
<em>searching...</em>\
|
122
|
-
</span>\
|
123
|
-
<span ng-show="queryState.is(\'unsuccessful\')">\
|
124
|
-
<em>Not found</em>\
|
125
|
-
</span>\
|
126
|
-
<span ng-show="queryState.is(\'invalid-format\')">\
|
127
|
-
<em>Invalid format</em>\
|
128
|
-
</span>\
|
129
|
-
<span ng-show="queryState.is(\'error\')">\
|
130
|
-
<em>Error</em>\
|
131
|
-
</span>\
|
132
|
-
</span>\
|
133
|
-
<!-- quick query field -->\
|
134
|
-
<input ng-change="outerQueryChanged(quickQuery)" ng-model="quickQuery" queryfield="" style="width: 100px;" type="text">\
|
135
|
-
<!-- button that triggers detail search overlay -->\
|
136
|
-
<button class="btn btn-ubs-dark" ng-click="show()">\
|
137
|
-
<i class="ubs-icon-small-search ubs-icon-small-white"></i>\
|
138
|
-
</button>\
|
139
|
-
</div>\
|
140
|
-
<!-- detail search overlay, initially hidden -->\
|
141
|
-
<div class="uw-overlay shadow" ng-mouseleave="hide()" overlay="">\
|
142
|
-
<div class="row-fluid">\
|
143
|
-
<div class="span12">\
|
144
|
-
<div class="input-append">\
|
145
|
-
<input detail-queryfield="" ng-model="detailQuery" type="text">\
|
146
|
-
<button class="btn btn-ubs-dark" ng-click="search(detailQuery)">\
|
147
|
-
<i class="ubs-icon-small-search ubs-icon-small-white"></i>\
|
148
|
-
</button>\
|
149
|
-
</div>\
|
150
|
-
</div>\
|
151
|
-
</div>\
|
152
|
-
<div class="horizontal-space"></div>\
|
153
|
-
<div class="row-fluid">\
|
154
|
-
<div class="span12">\
|
155
|
-
<table at-table="" class="table table-bordered table-hover" fill-last-page="" pagination="wildPagination">\
|
156
|
-
<thead></thead>\
|
157
|
-
<tbody>\
|
158
|
-
<tr ng-mouseover="hover(item)">\
|
159
|
-
<td at-implicit="" attribute="id" class="sortable 50px"></td>\
|
160
|
-
<td at-implicit="" attribute="displayText" class="sortable 280px" title="Result"></td>\
|
161
|
-
<td class="50px" title="-">\
|
162
|
-
<button class="btn btn-mini btn-ubs-blue" ng-click="pick(item)">pick</button>\
|
163
|
-
</td>\
|
164
|
-
</tr>\
|
165
|
-
</tbody>\
|
166
|
-
</table>\
|
167
|
-
<at-pagination instance="wildPagination" items-per-page="3" list="resultList"></at-pagination>\
|
168
|
-
</div>\
|
169
|
-
</div>\
|
170
|
-
</div>\
|
171
|
-
</div>\
|
172
|
-
';
|
173
|
-
|
174
105
|
angular.module("angular-smart-search").provider("searchQueryFactory", [
|
175
106
|
function() {
|
176
107
|
var Query, detectFormat, formats;
|
@@ -216,4 +147,37 @@
|
|
216
147
|
}
|
217
148
|
]);
|
218
149
|
|
150
|
+
angular.module("angular-smart-search").factory("templateFactory", [
|
151
|
+
"markupStore", function(markupStore) {
|
152
|
+
return function() {
|
153
|
+
return " <div> <!-- input section you see initially --> <div class='input-prepend input-append'> <!-- gray display section --> <span class='add-on' style='min-width: 200px;'> <!-- result if found --> <span ng-show='queryState.is(\"successful\")'> <i class='" + (markupStore.successIconClass()) + "'></i> {{result.displayText}} </span> <!-- query states --> <span ng-show='queryState.is(\"changed\")'> <em>{{queryState.query.format.name}} detected</em> </span> <span ng-show='queryState.is(\"pending\")'> <em>searching...</em> </span> <span ng-show='queryState.is(\"unsuccessful\")'> <em>Not found</em> </span> <span ng-show='queryState.is(\"invalid-format\")'> <em>Invalid format</em> </span> <span ng-show='queryState.is(\"error\")'> <em>Error</em> </span> </span> <!-- quick query field --> <input ng-change='outerQueryChanged(quickQuery)' ng-model='quickQuery' queryfield style='width: 100px;' type='text'> <!-- button that triggers detail search overlay --> <button class='btn' ng-click='show()'> <i class='" + (markupStore.searchIconClass()) + "'></i> </button> </div> <!-- detail search overlay, initially hidden --> <div class='uw-overlay shadow' ng-mouseleave='hide()' overlay> <div class='row-fluid'> <div class='span12'> <div class='input-append'> <input detail-queryfield ng-model='detailQuery' type='text'> <button class='btn' ng-click='search(detailQuery)'> <i class='" + (markupStore.searchIconClass()) + "'></i> </button> </div> </div> </div> <div class='horizontal-space'></div> <div class='row-fluid'> <div class='span12'> <table at-table class='table table-bordered table-hover' fill-last-page pagination='wildPagination'> <thead></thead> <tbody> <tr ng-mouseover='hover(item)'> <td at-implicit attribute='id' class='sortable 50px'></td> <td at-implicit attribute='displayText' class='sortable 280px' title='Result'></td> <td class='50px' title='-'> <button class='btn btn-mini' ng-click='pick(item)'>pick</button> </td> </tr> </tbody> </table> <at-pagination instance='wildPagination' items-per-page='3' list='resultList'></at-pagination> </div> </div> </div> </div> ";
|
154
|
+
};
|
155
|
+
}
|
156
|
+
]);
|
157
|
+
|
158
|
+
angular.module("angular-smart-search").provider("markupStore", [
|
159
|
+
function() {
|
160
|
+
var searchIconClass, successIconClass;
|
161
|
+
|
162
|
+
successIconClass = "icon-ok";
|
163
|
+
searchIconClass = "icon-search";
|
164
|
+
this.setSuccessIconClass = function(attr) {
|
165
|
+
return successIconClass = attr;
|
166
|
+
};
|
167
|
+
this.setSearchIconClass = function(attr) {
|
168
|
+
return searchIconClass = attr;
|
169
|
+
};
|
170
|
+
return this.$get = function() {
|
171
|
+
return {
|
172
|
+
successIconClass: function() {
|
173
|
+
return successIconClass;
|
174
|
+
},
|
175
|
+
searchIconClass: function() {
|
176
|
+
return searchIconClass;
|
177
|
+
}
|
178
|
+
};
|
179
|
+
};
|
180
|
+
}
|
181
|
+
]);
|
182
|
+
|
219
183
|
}).call(this);
|