]> _ Git - fluidbook-html5.git/commitdiff
wip #2208 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 17 Sep 2018 17:03:40 +0000 (19:03 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 17 Sep 2018 17:03:40 +0000 (19:03 +0200)
js/libs/fluidbook/forms/fluidbook.form.avery.js [new file with mode: 0644]

diff --git a/js/libs/fluidbook/forms/fluidbook.form.avery.js b/js/libs/fluidbook/forms/fluidbook.form.avery.js
new file mode 100644 (file)
index 0000000..24f95d8
--- /dev/null
@@ -0,0 +1,118 @@
+function FluidbookAveryForm(fluidbook) {
+    this.fluidbook = fluidbook;
+
+    this.locales = {
+        en: {
+            title: 'Discover what our full Avery Dennison portfolio can do for you',
+            subtitle: 'Register using this form for access to our current and future digital catalogues.',
+            company: 'Company',
+            country: 'Country',
+            activity: 'Activity',
+            printer: 'Printer',
+            installer: 'Installer',
+            designer: 'Designer / Agency',
+            brandowner: 'Brand owner',
+            other: 'Other',
+            email_address: 'E-mail address',
+            receive: 'Do you want to receive our free monthly e-newsletter',
+            yes: 'Yes',
+            no: 'No',
+            consent: 'I have read and agree to the Avery Dennison Legal and Privacy Notices',
+            submit: 'Submit',
+            nothanks: 'No, thanks'
+        }
+    };
+
+    this.locale = this.locales[this.fluidbook.datas.lang];
+
+
+    this.formInstance;
+    this.init();
+}
+
+FluidbookAveryForm.prototype = {
+    init: function () {
+        var $this = this;
+
+        $(document).on('click', '.avery-form .submit', function () {
+            $this.formInstance = $(".avery-form").parsley();
+            if ($this.formInstance.validate()) {
+                $this.sendSuggestion();
+            }
+            return false;
+        });
+
+    },
+
+    openSuggest: function (p1, p2, callback) {
+        var view = '<div class="caption">' + this.closeButton() + '<h2>' + this.locale.title + '</h2></div>';
+        view += '<div class="content">';
+        view += '<form class="avery-form" action="" method="post">';
+        view += '<div>';
+        view += '<label>'.this.locale.company;
+        view += '<input type="text" required name="company">';
+        view += '</label>';
+        view += '<label>' + this.locale.country;
+        view += '<select name="country"><option>TYPO / WORDING</option><option>CLARIFICATION REQUEST</option><option>IMPROVEMENT SUGGESTION (Gaps, Ideas, etc)</option></select>';
+        view += '</label>';
+        view += '<label>' + this.locale.activity;
+        view += '<select name="activity"><option value="printer">' + this.locale.printer + '</option>' +
+            '<option value="printer">' + this.locale.installer + '</option>' +
+            '<option value="designers / agency">' + this.locale.designer + '</option>' +
+            '<option value="brand owner">' + this.locale.brandowner + '</option>' +
+            '<option value="other">'+this.locale.other+'</option></select>';
+        view += '</label>';
+        view += '<label>'+this.locale.email_address;
+        view += '<input type="email" name="email" required>';
+        view += '</label>';
+        view += '<div class="line">';
+        view += this.locale.receive;
+        view += '<label class="radio"><input type="radio" name="subscribe" value="0" required>'+this.locale.yes+'</label>';
+        view += '<label class="radio"><input type="radio" name="subscribe" value="1" required>'+this.locale.no+'</label>';
+        view += '</div>';
+        view += '</div>';
+        view += '<div class="fonctions"><a href="#" class="close">' + this.locale.nothanks + '</a><a href="#" class="submit">' + this.locale.submit + '</a></div>';
+        view += '</form>';
+        view += '</div>';
+
+        $("#view").append('<div class="mview" data-menu="suggest">' + view + '</div>');
+
+        callback();
+    },
+    submitForm: function () {
+        var $this = this;
+        console.log('sendSuggestion');
+        var fs = require('fs');
+        var path = require('path');
+
+        var file = 'suggestion.txt';
+        var filePath = path.join(nw.App.dataPath, file);
+        var data = $("#bourbon-suggestion-page").val() + "/|!/" + Date.now() + "/|!/" + $("#bourbon-suggestion-type").val() + "/|!/" + $("#bourbon-suggestion-body").val();
+        console.log('Data to send: ' + data);
+        this.fluidbook.displayLoader();
+        fs.writeFile(filePath, data, function (err) {
+            if (err) {
+                console.info("There was an error attempting to save your data.");
+                console.warn(err.message);
+                return;
+            } else {
+                console.log('File written');
+                var exec = require('child_process').exec;
+                var path = require('path');
+                var cmd = '"' + path.join(process.cwd(), 'exe/sendemail.exe') + '" "bourbon+2018@fluidbook.com" "Bourbon SMS Suggestion" "Please see attached suggestion" "' + filePath + '" "' + file + '"';
+                console.log('exec ' + cmd);
+                exec(cmd, function (error, stdout, stderr) {
+                    $this.fluidbook.hideLoader();
+                    if (error) {
+                        console.error("exec error: ${error}");
+                        return;
+                    }
+                    console.log('output: ' + stdout.toString());
+                    console.log('Email sent');
+                    $(".cart-bourbon-suggest").html('<div class="message">Your suggestion has been added in your Outlook outbox. It will be effectively sent as you as Outlook will get an internet connection.</div>');
+                    resize();
+                });
+            }
+        });
+    },
+};
\ No newline at end of file