diff --git a/projects/plugins/crm/.phan/baseline.php b/projects/plugins/crm/.phan/baseline.php index 84f97ffcf947..d6008f300875 100644 --- a/projects/plugins/crm/.phan/baseline.php +++ b/projects/plugins/crm/.phan/baseline.php @@ -11,12 +11,12 @@ // # Issue statistics: // PhanUndeclaredVariable : 930+ occurrences // PhanTypeArraySuspiciousNullable : 550+ occurrences - // PhanRedundantCondition : 400+ occurrences + // PhanRedundantCondition : 410+ occurrences // PhanTypeMismatchReturn : 330+ occurrences // PhanUnextractableAnnotationElementName : 200+ occurrences - // PhanTypeMismatchArgument : 160+ occurrences // PhanPossiblyUndeclaredVariable : 150+ occurrences // PhanPluginUnreachableCode : 140+ occurrences + // PhanTypeMismatchArgument : 140+ occurrences // PhanTypePossiblyInvalidDimOffset : 120+ occurrences // PhanTypeMismatchReturnProbablyReal : 110+ occurrences // PhanSuspiciousValueComparison : 100+ occurrences @@ -185,8 +185,8 @@ 'includes/ZeroBSCRM.DAL3.php' => ['PhanAccessMethodPrivate', 'PhanCommentParamWithoutRealParam', 'PhanPluginDuplicateConditionalNullCoalescing', 'PhanPluginDuplicateExpressionAssignmentOperation', 'PhanPluginRedundantAssignment', 'PhanPluginUnreachableCode', 'PhanPossiblyUndeclaredVariable', 'PhanRedundantCondition', 'PhanSuspiciousValueComparison', 'PhanSuspiciousWeakTypeComparison', 'PhanSuspiciousWeakTypeComparisonInLoop', 'PhanTypeArraySuspiciousNull', 'PhanTypeArraySuspiciousNullable', 'PhanTypeComparisonFromArray', 'PhanTypeExpectedObjectPropAccess', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal', 'PhanTypeMismatchArgumentInternalReal', 'PhanTypeMismatchArgumentProbablyReal', 'PhanTypeMismatchDefault', 'PhanTypeMismatchForeach', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanTypePossiblyInvalidDimOffset', 'PhanUndeclaredMethod', 'PhanUndeclaredTypeParameter', 'PhanUndeclaredTypeReturnType', 'PhanUndeclaredVariable', 'PhanUnextractableAnnotationElementName', 'PhanUnextractableAnnotationSuffix'], 'includes/ZeroBSCRM.DataIOValidation.php' => ['PhanTypeMismatchArgument'], 'includes/ZeroBSCRM.Database.php' => ['PhanRedundantCondition', 'PhanSuspiciousValueComparison'], - 'includes/ZeroBSCRM.Delete.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal'], - 'includes/ZeroBSCRM.Edit.php' => ['PhanTypeArraySuspiciousNullable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentInternal'], + 'includes/ZeroBSCRM.Delete.php' => ['PhanTypeMismatchArgument'], + 'includes/ZeroBSCRM.Edit.php' => ['PhanTypeArraySuspiciousNullable', 'PhanTypeMismatchArgument'], 'includes/ZeroBSCRM.Encryption.php' => ['PhanUndeclaredConstant'], 'includes/ZeroBSCRM.ExternalSources.php' => ['PhanPluginMixedKeyNoKey', 'PhanPluginUnreachableCode', 'PhanTypeArraySuspiciousNullable'], 'includes/ZeroBSCRM.FileUploads.php' => ['PhanTypeMismatchDimFetch'], @@ -221,7 +221,7 @@ 'includes/ZeroBSCRM.ScreenOptions.php' => ['PhanRedundantCondition', 'PhanSuspiciousValueComparison'], 'includes/ZeroBSCRM.SemanticUIHelpers.php' => ['PhanPluginUnreachableCode'], 'includes/ZeroBSCRM.Social.php' => ['PhanMisspelledAnnotation', 'PhanTypeArraySuspiciousNullable', 'PhanTypeSuspiciousStringExpression'], - 'includes/ZeroBSCRM.TagManager.php' => ['PhanEmptyForeach', 'PhanRedundantCondition', 'PhanTypeMismatchArgument', 'PhanUndeclaredProperty'], + 'includes/ZeroBSCRM.TagManager.php' => ['PhanEmptyForeach', 'PhanRedundantCondition', 'PhanUndeclaredProperty'], 'includes/class-encryption.php' => ['PhanTypeMismatchArgumentInternal'], 'includes/class-learn-menu.php' => ['PhanPluginDuplicateExpressionBinaryOp', 'PhanRedundantCondition', 'PhanTypeInvalidDimOffset', 'PhanTypeMismatchDefault'], 'includes/class-oauth-handler.php' => ['PhanTypeArraySuspicious', 'PhanTypeMismatchReturn', 'PhanTypeMismatchReturnProbablyReal', 'PhanTypePossiblyInvalidDimOffset', 'PhanUndeclaredClassCatch', 'PhanUndeclaredClassMethod', 'PhanUndeclaredTypeReturnType', 'PhanUndeclaredVariable'], diff --git a/projects/plugins/crm/admin/company/view.page.php b/projects/plugins/crm/admin/company/view.page.php index e42a9e378dd9..a50acea3ba95 100644 --- a/projects/plugins/crm/admin/company/view.page.php +++ b/projects/plugins/crm/admin/company/view.page.php @@ -939,14 +939,13 @@ function jpcrm_render_company_view_page( $id = -1 ) { diff --git a/projects/plugins/crm/admin/contact/view.page.php b/projects/plugins/crm/admin/contact/view.page.php index 16a1ea5069fc..e34ef67d6d53 100644 --- a/projects/plugins/crm/admin/contact/view.page.php +++ b/projects/plugins/crm/admin/contact/view.page.php @@ -1365,14 +1365,14 @@ function jpcrm_render_contact_view_page( $id = -1 ) { diff --git a/projects/plugins/crm/admin/settings/field-sorts.page.php b/projects/plugins/crm/admin/settings/field-sorts.page.php index 2ddfd1d9a4e5..1eb224102956 100644 --- a/projects/plugins/crm/admin/settings/field-sorts.page.php +++ b/projects/plugins/crm/admin/settings/field-sorts.page.php @@ -323,16 +323,7 @@ + " /> - + __( 'Today', 'zero-bs-crm' ) ), + is_array( $this->langLabels ) ? $this->langLabels : array(), + ); + ?> - ; + var zbsObjectEditLinkPrefixCustomer = ; + var zbsObjectViewLinkPrefixCompany = ; + var zbsListViewLink = listViewSlug ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>; + var zbsClick2CallType = ; + var zbsEditViewLangLabels = ; + var zbscrmjs_secToken = ; + + + __( 'General Error', 'zero-bs-crm' ), + 'generalerror' => __( 'There was a general error.', 'zero-bs-crm' ), + 'currentlyInSegment' => __( 'Contacts currently match these conditions.', 'zero-bs-crm' ), + 'previewTitle' => __( 'Contacts Preview (randomised)', 'zero-bs-crm' ), + 'noName' => __( 'Unnamed Contact', 'zero-bs-crm' ), + 'noEmail' => __( 'No Email', 'zero-bs-crm' ), + 'notags' => __( 'No Tags Found', 'zero-bs-crm' ), + 'nostatuses' => __( 'No Statuses Found', 'zero-bs-crm' ), + 'noextsources' => __( 'No External Sources Found', 'zero-bs-crm' ), + 'no_mailpoet_statuses' => __( 'No MailPoet Statuses Found', 'zero-bs-crm' ), + 'nosegmentid' => __( 'No Segment ID Found.', 'zero-bs-crm' ), + 'to' => __( 'to', 'zero-bs-crm' ), + 'eg' => __( 'e.g.', 'zero-bs-crm' ), + 'saveSegment' => __( 'Save Segment', 'zero-bs-crm' ) . ' ', + 'savedSegment' => __( 'Segment Saved', 'zero-bs-crm' ) . ' ', + 'contactfields' => '=== ' . __( 'Contact Fields', 'zero-bs-crm' ) . ' ===', + 'default_description' => __( 'Condition which selects contacts based on given value', 'zero-bs-crm' ), + ); + ?> - ; + var zbsEditViewLangLabels = ; + var zbscrmjs_secToken = ; + + - - // General options for listview - var zbsListViewSettings = ; - - // Vars for zbs list view drawer - var zbsListViewParams = ; - - var zbsSortables = [ - sortables ) > 0 ) { - foreach ( $this->sortables as $sortableStr ) { - - if ( $c > 0 ) { - echo ','; - } - - echo "'" . esc_html( $sortableStr ) . "'"; - - ++$c; - - } - } - - ?> - ]; // for v2.2 this is only lot that will show sort, until we redo db this'll be hard - var zbsBulkActions = [ - bulkActions ) > 0 ) { - foreach ( $this->bulkActions as $bulkActionStr ) { - - if ( $bulkCount > 0 ) { - echo ','; - } - - echo "'" . esc_html( $bulkActionStr ) . "'"; - - ++$bulkCount; - - } - } - ?> - ]; // :D - var zbsListViewData = []; var zbsListViewCount = 0; - var zbsDrawListViewBlocker = false; - var zbsDrawListViewAJAXBlocker = false; - var zbsDrawListViewColUpdateBlocker = false; - var zbsDrawListViewColUpdateAJAXBlocker = false; - - var zbsObjectEmailLinkPrefix = ''; - var zbsObjectViewLinkPrefixCustomer = ''; - var zbsObjectViewLinkPrefixCompany = ''; - var zbsObjectViewLinkPrefixQuote = ''; - var zbsObjectViewLinkPrefixInvoice = ''; - var zbsObjectViewLinkPrefixTransaction = ''; - var zbsObjectViewLinkPrefixForm = ''; - var zbsObjectViewLinkPrefixSegment = ''; - var zbsObjectViewLinkPrefixTask = ''; - - var zbsObjectEditLinkPrefixCustomer = ''; - var zbsObjectEditLinkPrefixCompany = ''; - var zbsObjectEditLinkPrefixQuote = ''; - var zbsObjectEditLinkPrefixQuoteTemplate = ''; - var zbsObjectEditLinkPrefixInvoice = ''; - var zbsObjectEditLinkPrefixTransaction = ''; - var zbsObjectEditLinkPrefixForm = ''; - var zbsObjectEditLinkPrefixSegment = ''; - - var jpcrm_segment_export_url_prefix = 'slugs['export-tools'] . '&segment-id=' ); ?>'; - - var zbsListViewLink = 'postPage ) ); /* phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase */ ?>'; - var zbsExportPostURL = 'slugs['export-tools'] ) ); ?>'; - var zbsTagSkipLinkPrefix = zbsListViewLink + '&zbs_tag='; - var zbsListViewObjName = 'postType ) { - case 'zerobs_customer': - zeroBSCRM_slashOut( __( 'Contact', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Contact', 'zero-bs-crm' ); break; - case 'zerobs_company': - zeroBSCRM_slashOut( jpcrm_label_company() ); + $zbs_list_view_obj_name = jpcrm_label_company(); break; - case 'zerobs_quote': - zeroBSCRM_slashOut( __( 'Quote', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Quote', 'zero-bs-crm' ); break; - case 'zerobs_invoice': - zeroBSCRM_slashOut( __( 'Invoice', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Invoice', 'zero-bs-crm' ); break; - case 'zerobs_transaction': - zeroBSCRM_slashOut( __( 'Transaction', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Transaction', 'zero-bs-crm' ); break; - case 'zerobs_form': - zeroBSCRM_slashOut( __( 'Form', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Form', 'zero-bs-crm' ); break; - case 'zerobs_quotetemplate': - zeroBSCRM_slashOut( __( 'Quote Template', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Quote Template', 'zero-bs-crm' ); break; - default: - zeroBSCRM_slashOut( __( 'Item', 'zero-bs-crm' ) ); + $zbs_list_view_obj_name = __( 'Item', 'zero-bs-crm' ); break; - } - ?>'; - var zbsClick2CallType = parseInt(''); + ?> + + // General options for listview + var zbsListViewSettings = ; + + // Vars for zbs list view drawer + var zbsListViewParams = ; + + var zbsSortables = sortables, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>; // for v2.2 this is only lot that will show sort, until we redo db this'll be hard + var zbsBulkActions = bulkActions, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>; // :D + var zbsListViewData = []; var zbsListViewCount = 0; + var zbsDrawListViewBlocker = false; + var zbsDrawListViewAJAXBlocker = false; + var zbsDrawListViewColUpdateBlocker = false; + var zbsDrawListViewColUpdateAJAXBlocker = false; + + var zbsObjectEmailLinkPrefix = ; /* this assumes is contact for now, just sends to prefill - perhaps later add mailto: optional (wh wants lol) */ + var zbsObjectViewLinkPrefixCustomer = ; + var zbsObjectViewLinkPrefixCompany = ; + var zbsObjectViewLinkPrefixQuote = ; + var zbsObjectViewLinkPrefixInvoice = ; + var zbsObjectViewLinkPrefixTransaction = ; + var zbsObjectViewLinkPrefixForm = ; + var zbsObjectViewLinkPrefixSegment = ; + var zbsObjectViewLinkPrefixTask = ; + + var zbsObjectEditLinkPrefixCustomer = ; + var zbsObjectEditLinkPrefixCompany = ; + var zbsObjectEditLinkPrefixQuote = ; + var zbsObjectEditLinkPrefixQuoteTemplate = ; + var zbsObjectEditLinkPrefixInvoice = ; + var zbsObjectEditLinkPrefixTransaction = ; + var zbsObjectEditLinkPrefixForm = ; + var zbsObjectEditLinkPrefixSegment = ; + + var jpcrm_segment_export_url_prefix = slugs['export-tools'] . '&segment-id=' ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>; + + var zbsListViewLink = postPage ) ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); /* phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase */ ?>; + var zbsExportPostURL = slugs['export-tools'] ) ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>; + var zbsTagSkipLinkPrefix = zbsListViewLink + '&zbs_tag='; + var zbsClick2CallType = ; + var zbsListViewObjName = ; var zbsListViewLangLabels = ; - var zbsTagsForBulkActions = DAL->getTagsForObjType( // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - array( - 'objtypeid' => $this->objTypeID, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - 'withCount' => true, - 'excludeEmpty' => false, - 'ignoreowner' => true, - ) - ); + $tags = $zbs->DAL->getTagsForObjType( + array( + 'objtypeid' => $this->objTypeID, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + 'withCount' => true, + 'excludeEmpty' => false, + 'ignoreowner' => true, + ) + ); - // make simplified - $simple_tags = array(); - if ( is_array( $tags ) && count( $tags ) > 0 ) { - foreach ( $tags as $t ) { - $simple_tags[] = array( - 'id' => $t['id'], - 'name' => $t['name'], - 'slug' => $t['slug'], - ); - } + // make simplified + $simple_tags = array(); + if ( is_array( $tags ) ) { + foreach ( $tags as $t ) { + $simple_tags[] = array( + 'id' => $t['id'], + 'name' => $t['name'], + 'slug' => $t['slug'], + ); } - - $zbs_tags_for_bulk_actions = wp_json_encode( $simple_tags, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); - echo ( $zbs_tags_for_bulk_actions ? $zbs_tags_for_bulk_actions : '[]' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - - ?>; + } + ?> + var zbsTagsForBulkActions = ; var zbsListViewIcos = {}; + array( 'statuses' => $zbs_customer_statuses ), + 'owners' => $zbs_possible_owners, + ); + ?> // gives data used by inline editor - var zbsListViewInlineEdit = { - - // for now just put contacts in here - customer: { - statuses: - - }, - - owners: - - - }; + var zbsListViewInlineEdit = ; + var zbscrmjs_secToken = ; extraJS ) && ! empty( $this->extraJS ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase diff --git a/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Companies.php b/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Companies.php index fa91be8d4526..d58a7dab03a6 100644 --- a/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Companies.php +++ b/projects/plugins/crm/includes/ZeroBSCRM.MetaBoxes3.Companies.php @@ -128,7 +128,7 @@ public function html( $company, $metabox ) { $second_address_label = __( 'Second Address', 'zero-bs-crm' ); } ?> - + __( 'Error', 'zero-bs-crm' ), + 'unabletodelete' => __( 'Unable to delete this file.', 'zero-bs-crm' ), + ); + ?> +
@@ -158,7 +158,7 @@ function jpcrm_mailpoet_render_hub_page() {
diff --git a/projects/plugins/crm/modules/portal/endpoints/class-single-quote-endpoint.php b/projects/plugins/crm/modules/portal/endpoints/class-single-quote-endpoint.php index d1f558495398..03c16c91430a 100644 --- a/projects/plugins/crm/modules/portal/endpoints/class-single-quote-endpoint.php +++ b/projects/plugins/crm/modules/portal/endpoints/class-single-quote-endpoint.php @@ -104,13 +104,16 @@ function single_quote_html_output( $quote_id = -1, $quote_hash = '' ) {
+ (int) $quote_id, + 'quote_hash' => $quote_hash, + 'proposal_nonce' => wp_create_nonce( 'zbscrmquo-nonce' ), + 'ajax_url' => admin_url( 'admin-ajax.php' ), + ); + ?>
@@ -294,7 +294,7 @@ function jpcrm_woosync_render_hub_page() {