Skip to content

Commit 6034530

Browse files
author
Alex Ruban
committed
Merge pull request 'Added insert and link buttons to settings tab' (#12) from rafael/wpcf7-pdf-forms:develop into develop
Reviewed-on: https://gitea.maximum.software/maximum-software/pdf-forms-for-contact-form-7/pulls/12
2 parents aaf4524 + 3287393 commit 6034530

File tree

4 files changed

+69
-33
lines changed

4 files changed

+69
-33
lines changed

css/admin.css

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
.wpcf7-pdf-forms-admin .form-table td
2121
{
22-
padding: 2px;
22+
padding: 4px;
2323
}
2424

2525
.wpcf7-pdf-forms-admin .tags-textarea
@@ -235,6 +235,12 @@
235235
display: none;
236236
}
237237

238+
.wpcf7-pdf-forms-admin .tag-hint
239+
{
240+
background-color: transparent;
241+
box-shadow: none;
242+
}
243+
238244
.wpcf7-pdf-forms-admin-insert-box .tag-hint
239245
{
240246
width: 450px;

html/settings_panel.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ <h2>{pdf-forms-filler-title}</h2>
6969
<a class="button button-primary add-mapping-button" href="#">{add-mapping}</a>
7070
</td>
7171
</tr>
72+
<tr>
73+
<td colspan="3" class="tag-hint-row"><input type="text" class="tag-hint code" readonly="readonly" onfocus="this.select()"></td>
74+
<td class="buttons"><input type="button" class="button button-primary insert-tag-hint-btn" value="{insert-tag}" /></td>
75+
</tr>
76+
<tr class="marked-row-background">
77+
<td colspan="3" class="generate-and-insert-all-tags-message">{generate-and-insert-all-tags-message}</td>
78+
<td class="buttons"><input type="button" class="button button-primary insert-and-map-all-tags-btn" value="{insert-and-map-all-tags}" /></td>
79+
</tr>
7280
<tr class="pdf-mapping-row-template">
7381
<td class="cf7-field"><span class="cf7-field-name"></span> <a class="convert-to-mailtags-button" href="#"><span class="dashicons dashicons-edit"></span></a></td>
7482
<td class="mapping-arrow"><span class="dashicons dashicons-arrow-right-alt"></span></td>

js/admin.js

Lines changed: 50 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,6 @@ jQuery(document).ready(function($) {
243243
select2SharedData.unmappedPdfFields = getUnmappedPdfFields(); // TODO: optimize this
244244

245245
jQuery('.wpcf7-pdf-forms-admin .pdf-field-list').resetSelect2Field();
246-
247-
updateTagHint();
248246
};
249247

250248
var cf7FieldsCache = [];
@@ -1197,28 +1195,6 @@ jQuery(document).ready(function($) {
11971195
refreshEmbeds();
11981196
};
11991197

1200-
var updateTagHint = function() {
1201-
1202-
var tag = jQuery('.wpcf7-pdf-forms-admin-insert-box .tag-hint');
1203-
tag.val('');
1204-
tag.data('pdf_field', '');
1205-
tag.data('cf7_field', '');
1206-
1207-
var pdf_field = jQuery('.wpcf7-pdf-forms-tag-generator-panel .pdf-field-list').val();
1208-
if(!pdf_field)
1209-
return;
1210-
1211-
var pdf_field_data = getPdfFieldData(pdf_field);
1212-
if(!pdf_field_data)
1213-
return;
1214-
1215-
tag.val(pdf_field_data.tag_hint);
1216-
tag.data('cf7_field', pdf_field_data.tag_name);
1217-
tag.data('pdf_field', pdf_field_data.id);
1218-
};
1219-
1220-
jQuery('.wpcf7-pdf-forms-tag-generator-panel .pdf-field-list').change(updateTagHint);
1221-
12221198
var getEmbeds = function() {
12231199
var embeds = getData('embeds');
12241200
if(embeds)
@@ -1636,23 +1612,59 @@ jQuery(document).ready(function($) {
16361612
return false;
16371613
});
16381614

1615+
// set up 'Pdf Field List' change handler
1616+
jQuery('.wpcf7-pdf-forms-admin').on("change", '.pdf-field-list', function(event) {
1617+
1618+
// prevent running default button click handlers
1619+
event.stopPropagation();
1620+
event.preventDefault();
1621+
1622+
var tag;
1623+
if(jQuery(this).closest('.wpcf7-pdf-forms-tag-generator-panel').length > 0)
1624+
tag = jQuery('.wpcf7-pdf-forms-admin-insert-box .tag-hint');
1625+
else
1626+
tag = jQuery('.wpcf7-pdf-forms-settings-panel .tag-hint');
1627+
1628+
tag.val('');
1629+
tag.data('pdf_field', '');
1630+
tag.data('cf7_field', '');
1631+
1632+
var pdf_field = jQuery(this).val();
1633+
if(!pdf_field)
1634+
return;
1635+
1636+
var pdf_field_data = getPdfFieldData(pdf_field);
1637+
if(!pdf_field_data)
1638+
return;
1639+
1640+
tag.val(pdf_field_data.tag_hint);
1641+
tag.data('cf7_field', pdf_field_data.tag_name);
1642+
tag.data('pdf_field', pdf_field_data.id);
1643+
});
1644+
16391645
// set up 'Insert And Link' button handler
1640-
jQuery('.wpcf7-pdf-forms-admin-insert-box').on("click", '.insert-tag-hint-btn', function(event) {
1646+
jQuery('.wpcf7-pdf-forms-admin-insert-box, .wpcf7-pdf-forms-settings-panel').on("click", '.insert-tag-hint-btn', function(event) {
16411647

16421648
// prevent running default button click handlers
16431649
event.stopPropagation();
16441650
event.preventDefault();
16451651

16461652
clearMessages();
16471653

1648-
var tag = jQuery('.wpcf7-pdf-forms-admin-insert-box .tag-hint');
1654+
var flag = jQuery(this).closest('.wpcf7-pdf-forms-admin-insert-box').length > 0;
1655+
var tag = jQuery(flag ? '.wpcf7-pdf-forms-admin-insert-box .tag-hint' : '.wpcf7-pdf-forms-settings-panel .tag-hint');
16491656
var tagText = tag.val();
16501657
var cf7_field = tag.data('cf7_field');
16511658
var pdf_field = tag.data('pdf_field');
16521659
if(tagText !="" && (typeof cf7_field != 'undefined') && (typeof pdf_field != 'undefined'))
16531660
{
1654-
jQuery('.wpcf7-pdf-forms-admin-insert-box .tag').val(tagText);
1655-
jQuery('.wpcf7-pdf-forms-admin-insert-box .insert-tag').click();
1661+
if(flag)
1662+
{
1663+
jQuery('.wpcf7-pdf-forms-admin-insert-box .tag').val(tagText);
1664+
jQuery('.wpcf7-pdf-forms-admin-insert-box .insert-tag').click();
1665+
}
1666+
else
1667+
wpcf7.taggen.insert(tagText);
16561668

16571669
loadCf7Fields(function() {
16581670
var mapping_id = addMapping({
@@ -1667,7 +1679,7 @@ jQuery(document).ready(function($) {
16671679
});
16681680

16691681
// set up 'Insert & Link All' button handler
1670-
jQuery('.wpcf7-pdf-forms-admin-insert-box').on("click", '.insert-and-map-all-tags-btn', function(event) {
1682+
jQuery('.wpcf7-pdf-forms-admin-insert-box, .wpcf7-pdf-forms-settings-panel').on("click", '.insert-and-map-all-tags-btn', function(event) {
16711683

16721684
// prevent running default button click handlers
16731685
event.stopPropagation();
@@ -1676,8 +1688,8 @@ jQuery(document).ready(function($) {
16761688
clearMessages();
16771689

16781690
var tagText = "";
1679-
16801691
var pdf_fields = getUnmappedPdfFields();
1692+
var flag = jQuery(this).closest('.wpcf7-pdf-forms-admin-insert-box').length > 0;
16811693

16821694
jQuery.each(pdf_fields, function(f, field) {
16831695
if(field.attachment_id == 'all' && field.tag_hint)
@@ -1688,8 +1700,14 @@ jQuery(document).ready(function($) {
16881700

16891701
if(tagText)
16901702
{
1691-
jQuery('.wpcf7-pdf-forms-admin-insert-box .tag').val(tagText);
1692-
jQuery('.wpcf7-pdf-forms-admin-insert-box .insert-tag').click();
1703+
if(flag)
1704+
{
1705+
jQuery('.wpcf7-pdf-forms-admin-insert-box .tag').val(tagText);
1706+
jQuery('.wpcf7-pdf-forms-admin-insert-box .insert-tag').click();
1707+
}
1708+
else
1709+
wpcf7.taggen.insert(tagText);
1710+
16931711
loadCf7Fields(function() {
16941712
jQuery.each(pdf_fields, function(f, field) {
16951713
if(field.attachment_id == 'all' && field.tag_hint)

pdf-forms-for-contact-form-7.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,10 @@ function render_settings_panel()
718718
'cf7-field-or-mail-tags' => esc_html__( 'CF7 field/mail-tags', 'pdf-forms-for-contact-form-7' ),
719719
'add-mapping' => esc_html__( 'Add Mapping', 'pdf-forms-for-contact-form-7' ),
720720
'delete-all-mappings' => esc_html__( 'Delete All', 'pdf-forms-for-contact-form-7' ),
721+
'new-tag' => esc_html__( 'New Tag:', 'pdf-forms-for-contact-form-7' ),
722+
'insert-tag' => esc_html__( "Insert and Link", 'pdf-forms-for-contact-form-7' ),
723+
'generate-and-insert-all-tags-message' => esc_html__( "This button allows you to generate tags for all remaining unlinked PDF fields, insert them into the form and link them to their corresponding fields.", 'pdf-forms-for-contact-form-7' ),
724+
'insert-and-map-all-tags' => esc_html__( "Insert & Link All", 'pdf-forms-for-contact-form-7' ),
721725
'image-embedding' => esc_html__( 'Image Embedding Tool', 'pdf-forms-for-contact-form-7' ),
722726
'image-embedding-help'=> esc_html__( 'This tool allows embedding of images into PDF files. Images are taken from file upload fields or URL field values. You can select a PDF file page and draw a bounding box for image insertion. Alternatively, you can insert your image in the center of every page.', 'pdf-forms-for-contact-form-7' ),
723727
'add-cf7-field-embed' => esc_html__( 'Embed Image', 'pdf-forms-for-contact-form-7' ),

0 commit comments

Comments
 (0)