Skip to content

Commit 4d2d1f7

Browse files
authored
Merge pull request #78 from funktechno/dev
v 0.3.5
2 parents 65ed95c + c589b18 commit 4d2d1f7

File tree

17 files changed

+1118
-158
lines changed

17 files changed

+1118
-158
lines changed

Asset/Javascript/wiki.js

+40-123
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,51 @@
11
jQuery(document).ready(function () {
2-
var dragSrcEl = null;
3-
4-
function handleDragStart(e) {
5-
// Target (this) element is the source node.
6-
dragSrcEl = this;
7-
8-
e.dataTransfer.effectAllowed = 'move';
9-
e.dataTransfer.setData('text/html', this.outerHTML);
10-
11-
this.classList.add('dragElem');
12-
}
13-
function handleDragOver(e) {
14-
if (e.preventDefault) {
15-
e.preventDefault(); // Necessary. Allows us to drop.
16-
}
17-
this.classList.add('over');
18-
19-
e.dataTransfer.dropEffect = 'move'; // See the section on the DataTransfer object.
20-
21-
return false;
22-
}
23-
24-
function handleDragEnter(e) {
25-
// this / e.target is the current hover target.
26-
}
27-
28-
function handleDragLeave(e) {
29-
this.classList.remove('over'); // this / e.target is previous target element.
30-
}
31-
32-
function handleDrop(e) {
33-
// this/e.target is current target element.
34-
35-
if (e.stopPropagation) {
36-
e.stopPropagation(); // Stops some browsers from redirecting.
37-
}
38-
39-
// Don't do anything if dropping the same column we're dragging.
40-
if (dragSrcEl != this) {
41-
42-
let targetRoute;
43-
if(e.target.localName == "a"){
44-
targetRoute = e.target.href
45-
} else {
46-
targetRoute = e.target.querySelector("a").href
47-
}
48-
let targetParams = new URL(targetRoute)
49-
var targetProperties = {}
50-
for (const [key, value] of targetParams.searchParams.entries()) {
51-
targetProperties[key] = value
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
5213
}
53-
// console.log("targetProperties", targetProperties)
54-
55-
var srcParams = new URL(dragSrcEl.querySelector("a").href)
56-
var srcProperties = {}
57-
58-
for (const [key, value] of srcParams.searchParams.entries()) {
59-
srcProperties[key] = value
60-
}
61-
// console.log("srcProperties", srcProperties)
62-
63-
let project_id = srcProperties["project_id"]
64-
65-
// console.log("project_id", project_id)
14+
var containerProperties = {...container.el[0].dataset}
6615

6716
let request = {
68-
"src_wiki_id": srcProperties["wiki_id"],
69-
"target_wiki_id": targetProperties["wiki_id"]
17+
"src_wiki_id": srcProperties["pageId"],
18+
"index": $item.index(),
19+
"parent_id": containerProperties["parentId"]
7020
}
7121

72-
console.log("request", request)
22+
// console.log("request", request)
23+
7324

7425
$.ajax({
75-
cache: false,
76-
url: $("#columns").data("reorder-url"),
77-
contentType: "application/json",
78-
type: "POST",
79-
processData: false,
80-
data: JSON.stringify(request),
81-
success: function(data) {
82-
// self.refresh(data);
83-
// self.savingInProgress = false;
84-
},
85-
error: function() {
86-
// self.app.hideLoadingIcon();
87-
// self.savingInProgress = false;
88-
},
89-
statusCode: {
90-
403: function(data) {
91-
window.alert(data.responseJSON.message);
92-
document.location.reload(true);
26+
cache: false,
27+
url: $("#columns").data("reorder-url"),
28+
contentType: "application/json",
29+
type: "POST",
30+
processData: false,
31+
data: JSON.stringify(request),
32+
success: function(data) {
33+
// self.refresh(data);
34+
// self.savingInProgress = false;
35+
},
36+
error: function() {
37+
// self.app.hideLoadingIcon();
38+
// self.savingInProgress = false;
39+
},
40+
statusCode: {
41+
403: function(data) {
42+
window.alert(data.responseJSON.message);
43+
document.location.reload(true);
44+
}
9345
}
94-
}
95-
});
96-
97-
// Set the source column's HTML to the HTML of the column we dropped on.
98-
//alert(this.outerHTML);
99-
//dragSrcEl.innerHTML = this.innerHTML;
100-
//this.innerHTML = e.dataTransfer.getData('text/html');
101-
this.parentNode.removeChild(dragSrcEl);
102-
var dropHTML = e.dataTransfer.getData('text/html');
103-
this.insertAdjacentHTML('beforebegin', dropHTML);
104-
var dropElem = this.previousSibling;
105-
addDnDHandlers(dropElem);
106-
107-
}
108-
this.classList.remove('over');
109-
return false;
46+
});
47+
_super($item, container);
48+
},
49+
})
11050
}
111-
112-
function handleDragEnd(e) {
113-
// this/e.target is the source node.
114-
this.classList.remove('over');
115-
116-
/*[].forEach.call(cols, function (col) {
117-
col.classList.remove('over');
118-
});*/
119-
}
120-
121-
function addDnDHandlers(elem) {
122-
elem.addEventListener('dragstart', handleDragStart, false);
123-
elem.addEventListener('dragenter', handleDragEnter, false)
124-
elem.addEventListener('dragover', handleDragOver, false);
125-
elem.addEventListener('dragleave', handleDragLeave, false);
126-
elem.addEventListener('drop', handleDrop, false);
127-
elem.addEventListener('dragend', handleDragEnd, false);
128-
129-
}
130-
131-
var cols = document.querySelectorAll('#columns .wikipage');
132-
[].forEach.call(cols, addDnDHandlers);
133-
13451
});

Asset/css/wiki.css

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
1-
[draggable] {
1+
/* [draggable] {
22
-moz-user-select: none;
33
-khtml-user-select: none;
44
-webkit-user-select: none;
55
user-select: none;
6-
/* Required to make elements draggable in old WebKit */
76
-khtml-user-drag: element;
87
-webkit-user-drag: element;
8+
} */
9+
10+
body.dragging, body.dragging * {
11+
cursor: move !important;
12+
}
13+
14+
.dragged {
15+
position: absolute;
16+
opacity: 0.5;
17+
z-index: 2000;
918
}
1019

1120
#columns {
@@ -17,7 +26,7 @@ width: 162px;
1726
padding-bottom: 5px;
1827
padding-top: 5px;
1928
text-align: left;
20-
cursor: move;
29+
/* cursor: move; */
2130
}
2231
.wikipage header {
2332
height: 20px;
@@ -52,4 +61,8 @@ width: 25%;
5261
}
5362
.content {
5463
width: 75%;
64+
}
65+
66+
.sidebar>ul li:last-child {
67+
margin-bottom: 0px;
5568
}

0 commit comments

Comments
 (0)