瀏覽代碼

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
                     </div>
72
                     </div>
73
                     <div class="form-group">
73
                     <div class="form-group">
74
                         <div class="col-sm-6">
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
                         </div>
76
                         </div>
77
                         <div class="col-sm-6">
77
                         <div class="col-sm-6">
78
                             <button type="button" class="btn btn-success btn-block" id="button-generate">Generate</button>
78
                             <button type="button" class="btn btn-success btn-block" id="button-generate">Generate</button>

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

2
 var card_data = [];
2
 var card_data = [];
3
 var card_options = card_default_options();
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
 function ui_generate() {
36
 function ui_generate() {
6
     // Generate output HTML
37
     // Generate output HTML
7
     var card_html = card_pages_generate_html(card_data, card_options);
38
     var card_html = card_pages_generate_html(card_data, card_options);
260
 }
291
 }
261
 
292
 
262
 function ui_sort_by_name() {
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
     ui_update_card_list();
316
     ui_update_card_list();
265
 }
317
 }
266
 
318
 
296
     $("#button-load-sample").click(ui_load_sample);
348
     $("#button-load-sample").click(ui_load_sample);
297
     $("#button-save").click(ui_save_file);
349
     $("#button-save").click(ui_save_file);
298
     $("#button-sort-name").click(ui_sort_by_name);
350
     $("#button-sort-name").click(ui_sort_by_name);
351
+    $("#button-sort-icon").click(ui_sort_by_icon);
299
     $("#button-add-card").click(ui_add_new_card);
352
     $("#button-add-card").click(ui_add_new_card);
300
     $("#button-duplicate-card").click(ui_duplicate_card);
353
     $("#button-duplicate-card").click(ui_duplicate_card);
301
     $("#button-delete-card").click(ui_delete_card);
354
     $("#button-delete-card").click(ui_delete_card);

Loading…
取消
儲存