|
1 | 1 | jQuery(document).ready(function () {
|
2 |
| - /* |
3 |
| - page reorder and nesting support using jquery sorting plugin |
4 |
| - */ |
5 |
| - if($("#columns").data("reorder-url")){ |
6 |
| - jQuery('#columns').sortable({ |
7 |
| - nested: true, |
8 |
| - onDrop: function ($item, container, _super) { |
9 |
| - // console.log("onDrop", $item, container, _super) |
10 |
| - container.el.removeClass("active"); |
11 |
| - var srcProperties = { |
12 |
| - ...$item[0].dataset |
| 2 | + //-------------------------------------- |
| 3 | + // device detection |
| 4 | + //-------------------------------------- |
| 5 | + let isMobile = false; |
| 6 | + if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) |
| 7 | + || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(navigator.userAgent.substr(0,4))) { |
| 8 | + isMobile = true; |
| 9 | + } |
| 10 | + |
| 11 | + //-------------------------------------- |
| 12 | + // hide the KB filters toolbar |
| 13 | + //-------------------------------------- |
| 14 | + $('.input-addon-field').hide(); |
| 15 | + $('.input-addon-item').hide(); |
| 16 | + |
| 17 | + //-------------------------------------- |
| 18 | + // override titles for links from their container buttons |
| 19 | + //-------------------------------------- |
| 20 | + $("#wikitree").find(".action a").each(function () { |
| 21 | + $(this).attr('title', $(this).parent().attr('title')); |
| 22 | + }); |
| 23 | + $("#wikilist").find(".action a").each(function () { |
| 24 | + $(this).attr('title', $(this).parent().attr('title')); |
| 25 | + }); |
| 26 | + $("#wikiedition").find(".action a").each(function () { |
| 27 | + $(this).attr('title', $(this).parent().attr('title')); |
| 28 | + }); |
| 29 | + |
| 30 | + //-------------------------------------- |
| 31 | + // handle collapse/expand of wikitree branches |
| 32 | + //-------------------------------------- |
| 33 | + if($("#wikitree").length == 1) { |
| 34 | + function expandAllWikipagesBranches() { |
| 35 | + const buttons = $("#wikitree").find(".branch"); |
| 36 | + buttons.each(function () { |
| 37 | + const button = $(this).find("a i")[0]; |
| 38 | + const branch = $(this).parent().find("ul")[0]; |
| 39 | + $(button).removeClass('fa-plus-square-o'); |
| 40 | + $(button).addClass('fa-minus-square-o'); |
| 41 | + $(branch).show(); |
| 42 | + }); |
| 43 | + } |
| 44 | + |
| 45 | + function collapseAllWikipagesBranches() { |
| 46 | + const buttons = $("#wikitree").find(".branch"); |
| 47 | + buttons.each(function () { |
| 48 | + const button = $(this).find("a i")[0]; |
| 49 | + const branch = $(this).parent().find("ul")[0]; |
| 50 | + $(button).removeClass('fa-minus-square-o'); |
| 51 | + $(button).addClass('fa-plus-square-o'); |
| 52 | + $(branch).hide(); |
| 53 | + }); |
| 54 | + } |
| 55 | + |
| 56 | + function gotoSelectedWikipageBranch() { |
| 57 | + function expandParentWikipage(el) { |
| 58 | + const parentUl = el.parent(); |
| 59 | + const parentId = parentUl.attr("id"); |
| 60 | + if (parentId === "wikiroot") return; // end recursion |
| 61 | + |
| 62 | + const parentWikipage = parentUl.parent(); |
| 63 | + const button = parentWikipage.find(".branch a i")[0]; |
| 64 | + $(button).removeClass('fa-plus-square-o'); |
| 65 | + $(button).addClass('fa-minus-square-o'); |
| 66 | + parentUl.show(); |
| 67 | + |
| 68 | + expandParentWikipage(parentWikipage); |
13 | 69 | }
|
14 |
| - var containerProperties = {...container.el[0].dataset} |
15 | 70 |
|
16 |
| - let request = { |
17 |
| - "src_wiki_id": srcProperties["pageId"], |
18 |
| - "index": $item.index(), |
19 |
| - "parent_id": containerProperties["parentId"] |
| 71 | + const selected = $("#wikiroot").find(".wikipage.active"); |
| 72 | + expandParentWikipage(selected); |
| 73 | + $("#wikiroot").show(); |
| 74 | + } |
| 75 | + |
| 76 | + $('.expandAll').click(function () { |
| 77 | + expandAllWikipagesBranches(); |
| 78 | + }); |
| 79 | + |
| 80 | + $('.collapseAll').click(function () { |
| 81 | + collapseAllWikipagesBranches(); |
| 82 | + }); |
| 83 | + |
| 84 | + $('.gotoSelected').click(function () { |
| 85 | + gotoSelectedWikipageBranch(); |
| 86 | + }); |
| 87 | + |
| 88 | + $('#wikitree .branch').click(function () { |
| 89 | + const button = $(this).find("a i")[0]; |
| 90 | + const branch = $(this).parent().find("ul")[0]; |
| 91 | + if ($(button).hasClass('fa-minus-square-o')) { |
| 92 | + $(button).removeClass('fa-minus-square-o'); |
| 93 | + $(button).addClass('fa-plus-square-o'); |
| 94 | + $(branch).hide(); |
| 95 | + return; |
20 | 96 | }
|
| 97 | + if ($(button).hasClass('fa-plus-square-o')) { |
| 98 | + $(button).removeClass('fa-plus-square-o'); |
| 99 | + $(button).addClass('fa-minus-square-o'); |
| 100 | + $(branch).show(); |
| 101 | + return; |
| 102 | + } |
| 103 | + }); |
| 104 | + |
| 105 | + // if not root selected, then collapse entire wiki content except for the selected branch |
| 106 | + if ($("#wikitree").length == 1 && $("#wikitree").data("selected-wiki-id") != 0) { |
| 107 | + collapseAllWikipagesBranches(); |
| 108 | + gotoSelectedWikipageBranch(); |
| 109 | + } |
| 110 | + } |
| 111 | + |
| 112 | + //-------------------------------------- |
| 113 | + // page reorder and nesting support using jquery sorting plugin |
| 114 | + //-------------------------------------- |
| 115 | + if($("#wikiroot").length == 1 && $("#wikitree").length == 1 && $("#wikitree").data("reorder-url")) { |
| 116 | + if (isMobile) { |
| 117 | + $(".sortable-handle").show(); |
| 118 | + } |
| 119 | + |
| 120 | + $('#wikiroot').sortable({ |
| 121 | + nested: true, |
| 122 | + itemSelector: ".wikipage", |
| 123 | + placeholder: '<li class="sortable-placeholder"></li>', |
| 124 | + placeholderClass: "sortable-placeholder", |
| 125 | + draggedClass: "sortable-dragged", |
| 126 | + handle: isMobile ? ".sortable-handle" : ".wikibranch", |
| 127 | + onDrop: function ($item, container, _super) { |
| 128 | + // console.log("onDrop", $item, container, _super) |
21 | 129 |
|
22 |
| - // console.log("request", request) |
| 130 | + const itemProperties = { ...$item[0].dataset } |
| 131 | + const containerProperties = { ...container.el[0].dataset } |
| 132 | + // console.log(itemProperties) |
| 133 | + // console.log(containerProperties) |
23 | 134 |
|
| 135 | + const request = { |
| 136 | + "src_wiki_id": itemProperties["pageId"], |
| 137 | + "index": $item.index() + 1, |
| 138 | + "parent_id": containerProperties["parentId"], |
| 139 | + } |
| 140 | + // console.log("request", request) |
24 | 141 |
|
25 |
| - $.ajax({ |
| 142 | + $.ajax({ |
26 | 143 | cache: false,
|
27 |
| - url: $("#columns").data("reorder-url"), |
| 144 | + url: $("#wikitree").data("reorder-url"), |
28 | 145 | contentType: "application/json",
|
29 | 146 | type: "POST",
|
30 | 147 | processData: false,
|
31 | 148 | data: JSON.stringify(request),
|
32 |
| - success: function(data) { |
33 |
| - // self.refresh(data); |
34 |
| - // self.savingInProgress = false; |
| 149 | + success: function(/*data*/) { |
| 150 | + // alert(data); |
| 151 | + location.reload(); |
35 | 152 | },
|
36 |
| - error: function() { |
37 |
| - // self.app.hideLoadingIcon(); |
38 |
| - // self.savingInProgress = false; |
| 153 | + error: function(xhr,textStatus,e) { |
| 154 | + alert(xhr.responseText); |
| 155 | + location.reload(); |
39 | 156 | },
|
40 | 157 | statusCode: {
|
41 | 158 | 403: function(data) {
|
42 |
| - window.alert(data.responseJSON.message); |
43 |
| - document.location.reload(true); |
| 159 | + alert(data.responseJSON.message); |
| 160 | + location.reload(); |
44 | 161 | }
|
45 | 162 | }
|
46 | 163 | });
|
47 |
| - _super($item, container); |
| 164 | + _super($item, container); |
48 | 165 | },
|
49 |
| - }) |
| 166 | + }); |
50 | 167 | }
|
51 | 168 | });
|
0 commit comments