Completed
Push — develop ( a6d771...64e9d9 )
by Gennady
22:22 queued 02:21
created
includes/extensions/edit-entry/class-edit-entry-render.php 1 patch
Indentation   +289 added lines, -289 removed lines patch added patch discarded remove patch
@@ -102,10 +102,10 @@  discard block
 block discarded – undo
102 102
 
103 103
 	/**
104 104
 	 * ID of the current post. May also be ID of the current View.
105
-     *
106
-     * @since 2.0.13
107
-     * 
108
-     * @var int
105
+	 *
106
+	 * @since 2.0.13
107
+	 * 
108
+	 * @var int
109 109
 	 */
110 110
 	public $post_id;
111 111
 
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
 	 */
177 177
 	public function prevent_maybe_process_form() {
178 178
 
179
-	    if( ! $this->is_edit_entry_submission() ) {
179
+		if( ! $this->is_edit_entry_submission() ) {
180 180
 			return;
181 181
 		}
182 182
 
@@ -210,14 +210,14 @@  discard block
 block discarded – undo
210 210
 	 * When Edit entry view is requested setup the vars
211 211
 	 */
212 212
 	private function setup_vars() {
213
-        global $post;
213
+		global $post;
214 214
 
215 215
 		$gravityview_view = GravityView_View::getInstance();
216 216
 
217 217
 
218 218
 		$entries = $gravityview_view->getEntries();
219
-	    self::$original_entry = $entries[0];
220
-	    $this->entry = $entries[0];
219
+		self::$original_entry = $entries[0];
220
+		$this->entry = $entries[0];
221 221
 
222 222
 		self::$original_form = $gravityview_view->getForm();
223 223
 		$this->form = $gravityview_view->getForm();
@@ -359,8 +359,8 @@  discard block
 block discarded – undo
359 359
 
360 360
 			GFFormsModel::save_lead( $form, $this->entry );
361 361
 
362
-	        // Delete the values for hidden inputs
363
-	        $this->unset_hidden_field_values();
362
+			// Delete the values for hidden inputs
363
+			$this->unset_hidden_field_values();
364 364
 			
365 365
 			$this->entry['date_created'] = $date_created;
366 366
 
@@ -370,7 +370,7 @@  discard block
 block discarded – undo
370 370
 			// Perform actions normally performed after updating a lead
371 371
 			$this->after_update();
372 372
 
373
-	        /**
373
+			/**
374 374
 			 * Must be AFTER after_update()!
375 375
 			 * @see https://github.com/gravityview/GravityView/issues/764
376 376
 			 */
@@ -378,7 +378,7 @@  discard block
 block discarded – undo
378 378
 
379 379
 			/**
380 380
 			 * @action `gravityview/edit_entry/after_update` Perform an action after the entry has been updated using Edit Entry
381
-             * @since 2.1 Added $gv_data parameter
381
+			 * @since 2.1 Added $gv_data parameter
382 382
 			 * @param array $form Gravity Forms form array
383 383
 			 * @param string $entry_id Numeric ID of the entry that was updated
384 384
 			 * @param GravityView_Edit_Entry_Render $this This object
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
 	 * @return void
403 403
 	 */
404 404
 	private function unset_hidden_field_values() {
405
-	    global $wpdb;
405
+		global $wpdb;
406 406
 
407 407
 		/**
408 408
 		 * @filter `gravityview/edit_entry/unset_hidden_field_values` Whether to delete values of fields hidden by conditional logic
@@ -424,33 +424,33 @@  discard block
 block discarded – undo
424 424
 			$current_fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $lead_detail_table WHERE lead_id=%d", $this->entry['id'] ) );
425 425
 		}
426 426
 
427
-	    foreach ( $this->entry as $input_id => $field_value ) {
427
+		foreach ( $this->entry as $input_id => $field_value ) {
428 428
 
429 429
 			if ( ! is_numeric( $input_id ) ) {
430 430
 				continue;
431 431
 			}
432 432
 
433
-		    $field = RGFormsModel::get_field( $this->form, $input_id );
433
+			$field = RGFormsModel::get_field( $this->form, $input_id );
434 434
 
435
-		    // Reset fields that are hidden
436
-		    // Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
437
-		    if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
435
+			// Reset fields that are hidden
436
+			// Don't pass $entry as fourth parameter; force using $_POST values to calculate conditional logic
437
+			if ( GFFormsModel::is_field_hidden( $this->form, $field, array(), NULL ) ) {
438 438
 
439 439
 				$empty_value = $field->get_value_save_entry(
440 440
 					is_array( $field->get_entry_inputs() ) ? array() : '',
441 441
 					$this->form, '', $this->entry['id'], $this->entry
442 442
 				);
443 443
 
444
-			    $lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
444
+				$lead_detail_id = GFFormsModel::get_lead_detail_id( $current_fields, $input_id );
445 445
 
446
-			    GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
446
+				GFFormsModel::update_lead_field_value( $this->form, $this->entry, $field, $lead_detail_id, $input_id, $empty_value );
447 447
 
448
-			    // Prevent the $_POST values of hidden fields from being used as default values when rendering the form
448
+				// Prevent the $_POST values of hidden fields from being used as default values when rendering the form
449 449
 				// after submission
450
-			    $post_input_id = 'input_' . str_replace( '.', '_', $input_id );
451
-			    $_POST[ $post_input_id ] = '';
452
-		    }
453
-	    }
450
+				$post_input_id = 'input_' . str_replace( '.', '_', $input_id );
451
+				$_POST[ $post_input_id ] = '';
452
+			}
453
+		}
454 454
 	}
455 455
 
456 456
 	/**
@@ -544,7 +544,7 @@  discard block
 block discarded – undo
544 544
 
545 545
 		$form = $this->filter_conditional_logic( $this->form );
546 546
 
547
-	    /** @var GF_Field $field */
547
+		/** @var GF_Field $field */
548 548
 		foreach( $form['fields'] as $k => &$field ) {
549 549
 
550 550
 			/**
@@ -560,7 +560,7 @@  discard block
 block discarded – undo
560 560
 
561 561
 			if( isset( $field->inputs ) && is_array( $field->inputs ) ) {
562 562
 				foreach( $field->inputs as $key => $input ) {
563
-				    $field->inputs[ $key ][ 'id' ] = (string)$input['id'];
563
+					$field->inputs[ $key ][ 'id' ] = (string)$input['id'];
564 564
 				}
565 565
 			}
566 566
 		}
@@ -595,7 +595,7 @@  discard block
 block discarded – undo
595 595
 			foreach ( $this->fields_with_calculation as $field ) {
596 596
 				$inputs = $field->get_entry_inputs();
597 597
 				if ( is_array( $inputs ) ) {
598
-				    foreach ( $inputs as $input ) {
598
+					foreach ( $inputs as $input ) {
599 599
 						list( $field_id, $input_id ) = rgexplode( '.', $input['id'], 2 );
600 600
 
601 601
 						if ( 'product' === $field->type ) {
@@ -614,7 +614,7 @@  discard block
 block discarded – undo
614 614
 						}
615 615
 
616 616
 						GFFormsModel::save_input( $form, $field, $entry, $current_fields, $input['id'] );
617
-				    }
617
+					}
618 618
 				} else {
619 619
 					// Set to what it previously was if it's not editable
620 620
 					if ( ! in_array( $field->id, $allowed_fields ) ) {
@@ -660,7 +660,7 @@  discard block
 block discarded – undo
660 660
 			$value = RGFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'] );
661 661
 
662 662
 			$ary = ! empty( $value ) ? explode( '|:|', $value ) : array();
663
-	        $ary = stripslashes_deep( $ary );
663
+			$ary = stripslashes_deep( $ary );
664 664
 			$img_url = \GV\Utils::get( $ary, 0 );
665 665
 
666 666
 			$img_title       = count( $ary ) > 1 ? $ary[1] : '';
@@ -733,7 +733,7 @@  discard block
 block discarded – undo
733 733
 	private function maybe_update_post_fields( $form ) {
734 734
 
735 735
 		if( empty( $this->entry['post_id'] ) ) {
736
-	        gravityview()->log->debug( 'This entry has no post fields. Continuing...' );
736
+			gravityview()->log->debug( 'This entry has no post fields. Continuing...' );
737 737
 			return;
738 738
 		}
739 739
 
@@ -768,49 +768,49 @@  discard block
 block discarded – undo
768 768
 
769 769
 				switch( $field->type ) {
770 770
 
771
-				    case 'post_title':
772
-				        $post_title = $value;
773
-				        if ( \GV\Utils::get( $form, 'postTitleTemplateEnabled' ) ) {
774
-				            $post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
775
-				        }
776
-				        $updated_post->post_title = $post_title;
777
-				        $updated_post->post_name  = $post_title;
778
-				        unset( $post_title );
779
-				        break;
780
-
781
-				    case 'post_content':
782
-				        $post_content = $value;
783
-				        if ( \GV\Utils::get( $form, 'postContentTemplateEnabled' ) ) {
784
-				            $post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
785
-				        }
786
-				        $updated_post->post_content = $post_content;
787
-				        unset( $post_content );
788
-				        break;
789
-				    case 'post_excerpt':
790
-				        $updated_post->post_excerpt = $value;
791
-				        break;
792
-				    case 'post_tags':
793
-				        wp_set_post_tags( $post_id, $value, false );
794
-				        break;
795
-				    case 'post_category':
796
-				        break;
797
-				    case 'post_custom_field':
771
+					case 'post_title':
772
+						$post_title = $value;
773
+						if ( \GV\Utils::get( $form, 'postTitleTemplateEnabled' ) ) {
774
+							$post_title = $this->fill_post_template( $form['postTitleTemplate'], $form, $entry_tmp );
775
+						}
776
+						$updated_post->post_title = $post_title;
777
+						$updated_post->post_name  = $post_title;
778
+						unset( $post_title );
779
+						break;
780
+
781
+					case 'post_content':
782
+						$post_content = $value;
783
+						if ( \GV\Utils::get( $form, 'postContentTemplateEnabled' ) ) {
784
+							$post_content = $this->fill_post_template( $form['postContentTemplate'], $form, $entry_tmp, true );
785
+						}
786
+						$updated_post->post_content = $post_content;
787
+						unset( $post_content );
788
+						break;
789
+					case 'post_excerpt':
790
+						$updated_post->post_excerpt = $value;
791
+						break;
792
+					case 'post_tags':
793
+						wp_set_post_tags( $post_id, $value, false );
794
+						break;
795
+					case 'post_category':
796
+						break;
797
+					case 'post_custom_field':
798 798
 						if ( is_array( $value ) && ( floatval( $field_id ) !== floatval( $field->id ) ) ) {
799 799
 							$value = $value[ $field_id ];
800 800
 						}
801 801
 
802
-				        if( ! empty( $field->customFieldTemplateEnabled ) ) {
803
-				            $value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
804
-				        }
802
+						if( ! empty( $field->customFieldTemplateEnabled ) ) {
803
+							$value = $this->fill_post_template( $field->customFieldTemplate, $form, $entry_tmp, true );
804
+						}
805 805
 
806 806
 						$value = $field->get_value_save_entry( $value, $form, '', $this->entry['id'], $this->entry );
807 807
 
808
-				        update_post_meta( $post_id, $field->postCustomFieldName, $value );
809
-				        break;
808
+						update_post_meta( $post_id, $field->postCustomFieldName, $value );
809
+						break;
810 810
 
811
-				    case 'post_image':
812
-				        $value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
813
-				        break;
811
+					case 'post_image':
812
+						$value = $this->update_post_image( $form, $field, $field_id, $value, $this->entry, $post_id );
813
+						break;
814 814
 
815 815
 				}
816 816
 
@@ -967,14 +967,14 @@  discard block
 block discarded – undo
967 967
 			?><h2 class="gv-edit-entry-title">
968 968
 				<span><?php
969 969
 
970
-				    /**
971
-				     * @filter `gravityview_edit_entry_title` Modify the edit entry title
972
-				     * @param string $edit_entry_title Modify the "Edit Entry" title
973
-				     * @param GravityView_Edit_Entry_Render $this This object
974
-				     */
975
-				    $edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
970
+					/**
971
+					 * @filter `gravityview_edit_entry_title` Modify the edit entry title
972
+					 * @param string $edit_entry_title Modify the "Edit Entry" title
973
+					 * @param GravityView_Edit_Entry_Render $this This object
974
+					 */
975
+					$edit_entry_title = apply_filters('gravityview_edit_entry_title', __('Edit Entry', 'gravityview'), $this );
976 976
 
977
-				    echo esc_attr( $edit_entry_title );
977
+					echo esc_attr( $edit_entry_title );
978 978
 			?></span>
979 979
 			</h2>
980 980
 
@@ -1037,26 +1037,26 @@  discard block
 block discarded – undo
1037 1037
 
1038 1038
 				switch ( $edit_redirect ) {
1039 1039
 
1040
-                    case '0':
1041
-	                    $redirect_url = $back_link;
1042
-	                    $entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to Entry%s', 'Replacements are HTML', 'gravityview'), '<a href="'. esc_url( $redirect_url ) .'">', '</a>' );
1043
-                        break;
1044
-
1045
-                    case '1':
1046
-	                    $redirect_url = $directory_link = GravityView_API::directory_link();
1047
-	                    $entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to %s%s', 'Replacement 1 is HTML. Replacement 2 is the title of the page where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $view->post_title ), '</a>' );
1048
-	                    break;
1049
-
1050
-                    case '2':
1051
-	                    $redirect_url = $edit_redirect_url;
1052
-	                    $redirect_url = GFCommon::replace_variables( $redirect_url, $this->form, $this->entry, false, false, false, 'text' );
1053
-	                    $entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sRedirecting to %s%s', 'Replacement 1 is HTML. Replacement 2 is the URL where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $edit_redirect_url ), '</a>' );
1054
-                        break;
1055
-
1056
-                    case '':
1057
-                    default:
1058
-					    $entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. esc_url( $back_link ) .'">', '</a>' );
1059
-                        break;
1040
+					case '0':
1041
+						$redirect_url = $back_link;
1042
+						$entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to Entry%s', 'Replacements are HTML', 'gravityview'), '<a href="'. esc_url( $redirect_url ) .'">', '</a>' );
1043
+						break;
1044
+
1045
+					case '1':
1046
+						$redirect_url = $directory_link = GravityView_API::directory_link();
1047
+						$entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sReturning to %s%s', 'Replacement 1 is HTML. Replacement 2 is the title of the page where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $view->post_title ), '</a>' );
1048
+						break;
1049
+
1050
+					case '2':
1051
+						$redirect_url = $edit_redirect_url;
1052
+						$redirect_url = GFCommon::replace_variables( $redirect_url, $this->form, $this->entry, false, false, false, 'text' );
1053
+						$entry_updated_message = sprintf( esc_attr_x('Entry Updated. %sRedirecting to %s%s', 'Replacement 1 is HTML. Replacement 2 is the URL where the user will be taken. Replacement 3 is HTML.','gravityview'), '<a href="'. esc_url( $redirect_url ) . '">', esc_html( $edit_redirect_url ), '</a>' );
1054
+						break;
1055
+
1056
+					case '':
1057
+					default:
1058
+						$entry_updated_message = sprintf( esc_attr__('Entry Updated. %sReturn to Entry%s', 'gravityview'), '<a href="'. esc_url( $back_link ) .'">', '</a>' );
1059
+						break;
1060 1060
 				}
1061 1061
 
1062 1062
 				if ( isset( $redirect_url ) ) {
@@ -1113,7 +1113,7 @@  discard block
 block discarded – undo
1113 1113
 
1114 1114
 		ob_get_clean();
1115 1115
 
1116
-	    remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
1116
+		remove_filter( 'gform_pre_render', array( $this, 'filter_modify_form_fields' ), 5000 );
1117 1117
 		remove_filter( 'gform_submit_button', array( $this, 'render_form_buttons' ) );
1118 1118
 		remove_filter( 'gform_disable_view_counter', '__return_true' );
1119 1119
 		remove_filter( 'gform_field_input', array( $this, 'verify_user_can_edit_post' ), 5 );
@@ -1167,7 +1167,7 @@  discard block
 block discarded – undo
1167 1167
 
1168 1168
 		// for now we don't support Save and Continue feature.
1169 1169
 		if( ! self::$supports_save_and_continue ) {
1170
-	        unset( $form['save'] );
1170
+			unset( $form['save'] );
1171 1171
 		}
1172 1172
 
1173 1173
 		$form = $this->unselect_default_values( $form );
@@ -1194,30 +1194,30 @@  discard block
 block discarded – undo
1194 1194
 			return $field_content;
1195 1195
 		}
1196 1196
 
1197
-        $message = null;
1197
+		$message = null;
1198 1198
 
1199
-        // First, make sure they have the capability to edit the post.
1200
-        if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1199
+		// First, make sure they have the capability to edit the post.
1200
+		if( false === current_user_can( 'edit_post', $this->entry['post_id'] ) ) {
1201 1201
 
1202
-            /**
1203
-             * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1204
-             * @param string $message The existing "You don't have permission..." text
1205
-             */
1206
-            $message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1202
+			/**
1203
+			 * @filter `gravityview/edit_entry/unsupported_post_field_text` Modify the message when someone isn't able to edit a post
1204
+			 * @param string $message The existing "You don't have permission..." text
1205
+			 */
1206
+			$message = apply_filters('gravityview/edit_entry/unsupported_post_field_text', __('You don&rsquo;t have permission to edit this post.', 'gravityview') );
1207 1207
 
1208
-        } elseif( null === get_post( $this->entry['post_id'] ) ) {
1209
-            /**
1210
-             * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1211
-             * @param string $message The existing "This field is not editable; the post no longer exists." text
1212
-             */
1213
-            $message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1214
-        }
1208
+		} elseif( null === get_post( $this->entry['post_id'] ) ) {
1209
+			/**
1210
+			 * @filter `gravityview/edit_entry/no_post_text` Modify the message when someone is editing an entry attached to a post that no longer exists
1211
+			 * @param string $message The existing "This field is not editable; the post no longer exists." text
1212
+			 */
1213
+			$message = apply_filters('gravityview/edit_entry/no_post_text', __('This field is not editable; the post no longer exists.', 'gravityview' ) );
1214
+		}
1215 1215
 
1216
-        if( $message ) {
1217
-            $field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1218
-        }
1216
+		if( $message ) {
1217
+			$field_content = sprintf('<div class="ginput_container ginput_container_' . $field->type . '">%s</div>', wpautop( $message ) );
1218
+		}
1219 1219
 
1220
-        return $field_content;
1220
+		return $field_content;
1221 1221
 	}
1222 1222
 
1223 1223
 	/**
@@ -1245,7 +1245,7 @@  discard block
 block discarded – undo
1245 1245
 			|| ! empty( $field_content )
1246 1246
 			|| in_array( $field->type, array( 'honeypot' ) )
1247 1247
 		) {
1248
-	        return $field_content;
1248
+			return $field_content;
1249 1249
 		}
1250 1250
 
1251 1251
 		// SET SOME FIELD DEFAULTS TO PREVENT ISSUES
@@ -1253,24 +1253,24 @@  discard block
 block discarded – undo
1253 1253
 
1254 1254
 		$field_value = $this->get_field_value( $field );
1255 1255
 
1256
-	    // Prevent any PHP warnings, like undefined index
1257
-	    ob_start();
1256
+		// Prevent any PHP warnings, like undefined index
1257
+		ob_start();
1258 1258
 
1259
-	    $return = null;
1259
+		$return = null;
1260 1260
 
1261 1261
 		/** @var GravityView_Field $gv_field */
1262 1262
 		if( $gv_field && is_callable( array( $gv_field, 'get_field_input' ) ) ) {
1263 1263
 			$return = $gv_field->get_field_input( $this->form, $field_value, $this->entry, $field );
1264 1264
 		} else {
1265
-	        $return = $field->get_field_input( $this->form, $field_value, $this->entry );
1266
-	    }
1265
+			$return = $field->get_field_input( $this->form, $field_value, $this->entry );
1266
+		}
1267 1267
 
1268
-	    // If there was output, it's an error
1269
-	    $warnings = ob_get_clean();
1268
+		// If there was output, it's an error
1269
+		$warnings = ob_get_clean();
1270 1270
 
1271
-	    if( !empty( $warnings ) ) {
1272
-		    gravityview()->log->error( '{warning}', array( 'warning' => $warnings, 'data' => $field_value ) );
1273
-	    }
1271
+		if( !empty( $warnings ) ) {
1272
+			gravityview()->log->error( '{warning}', array( 'warning' => $warnings, 'data' => $field_value ) );
1273
+		}
1274 1274
 
1275 1275
 		return $return;
1276 1276
 	}
@@ -1305,8 +1305,8 @@  discard block
 block discarded – undo
1305 1305
 				$input_id = strval( $input['id'] );
1306 1306
 
1307 1307
 				if ( isset( $this->entry[ $input_id ] ) && ! gv_empty( $this->entry[ $input_id ], false, false ) ) {
1308
-				    $field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1309
-				    $allow_pre_populated = false;
1308
+					$field_value[ $input_id ] =  'post_category' === $field->type ? GFCommon::format_post_category( $this->entry[ $input_id ], true ) : $this->entry[ $input_id ];
1309
+					$allow_pre_populated = false;
1310 1310
 				}
1311 1311
 
1312 1312
 			}
@@ -1330,7 +1330,7 @@  discard block
 block discarded – undo
1330 1330
 			if ( 'post_category' === $field->type && !gv_empty( $field_value, false, false ) ) {
1331 1331
 				$categories = array();
1332 1332
 				foreach ( explode( ',', $field_value ) as $cat_string ) {
1333
-				    $categories[] = GFCommon::format_post_category( $cat_string, true );
1333
+					$categories[] = GFCommon::format_post_category( $cat_string, true );
1334 1334
 				}
1335 1335
 				$field_value = 'multiselect' === $field->get_input_type() ? $categories : implode( '', $categories );
1336 1336
 			}
@@ -1340,25 +1340,25 @@  discard block
 block discarded – undo
1340 1340
 		// if value is empty get the default value if defined
1341 1341
 		$field_value = $field->get_value_default_if_empty( $field_value );
1342 1342
 
1343
-	    /**
1344
-	     * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1345
-	     * @since 1.11
1346
-	     * @since 1.20 Added third param
1347
-	     * @param mixed $field_value field value used to populate the input
1348
-	     * @param object $field Gravity Forms field object ( Class GF_Field )
1349
-	     * @param GravityView_Edit_Entry_Render $this Current object
1350
-	     */
1351
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1352
-
1353
-	    /**
1354
-	     * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1355
-	     * @since 1.17
1356
-	     * @since 1.20 Added third param
1357
-	     * @param mixed $field_value field value used to populate the input
1358
-	     * @param GF_Field $field Gravity Forms field object
1359
-	     * @param GravityView_Edit_Entry_Render $this Current object
1360
-	     */
1361
-	    $field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1343
+		/**
1344
+		 * @filter `gravityview/edit_entry/field_value` Change the value of an Edit Entry field, if needed
1345
+		 * @since 1.11
1346
+		 * @since 1.20 Added third param
1347
+		 * @param mixed $field_value field value used to populate the input
1348
+		 * @param object $field Gravity Forms field object ( Class GF_Field )
1349
+		 * @param GravityView_Edit_Entry_Render $this Current object
1350
+		 */
1351
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value', $field_value, $field, $this );
1352
+
1353
+		/**
1354
+		 * @filter `gravityview/edit_entry/field_value_{field_type}` Change the value of an Edit Entry field for a specific field type
1355
+		 * @since 1.17
1356
+		 * @since 1.20 Added third param
1357
+		 * @param mixed $field_value field value used to populate the input
1358
+		 * @param GF_Field $field Gravity Forms field object
1359
+		 * @param GravityView_Edit_Entry_Render $this Current object
1360
+		 */
1361
+		$field_value = apply_filters( 'gravityview/edit_entry/field_value_' . $field->type , $field_value, $field, $this );
1362 1362
 
1363 1363
 		return $field_value;
1364 1364
 	}
@@ -1385,7 +1385,7 @@  discard block
 block discarded – undo
1385 1385
 			// This is because we're doing admin form pretending to be front-end, so Gravity Forms
1386 1386
 			// expects certain field array items to be set.
1387 1387
 			foreach ( array( 'noDuplicates', 'adminOnly', 'inputType', 'isRequired', 'enablePrice', 'inputs', 'allowedExtensions' ) as $key ) {
1388
-	            $field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1388
+				$field->{$key} = isset( $field->{$key} ) ? $field->{$key} : NULL;
1389 1389
 			}
1390 1390
 
1391 1391
 			switch( RGFormsModel::get_input_type( $field ) ) {
@@ -1399,61 +1399,61 @@  discard block
 block discarded – undo
1399 1399
 				 */
1400 1400
 				case 'fileupload':
1401 1401
 
1402
-				    // Set the previous value
1403
-				    $entry = $this->get_entry();
1402
+					// Set the previous value
1403
+					$entry = $this->get_entry();
1404 1404
 
1405
-				    $input_name = 'input_'.$field->id;
1406
-				    $form_id = $form['id'];
1405
+					$input_name = 'input_'.$field->id;
1406
+					$form_id = $form['id'];
1407 1407
 
1408
-				    $value = NULL;
1408
+					$value = NULL;
1409 1409
 
1410
-				    // Use the previous entry value as the default.
1411
-				    if( isset( $entry[ $field->id ] ) ) {
1412
-				        $value = $entry[ $field->id ];
1413
-				    }
1410
+					// Use the previous entry value as the default.
1411
+					if( isset( $entry[ $field->id ] ) ) {
1412
+						$value = $entry[ $field->id ];
1413
+					}
1414 1414
 
1415
-				    // If this is a single upload file
1416
-				    if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1417
-				        $file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1418
-				        $value = $file_path['url'];
1415
+					// If this is a single upload file
1416
+					if( !empty( $_FILES[ $input_name ] ) && !empty( $_FILES[ $input_name ]['name'] ) ) {
1417
+						$file_path = GFFormsModel::get_file_upload_path( $form['id'], $_FILES[ $input_name ]['name'] );
1418
+						$value = $file_path['url'];
1419 1419
 
1420
-				    } else {
1420
+					} else {
1421 1421
 
1422
-				        // Fix PHP warning on line 1498 of form_display.php for post_image fields
1423
-				        // Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1424
-				        $_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1422
+						// Fix PHP warning on line 1498 of form_display.php for post_image fields
1423
+						// Fix PHP Notice:  Undefined index:  size in form_display.php on line 1511
1424
+						$_FILES[ $input_name ] = array('name' => '', 'size' => '' );
1425 1425
 
1426
-				    }
1426
+					}
1427 1427
 
1428
-				    if ( \GV\Utils::get( $field, "multipleFiles" ) ) {
1428
+					if ( \GV\Utils::get( $field, "multipleFiles" ) ) {
1429 1429
 
1430
-				        // If there are fresh uploads, process and merge them.
1431
-				        // Otherwise, use the passed values, which should be json-encoded array of URLs
1432
-				        if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1433
-				            $value = empty( $value ) ? '[]' : $value;
1434
-				            $value = stripslashes_deep( $value );
1435
-				            $value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1436
-				        }
1430
+						// If there are fresh uploads, process and merge them.
1431
+						// Otherwise, use the passed values, which should be json-encoded array of URLs
1432
+						if( isset( GFFormsModel::$uploaded_files[$form_id][$input_name] ) ) {
1433
+							$value = empty( $value ) ? '[]' : $value;
1434
+							$value = stripslashes_deep( $value );
1435
+							$value = GFFormsModel::prepare_value( $form, $field, $value, $input_name, $entry['id'], array());
1436
+						}
1437 1437
 
1438
-				    } else {
1438
+					} else {
1439 1439
 
1440
-				        // A file already exists when editing an entry
1441
-				        // We set this to solve issue when file upload fields are required.
1442
-				        GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1440
+						// A file already exists when editing an entry
1441
+						// We set this to solve issue when file upload fields are required.
1442
+						GFFormsModel::$uploaded_files[ $form_id ][ $input_name ] = $value;
1443 1443
 
1444
-				    }
1444
+					}
1445 1445
 
1446
-				    $this->entry[ $input_name ] = $value;
1447
-				    $_POST[ $input_name ] = $value;
1446
+					$this->entry[ $input_name ] = $value;
1447
+					$_POST[ $input_name ] = $value;
1448 1448
 
1449
-				    break;
1449
+					break;
1450 1450
 
1451 1451
 				case 'number':
1452
-				    // Fix "undefined index" issue at line 1286 in form_display.php
1453
-				    if( !isset( $_POST['input_'.$field->id ] ) ) {
1454
-				        $_POST['input_'.$field->id ] = NULL;
1455
-				    }
1456
-				    break;
1452
+					// Fix "undefined index" issue at line 1286 in form_display.php
1453
+					if( !isset( $_POST['input_'.$field->id ] ) ) {
1454
+						$_POST['input_'.$field->id ] = NULL;
1455
+					}
1456
+					break;
1457 1457
 			}
1458 1458
 
1459 1459
 		}
@@ -1538,43 +1538,43 @@  discard block
 block discarded – undo
1538 1538
 				case 'fileupload' :
1539 1539
 				case 'post_image':
1540 1540
 
1541
-				    // in case nothing is uploaded but there are already files saved
1542
-				    if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1543
-				        $field->failed_validation = false;
1544
-				        unset( $field->validation_message );
1545
-				    }
1541
+					// in case nothing is uploaded but there are already files saved
1542
+					if( !empty( $field->failed_validation ) && !empty( $field->isRequired ) && !empty( $value ) ) {
1543
+						$field->failed_validation = false;
1544
+						unset( $field->validation_message );
1545
+					}
1546 1546
 
1547
-				    // validate if multi file upload reached max number of files [maxFiles] => 2
1548
-				    if( \GV\Utils::get( $field, 'maxFiles') && \GV\Utils::get( $field, 'multipleFiles') ) {
1547
+					// validate if multi file upload reached max number of files [maxFiles] => 2
1548
+					if( \GV\Utils::get( $field, 'maxFiles') && \GV\Utils::get( $field, 'multipleFiles') ) {
1549 1549
 
1550
-				        $input_name = 'input_' . $field->id;
1551
-				        //uploaded
1552
-				        $file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1550
+						$input_name = 'input_' . $field->id;
1551
+						//uploaded
1552
+						$file_names = isset( GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] ) ? GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ][ $input_name ] : array();
1553 1553
 
1554
-				        //existent
1555
-				        $entry = $this->get_entry();
1556
-				        $value = NULL;
1557
-				        if( isset( $entry[ $field->id ] ) ) {
1558
-				            $value = json_decode( $entry[ $field->id ], true );
1559
-				        }
1554
+						//existent
1555
+						$entry = $this->get_entry();
1556
+						$value = NULL;
1557
+						if( isset( $entry[ $field->id ] ) ) {
1558
+							$value = json_decode( $entry[ $field->id ], true );
1559
+						}
1560 1560
 
1561
-				        // count uploaded files and existent entry files
1562
-				        $count_files = ( is_array( $file_names ) ? count( $file_names ) : 0 ) +
1563
-						               ( is_array( $value ) ? count( $value ) : 0 );
1561
+						// count uploaded files and existent entry files
1562
+						$count_files = ( is_array( $file_names ) ? count( $file_names ) : 0 ) +
1563
+									   ( is_array( $value ) ? count( $value ) : 0 );
1564 1564
 
1565
-				        if( $count_files > $field->maxFiles ) {
1566
-				            $field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1567
-				            $field->failed_validation = 1;
1568
-				            $gv_valid = false;
1565
+						if( $count_files > $field->maxFiles ) {
1566
+							$field->validation_message = __( 'Maximum number of files reached', 'gravityview' );
1567
+							$field->failed_validation = 1;
1568
+							$gv_valid = false;
1569 1569
 
1570
-				            // in case of error make sure the newest upload files are removed from the upload input
1571
-				            GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1572
-				        }
1570
+							// in case of error make sure the newest upload files are removed from the upload input
1571
+							GFFormsModel::$uploaded_files[ $validation_results['form']['id'] ] = null;
1572
+						}
1573 1573
 
1574
-				    }
1574
+					}
1575 1575
 
1576 1576
 
1577
-				    break;
1577
+					break;
1578 1578
 
1579 1579
 			}
1580 1580
 
@@ -1585,47 +1585,47 @@  discard block
 block discarded – undo
1585 1585
 
1586 1586
 				switch ( $field_type ) {
1587 1587
 
1588
-				    // Captchas don't need to be re-entered.
1589
-				    case 'captcha':
1588
+					// Captchas don't need to be re-entered.
1589
+					case 'captcha':
1590 1590
 
1591
-				        // Post Image fields aren't editable, so we un-fail them.
1592
-				    case 'post_image':
1593
-				        $field->failed_validation = false;
1594
-				        unset( $field->validation_message );
1595
-				        break;
1591
+						// Post Image fields aren't editable, so we un-fail them.
1592
+					case 'post_image':
1593
+						$field->failed_validation = false;
1594
+						unset( $field->validation_message );
1595
+						break;
1596 1596
 
1597 1597
 				}
1598 1598
 
1599 1599
 				// You can't continue inside a switch, so we do it after.
1600 1600
 				if( empty( $field->failed_validation ) ) {
1601
-				    continue;
1601
+					continue;
1602 1602
 				}
1603 1603
 
1604 1604
 				// checks if the No Duplicates option is not validating entry against itself, since
1605 1605
 				// we're editing a stored entry, it would also assume it's a duplicate.
1606 1606
 				if( !empty( $field->noDuplicates ) ) {
1607 1607
 
1608
-				    $entry = $this->get_entry();
1608
+					$entry = $this->get_entry();
1609 1609
 
1610
-				    // If the value of the entry is the same as the stored value
1611
-				    // Then we can assume it's not a duplicate, it's the same.
1612
-				    if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1613
-				        //if value submitted was not changed, then don't validate
1614
-				        $field->failed_validation = false;
1610
+					// If the value of the entry is the same as the stored value
1611
+					// Then we can assume it's not a duplicate, it's the same.
1612
+					if( !empty( $entry ) && $value == $entry[ $field->id ] ) {
1613
+						//if value submitted was not changed, then don't validate
1614
+						$field->failed_validation = false;
1615 1615
 
1616
-				        unset( $field->validation_message );
1616
+						unset( $field->validation_message );
1617 1617
 
1618
-				        gravityview()->log->debug( 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', array( 'data' => $entry ) );
1618
+						gravityview()->log->debug( 'GravityView_Edit_Entry[custom_validation] Field not a duplicate; it is the same entry.', array( 'data' => $entry ) );
1619 1619
 
1620
-				        continue;
1621
-				    }
1620
+						continue;
1621
+					}
1622 1622
 				}
1623 1623
 
1624 1624
 				// if here then probably we are facing the validation 'At least one field must be filled out'
1625 1625
 				if( GFFormDisplay::is_empty( $field, $this->form_id  ) && empty( $field->isRequired ) ) {
1626
-				    unset( $field->validation_message );
1627
-	                $field->validation_message = false;
1628
-				    continue;
1626
+					unset( $field->validation_message );
1627
+					$field->validation_message = false;
1628
+					continue;
1629 1629
 				}
1630 1630
 
1631 1631
 				$gv_valid = false;
@@ -1689,8 +1689,8 @@  discard block
 block discarded – undo
1689 1689
 		// Hide fields depending on admin settings
1690 1690
 		$fields = $this->filter_fields( $form['fields'], $edit_fields );
1691 1691
 
1692
-	    // If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1693
-	    $fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1692
+		// If Edit Entry fields are configured, remove adminOnly field settings. Otherwise, don't.
1693
+		$fields = $this->filter_admin_only_fields( $fields, $edit_fields, $form, $view_id );
1694 1694
 
1695 1695
 		/**
1696 1696
 		 * @filter `gravityview/edit_entry/form_fields` Modify the fields displayed in Edit Entry form
@@ -1765,11 +1765,11 @@  discard block
 block discarded – undo
1765 1765
 		// The edit tab has been configured, so we loop through to configured settings
1766 1766
 		foreach ( $configured_fields as $configured_field ) {
1767 1767
 
1768
-	        /** @var GF_Field $field */
1769
-	        foreach ( $fields as $field ) {
1768
+			/** @var GF_Field $field */
1769
+			foreach ( $fields as $field ) {
1770 1770
 				if( intval( $configured_field['id'] ) === intval( $field->id ) && $this->user_can_edit_field( $configured_field, false ) ) {
1771
-				    $edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1772
-				    break;
1771
+					$edit_fields[] = $this->merge_field_properties( $field, $configured_field );
1772
+					break;
1773 1773
 				}
1774 1774
 
1775 1775
 			}
@@ -1825,28 +1825,28 @@  discard block
 block discarded – undo
1825 1825
 	 */
1826 1826
 	private function filter_admin_only_fields( $fields = array(), $edit_fields = null, $form = array(), $view_id = 0 ) {
1827 1827
 
1828
-	    /**
1828
+		/**
1829 1829
 		 * @filter `gravityview/edit_entry/use_gf_admin_only_setting` When Edit tab isn't configured, should the Gravity Forms "Admin Only" field settings be used to control field display to non-admins? Default: true
1830
-	     * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1831
-	     * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1832
-	     * @since 1.9.1
1833
-	     * @param boolean $use_gf_adminonly_setting True: Hide field if set to Admin Only in GF and the user is not an admin. False: show field based on GV permissions, ignoring GF permissions.
1834
-	     * @param array $form GF Form array
1835
-	     * @param int $view_id View ID
1836
-	     */
1837
-	    $use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1838
-
1839
-	    if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1830
+		 * If the Edit Entry tab is not configured, adminOnly fields will not be shown to non-administrators.
1831
+		 * If the Edit Entry tab *is* configured, adminOnly fields will be shown to non-administrators, using the configured GV permissions
1832
+		 * @since 1.9.1
1833
+		 * @param boolean $use_gf_adminonly_setting True: Hide field if set to Admin Only in GF and the user is not an admin. False: show field based on GV permissions, ignoring GF permissions.
1834
+		 * @param array $form GF Form array
1835
+		 * @param int $view_id View ID
1836
+		 */
1837
+		$use_gf_adminonly_setting = apply_filters( 'gravityview/edit_entry/use_gf_admin_only_setting', empty( $edit_fields ), $form, $view_id );
1838
+
1839
+		if( $use_gf_adminonly_setting && false === GVCommon::has_cap( 'gravityforms_edit_entries', $this->entry['id'] ) ) {
1840 1840
 			foreach( $fields as $k => $field ) {
1841 1841
 				if( $field->adminOnly ) {
1842
-				    unset( $fields[ $k ] );
1842
+					unset( $fields[ $k ] );
1843 1843
 				}
1844 1844
 			}
1845 1845
 			return array_values( $fields );
1846 1846
 		}
1847 1847
 
1848
-	    foreach( $fields as &$field ) {
1849
-		    $field->adminOnly = false;
1848
+		foreach( $fields as &$field ) {
1849
+			$field->adminOnly = false;
1850 1850
 		}
1851 1851
 
1852 1852
 		return $fields;
@@ -1866,13 +1866,13 @@  discard block
 block discarded – undo
1866 1866
 	 */
1867 1867
 	private function unselect_default_values( $form ) {
1868 1868
 
1869
-	    foreach ( $form['fields'] as &$field ) {
1869
+		foreach ( $form['fields'] as &$field ) {
1870 1870
 
1871 1871
 			if ( empty( $field->choices ) ) {
1872
-                continue;
1872
+				continue;
1873 1873
 			}
1874 1874
 
1875
-            foreach ( $field->choices as &$choice ) {
1875
+			foreach ( $field->choices as &$choice ) {
1876 1876
 				if ( \GV\Utils::get( $choice, 'isSelected' ) ) {
1877 1877
 					$choice['isSelected'] = false;
1878 1878
 				}
@@ -1909,36 +1909,36 @@  discard block
 block discarded – undo
1909 1909
 
1910 1910
 			if( 'checkbox' === $field->type ) {
1911 1911
 				foreach ( $field->get_entry_inputs() as $key => $input ) {
1912
-				    $input_id = $input['id'];
1913
-				    $choice = $field->choices[ $key ];
1914
-				    $value = \GV\Utils::get( $this->entry, $input_id );
1915
-				    $match = RGFormsModel::choice_value_match( $field, $choice, $value );
1916
-				    if( $match ) {
1917
-				        $field->choices[ $key ]['isSelected'] = true;
1918
-				    }
1912
+					$input_id = $input['id'];
1913
+					$choice = $field->choices[ $key ];
1914
+					$value = \GV\Utils::get( $this->entry, $input_id );
1915
+					$match = RGFormsModel::choice_value_match( $field, $choice, $value );
1916
+					if( $match ) {
1917
+						$field->choices[ $key ]['isSelected'] = true;
1918
+					}
1919 1919
 				}
1920 1920
 			} else {
1921 1921
 
1922 1922
 				// We need to run through each field to set the default values
1923 1923
 				foreach ( $this->entry as $field_id => $field_value ) {
1924 1924
 
1925
-				    if( floatval( $field_id ) === floatval( $field->id ) ) {
1925
+					if( floatval( $field_id ) === floatval( $field->id ) ) {
1926 1926
 
1927
-				        if( 'list' === $field->type ) {
1928
-				            $list_rows = maybe_unserialize( $field_value );
1927
+						if( 'list' === $field->type ) {
1928
+							$list_rows = maybe_unserialize( $field_value );
1929 1929
 
1930
-				            $list_field_value = array();
1931
-				            foreach ( (array) $list_rows as $row ) {
1932
-				                foreach ( (array) $row as $column ) {
1933
-				                    $list_field_value[] = $column;
1934
-				                }
1935
-				            }
1930
+							$list_field_value = array();
1931
+							foreach ( (array) $list_rows as $row ) {
1932
+								foreach ( (array) $row as $column ) {
1933
+									$list_field_value[] = $column;
1934
+								}
1935
+							}
1936 1936
 
1937
-				            $field->defaultValue = serialize( $list_field_value );
1938
-				        } else {
1939
-				            $field->defaultValue = $field_value;
1940
-				        }
1941
-				    }
1937
+							$field->defaultValue = serialize( $list_field_value );
1938
+						} else {
1939
+							$field->defaultValue = $field_value;
1940
+						}
1941
+					}
1942 1942
 				}
1943 1943
 			}
1944 1944
 		}
@@ -1999,7 +1999,7 @@  discard block
 block discarded – undo
1999 1999
 			foreach ( $form['fields'] as &$field ) {
2000 2000
 				foreach ( $remove_conditions_rule as $_remove_conditions_r ) {
2001 2001
 
2002
-				    list( $rule_field_id, $rule_i ) = $_remove_conditions_r;
2002
+					list( $rule_field_id, $rule_i ) = $_remove_conditions_r;
2003 2003
 
2004 2004
 					if ( $field['id'] == $rule_field_id ) {
2005 2005
 						unset( $field->conditionalLogic['rules'][ $rule_i ] );
@@ -2050,7 +2050,7 @@  discard block
 block discarded – undo
2050 2050
 			return $has_conditional_logic;
2051 2051
 		}
2052 2052
 
2053
-	    /** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
2053
+		/** @see GravityView_Edit_Entry_Render::filter_conditional_logic for filter documentation */
2054 2054
 		return apply_filters( 'gravityview/edit_entry/conditional_logic', $has_conditional_logic, $form );
2055 2055
 	}
2056 2056
 
@@ -2117,14 +2117,14 @@  discard block
 block discarded – undo
2117 2117
 
2118 2118
 		if( $echo && $error !== true ) {
2119 2119
 
2120
-	        $error = esc_html( $error );
2120
+			$error = esc_html( $error );
2121 2121
 
2122
-	        /**
2123
-	         * @since 1.9
2124
-	         */
2125
-	        if ( ! empty( $this->entry ) ) {
2126
-		        $error .= ' ' . gravityview_get_link( '#', _x('Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) );
2127
-	        }
2122
+			/**
2123
+			 * @since 1.9
2124
+			 */
2125
+			if ( ! empty( $this->entry ) ) {
2126
+				$error .= ' ' . gravityview_get_link( '#', _x('Go back.', 'Link shown when invalid Edit Entry link is clicked', 'gravityview' ), array( 'onclick' => "window.history.go(-1); return false;" ) );
2127
+			}
2128 2128
 
2129 2129
 			echo GVCommon::generate_notice( wpautop( $error ), 'gv-error error');
2130 2130
 		}
Please login to merge, or discard this patch.