-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #107 from funktechno/dev
release 0.4.0
- Loading branch information
Showing
53 changed files
with
1,677 additions
and
924 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,51 +1,168 @@ | ||
jQuery(document).ready(function () { | ||
/* | ||
page reorder and nesting support using jquery sorting plugin | ||
*/ | ||
if($("#columns").data("reorder-url")){ | ||
jQuery('#columns').sortable({ | ||
nested: true, | ||
onDrop: function ($item, container, _super) { | ||
// console.log("onDrop", $item, container, _super) | ||
container.el.removeClass("active"); | ||
var srcProperties = { | ||
...$item[0].dataset | ||
//-------------------------------------- | ||
// device detection | ||
//-------------------------------------- | ||
let isMobile = false; | ||
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) | ||
|| /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))) { | ||
isMobile = true; | ||
} | ||
|
||
//-------------------------------------- | ||
// hide the KB filters toolbar | ||
//-------------------------------------- | ||
$('.input-addon-field').hide(); | ||
$('.input-addon-item').hide(); | ||
|
||
//-------------------------------------- | ||
// override titles for links from their container buttons | ||
//-------------------------------------- | ||
$("#wikitree").find(".action a").each(function () { | ||
$(this).attr('title', $(this).parent().attr('title')); | ||
}); | ||
$("#wikilist").find(".action a").each(function () { | ||
$(this).attr('title', $(this).parent().attr('title')); | ||
}); | ||
$("#wikiedition").find(".action a").each(function () { | ||
$(this).attr('title', $(this).parent().attr('title')); | ||
}); | ||
|
||
//-------------------------------------- | ||
// handle collapse/expand of wikitree branches | ||
//-------------------------------------- | ||
if($("#wikitree").length == 1) { | ||
function expandAllWikipagesBranches() { | ||
const buttons = $("#wikitree").find(".branch"); | ||
buttons.each(function () { | ||
const button = $(this).find("a i")[0]; | ||
const branch = $(this).parent().find("ul")[0]; | ||
$(button).removeClass('fa-plus-square-o'); | ||
$(button).addClass('fa-minus-square-o'); | ||
$(branch).show(); | ||
}); | ||
} | ||
|
||
function collapseAllWikipagesBranches() { | ||
const buttons = $("#wikitree").find(".branch"); | ||
buttons.each(function () { | ||
const button = $(this).find("a i")[0]; | ||
const branch = $(this).parent().find("ul")[0]; | ||
$(button).removeClass('fa-minus-square-o'); | ||
$(button).addClass('fa-plus-square-o'); | ||
$(branch).hide(); | ||
}); | ||
} | ||
|
||
function gotoSelectedWikipageBranch() { | ||
function expandParentWikipage(el) { | ||
const parentUl = el.parent(); | ||
const parentId = parentUl.attr("id"); | ||
if (parentId === "wikiroot") return; // end recursion | ||
|
||
const parentWikipage = parentUl.parent(); | ||
const button = parentWikipage.find(".branch a i")[0]; | ||
$(button).removeClass('fa-plus-square-o'); | ||
$(button).addClass('fa-minus-square-o'); | ||
parentUl.show(); | ||
|
||
expandParentWikipage(parentWikipage); | ||
} | ||
var containerProperties = {...container.el[0].dataset} | ||
|
||
let request = { | ||
"src_wiki_id": srcProperties["pageId"], | ||
"index": $item.index(), | ||
"parent_id": containerProperties["parentId"] | ||
const selected = $("#wikiroot").find(".wikipage.active"); | ||
expandParentWikipage(selected); | ||
$("#wikiroot").show(); | ||
} | ||
|
||
$('.expandAll').click(function () { | ||
expandAllWikipagesBranches(); | ||
}); | ||
|
||
$('.collapseAll').click(function () { | ||
collapseAllWikipagesBranches(); | ||
}); | ||
|
||
$('.gotoSelected').click(function () { | ||
gotoSelectedWikipageBranch(); | ||
}); | ||
|
||
$('#wikitree .branch').click(function () { | ||
const button = $(this).find("a i")[0]; | ||
const branch = $(this).parent().find("ul")[0]; | ||
if ($(button).hasClass('fa-minus-square-o')) { | ||
$(button).removeClass('fa-minus-square-o'); | ||
$(button).addClass('fa-plus-square-o'); | ||
$(branch).hide(); | ||
return; | ||
} | ||
if ($(button).hasClass('fa-plus-square-o')) { | ||
$(button).removeClass('fa-plus-square-o'); | ||
$(button).addClass('fa-minus-square-o'); | ||
$(branch).show(); | ||
return; | ||
} | ||
}); | ||
|
||
// if not root selected, then collapse entire wiki content except for the selected branch | ||
if ($("#wikitree").length == 1 && $("#wikitree").data("selected-wiki-id") != 0) { | ||
collapseAllWikipagesBranches(); | ||
gotoSelectedWikipageBranch(); | ||
} | ||
} | ||
|
||
//-------------------------------------- | ||
// page reorder and nesting support using jquery sorting plugin | ||
//-------------------------------------- | ||
if($("#wikiroot").length == 1 && $("#wikitree").length == 1 && $("#wikitree").data("reorder-url")) { | ||
if (isMobile) { | ||
$(".sortable-handle").show(); | ||
} | ||
|
||
$('#wikiroot').sortable({ | ||
nested: true, | ||
itemSelector: ".wikipage", | ||
placeholder: '<li class="sortable-placeholder"></li>', | ||
placeholderClass: "sortable-placeholder", | ||
draggedClass: "sortable-dragged", | ||
handle: isMobile ? ".sortable-handle" : ".wikibranch", | ||
onDrop: function ($item, container, _super) { | ||
// console.log("onDrop", $item, container, _super) | ||
|
||
// console.log("request", request) | ||
const itemProperties = { ...$item[0].dataset } | ||
const containerProperties = { ...container.el[0].dataset } | ||
// console.log(itemProperties) | ||
// console.log(containerProperties) | ||
|
||
const request = { | ||
"src_wiki_id": itemProperties["pageId"], | ||
"index": $item.index() + 1, | ||
"parent_id": containerProperties["parentId"], | ||
} | ||
// console.log("request", request) | ||
|
||
$.ajax({ | ||
$.ajax({ | ||
cache: false, | ||
url: $("#columns").data("reorder-url"), | ||
url: $("#wikitree").data("reorder-url"), | ||
contentType: "application/json", | ||
type: "POST", | ||
processData: false, | ||
data: JSON.stringify(request), | ||
success: function(data) { | ||
// self.refresh(data); | ||
// self.savingInProgress = false; | ||
success: function(/*data*/) { | ||
// alert(data); | ||
location.reload(); | ||
}, | ||
error: function() { | ||
// self.app.hideLoadingIcon(); | ||
// self.savingInProgress = false; | ||
error: function(xhr,textStatus,e) { | ||
alert(xhr.responseText); | ||
location.reload(); | ||
}, | ||
statusCode: { | ||
403: function(data) { | ||
window.alert(data.responseJSON.message); | ||
document.location.reload(true); | ||
alert(data.responseJSON.message); | ||
location.reload(); | ||
} | ||
} | ||
}); | ||
_super($item, container); | ||
_super($item, container); | ||
}, | ||
}) | ||
}); | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,68 +1,109 @@ | ||
/* [draggable] { | ||
-moz-user-select: none; | ||
-khtml-user-select: none; | ||
-webkit-user-select: none; | ||
user-select: none; | ||
-khtml-user-drag: element; | ||
-webkit-user-drag: element; | ||
} */ | ||
|
||
body.dragging, body.dragging * { | ||
cursor: move !important; | ||
cursor: move !important; | ||
} | ||
.dragged { | ||
|
||
.sortable-dragged { | ||
position: absolute; | ||
opacity: 0.5; | ||
z-index: 2000; | ||
opacity: 0.75; | ||
background: rgba(255, 250, 144, 0.25); | ||
z-index: 2000 !important; | ||
} | ||
|
||
#columns { | ||
list-style-type: none; | ||
.sortable-placeholder { | ||
position: relative; | ||
margin: 0; | ||
padding: 0; | ||
height: 16px; | ||
background: rgba(255, 250, 144, 0.5); | ||
} | ||
.sortable-placeholder:before { | ||
position: absolute; | ||
content: ""; | ||
width: 0; | ||
height: 0; | ||
margin-top: -5px; | ||
left: -5px; | ||
top: -4px; | ||
border: 5px solid transparent; | ||
border-left-color: red; | ||
border-right: none; | ||
} | ||
|
||
.wikipage { | ||
width: 162px; | ||
padding-bottom: 5px; | ||
padding-top: 5px; | ||
text-align: left; | ||
/* cursor: move; */ | ||
} | ||
.wikipage header { | ||
height: 20px; | ||
width: 150px; | ||
color: black; | ||
background-color: #ccc; | ||
padding: 5px; | ||
border-bottom: 1px solid #ddd; | ||
border-radius: 10px; | ||
border: 2px solid #666666; | ||
.wikicontent { | ||
clear: both; | ||
} | ||
|
||
.wikipage.dragElem { | ||
opacity: 0.4; | ||
.wikisidebar { | ||
height: 100%; | ||
resize: horizontal; | ||
overflow: auto; | ||
max-width: 75% !important; | ||
min-width: 384px !important; | ||
} | ||
.wikipage.over { | ||
border: 2px dashed #000; | ||
border-top: 2px solid blue; | ||
|
||
.wikipage { | ||
padding-bottom: 5px; | ||
padding-top: 5px; | ||
text-align: left; | ||
white-space: nowrap; | ||
line-height: normal !important; | ||
} | ||
|
||
.clearfix::after { | ||
content: ""; | ||
clear: both; | ||
display: table; | ||
.wikibranch { | ||
width: calc(100% - 24px); | ||
display: inline-block; | ||
} | ||
.column { | ||
float: left; | ||
min-width: 0; | ||
.wikibranch:hover { | ||
cursor: move; | ||
background: rgba(255, 250, 144, 0.25); | ||
} | ||
.list { | ||
width: 25%; | ||
|
||
.wikilink { | ||
padding-top: 3px; | ||
padding-bottom: 3px; | ||
padding-left: 10px; | ||
padding-right: 10px; | ||
white-space: nowrap; | ||
z-index: 1; | ||
} | ||
.content { | ||
width: 75%; | ||
.wikilink.active { | ||
box-shadow: 0 0 10px #777777 inset; | ||
} | ||
|
||
.sidebar>ul li:last-child { | ||
margin-bottom: 0px; | ||
} | ||
#wikitree { | ||
list-style-type: none; | ||
} | ||
#wikitree .indent, .separator { | ||
appearance: none; | ||
-webkit-appearance: none; | ||
outline: none; | ||
border: 0; | ||
background: transparent; | ||
padding-right: 3px; | ||
padding-left: 3px; | ||
cursor: default; | ||
color: transparent; | ||
} | ||
#wikitree .branch, #wikitree .action, #wikitree .sortable-handle, #wikilist .action, #wikiedition .action, .expandAll, .collapseAll, .gotoSelected { | ||
appearance: none; | ||
-webkit-appearance: none; | ||
outline: none; | ||
border: 0; | ||
background: transparent; | ||
padding-right: 3px; | ||
padding-left: 3px; | ||
cursor: pointer; | ||
position: relative; | ||
z-index: 2; | ||
} | ||
#wikitree .sortable-handle, .actionBigger { | ||
font-size: 1.2em !important; | ||
padding-right: 5px !important; | ||
padding-left: 5px !important; | ||
} | ||
#wikitree li:last-child, #wikilist li:last-child { | ||
margin-bottom: 0px !important; | ||
} | ||
#wikitree button a .fa, #wikilist button a .fa, #wikiedition button a .fa { | ||
color: var(--link-color-primary); | ||
} |
Oops, something went wrong.