1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
var OKAdmin = function(){
// initialize our (single) ajax image uploader with an element and a template
OKUpload.bind( document.getElementById("file") )
OKUpload.add = function(data){
var url = data[0].extra.Location
add_image(url)
}
// also handle straight image urls
$("#add-image-url").keydown(pressEnter(function(e){
var url = $(this).val()
$(this).val("")
add_image(url)
}))
// clone and populate template
function add_image(url){
var imageTemplate = $("#captioned-image-template").html()
var $el = $(imageTemplate)
$el.find(".uri").val(url)
$el.find("img").attr("src", url)
$(".captioned-image-list ol").append($el)
}
// make the region sortable with drag-and-drop
$(".captioned-image-list ol").sortable()
$(".captioned-image-list ol").disableSelection()
// delete image
$(document).on("click", ".remove-image", function(){
if (confirm("Delete this image?")) {
$(this).parent().remove()
}
})
// populate a video field with info from our url parser
$(".video .url").on("keydown blur", pressEnter(function(){
var $el = $(this)
var url = $el.val()
console.log(url)
Parser.parse( url, function(media){
console.log(url,media)
$el.parent().addClass("loaded")
$el.parent().find(".video-type").val( media.type )
$el.parent().find(".video-token").val( media.token )
$el.parent().find(".video-title").val( media.title )
$el.parent().find(".video-thumb").val( media.thumbnail )
})
}))
// fix post indexing in list-driven inputs
$(".main.resource form").submit(function(){
$(".image-element").each(function(index){
$(this).find("input,textarea").each(function(){
var field = $(this).attr("name").replace(/\[[0-9]*\]/, "[" + index + "]")
$(this).attr("name", field)
})
})
})
$("#delete_form").submit(function(e){
if (confirm("Are you sure you want to delete this record?")) {
return
}
else {
e.preventDefault()
}
})
$(".resource-category").on("click", ".edit-btn", function(e) {
e.preventDefault();
var $parent = $(e.delegateTarget);
var $editBtn = $parent.find(".edit-btn");
var $cancelBtn = $parent.find(".cancel-btn");
var $saveBtn = $parent.find(".save-btn");
var $ol = $parent.find("ol");
var toggles = [$parent, $cancelBtn, $saveBtn, $editBtn];
$ol.sortable();
$ol.disableSelection();
toggle();
$cancelBtn.one("click", function(e) {
$ol.sortable("cancel");
$ol.enableSelection();
toggle();
});
$saveBtn.one("click", function(e) {
$ol.sortable();
toggle();
});
function toggle() {
toggles.forEach(function($el) {
$el.toggleClass('active');
})
}
});
$(".resource-category").on("submit", "form", function(e) {
var $parent = $(e.delegateTarget);
$parent.find(".resource-input").each(function(index) {
var $input = $(this);
var parsed = JSON.parse($input.val());
parsed.__index = index;
$input.val(JSON.stringify(parsed));
})
});
function pressEnter(fn){
return function(e){
if (e.keyCode && e.keyCode !== 13) return
e.preventDefault()
console.log("hi")
fn.apply(this)
}
}
}
$(function(){
window.app = new OKAdmin ()
})
|