Robin Thoni 8 роки тому
джерело
коміт
c65c36b203
3 змінених файлів з 63 додано та 17 видалено
  1. 28
    0
      app/controllers/sidebar.controller.js
  2. 2
    2
      app/less/app.less
  3. 33
    15
      app/views/sidebar.html

+ 28
- 0
app/controllers/sidebar.controller.js Переглянути файл

8
 
8
 
9
             $scope.DataShareBusiness = DataShareBusiness;
9
             $scope.DataShareBusiness = DataShareBusiness;
10
 
10
 
11
+            $scope.Search = {
12
+                value: "",
13
+                selected: null
14
+            };
15
+
11
             $scope.getCurrentGroups = function()
16
             $scope.getCurrentGroups = function()
12
             {
17
             {
13
                 if (DataShareBusiness.CurrentGroups.length != 0) {
18
                 if (DataShareBusiness.CurrentGroups.length != 0) {
19
                 }
24
                 }
20
                 return DataShareBusiness.Groups;
25
                 return DataShareBusiness.Groups;
21
             };
26
             };
27
+
28
+            $scope.search = function()
29
+            {
30
+                var groups = [];
31
+                function searchRec(group)
32
+                {
33
+                    if (group.Name.toLowerCase().indexOf($scope.Search.value.toLowerCase()) > -1) {
34
+                        groups.push(group);
35
+                    }
36
+                    if (group.Groups != null) {
37
+                        group.Groups.forEach(searchRec);
38
+                    }
39
+                }
40
+                DataShareBusiness.Groups.forEach(searchRec);
41
+                return groups;
42
+            };
43
+
44
+            $scope.goTo = function(group)
45
+            {
46
+                if (group != null) {
47
+                    DataShareBusiness.setCurrentGroup(group);
48
+                }
49
+            };
22
         }]);
50
         }]);

+ 2
- 2
app/less/app.less Переглянути файл

35
   background-color: rgba(0, 0, 0, 0.12);
35
   background-color: rgba(0, 0, 0, 0.12);
36
 }
36
 }
37
 
37
 
38
-.md-sidebar {
38
+.md-sidebar md-content {
39
   height: 100%;
39
   height: 100%;
40
   min-height: 150px;
40
   min-height: 150px;
41
 }
41
 }
143
 .sidebar-group-list {
143
 .sidebar-group-list {
144
   height: 100%;
144
   height: 100%;
145
   min-height: 75px;
145
   min-height: 75px;
146
-}
146
+}

+ 33
- 15
app/views/sidebar.html Переглянути файл

10
             This sidenav is locked open on your device. To go back to the default behavior,
10
             This sidenav is locked open on your device. To go back to the default behavior,
11
             narrow your display.
11
             narrow your display.
12
         </p>-->
12
         </p>-->
13
-        <ul class="col-sm-12 sidebar-group-list" lu-busy="sidebar">
14
-            <li ng-show="DataShareBusiness.CurrentGroups.length != 0" class="col-xs-12">
15
-                <md-button class="md-primary md-hue-1 md-group-button col-xs-12"
16
-                           ng-href="{{DataShareBusiness.getGroupUrl(DataShareBusiness.getCurrentGroup().Parent)}}">
17
-                    ..
18
-                </md-button>
19
-            </li>
20
-            <li ng-repeat="group in getCurrentGroups()" class="col-xs-12">
21
-                <md-button class="md-primary md-hue-1 md-group-button col-xs-12"
22
-                           ng-class="{'md-group-button-checked': DataShareBusiness.getCurrentGroup().Id == group.Id}"
23
-                           ng-href="{{DataShareBusiness.getGroupUrl(group)}}">
24
-                    {{ group.Name }}
25
-                </md-button>
26
-            </li>
27
-        </ul>
13
+        <div lu-busy="sidebar">
14
+            <md-autocomplete
15
+                    md-selected-item="Search.selected"
16
+                    md-search-text="Search.value"
17
+                    md-selected-item-change="goTo(item)"
18
+                    md-items="item in search(ctrl.searchText)"
19
+                    md-item-text="item.Name"
20
+                    md-min-length="1"
21
+                    placeholder="Type a group name...">
22
+                <md-item-template>
23
+                    <span md-highlight-text="ctrl.searchText" md-highlight-flags="^i">{{item.Name}}</span>
24
+                </md-item-template>
25
+                <md-not-found>
26
+                    No groups matching "{{Search.value}}" were found.
27
+                </md-not-found>
28
+            </md-autocomplete>
29
+
30
+            <ul class="col-sm-12 sidebar-group-list">
31
+                <li ng-show="DataShareBusiness.CurrentGroups.length != 0" class="col-xs-12">
32
+                    <md-button class="md-primary md-hue-1 md-group-button col-xs-12"
33
+                               ng-href="{{DataShareBusiness.getGroupUrl(DataShareBusiness.getCurrentGroup().Parent)}}">
34
+                        ..
35
+                    </md-button>
36
+                </li>
37
+                <li ng-repeat="group in getCurrentGroups()" class="col-xs-12">
38
+                    <md-button class="md-primary md-hue-1 md-group-button col-xs-12"
39
+                               ng-class="{'md-group-button-checked': DataShareBusiness.getCurrentGroup().Id == group.Id}"
40
+                               ng-href="{{DataShareBusiness.getGroupUrl(group)}}">
41
+                        {{ group.Name }}
42
+                    </md-button>
43
+                </li>
44
+            </ul>
45
+        </div>
28
     </md-content>
46
     </md-content>
29
 </md-sidenav>
47
 </md-sidenav>

Завантаження…
Відмінити
Зберегти