- created lazy-loaded webpack chunk for clipboard.js - upgraded clipboard.js from 1.5.9 to 2.0.4 - parallelize initialization of all lazy-loaded features Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>tags/v1.10.5
globals: | globals: | ||||
__webpack_public_path__: true | __webpack_public_path__: true | ||||
Clipboard: false | |||||
CodeMirror: false | CodeMirror: false | ||||
Dropzone: false | Dropzone: false | ||||
emojify: false | emojify: false |
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", | ||||
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" | ||||
}, | }, | ||||
"clipboard": { | |||||
"version": "2.0.4", | |||||
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", | |||||
"integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", | |||||
"requires": { | |||||
"good-listener": "^1.2.2", | |||||
"select": "^1.1.2", | |||||
"tiny-emitter": "^2.0.0" | |||||
} | |||||
}, | |||||
"cliui": { | "cliui": { | ||||
"version": "3.2.0", | "version": "3.2.0", | ||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", | ||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||||
}, | }, | ||||
"delegate": { | |||||
"version": "3.2.0", | |||||
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", | |||||
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" | |||||
}, | |||||
"deprecation": { | "deprecation": { | ||||
"version": "2.3.1", | "version": "2.3.1", | ||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", | ||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"good-listener": { | |||||
"version": "1.2.2", | |||||
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", | |||||
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", | |||||
"requires": { | |||||
"delegate": "^3.1.2" | |||||
} | |||||
}, | |||||
"graceful-fs": { | "graceful-fs": { | ||||
"version": "4.2.3", | "version": "4.2.3", | ||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", | ||||
"ajv-keywords": "^3.4.1" | "ajv-keywords": "^3.4.1" | ||||
} | } | ||||
}, | }, | ||||
"select": { | |||||
"version": "1.1.2", | |||||
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", | |||||
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" | |||||
}, | |||||
"semver": { | "semver": { | ||||
"version": "5.7.1", | "version": "5.7.1", | ||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||||
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", | "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", | ||||
"dev": true | "dev": true | ||||
}, | }, | ||||
"tiny-emitter": { | |||||
"version": "2.1.0", | |||||
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", | |||||
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" | |||||
}, | |||||
"tmp": { | "tmp": { | ||||
"version": "0.0.33", | "version": "0.0.33", | ||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", |
"node": ">=10" | "node": ">=10" | ||||
}, | }, | ||||
"dependencies": { | "dependencies": { | ||||
"clipboard": "2.0.4", | |||||
"fomantic-ui": "2.8.3", | "fomantic-ui": "2.8.3", | ||||
"highlight.js": "9.18.1", | "highlight.js": "9.18.1", | ||||
"jquery": "3.4.1", | "jquery": "3.4.1", |
<td><a href="https://github.com/go-gitea/gitea/tree/master/web_src/js">*.js</a></td> | <td><a href="https://github.com/go-gitea/gitea/tree/master/web_src/js">*.js</a></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td><a href="./plugins/clipboard/clipboard.min.js">clipboard.min.js</a></td> | |||||
<td><a href="../js/clipboard.js">clipboard.js</a></td> | |||||
<td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td> | <td><a href="http://www.freebsd.org/copyright/freebsd-license.html">Expat</a></td> | ||||
<td><a href="https://github.com/zenorocha/clipboard.js/archive/v1.5.9.tar.gz">clipboard-1.5.9.tar.gz</a></td> | |||||
<td><a href="https://github.com/zenorocha/clipboard.js/archive/v2.0.4.tar.gz">clipboard-2.0.4.tar.gz</a></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td><a href="../js/gitgraph.js">gitgraph.js</a></td> | <td><a href="../js/gitgraph.js">gitgraph.js</a></td> |
The MIT License | |||||
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. |
</script> | </script> | ||||
{{end}} | {{end}} | ||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/emojify/emojify.custom.js"></script> | <script src="{{StaticUrlPrefix}}/vendor/plugins/emojify/emojify.custom.js"></script> | ||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/clipboard/clipboard.min.js"></script> | |||||
<script src="{{StaticUrlPrefix}}/vendor/plugins/vue/vue.min.js"></script> | <script src="{{StaticUrlPrefix}}/vendor/plugins/vue/vue.min.js"></script> | ||||
<script src="{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}"></script> | <script src="{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}"></script> | ||||
<script src="{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}"></script> | <script src="{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}"></script> |
var urlsToCache = [ | var urlsToCache = [ | ||||
// js | // js | ||||
'{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}', | '{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}', | ||||
'{{StaticUrlPrefix}}/js/clipboard.js', | |||||
'{{StaticUrlPrefix}}/js/gitgraph.js', | '{{StaticUrlPrefix}}/js/gitgraph.js', | ||||
'{{StaticUrlPrefix}}/js/highlight.js', | '{{StaticUrlPrefix}}/js/highlight.js', | ||||
'{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}', | '{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}', | ||||
'{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}', | '{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}', | ||||
'{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}', | '{{StaticUrlPrefix}}/js/swagger.js?v={{MD5 AppVer}}', | ||||
'{{StaticUrlPrefix}}/vendor/plugins/clipboard/clipboard.min.js', | |||||
'{{StaticUrlPrefix}}/vendor/plugins/codemirror/addon/mode/loadmode.js', | '{{StaticUrlPrefix}}/vendor/plugins/codemirror/addon/mode/loadmode.js', | ||||
'{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js', | '{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js', | ||||
'{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js', | '{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js', |
export default async function initClipboard() { | |||||
const els = document.querySelectorAll('.clipboard'); | |||||
if (!els || !els.length) return; | |||||
const { default: ClipboardJS } = await import(/* webpackChunkName: "clipboard" */'clipboard'); | |||||
const clipboard = new ClipboardJS(els); | |||||
clipboard.on('success', (e) => { | |||||
e.clearSelection(); | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('destroy'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-success')); | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('show'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original')); | |||||
}); | |||||
clipboard.on('error', (e) => { | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('destroy'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-error')); | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('show'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original')); | |||||
}); | |||||
} |
import initContextPopups from './features/contextPopup.js'; | import initContextPopups from './features/contextPopup.js'; | ||||
import initHighlight from './features/highlight.js'; | import initHighlight from './features/highlight.js'; | ||||
import initGitGraph from './features/gitGraph.js'; | import initGitGraph from './features/gitGraph.js'; | ||||
import initClipboard from './features/clipboard.js'; | |||||
import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; | import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; | ||||
} | } | ||||
} | } | ||||
// Clipboard JS | |||||
const clipboard = new Clipboard('.clipboard'); | |||||
clipboard.on('success', (e) => { | |||||
e.clearSelection(); | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('destroy'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-success')); | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('show'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original')); | |||||
}); | |||||
clipboard.on('error', (e) => { | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('destroy'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-error')); | |||||
$(`#${e.trigger.getAttribute('id')}`).popup('show'); | |||||
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original')); | |||||
}); | |||||
// Helpers. | // Helpers. | ||||
$('.delete-button').click(showDeletePopup); | $('.delete-button').click(showDeletePopup); | ||||
$('.add-all-button').click(showAddAllPopup); | $('.add-all-button').click(showAddAllPopup); | ||||
initRepoStatusChecker(); | initRepoStatusChecker(); | ||||
initTemplateSearch(); | initTemplateSearch(); | ||||
initContextPopups(suburl); | initContextPopups(suburl); | ||||
initGitGraph(); | |||||
// Repo clone url. | // Repo clone url. | ||||
if ($('#repo-clone-url').length > 0) { | if ($('#repo-clone-url').length > 0) { | ||||
} | } | ||||
}); | }); | ||||
// parallel init of lazy-loaded features | |||||
[hljs] = await Promise.all([ | [hljs] = await Promise.all([ | ||||
initHighlight(), | initHighlight(), | ||||
initGitGraph(), | |||||
initClipboard(), | |||||
]); | ]); | ||||
}); | }); | ||||