grunion-form-view.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <?php
  2. /**
  3. * Template for form builder
  4. */
  5. /**
  6. * Filter to modify the limit of 5 additional contact form fields.
  7. *
  8. * @module contact-form
  9. *
  10. * @since 3.2.0
  11. *
  12. * @param int 5 Maximum number of additional fields.
  13. */
  14. $max_new_fields = apply_filters( 'grunion_max_new_fields', 5 );
  15. wp_register_script(
  16. 'grunion',
  17. Jetpack::get_file_url_for_environment(
  18. '_inc/build/contact-form/js/grunion.min.js',
  19. 'modules/contact-form/js/grunion.js'
  20. ),
  21. array( 'jquery-ui-sortable', 'jquery-ui-draggable' ),
  22. JETPACK__VERSION
  23. );
  24. wp_localize_script( 'grunion', 'GrunionFB_i18n', array(
  25. 'nameLabel' => esc_attr( _x( 'Name', 'Label for HTML form "Name" field in contact form builder', 'jetpack' ) ),
  26. 'emailLabel' => esc_attr( _x( 'Email', 'Label for HTML form "Email" field in contact form builder', 'jetpack' ) ),
  27. 'urlLabel' => esc_attr( _x( 'Website', 'Label for HTML form "URL/Website" field in contact form builder', 'jetpack' ) ),
  28. 'commentLabel' => esc_attr( _x( 'Comment', 'noun', 'jetpack' ) ),
  29. 'newLabel' => esc_attr( _x( 'New Field', 'Default label for new HTML form field in contact form builder', 'jetpack' ) ),
  30. 'optionsLabel' => esc_attr( _x( 'Options', 'Label for the set of options to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
  31. 'optionsLabel' => esc_attr( _x( 'Option', 'Label for an option to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
  32. 'firstOptionLabel' => esc_attr( _x( 'First option', 'Default label for the first option to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
  33. 'problemGeneratingForm' => esc_attr( _x( "Oops, there was a problem generating your form. You'll likely need to try again.", 'error message in contact form builder', 'jetpack' ) ),
  34. 'moveInstructions' => esc_attr__( "Drag up or down\nto re-arrange", 'jetpack' ),
  35. 'moveLabel' => esc_attr( _x( 'move', 'Label to drag HTML form fields around to change their order in contact form builder', 'jetpack' ) ),
  36. 'editLabel' => esc_attr( _x( 'edit', 'Link to edit an HTML form field in contact form builder', 'jetpack' ) ),
  37. 'savedMessage' => esc_attr__( 'Saved successfully', 'jetpack' ),
  38. 'requiredLabel' => esc_attr( _x( '(required)', 'This HTML form field is marked as required by the user in contact form builder', 'jetpack' ) ),
  39. 'exitConfirmMessage' => esc_attr__( 'Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.', 'jetpack' ),
  40. 'maxNewFields' => intval( $max_new_fields ),
  41. ) );
  42. ?>
  43. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  44. <html xmlns="http://www.w3.org/1999/xhtml">
  45. <head>
  46. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  47. <title><?php esc_html_e( 'Contact Form', 'jetpack' ); ?></title>
  48. <script type="text/javascript">
  49. var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
  50. var postId = <?php echo absint( $_GET['post_id'] ); ?>;
  51. var ajax_nonce_shortcode = '<?php echo wp_create_nonce( 'grunion_shortcode' ); ?>';
  52. var ajax_nonce_json = '<?php echo wp_create_nonce( 'grunion_shortcode_to_json' ); ?>';
  53. </script>
  54. <?php wp_print_scripts( 'grunion' ); ?>
  55. <script type="text/javascript">
  56. jQuery(document).ready(function () {
  57. FB.ContactForm.init();
  58. FB.ContactForm.resizePop();
  59. });
  60. jQuery(window).resize(function() {
  61. setTimeout(function () { FB.ContactForm.resizePop(); }, 50);
  62. });
  63. </script>
  64. <style>
  65. /* Reset */
  66. html { height: 100%; }
  67. body, div, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, button, textarea, p, blockquote, th, td { margin: 0; padding: 0; }
  68. body { background: #F9F9F9; font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size:12px; color: #333; line-height:1.5em; height: 100%; width: 100%; padding-bottom: 20px !important; }
  69. a { color: #21759B; text-decoration: none; }
  70. a:hover { text-decoration: underline; text-shadow: none !important; }
  71. h1 { font-size: 21px; color:#5A5A5A; font-family:Georgia,"Times New Roman",Times,serif; font-weight:normal; margin-bottom: 21px; }
  72. h3 { font-size: 13px; color: #666; margin-bottom: 18px; }
  73. input { width: 301px; }
  74. input[type='text'] { padding: 3px 5px; margin-right: 4px; -moz-border-radius:3px; border-radius:3px; -webkit-border-radius:3px; }
  75. input[type='text']:focus { border: 2px solid #80B8D9; outline: 0 !important; }
  76. input[type='checkbox'], input[type='radio'] { width: auto !important; float: left; margin-top: 3px; margin-right: 8px; }
  77. input.fieldError, select.fieldError, textarea.fieldError { border: 2px solid #D56F55; }
  78. img { border: none; }
  79. label { color: #222; font-weight: bold; display: block; margin-bottom: 4px; }
  80. label.radio { width: auto; margin: -2px 0 0 5px; }
  81. label span.label-required { color: #AAA; margin-left: 4px; font-weight: normal; }
  82. td { vertical-align: top; }
  83. select { width: 300px; }
  84. textarea { height: 100px; width: 311px; }
  85. /* Core */
  86. #media-upload-header { border-bottom: 1px solid #DFDFDF; font-weight:bold; margin:0; padding:3px 5px 0 5px; position:relative; background: #FFF; }
  87. #sidemenu { bottom:-1px; font-size:12px; list-style:none outside none; padding-left:10px; position:relative; left:0; margin:0 5px; overflow:hidden; }
  88. #sidemenu a { text-decoration:none; border-top: 1px solid #FFF; display:block; float:left; line-height:28px; padding:0 13px; outline: none; }
  89. #sidemenu a.current { background-color:#F9F9F9; border-color:#DFDFDF #DFDFDF #F9F9F9; color:#D54E21; -moz-border-radius:4px 4px 0 0; border-radius:4px 4px 0 0; -webkit-border-radius:4px 4px 0 0; border-style:solid; border-width:1px; font-weight:normal; }
  90. #sidemenu li { display:inline; margin-bottom:6px; line-height:200%; list-style:none outside none; margin:0; padding:0; text-align:center; white-space:nowrap; }
  91. .button { background-color:#f2f2f2; border-color:#BBBBBB; min-width:80px; text-align:center; color:#464646; text-shadow:0 1px 0 #FFFFFF; border-style:solid; border-width:1px; cursor:pointer; width: auto; font-size:11px !important; line-height:13px; padding:3px 11px; margin-top: 12px; text-decoration:none; -moz-border-radius:11px; border-radius:11px; -webkit-border-radius:11px }
  92. .button-primary { background-color:#21759B; font-weight: bold; border-color:#298CBA; text-align:center; color:#EAF2FA; text-shadow:0 -1px 0 rgba(0, 0, 0, 0.3); border-style:solid; border-width:1px; cursor:pointer; width: auto; font-size:11px !important; line-height:13px; padding:3px 11px; margin-top: 21px; text-decoration:none; -moz-border-radius:11px; border-radius:11px; -webkit-border-radius:11px }
  93. .clear { clear: both; }
  94. .fb-add-field { padding-left: 10px; }
  95. .fb-add-option { margin: 0 0 14px 100px; }
  96. .fb-container { margin: 21px; padding-bottom: 20px; }
  97. .fb-desc, #fb-add-field { margin-top: 34px; }
  98. .fb-extra-fields { margin-bottom: 2px; }
  99. .fb-form-case { background: #FFF; padding: 13px; border: 1px solid #E2E2E2; width: 336px; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px }
  100. .fb-form-case a { outline: none; }
  101. .fb-form-case input[type='text'], .fb-form-case textarea { background: #E1E1E1; }
  102. .fb-radio-label { display: inline-block; float: left; width: 290px; }
  103. .fb-new-fields { position: relative; border: 1px dashed #FFF; background: #FFF; padding: 4px 10px 10px; cursor: default; }
  104. .fb-new-fields:hover { border: 1px dashed #BBDBEA; background: #F7FBFD; }
  105. .fb-options { width: 170px !important; }
  106. .fb-remove { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field.gif') no-repeat; position: absolute; cursor: pointer !important; right: -26px; top: 27px; width: 20px; height: 23px; }
  107. .fb-remove:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field-hover.gif') no-repeat; }
  108. .fb-remove-small { top: 2px !important; }
  109. .fb-remove-option { position: absolute; top: 1px; right: 10px; width: 20px; height: 23px; background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option.gif') no-repeat; }
  110. .fb-remove-option:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option-hover.gif') no-repeat; }
  111. .fb-reorder { cursor: move; position: relative; }
  112. .fb-reorder:hover div { display: block !important; width: 130px !important; position: absolute; top: 0; right: 0; z-index: 200; padding: 5px 10px; color: #555; font-size: 11px; background: #FFF; border: 1px solid #CCC; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; }
  113. .fb-right { position: absolute; right: 0; top: 0; width: 315px; margin: 57px 21px 0 0; }
  114. .fb-right .fb-new-fields { border: none; background: #F9F9F9; padding: 0; }
  115. .fb-right input[type='text'] { width: 195px; margin-bottom: 14px; }
  116. .fb-right label { color: #444; width: 100px; float: left; font-weight: normal; }
  117. .fb-right select { width: 195px !important; margin-bottom: 14px; }
  118. .fb-right textarea { margin-bottom: 13px; }
  119. .fb-right p { color: #999; line-height: 19px; }
  120. .fb-settings input[type='text'], .fb-settings textarea { background-image: none !important; }
  121. .fb-success { position: absolute; top: -3px; right: 100px; padding: 6px 23px 4px 23px; background: #FFFFE0; font-weight: normal; border: 1px solid #E6DB55; color: #333; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; }
  122. .right { float: right; }
  123. /* rtl */
  124. body.rtl{ direction: rtl; font-family:Tahoma,Arial,sans-serif}
  125. .rtl input[type='text'] { margin-left: 4px; margin-right: 0; }
  126. .rtl input[type='checkbox'], .rtl input[type='radio'] { float: right; }
  127. .rtl input[type='radio'] { margin-left: 8px; margin-right: 0; }
  128. .rtl label.radio { margin: -2px 5px 0 0; }
  129. .rtl label span.label-required { margin-right: 4px; margin-left:0 }
  130. .rtl #sidemenu { padding-right:10px; padding-left: 0; left:auto; right: 0; }
  131. .rtl #sidemenu a { float:right; }
  132. .rtl .fb-add-field { padding-right: 10px; padding-left: 0; }
  133. .rtl .fb-add-option { margin: 0 100px 14px 0; }
  134. .rtl .fb-radio-label { margin-right: 8px; margin-left: 0; float: right; }
  135. .rtl .fb-remove { right: auto; left: -26px; transform: scaleX(-1); }
  136. .rtl .fb-remove-option { right: auto; left: 10px; }
  137. .rtl .fb-reorder:hover div { left: 0; right: auto; }
  138. .rtl .fb-right { left: 0; right: auto; margin: 57px 0 0 21px; }
  139. .rtl .fb-right label { float: right; }
  140. .rtl .fb-success { right: auto; left: 100px;}
  141. .rtl .right { float: left; }
  142. @media only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  143. .fb-remove { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field-2x.png') no-repeat; background-size: 20px 23px; }
  144. .fb-remove:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field-hover-2x.png') no-repeat; background-size: 20px 23px; }
  145. .fb-remove-option { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option-2x.png') no-repeat; background-size: 20px 23px; }
  146. .fb-remove-option:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option-hover-2x.png') no-repeat; background-size: 20px 23px; }
  147. }
  148. </style>
  149. </head>
  150. <body <?php if ( is_rtl() ) { echo 'class="rtl"'; }?>>
  151. <div id="media-upload-header">
  152. <div id="fb-success" class="fb-success" style="display: none;"><?php esc_html_e( 'Your new field was saved successfully', 'jetpack' ); ?></div>
  153. <ul id="sidemenu">
  154. <li id="tab-preview"><a class="current" href=""><?php esc_html_e( 'Form builder', 'jetpack' ); ?></a></li>
  155. <li id="tab-settings"><a href=""><?php esc_html_e( 'Email notifications', 'jetpack' ); ?></a></li>
  156. </ul>
  157. </div>
  158. <div class="fb-right">
  159. <div id="fb-desc" class="fb-desc">
  160. <h3><?php esc_html_e( 'How does this work?', 'jetpack' ); ?></h3>
  161. <p><?php esc_html_e( 'By adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.', 'jetpack' ); ?></p>
  162. <h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I add more fields?', 'jetpack' ); ?></h3>
  163. <p><?php printf(
  164. esc_html( _x( 'Sure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.', '%1$s = "Click here" in an HTML link', 'jetpack' ) ),
  165. '<a href="#" class="fb-add-field" style="padding-left: 0;">' . esc_html__( 'Click here', 'jetpack' ) . '</a>'
  166. ); ?></p>
  167. <h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I view my feedback within WordPress?', 'jetpack' ); ?></h3>
  168. <p><?php printf(
  169. esc_html( _x( 'Yep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.', '%1$s = "Feedback" in an HTML link', 'jetpack' ) ),
  170. '<a id="fb-feedback" href="' . admin_url( 'edit.php?post_type=feedback' ) . '">' . esc_html__( 'Feedback', 'jetpack' ) . '</a>'
  171. ); ?></p>
  172. <div class="clear"></div>
  173. </div>
  174. <div id="fb-email-desc" class="fb-desc" style="display: none;">
  175. <h3><?php esc_html_e( 'Do I need to fill this out?', 'jetpack' ); ?></h3>
  176. <p><?php esc_html_e( 'Nope. However, if you&#8217;d like to modify where your feedback is sent, or the subject line you can. If you don&#8217;t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.', 'jetpack' ); ?></p>
  177. <h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I send a notification to more than one person?', 'jetpack' ); ?></h3>
  178. <p><?php esc_html_e( 'Yep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.', 'jetpack' ); ?></p>
  179. <div class="clear"></div>
  180. </div>
  181. <div id="fb-add-field" style="display: none;">
  182. <h3><?php esc_html_e( 'Edit this new field', 'jetpack' ); ?></h3>
  183. <label for="fb-new-label"><?php esc_html_e( 'Label', 'jetpack' ); ?></label>
  184. <input type="text" id="fb-new-label" value="<?php esc_attr_e( 'New field', 'jetpack' ); ?>" />
  185. <label for="fb-new-label"><?php esc_html_e( 'Field type', 'jetpack' ); ?></label>
  186. <select id="fb-new-type">
  187. <option value="checkbox"><?php esc_html_e( 'Checkbox', 'jetpack' ); ?></option>
  188. <option value="checkbox-multiple"><?php esc_html_e( 'Checkbox with Multiple Items', 'jetpack' ); ?></option>
  189. <option value="select"><?php esc_html_e( 'Drop down', 'jetpack' ); ?></option>
  190. <option value="email"><?php esc_html_e( 'Email', 'jetpack' ); ?></option>
  191. <option value="name"><?php esc_html_e( 'Name', 'jetpack' ); ?></option>
  192. <option value="radio"><?php esc_html_e( 'Radio', 'jetpack' ); ?></option>
  193. <option value="text" selected="selected"><?php esc_html_e( 'Text', 'jetpack' ); ?></option>
  194. <option value="textarea"><?php esc_html_e( 'Textarea', 'jetpack' ); ?></option>
  195. <option value="url"><?php esc_html_e( 'Website', 'jetpack' ); ?></option>
  196. </select>
  197. <div class="clear"></div>
  198. <div id="fb-options" style="display: none;">
  199. <div id="fb-new-options">
  200. <label for="fb-option0"><?php esc_html_e( 'Options', 'jetpack' ); ?></label>
  201. <input type="text" id="fb-option0" optionid="0" value="<?php esc_attr_e( 'First option', 'jetpack' ); ?>" class="fb-options" />
  202. </div>
  203. <div id="fb-add-option" class="fb-add-option">
  204. <a href="#" id="fb-another-option"><?php esc_html_e( 'Add another option', 'jetpack' ); ?></a>
  205. </div>
  206. </div>
  207. <div class="fb-required">
  208. <label for="fb-new-label"></label>
  209. <input type="checkbox" id="fb-new-required" />
  210. <label for="fb-new-label" class="fb-radio-label"><?php esc_html_e( 'Required?', 'jetpack' ); ?></label>
  211. <div class="clear"></div>
  212. </div>
  213. <input type="hidden" id="fb-field-id" />
  214. <input type="submit" class="button" value="<?php esc_attr_e( 'Save this field', 'jetpack' ); ?>" id="fb-save-field" name="save">
  215. </div>
  216. </div>
  217. <form id="fb-preview">
  218. <div id="fb-preview-form" class="fb-container">
  219. <h1><?php esc_html_e( 'Here&#8217;s what your form will look like', 'jetpack' ); ?></h1>
  220. <div id="sortable" class="fb-form-case">
  221. <div id="fb-extra-fields" class="fb-extra-fields"></div>
  222. <a href="#" id="fb-new-field" class="fb-add-field"><?php esc_html_e( 'Add a new field', 'jetpack' ); ?></a>
  223. </div>
  224. <input type="submit" class="button-primary" tabindex="4" value="<?php esc_attr_e( 'Add this form to my post', 'jetpack' ); ?>" id="fb-save-form" name="save">
  225. </div>
  226. <div id="fb-email-settings" class="fb-container" style="display: none;">
  227. <h1><?php esc_html_e( 'Email settings', 'jetpack' ); ?></h1>
  228. <div class="fb-form-case fb-settings">
  229. <label for="fb-fieldname"><?php esc_html_e( 'Enter your email address', 'jetpack' ); ?></label>
  230. <input type="text" id="fb-field-my-email" style="background: #FFF !important;" />
  231. <label for="fb-fieldemail" style="margin-top: 14px;"><?php esc_html_e( 'What should the subject line be?', 'jetpack' ); ?></label>
  232. <input type="text" id="fb-field-subject" style="background: #FFF !important;" />
  233. </div>
  234. <input type="submit" class="button-primary" value="<?php esc_attr_e( 'Save and go back to form builder', 'jetpack' ); ?>" id="fb-prev-form" name="save">
  235. </div>
  236. </form>
  237. </body>
  238. </html>