PageSourceSearch

https://pagatec.de/wp-content/themes/chemistry-child/orderform/orderform.js?ver=1

js pagatec.de collected 2026-10-07 05:15:36 UTC 9,956 bytes, 282 lines download raw bytes

1OrderApp = {
2    categories: [],
3    anchorProduct:0,
4    userdata: {
5        customernumber: { label: 'Kunden-Nr.', value: '', type: 'text' },
6        companyname: { label: 'Firmenname', value: '', type: 'text' },
7        name: { label: 'Name des Bestellers', value: '', type: 'text', required: true },
8        street: { label: 'Straße, Nr.', value: '', type: 'text', required: true },
9        plz: { label: 'Postleitzahl', value: '', type: 'text', required: true },
10        city: { label: 'Ort', value: '', type: 'text', required: true },
11        phone: { label: 'Telefon', value: '', type: 'text', required: true },
12        email: { label: 'E-Mail', value: '', type: 'email', required: true },
13        text: { label: 'Texteingabe', value: '', type: 'textarea', full: true },
14    },
15    getAnchorProduct:function() {
16        var currentUrl = document.URL,
17        urlParts   = currentUrl.split('#produkt-');
18            
19        return (urlParts.length > 1) ? parseInt(urlParts[1]) : 0;
20    },
21    send: function () {
22        if (!OrderApp.validate()) {
23            return;
24        }
25        var customer = '';
26        if (OrderApp.userdata.customernumber.value != '') {
27            customer += "Kundennummer: " + OrderApp.userdata.customernumber.value + "\n"
28        }
29        if (OrderApp.userdata.companyname.value != '') {
30            customer += OrderApp.userdata.companyname.value + "\n"
31        }
32        customer += OrderApp.userdata.name.value + "\n"
33        customer += OrderApp.userdata.street.value + "\n"
34        customer += OrderApp.userdata.plz.value + " " + OrderApp.userdata.city.value + "\n\n"
35        customer += "Tel: " + OrderApp.userdata.phone.value + "\n"
36        customer += "E-Mail: " + OrderApp.userdata.email.value + "\n"
37        if (OrderApp.userdata.text.value != '') {
38            customer += "\nText:\n" + OrderApp.userdata.text.value + "\n"
39        }
40
41        var order = '';
42        var noProducts=true;
43        OrderApp.categories.forEach(function (category) {
44
45            category.products.forEach(function (product) {
46                if (product.hasOwnProperty('amount') && product.amount != '') {
47                    noProducts=false;
48                    order += product.title +"\n"+product.content +"\n"+"Menge: "+product.amount+"\n\n"
49                }
50
51            })
52
53        });
54        if(noProducts){
55            //Jetzt auch ohne Produkte
56           // alert('Sie haben keinen Artikel gewählt')
57           // return;
58        }
59
60        var impress="PAGATEC OPERATING GmbH\n"
61        +"Industriepark Nord\n"
62        +"Siemensstr. 7-9\n"
63        +"26871 Papenburg\n\n"
64        +"Telefon: 04961/91 20 – 0\n"
65        +"Fax: 04961/91 20 – 90\n"
66        +"Email: [email protected]\n\n"        
67        +"Geschäftsführende Gesellschafter: Timo Gesen und Florian Gesen\n"
68        +"Handelsregister Osnabrück HRB Nr. 121136\n"
69        +"Umsatzsteuer-ID: DE 116960876"
70
71        var mailToPagatec=customer+"\n\n"+order;
72        var mailToCustomer="Lieber Kunde,\nvielen Dank für Ihre Bestellung.\n\nMit dieser Mail bestätigen wir Ihnen, dass Sie folgende Artikel bei uns bestellt haben: "+"\n\n"+order+"\n\n"+impress;
73
74
75        var body = new FormData();
76        body.append("action", "nullacht_send_orderform");
77        body.append("mailToPagatec", mailToPagatec);
78        body.append("mailToCustomer", mailToCustomer);
79        body.append("useremail", OrderApp.userdata.email.value);
80
81        m.request({
82            method: "POST",
83            url: "/wp-admin/admin-ajax.php",
84            body: body,
85        })
86            .then(function (result) {
87                m.mount(document.getElementById('orderform-container'), Finish)
88            })
89            .catch(function (e) {
90                alert('Es ist ein Fehler aufgetreten');
91            })
92    },
93    validate: function () {
94        var inputs = document.querySelectorAll('.user-form-item input');
95
96        for (var i = 0; i < inputs.length; i++) {
97            if (!inputs[i].reportValidity()) {
98                return false
99                // input.reportValidity(valid)
100            }
101        }
102        return true;
103
104    },
105    init: function () {
106        OrderApp.anchorProduct=OrderApp.getAnchorProduct();
107        
108        var body = new FormData();
109        body.append("action", "nullacht_getproducts_ajax");
110
111        m.request({
112            method: "POST",
113            url: "/wp-admin/admin-ajax.php",
114            body: body,
115        })
116            .then(function (result) {
117                OrderApp.categories = result;
118
119                // if (result == 1) {
120                m.mount(document.getElementById('orderform-container'), Layout)
121                // }
122            })
123            .catch(function (e) {
124                alert('Es ist ein Fehler aufgetreten');
125            })
126
127    }
128}
129
130Finish={
131    oncreate:function(){
132        document.querySelector(".top-wrap").scrollIntoView();
133    },
134    view: function (vnode) {
135        return m('.success',[
136            'Vielen Dank für Ihre Bestellung!'
137        ])
138    }
139
140}
141
142Layout = {
143    oncreate: function (vnode) {
144        jQuery(".acc-item:not(.open) .product-list").hide();
145        jQuery(".acc-item h3").click(function () {
146            var that = jQuery(this);
147            jQuery(this).parent().find('.product-list').slideToggle("slow", function () {
148                jQuery(that).parent().toggleClass('open')
149            });
150        });
151        jQuery("a.lb").fancybox();
152        var elem=document.querySelector('.anchor-product')
153        if(elem!=null){
154            elem.scrollIntoView();
155            window.scrollBy(0,-30)
156        }
157
158    },
159    view: function (vnode) {
160        return m('.orderform', [
161
162            OrderApp.categories.map(function (category) {
163                return m('.acc-item',{
164                    class:category.products.filter(function(product){return product.id==OrderApp.anchorProduct}).length>0?"open":""
165                }, [
166                    m('h3', [
167                        category.name,
168                        m('span')
169                    ]),
170                    m('.product-list', [
171                        category.products.map(function (product) {
172                            return m(Product, { product: product })
173                        })
174                    ])
175
176                ])
177            }),
178
179            m(Userform)
180
181        ])
182    }
183}
184Product = {
185    view: function (vnode) {
186        return m('.product', {
187            class:vnode.attrs.product.id==OrderApp.anchorProduct?"anchor-product":""
188        },[
189            m('.product-left',[
190                m.trust('<a class="lb" href="'+vnode.attrs.product.image+'" target="_self"><img src="'+vnode.attrs.product.thumbnail+'"/></a>')
191
192            ]),
193            m('.product-right',[
194                m('h4', vnode.attrs.product.title),
195                m('p', m.trust(vnode.attrs.product.content.replace(/\r\n/g, "<br />"))),
196                m('.input-field', [
197                    m('label', vnode.attrs.product.boxed == "yes" ? "Menge / Kartonanzahl" : "Menge"),
198                    m('input', {
199                        type: 'text',
200                        onchange: function () {
201                            vnode.attrs.product.amount = this.value
202                        }
203                    })
204                ])
205
206            ])
207           
208        ])
209    }
210}
211Userform = {
212    view: function (vnode) {
213        return m('.user-form', m('form#user-form', [
214            m('h3', 'Meine Kundendaten'),
215            m('p', 'Als Bestandskunde sind Ihre gewohnten Preise in unserem Kundensystem hinterlegt. Sind sie ein Neukunde? Teilen Sie uns Ihre Konsumgröße für den Warenverbrauch mit und wir ermitteln Ihre Einkaufskonditionen, das ganze ohne Warenabnahmeverpflichtungen oder Mindestbestellmengen.'),
216
217            m('.user-form-row', [
218                m(UserformItem, OrderApp.userdata.customernumber),
219            ]),
220            m('.user-form-row', [
221                m(UserformItem, OrderApp.userdata.companyname),
222                m(UserformItem, OrderApp.userdata.name),
223            ]),
224            m('.user-form-row', [
225                m(UserformItem, OrderApp.userdata.street),
226                m('.user-form-row', [
227                    m(UserformItem, OrderApp.userdata.plz),
228                    m(UserformItem, OrderApp.userdata.city)
229                ]),
230
231            ]),
232            m('.user-form-row', [
233                m(UserformItem, OrderApp.userdata.phone),
234                m(UserformItem, OrderApp.userdata.email),
235            ]),
236            m(UserformItem, OrderApp.userdata.text),
237            m('button', {
238                onclick: function (e) {
239                    // e.preventDefault()
240                    // e.stopPropagation()
241                    OrderApp.send()
242                    return false;
243                }
244            }, 'Senden')
245
246        ]))
247    }
248}
249UserformItem = {
250    view: function (vnode) {
251        return m('.user-form-item', {
252            class: vnode.attrs.full ? 'full' : ''
253        },
254            [
255                m('label', [
256                    vnode.attrs.label,
257                    vnode.attrs.required ? m('span', '*') : ''
258                ]),
259                vnode.attrs.type == 'textarea' ?
260                    m('textarea', {
261                        onchange: function (e) {
262                            e.redraw = false
263                            vnode.attrs.value = this.value
264
265                        }
266                    }) :
267                    m('input', {
268                        type: vnode.attrs.type,
269                        required: vnode.attrs.required,
270                        onchange: function (e) {
271                            e.redraw = false
272                            vnode.attrs.value = this.value
273                            // OrderApp.validate();
274                        }
275                    })
276
277            ])
278    }
279}
280if (document.getElementById('orderform-container') != null) {
281    OrderApp.init()
282}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.