Skip to content

Commit 1421a44

Browse files
committed
Added color picker
1 parent fb057e8 commit 1421a44

File tree

5 files changed

+73
-10
lines changed

5 files changed

+73
-10
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
src/backend/ext/
22
src/ui/ext/
3+
temp/

Diff for: Makefile

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
update-libs:
44
wget -O src/backend/ext/Parsedown.php https://raw.githubusercontent.com/erusev/parsedown/master/Parsedown.php
55
wget -O src/ui/ext/jquery.min.js https://code.jquery.com/jquery-3.4.1.min.js
6+
mkdir temp
7+
wget -O temp/bootstrap-colorpicker.zip https://github.com/itsjavi/bootstrap-colorpicker/releases/download/3.1.2/bootstrap-colorpicker-v3.1.2-dist.zip
8+
cd temp; unzip bootstrap-colorpicker.zip
9+
cp temp/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js src/ui/ext/
10+
cp temp/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css src/ui/ext/
11+
rm -fR temp/
612

713
lint:
814
php -l src/backend/lib/AdminAPI.php

Diff for: dist/index.php

+43-5
Large diffs are not rendered by default.

Diff for: src/ui/AdminUI.html

+4
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
88
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
9+
<style>
10+
<!-- include:src/ui/ext/bootstrap-colorpicker.min.css -->
11+
</style>
912
<script type="text/javascript">
1013
<!-- include:src/ui/ext/jquery.min.js -->
1114
</script>
1215
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
1316
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
1417
<script type="text/javascript">
18+
<!-- include:src/ui/ext/bootstrap-colorpicker.min.js -->
1519
<!-- include:src/ui/AdminUI.js -->
1620
</script>
1721
</head>

Diff for: src/ui/lib/PageContent.js

+19-5
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ class PageContent {
3939
return this.page_data.parts.length;
4040
}
4141

42+
render_editor_input(field, name) {
43+
if (field == "color") {
44+
return '<input class="page_field color_field form-control" type="text" name="'+name+'" id="'+name+'">';
45+
}
46+
47+
if (field == "text") {
48+
return '<textarea class="section_field form-control" name="'+name+'" id="'+name+'" rows="5"></textarea>';
49+
}
50+
51+
// Fallback: single-line text
52+
return '<input class="page_field form-control" type="text" name="'+name+'" id="'+name+'">';
53+
}
54+
4255
render_editor_fields_page() {
4356
var html = [];
4457

@@ -49,7 +62,7 @@ class PageContent {
4962

5063
html.push('<div class="row">'
5164
+'<div class="col-4">'+this.fields.page_values[field]+'</div>'
52-
+'<div class="col-8"><input class="page_field form-control" type="text" name="'+name+'" id="'+name+'"></div>'
65+
+'<div class="col-8">'+this.render_editor_input(field, name)+'</div>'
5366
+'</div>');
5467
}
5568
html.push('</div>');
@@ -66,13 +79,13 @@ class PageContent {
6679

6780
html.push('<div class="row">'
6881
+'<div class="col-4">'+this.fields.section_values[field]+'</div>'
69-
+'<div class="col-8"><input class="section_field form-control" type="text" name="'+name+'" id="'+name+'"></div>'
82+
+'<div class="col-8">'+this.render_editor_input(field, name)+'</div>'
7083
+'</div>');
7184
}
7285

7386
var name='section_'+n+'_text';
7487

75-
html.push('<div class="row"><div class="col-12"><label for="'+name+'">Text</label><textarea class="section_field form-control" name="'+name+'" id="'+name+'" rows="5"></textarea></div></div>');
88+
html.push('<div class="row"><div class="col-12"><label for="'+name+'">Text</label>'+this.render_editor_input('text', name)+'</div></div>');
7689
html.push('</div>');
7790

7891
return html.join("\n");
@@ -102,8 +115,9 @@ class PageContent {
102115

103116
$(this.page_content_id).html(html.join("\n"));
104117

105-
$(".page_field").on('keyup', {obj: this}, this.update_object_value);
106-
$(".section_field").on("keyup", {obj: this}, this.update_object_value);
118+
$(".page_field").on('keyup change', {obj: this}, this.update_object_value);
119+
$(".section_field").on("keyup change", {obj: this}, this.update_object_value);
120+
$(".color_field").colorpicker();
107121
}
108122

109123
update_object_value(event) {

0 commit comments

Comments
 (0)