瀏覽代碼

Stable sort by name and icon

crobi 10 年之前
父節點
當前提交
4459154e80
共有 2 個文件被更改,包括 55 次插入2 次删除
  1. 1
    1
      generator/generate.html
  2. 54
    1
      generator/js/ui.js

+ 1
- 1
generator/generate.html 查看文件

@@ -72,7 +72,7 @@
72 72
                     </div>
73 73
                     <div class="form-group">
74 74
                         <div class="col-sm-6">
75
-                            <button type="button" class="btn btn-primary btn-block" id="button-sort-name">Sort by name</button>
75
+                            <button type="button" class="btn btn-primary btn-block" id="button-sort-icon">Sort by icon</button>
76 76
                         </div>
77 77
                         <div class="col-sm-6">
78 78
                             <button type="button" class="btn btn-success btn-block" id="button-generate">Generate</button>

+ 54
- 1
generator/js/ui.js 查看文件

@@ -2,6 +2,37 @@
2 2
 var card_data = [];
3 3
 var card_options = card_default_options();
4 4
 
5
+function mergeSort(arr, compare) {
6
+    if (arr.length < 2)
7
+        return arr;
8
+
9
+    var middle = parseInt(arr.length / 2);
10
+    var left = arr.slice(0, middle);
11
+    var right = arr.slice(middle, arr.length);
12
+
13
+    return merge(mergeSort(left, compare), mergeSort(right, compare), compare);
14
+}
15
+
16
+function merge(left, right, compare) {
17
+    var result = [];
18
+
19
+    while (left.length && right.length) {
20
+        if (compare(left[0], right[0]) <= 0) {
21
+            result.push(left.shift());
22
+        } else {
23
+            result.push(right.shift());
24
+        }
25
+    }
26
+
27
+    while (left.length)
28
+        result.push(left.shift());
29
+
30
+    while (right.length)
31
+        result.push(right.shift());
32
+
33
+    return result;
34
+}
35
+
5 36
 function ui_generate() {
6 37
     // Generate output HTML
7 38
     var card_html = card_pages_generate_html(card_data, card_options);
@@ -260,7 +291,28 @@ function ui_change_default_icon_size() {
260 291
 }
261 292
 
262 293
 function ui_sort_by_name() {
263
-    card_data.sort(function (a, b) { return b.title < a.title });
294
+    card_data = mergeSort(card_data, function (a, b) {
295
+        if (a.title > b.title) {
296
+            return 1;
297
+        }
298
+        if (a.title < b.title) {
299
+            return -1;
300
+        }
301
+        return 0;
302
+    });
303
+    ui_update_card_list();
304
+}
305
+
306
+function ui_sort_by_icon() {
307
+    card_data = mergeSort(card_data, function (a, b) {
308
+        if (a.icon > b.icon) {
309
+            return 1;
310
+        }
311
+        if (a.icon < b.icon) {
312
+            return -1;
313
+        }
314
+        return 0;
315
+    });
264 316
     ui_update_card_list();
265 317
 }
266 318
 
@@ -296,6 +348,7 @@ $(document).ready(function () {
296 348
     $("#button-load-sample").click(ui_load_sample);
297 349
     $("#button-save").click(ui_save_file);
298 350
     $("#button-sort-name").click(ui_sort_by_name);
351
+    $("#button-sort-icon").click(ui_sort_by_icon);
299 352
     $("#button-add-card").click(ui_add_new_card);
300 353
     $("#button-duplicate-card").click(ui_duplicate_card);
301 354
     $("#button-delete-card").click(ui_delete_card);

Loading…
取消
儲存