Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/VincentTam/huginn.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Tam <sere@live.hk>2019-07-26 21:13:31 +0300
committerVincent Tam <sere@live.hk>2019-07-26 21:15:31 +0300
commit7f91aaf7add8a8c2528b513a9ef9315cd2ae9db3 (patch)
tree0986e16ed16be5815788d4a46b0321f7c340465e /exampleSite
parent500a780b0dfc733a307bf7cd0da8d9c026ddd86f (diff)
Dynamically set form action URL
https://www.willmaster.com/library/manage-forms/bot-block-for-forms.php
Diffstat (limited to 'exampleSite')
-rw-r--r--exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.content102
-rw-r--r--exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.json1
2 files changed, 103 insertions, 0 deletions
diff --git a/exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.content b/exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.content
new file mode 100644
index 0000000..8143c90
--- /dev/null
+++ b/exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.content
@@ -0,0 +1,102 @@
+// Static comments
+// from: https://github.com/eduardoboucas/popcorn/blob/gh-pages/js/main.js
+$(document).ready(function() {
+ var $comments = $('.js-comments');
+
+ $('.js-form').submit(function () {
+ var form = this;
+
+ $(form).disabled = true;
+ $('input[type="submit"]:enabled').addClass('hidden'); // hide "submit"
+ $('input[type="submit"]:disabled').removeClass('hidden'); // show "submitted"
+
+ var endpoint = 'https://staticman-frama.herokuapp.com';
+ var gitProvider = 'gitlab';
+ var repo = 'staticman-gitlab-pages/huginn';
+ var branch = 'master';
+
+ $.ajax({
+ type: $(this).attr('method'),
+ url: endpoint + '/v3/entry/' + gitProvider + '/' + repo + '/' + branch + '/comments',
+ data: $(this).serialize(),
+ contentType: 'application/x-www-form-urlencoded',
+ success: function (data) {
+ showAlert('success');
+ setTimeout(function(){ clearForm() }, 3000); // display success message for 3s
+ $(form).disabled = false;
+ },
+ error: function (err) {
+ console.log(err);
+ showAlert('failed');
+ $(form).disabled = false;
+ }
+ });
+
+ return false;
+ });
+
+ function showAlert(msg) {
+ if (msg == 'success') {
+ $('.js-form .submit-success').removeClass('hidden'); // show submit success message
+ $('.js-form .submit-failed').addClass('hidden'); // hide submit failed message
+ } else {
+ $('.js-form .submit-success').addClass('hidden'); // hide submit success message
+ $('.js-form .submit-failed').removeClass('hidden'); // show submit failed message
+ }
+ $('input[type="submit"]:enabled').removeClass('hidden'); // show "submit"
+ $('input[type="submit"]:disabled').addClass('hidden'); // hide "submitted"
+ }
+
+ function clearForm() {
+ resetReplyTarget();
+ $('.js-form input')
+ .filter(function() {
+ return this.name.match(/^fields\[.*\]$/);
+ })
+ .val(''); // empty all text & hidden fields
+ $('.js-form textarea').val(''); // empty text area
+ $('.js-form .submit-success').addClass('hidden'); // hide submission status
+ $('.js-form .submit-failed').addClass('hidden'); // hide submission status
+ }
+
+ function resetReplyTarget() {
+ $('.js-form .reply-notice .reply-name').text(''); // reset reply target
+ $('.js-form .reply-notice img').remove(); // remove reply avatar
+ $('.js-form .reply-notice a').remove(); // remove '×' button
+ $('.js-form .reply-notice').addClass('hidden'); // hide reply target display
+ $('.js-form input[name="fields[replyThread]"]').val('');
+ $('.js-form input[name="fields[replyID]"]').val('');
+ $('.js-form input[name="fields[replyName]"]').val('');
+ }
+
+ // record reply target when "reply to this comment" is pressed
+ $('article.static-comment').on('click', 'a.reply-btn', function (evt){
+ resetReplyTarget();
+ var cmt = $(evt.delegateTarget);
+ $('.js-form input[name="fields[replyThread]"]').val(this.title);
+ $('.js-form input[name="fields[replyID]"]').val(cmt.attr("id"));
+ authorTag = cmt.find('.comment-author');
+ replyName = authorTag.text();
+ $('.js-form input[name="fields[replyName]"]').val(replyName);
+
+ // display reply target avatar and name
+ $('.js-form .reply-notice').removeClass('hidden');
+ $('.js-form .reply-name').text(replyName);
+ avatarTag = cmt.find('.comment-avatar');
+ // use clone to avoid removal of avatar in comments by resetReplyTarget()
+ $('.js-form .reply-arrow').after(avatarTag.clone());
+ // add button for removing reply target (static method would give error msg)
+ closeBtn = $("<a class='close-btn'>×</a>");
+ $('.js-form .reply-notice').append(closeBtn);
+ });
+
+ // handle removal of reply target when '×' is pressed
+ $('.js-form .reply-notice').on('click', 'a.close-btn', function(){
+ resetReplyTarget();
+ });
+
+ // clear form when reset button is clicked
+ $('.js-form input[type="reset"]').click(function (){
+ clearForm();
+ });
+});
diff --git a/exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.json b/exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.json
new file mode 100644
index 0000000..2f9ee3f
--- /dev/null
+++ b/exampleSite/resources/_gen/assets/js/js/staticman.js_8cd1ffcbd6280a9d3369580fb528eb22.json
@@ -0,0 +1 @@
+{"Target":"js/staticman.js","MediaType":"application/javascript","Data":{}} \ No newline at end of file