Move jquery-minicolors to npm/webpack (#12305)
* Move jquery-minicolors to npm/webpack - Unvendor and add as npm dependency - Removed unneeded backend variable - Fixed existing bug where picker would previously initizalize to the same green color when editing a label. There was probably a version bump because the previous version was over 3 years old but it seems to be compatible. * use file-loader * trailing comma and comment update * misc tweaks Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
parent
2f6aadffa8
commit
2fd78c151e
15 changed files with 36 additions and 366 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -79,6 +79,7 @@ coverage.all
|
||||||
/public/serviceworker.js
|
/public/serviceworker.js
|
||||||
/public/css
|
/public/css
|
||||||
/public/fonts
|
/public/fonts
|
||||||
|
/public/img/webpack
|
||||||
/web_src/fomantic/build
|
/web_src/fomantic/build
|
||||||
/VERSION
|
/VERSION
|
||||||
/.air
|
/.air
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -96,7 +96,7 @@ FOMANTIC_DEST_DIR := web_src/fomantic/build
|
||||||
WEBPACK_SOURCES := $(shell find web_src/js web_src/less -type f) $(FOMANTIC_DEST)
|
WEBPACK_SOURCES := $(shell find web_src/js web_src/less -type f) $(FOMANTIC_DEST)
|
||||||
WEBPACK_CONFIGS := webpack.config.js
|
WEBPACK_CONFIGS := webpack.config.js
|
||||||
WEBPACK_DEST := public/js/index.js public/css/index.css
|
WEBPACK_DEST := public/js/index.js public/css/index.css
|
||||||
WEBPACK_DEST_ENTRIES := public/js public/css public/fonts public/serviceworker.js
|
WEBPACK_DEST_ENTRIES := public/js public/css public/fonts public/img/webpack public/serviceworker.js
|
||||||
|
|
||||||
BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go
|
BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go
|
||||||
BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST))
|
BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST))
|
||||||
|
|
5
package-lock.json
generated
5
package-lock.json
generated
|
@ -904,6 +904,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz",
|
||||||
"integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg=="
|
"integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg=="
|
||||||
},
|
},
|
||||||
|
"@claviska/jquery-minicolors": {
|
||||||
|
"version": "2.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@claviska/jquery-minicolors/-/jquery-minicolors-2.3.5.tgz",
|
||||||
|
"integrity": "sha512-LpiN8hyqRPYB2tEzFD4lI54GxKHQXhzrJMnKnsumElYxjkjbdAPmiIm+1k/Mkfn92HepL7t9uaK5iQSFP/19aw=="
|
||||||
|
},
|
||||||
"@csstools/convert-colors": {
|
"@csstools/convert-colors": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
"@babel/plugin-transform-runtime": "7.10.5",
|
"@babel/plugin-transform-runtime": "7.10.5",
|
||||||
"@babel/preset-env": "7.10.4",
|
"@babel/preset-env": "7.10.4",
|
||||||
"@babel/runtime": "7.10.5",
|
"@babel/runtime": "7.10.5",
|
||||||
|
"@claviska/jquery-minicolors": "2.3.5",
|
||||||
"@primer/octicons": "10.0.0",
|
"@primer/octicons": "10.0.0",
|
||||||
"babel-loader": "8.1.0",
|
"babel-loader": "8.1.0",
|
||||||
"clipboard": "2.0.6",
|
"clipboard": "2.0.6",
|
||||||
|
|
18
public/vendor/plugins/jquery.minicolors/LICENSE
vendored
18
public/vendor/plugins/jquery.minicolors/LICENSE
vendored
|
@ -1,18 +0,0 @@
|
||||||
Copyright 2017 A Beautiful Site, LLC
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to use,
|
|
||||||
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
|
||||||
Software, and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
||||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 67 KiB |
|
@ -202,7 +202,6 @@ func DeleteWebhook(ctx *context.Context) {
|
||||||
func Labels(ctx *context.Context) {
|
func Labels(ctx *context.Context) {
|
||||||
ctx.Data["Title"] = ctx.Tr("repo.labels")
|
ctx.Data["Title"] = ctx.Tr("repo.labels")
|
||||||
ctx.Data["PageIsOrgSettingsLabels"] = true
|
ctx.Data["PageIsOrgSettingsLabels"] = true
|
||||||
ctx.Data["RequireMinicolors"] = true
|
|
||||||
ctx.Data["RequireTribute"] = true
|
ctx.Data["RequireTribute"] = true
|
||||||
ctx.Data["LabelTemplates"] = models.LabelTemplates
|
ctx.Data["LabelTemplates"] = models.LabelTemplates
|
||||||
ctx.HTML(200, tplSettingsLabels)
|
ctx.HTML(200, tplSettingsLabels)
|
||||||
|
|
|
@ -23,7 +23,6 @@ func Labels(ctx *context.Context) {
|
||||||
ctx.Data["Title"] = ctx.Tr("repo.labels")
|
ctx.Data["Title"] = ctx.Tr("repo.labels")
|
||||||
ctx.Data["PageIsIssueList"] = true
|
ctx.Data["PageIsIssueList"] = true
|
||||||
ctx.Data["PageIsLabels"] = true
|
ctx.Data["PageIsLabels"] = true
|
||||||
ctx.Data["RequireMinicolors"] = true
|
|
||||||
ctx.Data["RequireTribute"] = true
|
ctx.Data["RequireTribute"] = true
|
||||||
ctx.Data["LabelTemplates"] = models.LabelTemplates
|
ctx.Data["LabelTemplates"] = models.LabelTemplates
|
||||||
ctx.HTML(200, tplLabels)
|
ctx.HTML(200, tplLabels)
|
||||||
|
|
|
@ -30,9 +30,6 @@
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
<script src="{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}"></script>
|
<script src="{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}"></script>
|
||||||
{{if .RequireMinicolors}}
|
|
||||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js"></script>
|
|
||||||
{{end}}
|
|
||||||
{{template "custom/footer" .}}
|
{{template "custom/footer" .}}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -66,7 +66,6 @@
|
||||||
UseServiceWorker: {{UseServiceWorker}},
|
UseServiceWorker: {{UseServiceWorker}},
|
||||||
csrf: '{{.CsrfToken}}',
|
csrf: '{{.CsrfToken}}',
|
||||||
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
||||||
Minicolors: {{if .RequireMinicolors}}true{{else}}false{{end}},
|
|
||||||
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
||||||
Tribute: {{if .RequireTribute}}true{{else}}false{{end}},
|
Tribute: {{if .RequireTribute}}true{{else}}false{{end}},
|
||||||
U2F: {{if .RequireU2F}}true{{else}}false{{end}},
|
U2F: {{if .RequireU2F}}true{{else}}false{{end}},
|
||||||
|
@ -101,9 +100,6 @@
|
||||||
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
||||||
</style>
|
</style>
|
||||||
</noscript>
|
</noscript>
|
||||||
{{if .RequireMinicolors}}
|
|
||||||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css">
|
|
||||||
{{end}}
|
|
||||||
<style class="list-search-style"></style>
|
<style class="list-search-style"></style>
|
||||||
{{if .PageIsUserProfile}}
|
{{if .PageIsUserProfile}}
|
||||||
<meta property="og:title" content="{{.Owner.Name}}" />
|
<meta property="og:title" content="{{.Owner.Name}}" />
|
||||||
|
|
10
web_src/js/features/colorpicker.js
Normal file
10
web_src/js/features/colorpicker.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
export default async function createColorPicker($els) {
|
||||||
|
if (!$els || !$els.length) return;
|
||||||
|
|
||||||
|
await Promise.all([
|
||||||
|
import(/* webpackChunkName: "minicolors" */'@claviska/jquery-minicolors'),
|
||||||
|
import(/* webpackChunkName: "minicolors" */'@claviska/jquery-minicolors/jquery.minicolors.css'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$els.minicolors();
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ import initServiceWorker from './features/serviceworker.js';
|
||||||
import initMarkdownAnchors from './markdown/anchors.js';
|
import initMarkdownAnchors from './markdown/anchors.js';
|
||||||
import renderMarkdownContent from './markdown/content.js';
|
import renderMarkdownContent from './markdown/content.js';
|
||||||
import attachTribute from './features/tribute.js';
|
import attachTribute from './features/tribute.js';
|
||||||
|
import createColorPicker from './features/colorpicker.js';
|
||||||
import createDropzone from './features/dropzone.js';
|
import createDropzone from './features/dropzone.js';
|
||||||
import initTableSort from './features/tablesort.js';
|
import initTableSort from './features/tablesort.js';
|
||||||
import ActivityTopAuthors from './components/ActivityTopAuthors.vue';
|
import ActivityTopAuthors from './components/ActivityTopAuthors.vue';
|
||||||
|
@ -134,15 +135,15 @@ function initLabelEdit() {
|
||||||
$newLabelPanel.hide();
|
$newLabelPanel.hide();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.color-picker').each(function () {
|
createColorPicker($('.color-picker'));
|
||||||
$(this).minicolors();
|
|
||||||
});
|
|
||||||
$('.precolors .color').on('click', function () {
|
$('.precolors .color').on('click', function () {
|
||||||
const color_hex = $(this).data('color-hex');
|
const color_hex = $(this).data('color-hex');
|
||||||
$('.color-picker').val(color_hex);
|
$('.color-picker').val(color_hex);
|
||||||
$('.minicolors-swatch-color').css('background-color', color_hex);
|
$('.minicolors-swatch-color').css('background-color', color_hex);
|
||||||
});
|
});
|
||||||
$('.edit-label-button').on('click', function () {
|
$('.edit-label-button').on('click', function () {
|
||||||
|
$('.color-picker').minicolors('value', $(this).data('color'));
|
||||||
$('#label-modal-id').val($(this).data('id'));
|
$('#label-modal-id').val($(this).data('id'));
|
||||||
$('.edit-label .new-label-input').val($(this).data('title'));
|
$('.edit-label .new-label-input').val($(this).data('title'));
|
||||||
$('.edit-label .new-label-desc-input').val($(this).data('description'));
|
$('.edit-label .new-label-desc-input').val($(this).data('description'));
|
||||||
|
|
|
@ -243,7 +243,20 @@ module.exports = {
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[ext]',
|
name: '[name].[ext]',
|
||||||
outputPath: 'fonts/',
|
outputPath: 'fonts/',
|
||||||
publicPath: (url) => `../fonts/${url}`, // seems required for monaco's font
|
publicPath: (url) => `../fonts/${url}`, // required to remove css/ path segment
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.png$/i,
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: 'file-loader',
|
||||||
|
options: {
|
||||||
|
name: '[name].[ext]',
|
||||||
|
outputPath: 'img/webpack/',
|
||||||
|
publicPath: (url) => `../img/webpack/${url}`, // required to remove css/ path segment
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in a new issue