PluginProbe
weForms – Easy Drag & Drop Contact Form Builder For WordPress / 1.0.0
weForms – Easy Drag & Drop Contact Form Builder For WordPress v1.0.0
1.6.7 1.6.8 1.6.9 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.18 1.6.19 1.6.2 1.6.20 1.6.21 1.6.22 1.6.23 1.6.24 1.6.25 1.6.26 1.6.27 1.6.28 1.6.3 1.6.4 1.6.5 1.6.6 All 74 releases
weforms / assets / js-templates / spa-components.php

spa-components.php in weForms – Easy Drag & Drop Contact Form Builder For WordPress 1.0.0, at assets/js-templates/spa-components.php

824 lines 44.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <script type="text/x-template" id="tmpl-wpuf-component-table">
2 <div>
3
4 <div class="tablenav top">
5
6 <div class="alignleft actions bulkactions">
7 <label for="bulk-action-selector-top" class="screen-reader-text"><?php _e( 'Select bulk action', 'weforms' ); ?></label>
8 <select name="action" v-model="bulkAction">
9 <option value="-1"><?php _e( 'Bulk Actions', 'weforms' ); ?></option>
10 <option value="delete"><?php _e( 'Delete Entries', 'weforms' ); ?></option>
11 </select>
12
13 <button class="button action" v-on:click.prevent="handleBulkAction"><?php _e( 'Apply', 'weforms' ); ?></button>
14 </div>
15
16 <div class="alignleft actions">
17 <a class="button" :href="'admin-post.php?action=weforms_export_form_entries&selected_forms=' + id + '&_wpnonce=' + nonce" style="margin-top: 0;"><span class="dashicons dashicons-download" style="margin-top: 4px;"></span> <?php _e( 'Export Entries', 'weforms' ); ?></a>
18 </div>
19
20 <div class="tablenav-pages">
21
22 <span v-if="totalItems" class="displaying-num">{{ totalItems }} <?php _e( 'items', 'weforms' ); ?></span>
23
24 <span class="pagination-links">
25 <span v-if="isFirstPage()" class="tablenav-pages-navspan" aria-hidden="true">«</span>
26 <a v-else class="first-page" href="#" @click.prevent="goFirstPage()"><span class="screen-reader-text"><?php _e( 'First page', 'weforms' ); ?></span><span aria-hidden="true">«</span></a>
27
28 <span v-if="currentPage == 1" class="tablenav-pages-navspan" aria-hidden="true"></span>
29 <a v-else class="prev-page" href="#" @click.prevent="goToPage('prev')"><span class="screen-reader-text"><?php _e( 'Previous page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
30
31 <span class="screen-reader-text"><?php _e( 'Current Page', 'weforms' ); ?></span><input @keydown.enter.prevent="goToPage(pageNumberInput)" class="current-page" id="current-page-selector" v-model="pageNumberInput" type="text" value="1" size="1" aria-describedby="table-paging"> <?php _e( 'of', 'weforms' ); ?> <span class="total-pages">{{ totalPage }}</span>
32
33 <span v-if="currentPage == totalPage" class="tablenav-pages-navspan" aria-hidden="true"></span>
34 <a v-else class="next-page" href="#" @click.prevent="goToPage('next')"><span class="screen-reader-text"><?php _e( 'Next page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
35
36 <span v-if="isLastPage()" class="tablenav-pages-navspan" aria-hidden="true">»</span>
37 <a v-else class="last-page" href="#" @click.prevent="goLastPage()"><span class="screen-reader-text"><?php _e( 'Last page', 'weforms' ); ?></span><span aria-hidden="true">»</span></a>
38 </span>
39 </div>
40 </div>
41
42 <table class="wp-list-table widefat fixed striped wpuf-contact-form">
43 <thead>
44 <tr>
45 <td id="cb" class="manage-column column-cb check-column">
46 <input type="checkbox" v-model="selectAll">
47 </td>
48 <th class="col-entry-id"><?php _e( 'ID', 'weforms' ); ?></th>
49 <th v-for="(header, index) in columns">{{ header }}</th>
50 <th>Actions</th>
51 </tr>
52 </thead>
53 <tfoot>
54 <tr>
55 <td id="cb" class="manage-column column-cb check-column">
56 <input type="checkbox" v-model="selectAll">
57 </td>
58 <th class="col-entry-id"><?php _e( 'ID', 'weforms' ); ?></th>
59 <th v-for="(header, index) in columns">{{ header }}</th>
60 <th class="col-entry-details"><?php _e( 'Actions', 'weforms' ); ?></th>
61 </tr>
62 </tfoot>
63 <tbody>
64 <tr v-if="loading">
65 <td v-bind:colspan="columnLength + 3"><?php _e( 'Loading...', 'weforms' ); ?></td>
66 </tr>
67 <tr v-if="!items.length && !loading">
68 <td v-bind:colspan="columnLength + 3"><?php _e( 'No entries found!', 'weforms' ); ?></td>
69 </tr>
70 <tr v-for="(entry, index) in items">
71 <th scope="row" class="check-column">
72 <input type="checkbox" name="post[]" v-model="checkedItems" :value="entry.id">
73 </th>
74 <th class="col-entry-id">
75 <router-link :to="{ name: 'formEntriesSingle', params: { entryid: entry.id }}">#{{ entry.id }}</router-link>
76 </th>
77 <td v-for="(header, index) in columns">{{ entry.fields[index] }}</td>
78 <th class="col-entry-details">
79 <router-link :to="{ name: 'formEntriesSingle', params: { entryid: entry.id }}"><?php _e( 'Details', 'weforms' ); ?></router-link>
80 </th>
81 </tr>
82 </tbody>
83 </table>
84
85 <div class="tablenav bottom">
86 <div class="alignleft actions bulkactions">
87 <label for="bulk-action-selector-top" class="screen-reader-text"><?php _e( 'Select bulk action', 'weforms' ); ?></label>
88 <select name="action" v-model="bulkAction">
89 <option value="-1"><?php _e( 'Bulk Actions', 'weforms' ); ?></option>
90 <option value="delete"><?php _e( 'Delete Entries', 'weforms' ); ?></option>
91 </select>
92
93 <button class="button action" v-on:click.prevent="handleBulkAction"><?php _e( 'Apply', 'weforms' ); ?></button>
94 </div>
95
96 <div class="tablenav-pages">
97
98 <span v-if="totalItems" class="displaying-num">{{ totalItems }} <?php _e( 'items', 'weforms' ); ?></span>
99
100 <span class="pagination-links">
101 <span v-if="isFirstPage()" class="tablenav-pages-navspan" aria-hidden="true">«</span>
102 <a v-else class="first-page" href="#" @click.prevent="goFirstPage()"><span class="screen-reader-text"><?php _e( 'First page', 'weforms' ); ?></span><span aria-hidden="true">«</span></a>
103
104 <span v-if="currentPage == 1" class="tablenav-pages-navspan" aria-hidden="true"></span>
105 <a v-else class="prev-page" href="#" @click.prevent="goToPage('prev')"><span class="screen-reader-text"><?php _e( 'Previous page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
106
107 <span class="screen-reader-text"><?php _e( 'Current Page', 'weforms' ); ?></span><input @keydown.enter.prevent="goToPage(pageNumberInput)" class="current-page" id="current-page-selector" v-model="pageNumberInput" type="text" value="1" size="1" aria-describedby="table-paging"> of <span class="total-pages">{{ totalPage }}</span>
108
109 <span v-if="currentPage == totalPage" class="tablenav-pages-navspan" aria-hidden="true"></span>
110 <a v-else class="next-page" href="#" @click.prevent="goToPage('next')"><span class="screen-reader-text"><?php _e( 'Next page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
111
112 <span v-if="isLastPage()" class="tablenav-pages-navspan" aria-hidden="true">»</span>
113 <a v-else class="last-page" href="#" @click.prevent="goLastPage()"><span class="screen-reader-text"><?php _e( 'Last page', 'weforms' ); ?></span><span aria-hidden="true">»</span></a>
114 </span>
115 </div>
116 </div>
117 </div></script>
118
119 <script type="text/x-template" id="tmpl-wpuf-form-builder">
120 <form id="wpuf-form-builder" class="wpuf-form-builder-contact_form" method="post" action="" @submit.prevent="save_form_builder" v-cloak>
121 <fieldset :class="[is_form_saving ? 'disabled' : '']" :disabled="is_form_saving">
122
123 <h2 class="nav-tab-wrapper">
124 <a href="#wpuf-form-builder-container" :class="['nav-tab', isActiveTab( 'editor' ) ? 'nav-tab-active' : '']" v-on:click.prevent="makeActive('editor')">
125 <?php _e( 'Form Editor', 'wpuf' ); ?>
126 </a>
127
128 <a href="#wpuf-form-builder-settings" :class="['nav-tab', isActiveTab( 'settings' ) ? 'nav-tab-active' : '']" v-on:click.prevent="makeActive('settings')">
129 <?php _e( 'Settings', 'wpuf' ); ?>
130 </a>
131
132 <?php do_action( "wpuf-form-builder-tabs-contact_form" ); ?>
133
134 <span class="pull-right">
135 <button v-if="!is_form_saving" type="button" class="button button-primary" @click="save_form_builder">
136 <?php _e( 'Save Form', 'wpuf' ); ?>
137 </button>
138
139 <button v-else type="button" class="button button-primary button-ajax-working" disabled>
140 <span class="loader"></span> <?php _e( 'Saving Form Data', 'wpuf' ); ?>
141 </button>
142 </span>
143 </h2>
144
145 <div class="tab-contents" v-if="!loading">
146 <div id="wpuf-form-builder-container" v-show="isActiveTab('editor')">
147 <div id="builder-stage">
148 <header class="clearfix">
149 <span v-if="!post_title_editing" title="<?php esc_attr_e( 'Click to edit the form name', 'weforms' ); ?>" class="form-title" @click.prevent="post_title_editing = true"><span class="dashicons dashicons-edit"></span> {{ post.post_title }}</span>
150
151 <span v-show="post_title_editing">
152 <input type="text" v-model="post.post_title" name="post_title" />
153 <button type="button" class="button button-small" style="margin-top: 8px;" @click.prevent="post_title_editing = false"><i class="fa fa-check"></i></button>
154 </span>
155
156 <span class="form-id" title="<?php echo esc_attr_e( 'Click to copy shortcode', 'weforms' ); ?>" :data-clipboard-text='"[weforms id=\"" + post.ID + "\"]"'><i class="fa fa-clipboard" aria-hidden="true"></i> #{{ post.ID }}</span>
157 </header>
158
159 <ul v-if="is_form_switcher" class="form-switcher-content">
160
161 </ul>
162
163 <section>
164 <div id="form-preview">
165 <builder-stage></builder-stage>
166 </div>
167 </section>
168 </div><!-- #builder-stage -->
169
170 <div id="builder-form-fields">
171 <header>
172 <ul class="clearfix">
173 <li :class="['form-fields' === current_panel ? 'active' : '']">
174 <a href="#add-fields" @click.prevent="set_current_panel('form-fields')">
175 <?php _e( 'Add Fields', 'wpuf' ); ?>
176 </a>
177 </li>
178
179 <li :class="['field-options' === current_panel ? 'active' : '', !form_fields_count ? 'disabled' : '']">
180 <a href="#field-options" @click.prevent="set_current_panel('field-options')">
181 <?php _e( 'Field Options', 'wpuf' ); ?>
182 </a>
183 </li>
184 </ul>
185 </header>
186
187 <section>
188 <div class="wpuf-form-builder-panel">
189 <component :is="current_panel"></component>
190 </div>
191 </section>
192 </div><!-- #builder-form-fields -->
193 </div><!-- #wpuf-form-builder-container -->
194
195 <div id="wpuf-form-builder-settings" class="clearfix" v-show="isActiveTab('settings')">
196 <fieldset>
197 <h2 id="wpuf-form-builder-settings-tabs" class="nav-tab-wrapper">
198 <?php do_action( "wpuf-form-builder-settings-tabs-contact_form" ); ?>
199 </h2><!-- #wpuf-form-builder-settings-tabs -->
200
201 <div id="wpuf-form-builder-settings-contents" class="tab-contents">
202 <?php do_action( "wpuf-form-builder-settings-tab-contents-contact_form" ); ?>
203 </div><!-- #wpuf-form-builder-settings-contents -->
204 </fieldset>
205 </div><!-- #wpuf-form-builder-settings -->
206
207 <?php do_action( "wpuf-form-builder-tab-contents-contact_form" ); ?>
208 </div>
209 <div v-else>
210 <div class="updating-message">
211 <p><?php _e( 'Loading the editor', 'weforms' ); ?></p>
212 </div>
213 </div>
214
215 <input type="hidden" name="form_settings_key" value="wpuf_form_settings">
216
217 <?php wp_nonce_field( 'wpuf_form_builder_save_form', 'wpuf_form_builder_nonce' ); ?>
218
219 <input type="hidden" name="wpuf_form_id" :value="post.ID">
220 </fieldset>
221 </form><!-- #wpuf-form-builder -->
222 </script>
223
224 <script type="text/x-template" id="tmpl-wpuf-form-entries">
225 <div class="wpuf-contact-form-entries">
226 <h1 class="wp-heading-inline">
227 <?php _e( 'Entries', 'weforms' ); ?>
228 <span class="dashicons dashicons-arrow-right-alt2" style="margin-top: 5px;"></span>
229 <span style="color: #999;" class="form-name">{{ form_title }}</span>
230 </h1>
231
232 <router-link class="page-title-action" to="/"><?php _e( 'Back to forms', 'weforms' ); ?></router-link>
233
234 <wpuf-table action="weforms_form_entries" :id="id" v-on:ajaxsuccess="form_title = $event.form_title"></wpuf-table>
235
236 </div></script>
237
238 <script type="text/x-template" id="tmpl-wpuf-form-entry-single">
239 <div class="wpuf-contact-form-entry">
240 <h1 class="wp-heading-inline"><?php _e( 'Entry Details', 'weforms' ); ?></h1>
241 <router-link class="page-title-action" :to="{ name: 'formEntries', params: { id: $route.params.id }}"><?php _e( 'Back to Entries', 'weforms' ); ?></router-link>
242
243 <div v-if="loading"><?php _e( 'Loading...', 'weforms' ); ?></div>
244 <div v-else class="wpuf-contact-form-entry-wrap">
245
246 <div class="wpuf-contact-form-entry-left">
247 <div class="postbox">
248 <h2 class="hndle ui-sortable-handle"><span>{{ entry.info.form_title }} : Entry # {{ $route.params.entryid }}</span></h2>
249
250 <div class="main">
251 <table v-if="hasFormFields" class="wp-list-table widefat fixed striped posts">
252 <tbody>
253 <template v-for="(field, index) in entry.form_fields">
254 <tr class="field-label">
255 <th><strong>{{ field.label }}</strong></th>
256 </tr>
257 <tr class="field-value">
258 <td>
259 <weforms-entry-gmap :lat="entry.meta_data[index]['lat']" :long="entry.meta_data[index]['long']" v-if="field.type == 'map'"></weforms-entry-gmap>
260 <div v-else v-html="entry.meta_data[index]"></div>
261 </td>
262 </tr>
263 </template>
264 </tbody>
265 </table>
266 <div v-else><div class="inside"><?php _e( 'Loading...', 'weforms' ); ?></div></div>
267
268 </div>
269 </div>
270 </div>
271
272 <div class="wpuf-contact-form-entry-right">
273 <div class="postbox">
274 <h2 class="hndle ui-sortable-handle"><span><?php _e( 'Submission Info', 'weforms' ); ?></span></h2>
275 <div class="inside">
276 <div class="main">
277
278 <ul>
279 <li>
280 <span class="label"><?php _e( 'Entry ID', 'weforms' ); ?></span>
281 <span class="sep"> : </span>
282 <span class="value">#{{ $route.params.entryid }}</span>
283 </li>
284 <li>
285 <span class="label"><?php _e( 'User IP', 'weforms' ); ?></span>
286 <span class="sep"> : </span>
287 <span class="value">{{ entry.info.ip }}</span>
288 </li>
289 <li>
290 <span class="label"><?php _e( 'Page', 'weforms' ); ?></span>
291 <span class="sep"> : </span>
292 <span class="value"><a :href="entry.info.referer">{{ entry.info.referer }}</a></span>
293 </li>
294 <li v-if="entry.info.user">
295 <span class="label"><?php _e( 'From', 'weforms' ); ?></span>
296 <span class="sep"> : </span>
297 <span class="value">{{ entry.info.user }}</span>
298 </li>
299 <li>
300 <span class="label"><?php _e( 'Submitted On', 'weforms' ); ?></span>
301 <span class="sep"> : </span>
302 <span class="value">{{ entry.info.created }}</span>
303 </li>
304 </ul>
305 </div>
306 </div>
307
308 <div id="major-publishing-actions">
309 <div id="publishing-action">
310 <button class="button button-large button-secondary" v-on:click.prevent="trashEntry"><span class="dashicons dashicons-trash"></span><?php _e( ' Delete', 'weforms' ); ?></button>
311 </div>
312 <div class="clear"></div>
313 </div>
314 </div>
315 </div>
316 </div>
317 </div></script>
318
319 <script type="text/x-template" id="tmpl-wpuf-form-list-table">
320 <div class="content table-responsive table-full-width" style="margin-top: 20px;">
321
322 <div class="tablenav top">
323 <div class="alignleft actions bulkactions">
324 <label for="bulk-action-selector-top" class="screen-reader-text"><?php _e( 'Select bulk action', 'weforms' ); ?></label>
325 <select name="action" v-model="bulkAction">
326 <option value="-1"><?php _e( 'Bulk Actions', 'weforms' ); ?></option>
327 <option value="delete"><?php _e( 'Delete Forms', 'weforms' ); ?></option>
328 </select>
329
330 <button class="button action" v-on:click.prevent="handleBulkAction"><?php _e( 'Apply', 'weforms' ); ?></button>
331 </div>
332
333 <div class="tablenav-pages">
334
335 <span v-if="totalItems" class="displaying-num">{{ totalItems }} <?php _e( 'items', 'weforms' ); ?></span>
336
337 <span class="pagination-links">
338 <span v-if="isFirstPage()" class="tablenav-pages-navspan" aria-hidden="true">«</span>
339 <a v-else class="first-page" href="#" @click.prevent="goFirstPage()"><span class="screen-reader-text"><?php _e( 'First page', 'weforms' ); ?></span><span aria-hidden="true">«</span></a>
340
341 <span v-if="currentPage == 1" class="tablenav-pages-navspan" aria-hidden="true"></span>
342 <a v-else class="prev-page" href="#" @click.prevent="goToPage('prev')"><span class="screen-reader-text"><?php _e( 'Previous page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
343
344 <span class="screen-reader-text"><?php _e( 'Current Page', 'weforms' ); ?></span><input @keydown.enter.prevent="goToPage(pageNumberInput)" class="current-page" id="current-page-selector" v-model="pageNumberInput" type="text" value="1" size="1" aria-describedby="table-paging"> <?php _e( 'of', 'weforms' ); ?> <span class="total-pages">{{ totalPage }}</span>
345
346 <span v-if="currentPage == totalPage" class="tablenav-pages-navspan" aria-hidden="true"></span>
347 <a v-else class="next-page" href="#" @click.prevent="goToPage('next')"><span class="screen-reader-text"><?php _e( 'Next page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
348
349 <span v-if="isLastPage()" class="tablenav-pages-navspan" aria-hidden="true">»</span>
350 <a v-else class="last-page" href="#" @click.prevent="goLastPage()"><span class="screen-reader-text"><?php _e( 'Last page', 'weforms' ); ?></span><span aria-hidden="true">»</span></a>
351 </span>
352 </div>
353 </div>
354
355 <table class="wp-list-table widefat fixed striped posts">
356 <thead>
357 <tr>
358 <td id="cb" class="manage-column column-cb check-column">
359 <label class="screen-reader-text" for="cb-select-all-1"><?php _e( 'Select All', 'weforms' ); ?></label>
360 <input type="checkbox" v-model="selectAll">
361 </td>
362 <th scope="col" class="col-form-name"><?php _e( 'Name', 'weforms' ); ?></th>
363 <th scope="col" class="col-form-shortcode"><?php _e( 'Shortcode', 'weforms' ); ?></th>
364 <th scope="col" class="col-form-entries"><?php _e( 'Entries', 'weforms' ); ?></th>
365 <th scope="col" class="col-form-views"><?php _e( 'Views', 'weforms' ); ?></th>
366 <th scope="col" class="col-form-conversion"><?php _e( 'Conversion', 'weforms' ); ?></th>
367 </tr>
368 </thead>
369 <tbody>
370 <tr v-if="loading">
371 <td colspan="6"><?php _e( 'Loading...', 'weforms' ); ?></td>
372 </tr>
373 <tr v-if="!items.length && !loading">
374 <td colspan="6"><?php _e( 'No form found!', 'weforms' ); ?></td>
375 </tr>
376 <tr v-for="(form, index) in items">
377 <th scope="row" class="check-column">
378 <input type="checkbox" name="post[]" v-model="checkedItems" :value="form.ID">
379 </th>
380 <td class="title column-title has-row-actions column-primary page-title">
381 <strong><router-link :to="{ name: 'edit', params: { id: form.ID }}">{{ form.post_title }}</router-link> <span v-if="form.post_status != 'publish'">({{ form.post_status }})</span></strong>
382
383 <div class="row-actions">
384 <span class="edit"><router-link :to="{ name: 'edit', params: { id: form.ID }}"><?php _e( 'Edit', 'weforms' ); ?></router-link> | </span>
385 <span class="trash"><a href="#" v-on:click.prevent="deleteForm(index)" class="submitdelete"><?php _e( 'Delete', 'weforms' ); ?></a> | </span>
386 <span class="duplicate"><a href="#" v-on:click.prevent="duplicate(form.ID, index)"><?php _e( 'Duplicate', 'weforms' ); ?></a> <template v-if="form.entries">|</template> </span>
387 <router-link v-if="form.entries" :to="{ name: 'formEntries', params: { id: form.ID }}"><?php _e( 'View Entries', 'weforms' ); ?></router-link>
388 </div>
389 </td>
390 <td><code>[weforms id="{{ form.ID }}"]</code></td>
391 <td>
392 <router-link v-if="form.entries" :to="{ name: 'formEntries', params: { id: form.ID }}">{{ form.entries }}</router-link>
393 <span v-else>&mdash;</span>
394 </td>
395 <td>{{ form.views }}</td>
396 <td>
397 <span v-if="form.views">{{ ((form.entries/form.views) * 100).toFixed(2) }}%</span>
398 <span v-else>0%</span>
399 </td>
400 </tr>
401 </tbody>
402
403 <tfoot>
404 <tr>
405 <td id="cb" class="manage-column column-cb check-column">
406 <label class="screen-reader-text" for="cb-select-all-1"><?php _e( 'Select All', 'weforms' ); ?></label>
407 <input type="checkbox" v-model="selectAll">
408 </td>
409 <th scope="col" class="col-form-name"><?php _e( 'Name', 'weforms' ); ?></th>
410 <th scope="col" class="col-form-shortcode"><?php _e( 'Shortcode', 'weforms' ); ?></th>
411 <th scope="col" class="col-form-entries"><?php _e( 'Entries', 'weforms' ); ?></th>
412 <th scope="col" class="col-form-views"><?php _e( 'Views', 'weforms' ); ?></th>
413 <th scope="col" class="col-form-conversion"><?php _e( 'Conversion', 'weforms' ); ?></th>
414 </tr>
415 </tfoot>
416 </table>
417
418 <div class="tablenav bottom">
419 <div class="alignleft actions bulkactions">
420 <label for="bulk-action-selector-top" class="screen-reader-text"><?php _e( 'Select bulk action', 'weforms' ); ?></label>
421 <select name="action" v-model="bulkAction">
422 <option value="-1"><?php _e( 'Bulk Actions', 'weforms' ); ?></option>
423 <option value="delete"><?php _e( 'Delete Forms', 'weforms' ); ?></option>
424 </select>
425
426 <button class="button action" v-on:click.prevent="handleBulkAction"><?php _e( 'Apply', 'weforms' ); ?></button>
427 </div>
428
429 <div class="tablenav-pages">
430
431 <span v-if="totalItems" class="displaying-num">{{ totalItems }} <?php _e( 'items', 'weforms' ); ?></span>
432
433 <span class="pagination-links">
434 <span v-if="isFirstPage()" class="tablenav-pages-navspan" aria-hidden="true">«</span>
435 <a v-else class="first-page" href="#" @click.prevent="goFirstPage()"><span class="screen-reader-text"><?php _e( 'First page', 'weforms' ); ?></span><span aria-hidden="true">«</span></a>
436
437 <span v-if="currentPage == 1" class="tablenav-pages-navspan" aria-hidden="true"></span>
438 <a v-else class="prev-page" href="#" @click.prevent="goToPage('prev')"><span class="screen-reader-text"><?php _e( 'Previous page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
439
440 <span class="screen-reader-text"><?php _e( 'Current Page', 'weforms' ); ?></span><input @keydown.enter.prevent="goToPage(pageNumberInput)" class="current-page" id="current-page-selector" v-model="pageNumberInput" type="text" value="1" size="1" aria-describedby="table-paging"> <?php _e( 'of', 'weforms' ); ?> <span class="total-pages">{{ totalPage }}</span>
441
442 <span v-if="currentPage == totalPage" class="tablenav-pages-navspan" aria-hidden="true"></span>
443 <a v-else class="next-page" href="#" @click.prevent="goToPage('next')"><span class="screen-reader-text"><?php _e( 'Next page', 'weforms' ); ?></span><span aria-hidden="true"></span></a>
444
445 <span v-if="isLastPage()" class="tablenav-pages-navspan" aria-hidden="true">»</span>
446 <a v-else class="last-page" href="#" @click.prevent="goLastPage()"><span class="screen-reader-text"><?php _e( 'Last page', 'weforms' ); ?></span><span aria-hidden="true">»</span></a>
447 </span>
448 </div>
449 </div>
450 </div></script>
451
452 <script type="text/x-template" id="tmpl-wpuf-home-page">
453 <div class="contact-form-list">
454 <h1 class="wp-heading-inline"><?php _e( 'Contact Forms', 'weforms' ); ?></h1>
455 <a class="page-title-action add-form" herf="#" v-on:click.prevent="displayModal()"><?php _e( 'Add Form', 'weforms' ); ?></a>
456
457 <wpuf-template-modal :show.sync="showTemplateModal" :onClose="closeModal"></wpuf-template-modal>
458
459 <form-list-table></form-list-table>
460 </div></script>
461
462 <script type="text/x-template" id="tmpl-wpuf-tools">
463 <div class="export-import-wrap">
464
465 <h2 class="nav-tab-wrapper">
466 <a :class="['nav-tab', isActiveTab( 'export' ) ? 'nav-tab-active' : '']" href="#" v-on:click.prevent="makeActive('export')"><?php _e( 'Export', 'wpuf' ); ?></a>
467 <a :class="['nav-tab', isActiveTab( 'import' ) ? 'nav-tab-active' : '']" href="#" v-on:click.prevent="makeActive('import')"><?php _e( 'Import', 'wpuf' ); ?></a>
468 </h2>
469
470 <div class="nav-tab-content">
471 <div class="nav-tab-inside" v-show="isActiveTab('export')">
472 <h3><?php _e( 'Export Utility', 'weforms' ); ?></h3>
473
474 <p><?php _e( 'You can export your form, as well as exporting the submitted entries by the users', 'weforms' ); ?></p>
475
476 <div class="postboxes metabox-holder two-col">
477 <div class="postbox">
478 <h3 class="hndle"><?php _e( 'Export Forms', 'weforms' ); ?></h3>
479
480 <div class="inside">
481 <p class="help">
482 <?php _e( 'You can export your existing contact forms and import the same forms into a different site.', 'weforms' ); ?>
483 </p>
484
485 <template v-if="!loading">
486 <form action="admin-post.php?action=weforms_export_forms" method="post">
487 <p><label><input v-model="exportType" type="radio" name="export_type" value="all" checked> <?php _e( 'All Forms', 'weforms' ); ?></label></p>
488 <p><label><input v-model="exportType" type="radio" name="export_type" value="selected"> <?php _e( 'Selected Forms', 'weforms' ); ?></label></p>
489 <p v-show="exportType == 'selected'">
490 <select name="selected_forms[]" class="forms-list" multiple="multiple">
491 <option v-for="entry in forms" :value="entry.id">{{ entry.title }}</option>
492 </select>
493 </p>
494
495 <?php wp_nonce_field( 'weforms-export-forms' ); ?>
496 <input type="submit" class="button button-primary" name="weforms_export_forms" value="<?php _e( 'Export Forms', 'weforms' ) ?>">
497 </form>
498 </template>
499 <template v-else>
500 <div class="spinner loading-spinner is-active"></div>
501 </template>
502 </div>
503 </div><!-- .postbox -->
504
505 <div class="postbox">
506 <h3 class="hndle"><?php _e( 'Export Form Entries', 'weforms' ); ?></h3>
507
508 <div class="inside">
509 <p class="help">
510 <?php _e( 'Export your form entries/submissions as a <strong>CSV</strong> file.', 'weforms' ); ?>
511 </p>
512
513 <template v-if="!loading">
514 <form action="admin-post.php?action=weforms_export_form_entries" method="post">
515 <p>
516 <select name="selected_forms" class="forms-list">
517 <option value=""><?php _e( '&mdash; Select Form &mdash;', 'weforms' ); ?></option>
518 <option v-for="entry in forms" :value="entry.id">{{ entry.title }}</option>
519 </select>
520 </p>
521
522 <?php wp_nonce_field( 'weforms-export-entries' ); ?>
523 <input type="submit" class="button button-primary" name="weforms_export_entries" value="<?php _e( 'Export Entries', 'weforms' ) ?>">
524 </form>
525 </template>
526 <template v-else>
527 <div class="spinner loading-spinner is-active"></div>
528 </template>
529 </div>
530 </div><!-- .postbox -->
531 </div>
532 </div>
533
534 <div class="nav-tab-inside" v-show="isActiveTab('import')">
535 <h3><?php _e( 'Import Contact Form', 'weforms' ); ?></h3>
536
537 <p><?php _e( 'Browse and locate a json file you backed up before.', 'weforms' ); ?></p>
538 <p><?php _e( 'Press <strong>Import</strong> button, we will do the rest for you.', 'weforms' ); ?></p>
539
540 <div class="updated-message notice notice-success is-dismissible" v-if="isSuccess">
541 <p>{{ responseMessage }}</p>
542
543 <button type="button" class="notice-dismiss" v-on:click="currentStatus = 0">
544 <span class="screen-reader-text"><?php _e( 'Dismiss this notice.', 'weforms' ); ?></span>
545 </button>
546 </div>
547
548 <div class="update-message notice notice-error is-dismissible" v-if="isFailed">
549 <p>{{ responseMessage }}</p>
550
551 <button type="button" class="notice-dismiss" v-on:click="currentStatus = 0">
552 <span class="screen-reader-text"><?php _e( 'Dismiss this notice.', 'weforms' ); ?></span>
553 </button>
554 </div>
555
556 <form action="" method="post" enctype="multipart/form-data" style="margin-top: 20px;">
557 <input type="file" name="importFile" v-on:change="importForm( $event.target.name, $event.target.files, $event )" accept="application/json" />
558 <button type="submit" :class="['button', isSaving ? 'updating-message' : '']" disabled="disabled">{{ importButton }}</button>
559 </form>
560 </div>
561 </div>
562 </div></script>
563
564 <script type="text/x-template" id="tmpl-wpuf-weforms-page-help">
565 <div class="weforms-help-page">
566
567 <div class="help-block">
568 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/help/docs.svg" alt="<?php esc_attr_e( 'Looking for Something?', 'weforms' ); ?>">
569
570 <h3><?php _e( 'Looking for Something?', 'weforms' ); ?></h3>
571
572 <p><?php _e( 'We have detailed documentation on every aspects of weForms.', 'weforms' ); ?></p>
573
574 <a target="_blank" class="button button-primary" href="https://docs.wedevs.com/docs/weforms/"><?php _e( 'Visit the Plugin Documentation', 'weforms' ); ?></a>
575 </div>
576
577 <div class="help-block">
578 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/help/support.svg" alt="<?php esc_attr_e( 'Need Any Assistance?', 'weforms' ); ?>">
579
580 <h3><?php _e( 'Need Any Assistance?', 'weforms' ); ?></h3>
581
582 <p><?php _e( 'Our EXPERT Support Team is always ready to Help you out.', 'weforms' ); ?></p>
583
584 <a target="_blank" class="button button-primary" href="https://wedevs.com/account/tickets/"><?php _e( 'Contact Support', 'weforms' ); ?></a>
585 </div>
586
587 <div class="help-block">
588 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/help/bugs.svg" alt="<?php esc_attr_e( 'Found Any Bugs?', 'weforms' ); ?>">
589
590 <h3><?php _e( 'Found Any Bugs?', 'weforms' ); ?></h3>
591
592 <p><?php _e( 'Report any Bug that you Discovered, Get Instant Solutions.', 'weforms' ); ?></p>
593
594 <a target="_blank" class="button button-primary" href="https://github.com/weDevsOfficial/weforms"><?php _e( 'Report to GitHub', 'weforms' ); ?></a>
595 </div>
596
597 <div class="help-block">
598 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/help/customization.svg" alt="<?php esc_attr_e( 'Require Customization?', 'weforms' ); ?>">
599
600 <h3><?php _e( 'Require Customization?', 'weforms' ); ?></h3>
601
602 <p><?php _e( 'We would Love to hear your Integration and Customization Ideas.', 'weforms' ); ?></p>
603
604 <a target="_blank" class="button button-primary" href="https://wedevs.com/contact/"><?php _e( 'Contact Our Services', 'weforms' ); ?></a>
605 </div>
606
607 <div class="help-block">
608 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/help/like.svg" alt="<?php esc_attr_e( 'Like The Plugin?', 'weforms' ); ?>">
609
610 <h3><?php _e( 'Like The Plugin?', 'weforms' ); ?></h3>
611
612 <p><?php _e( 'Your Review is very important to us as it helps us to grow more.', 'weforms' ); ?></p>
613
614 <a target="_blank" class="button button-primary" href="https://wordpress.org/support/plugin/weforms/reviews/?rate=5#new-post"><?php _e( 'Review Us on WP.org', 'weforms' ); ?></a>
615 </div>
616 </div></script>
617
618 <script type="text/x-template" id="tmpl-wpuf-weforms-premium">
619 <div class="wrap weforms-premium about-wrap">
620 <h1><?php _e( 'weForms Pro', 'weforms' ); ?></h1>
621
622 <p class="about-text"><?php _e( 'Upgrade to the premium versions of weForms and unlock even more useful features.', 'weforms' ); ?></p>
623 <div class="wp-badge">weForms Pro</div>
624
625 <hr>
626 <div class="feature-section one-col">
627 <div class="col">
628 <h2><?php _e( 'More Features', 'weforms' ); ?></h2>
629 <p style="text-align: center;">weForms Pro is designed just for you, specially to fulfil your business needs. We have designed and curated every package keeping your requirements in mind.</p>
630 </div>
631 </div>
632
633 <div class="feature-section two-col">
634 <div class="col">
635 <h3>Advanced Fields</h3>
636 <p>Build any kind of form flexibly with the advanced field option. Its user friendly interface makes sure you do not have to scratch your head over building forms.</p>
637 </div>
638
639 <div class="col">
640 <h3>Conditional Logic</h3>
641 <p>Configure your form’s settings and user flow based on conditional selection. Your forms should appear just the way you want it.</p>
642 </div>
643
644 <div class="col">
645 <h3>Multi-step Form</h3>
646 <p>Break down the long forms into small and attractive multi step forms. Long and lengthy forms are uninviting, why build one?</p>
647 </div>
648
649 <div class="col">
650 <h3>File Uploaders</h3>
651 <p>Let the user upload any kind of file by filling up your contact form. The process is unbelievably smooth and supports a wide range of file formats.</p>
652 </div>
653
654 <div class="col">
655 <h3>Form Submission Notification</h3>
656 <p>Receive email notification every time your form is submitted. You can now configure the notification settings just as you like it.</p>
657 </div>
658
659 <div class="col">
660 <h3>Manage Submission</h3>
661 <p>View, edit and manage all the submission data stored through your form. We believe that you should own it all- like literally!</p>
662 </div>
663 </div>
664
665 <hr>
666
667 <h2><?php _e( 'More Integrations', 'weforms' ); ?></h2>
668
669 <div class="headline-feature four-col">
670 <div class="col">
671 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/mailchimp.svg" alt="MailChimp Integration">
672 <h3>MailChimp</h3>
673 <p>Integrate your desired form to your MailChimp email newsletter using latest API.</p>
674 </div>
675
676 <div class="col">
677 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/campaign-monitor.svg" alt="">
678 <h3>Campaign Monitor</h3>
679 <p>Lets you add submission form in your Campaign Monitor email campaigns too.</p>
680 </div>
681
682 <div class="col">
683 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/constant-contact.svg" alt="">
684 <h3>Constant Contact</h3>
685 <p>Integrate your contact forms seamlessly with your Constant Contact account.</p>
686 </div>
687
688 <div class="col">
689 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/mailpoet.svg" alt="">
690 <h3>MailPoet</h3>
691 <p>Why only MailChimp? Do the same for MailPoet email campaigns as well!</p>
692 </div>
693
694 <div class="col">
695 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/aweber.svg" alt="">
696 <h3>AWeber</h3>
697 <p>Use highly customizable forms and create subscriber’s list for AWber email solution.</p>
698 </div>
699
700 <div class="col">
701 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/getresponse.svg" alt="">
702 <h3>Get Response</h3>
703 <p>Enjoy seamless integration of weForms with your Get Response account.</p>
704 </div>
705
706 <div class="col">
707 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/convertkit.svg" alt="">
708 <h3>ConvertKit</h3>
709 <p>Subscribe a contact to ConvertKit when a form is submited.</p>
710 </div>
711
712 <div class="col">
713 <img src="<?php echo WEFORMS_ASSET_URI; ?>/images/integrations/more.svg" alt="">
714 <h3>More...</h3>
715 <p>A bunch of more integrations are coming soon.</p>
716 </div>
717 </div>
718
719 <div style="display: block; height: 100px; overflow: hidden;"></div>
720
721 <div class="weforms-upgrade-sticky-footer">
722 <p><a class="button button-primary" href="<?php echo WeForms_Form_Builder_Assets::get_pro_url(); ?>" target="_blank"><?php _e( 'Upgrade Now', 'weforms' ); ?></a></p>
723 </div>
724
725 </div></script>
726
727 <script type="text/x-template" id="tmpl-wpuf-weforms-settings">
728 <div class="weforms-settings">
729 <h1><?php _e( 'Settings', 'weforms' ); ?></h1>
730
731 <div class="postboxes metabox-holder two-col">
732 <div class="postbox">
733 <h3 class="hndle"><?php _e( 'Email', 'weforms' ); ?></h3>
734
735 <div class="inside">
736 <p class="help">
737 <?php _e( 'For better email deliverability choose a email provider that will ensure the email reaches your inbox, as well as reducing your server load.', 'weforms' ); ?>
738 </p>
739
740 <table class="form-table">
741 <tr>
742 <th><?php _e( 'Send Email Via', 'weforms' ); ?></th>
743 <td>
744 <select v-model="settings.email_gateway">
745 <option value="wordpress"><?php _e( 'WordPress', 'weforms' ); ?></option>
746 <option value="sendgrid" :disabled="is_pro ? false : true"><?php _e( 'SendGrid', 'weforms' ); ?> <span v-if="!is_pro">(<?php _e( 'Premium', 'weforms' ); ?>)</span></option>
747 <option value="mailgun" :disabled="is_pro ? false : true"><?php _e( 'Mailgun', 'weforms' ); ?> <span v-if="!is_pro">(<?php _e( 'Premium', 'weforms' ); ?>)</span></option>
748 <option value="sparkpost" :disabled="is_pro ? false : true"><?php _e( 'SparkPost', 'weforms' ); ?> <span v-if="!is_pro">(<?php _e( 'Premium', 'weforms' ); ?>)</span></option>
749 </select>
750 </td>
751 </tr>
752 <tr v-if="settings.email_gateway == 'sendgrid'">
753 <th><?php _e( 'SendGrid API Key', 'weforms' ); ?></th>
754 <td>
755 <input type="text" v-model="settings.gateways.sendgrid" class="regular-text">
756
757 <p class="description"><?php printf( __( 'Fill your SendGrid <a href="%s" target="_blank">API Key</a>.', 'weforms' ), 'https://app.sendgrid.com/settings/api_keys' ); ?></p>
758 </td>
759 </tr>
760 <tr v-if="settings.email_gateway == 'mailgun'">
761 <th><?php _e( 'Domain Name', 'weforms' ); ?></th>
762 <td>
763 <input type="text" v-model="settings.gateways.mailgun_domain" class="regular-text">
764
765 <p class="description"><?php _e( 'Your Mailgun domain name', 'weforms' ); ?></p>
766 </td>
767 </tr>
768 <tr v-if="settings.email_gateway == 'mailgun'">
769 <th><?php _e( 'API Key', 'weforms' ); ?></th>
770 <td>
771 <input type="text" v-model="settings.gateways.mailgun" class="regular-text">
772
773 <p class="description"><?php printf( __( 'Fill your Mailgun <a href="%s" target="_blank">API Key</a>.', 'weforms' ), 'https://app.mailgun.com/app/account/security' ); ?></p>
774 </td>
775 </tr>
776 <tr v-if="settings.email_gateway == 'sparkpost'">
777 <th><?php _e( 'SparkPost API Key', 'weforms' ); ?></th>
778 <td>
779 <input type="text" v-model="settings.gateways.sparkpost" class="regular-text">
780
781 <p class="description"><?php printf( __( 'Fill your SparkPost <a href="%s" target="_blank">API Key</a>.', 'weforms' ), 'https://app.sparkpost.com/account/credentials' ); ?></p>
782 </td>
783 </tr>
784 </table>
785 </div>
786
787 <div class="submit-wrapper">
788 <button v-on:click.prevent="saveSettings($event.target)" class="button button-primary"><?php _e( 'Save Changes', 'weforms' ); ?></button>
789 </div>
790 </div>
791
792 <div class="postbox">
793 <h3 class="hndle"><?php _e( 'reCaptcha', 'weforms' ); ?></h3>
794
795 <div class="inside">
796 <p class="help">
797 <?php printf( __( '<a href="%s" target="_blank">reCAPTCHA</a> is a free anti-spam service from Google which helps to protect your website from spam and abuse. Get <a href="%s" target="_blank">your API Keys</a>.', 'weforms' ), 'https://www.google.com/recaptcha/intro/', 'https://www.google.com/recaptcha/admin#list' ); ?>
798 </p>
799
800 <table class="form-table">
801 <tr>
802 <th><?php _e( 'Site key', 'weforms' ); ?></th>
803 <td>
804 <input type="text" v-model="settings.recaptcha.key" class="regular-text">
805 </td>
806 </tr>
807 <tr>
808 <th><?php _e( 'Secret key', 'weforms' ); ?></th>
809 <td>
810 <input type="text" v-model="settings.recaptcha.secret" class="regular-text">
811 </td>
812 </tr>
813 </table>
814 </div>
815
816 <div class="submit-wrapper">
817 <button v-on:click.prevent="saveSettings($event.target)" class="button button-primary"><?php _e( 'Save Changes', 'weforms' ); ?></button>
818 </div>
819 </div>
820
821 <?php do_action( 'weforms_settings' ); ?>
822 </div>
823 </div></script>
824