how to show the info message in cart for reordered item before and after review

we need to add this code in the required extension based on the record status we need to show the message.
_.extend(CartLinesView.prototype, {
      initialize: _.wrap(CartLinesView.prototype.initialize, function (fn) {
        var self = this;
        pdfObj = {};
        fn.apply(this, _.toArray(arguments).slice(1));
        this.on('afterViewRender', function () {
          _.defer(() => {
            if ($('.cart-summary-button-container .info-message-holder').length === 0) {
              $('.cart-summary-button-container').prepend('<div class="info-message-holder"></div>')
            }
            _.each(self.model.get('options').models, option => {
              const isReordered = option.get('cartOptionId') === "custcol_ag_isreordered" && option.get('value') && option.get('value').internalid === "T";
              const reviewed = _.find(self.model.get('options').models, opt=>opt.get('cartOptionId') === "custcol_ag_is_reviewed");
              if (isReordered && reviewed.get('value').internalid === 'F') {
                $('.cart-summary-button-proceed-checkout').addClass("disabled");
                $('.cart-summary-button-container .info-message-holder').html("");
                $('.cart-summary-button-container .info-message-holder').append( new GlobalViewsMessageView({
                  message: 'Cart contains the reordered items. Please review them before proceeding to checkout.',
                  type: 'error',
                  closable: false
              }).render().$el.html())
              }
            })
          })
          const layout = container.getLayout();
          if (!jQuery.contains(document.documentElement, this.$el[0])) {
            layout.once("afterAppendView", self.showPdf, self);
          } else {
            self.showPdf();
          }
          cart.on("afterUpdateLine", function (line) {
            self.showPdf();
          });
        });
      }),
      showPdf: function (getline) {
        var isLogo = this.model.get('logoName');
        if (!_.isEmpty(getline) && _.isString(getline)) {
        var urllabel = this.model.get("logoUrl");
        var namelabel = this.model.get("logoName");
        var acceptedFormats = ['jpg', 'jpeg', 'png', 'pdf', 'eps'];
        var fileExtension ;
        if ( namelabel && typeof namelabel === "string" ){
            fileExtension = namelabel.split('.').pop().toLowerCase();
        }
        _.defer(() => {
          var reviewUrl=  Utils.addParamsToUrl(this.model.generateURL(), {
            source: 'cart',
            internalid: this.model.get('internalid')
          })
          var flag;
          var isReordered = _.find(this.model.get('options').models, option => option.get('cartOptionId') === "custcol_ag_isreordered" && option.get('value') && option.get('value').internalid === "T");
          var isReview = _.find(this.model.get('options').models, option => option.get('cartOptionId') === "custcol_ag_is_reviewed" && option.get('value') && option.get('value').internalid === "T");
          if (isReview) {
          var selector = "#" + getline + " .cart-lines-table-middle";
          if ($(selector).find('.reorder-warning').length === 0) {
                  $(selector).append(new GlobalViewsMessageView({
                      message: '<div class="reorder-warning"><p><span class="Review-Message">This item is reviewed.</span></p></div>',
                      type: 'info',
                      closable: false
                  }).render().$el.html());
                $(`${selector} #custcol_ag_startingnumber.transaction-line-views-selected-option span.transaction-line-views-selected-option-label, span#custcol_ag_startingnumber`).css("color", 'red');
                flag = false;
              }
          }
          if (isReordered) {
          var selector = "#" + getline + " .cart-lines-table-middle";
          if ($(selector).find('.reorder-warning').length === 0) {
                  $(selector).append(new GlobalViewsMessageView({
                      message: '<div class="reorder-warning"><p><span class="Edit-Option">The item is reordered. Please review before proceeding to checkout.<a class="Review-Button" href="' +
                      reviewUrl + '" data-toggle="show-in-modal"> Review Now</a></span></p></div>',
                      type: 'error',
                      closable: false
                  }).render().$el.html());
                $(`${selector} #custcol_ag_startingnumber.transaction-line-views-selected-option span.transaction-line-views-selected-option-label, span#custcol_ag_startingnumber`).css("color", 'red');
                flag = false;
              }
          }
        })
        if (namelabel || urllabel && namelabel) {
          _.defer(function () {
            var selector = "#" + getline + " .transaction-line-views-options-selected-content";
            if (!$(selector).find('.Logo-uploaded').length) {
                '<div><p><span class="Logo-uploaded">Logo Uploaded: <a href="' +
                urllabel +
                '" target="_blank" class="trimmedUploaded">' +
                namelabel +
                "</a></span></p></div>"
              if (fileExtension && !acceptedFormats.includes(fileExtension)){
              var fileFormat = "#" + getline + " .Logo Uploaded";
                  $(fileFormat).append(new GlobalViewsMessageView({
                    message: '<div><p><span class="Edit-Option">Please upload a file with ( jpg, jpeg, png, pdf, eps ) formats only.</span></p></div>',
                    type: 'error',
                    closable: false
                }).render().$el.html());
            }
            }
          });
        }
        } else {
          if (this.model) {
            var linId = this.model.get("internalid");
            console.log('linId', linId);
            if (!pdfObj[linId] && this.model.get("personaPdfurl")) {
              $(
                "#" +
                linId +
                " .cart-item-actions-item-list-actionable-edit-button-edit"
              ).after(
                '<a href="' +
                this.model.get("personaPdfurl") +
                '" id="viewpdf" target="_blank" class="cart-item-actions-item-list-actionable-edit-button-edit-pdf' +
                linId +
                '"> View PDF </a>'
              );
              pdfObj[linId] = true;
            }
            if (
              !logoObj[linId] &&
              this.model.get("logoUrl") &&
              this.model.get("logoUrl")&&
              isLogo 
            ) {
              // START To show the logo image with url
    
              var urllabel = this.model.get("logoUrl");
              var namelabel = this.model.get("logoName");
              var selector = "#" + linId + " .transaction-line-views-options-selected-content";
    
              if (!$(selector).find('.Logo-uploaded').length) {
                $(selector).append(
                  '<div><p><span class="Logo-uploaded">Logo Uploaded: <a href="' +
                  urllabel +
                  '" target="_blank" class="trimmedUploaded">' +
                  namelabel +
                  "</a></span></p></div>"
                );
              }
              logoObj[linId] = true;
              //// END
            }
          }
        }
      },
      getContext: _.wrap(CartLinesView.prototype.getContext, function (fn) {
        var original_Ret = fn.apply(this, _.toArray(arguments).slice(1));
        var options = this.model.get("options").models;
        var pdppersonalization = _.filter(options, function (list) {
          return (
            list.get("cartOptionId") == "custcol_ag_havepersonalization"
          );
        });
        var orginalThumbnail = this.model.getThumbnail();
        var havepersonalization = pdppersonalization[0]
          ? pdppersonalization[0].get("value").internalid
          : false;
        original_Ret.thumbnail =
          havepersonalization == "T"
            ? {
              url: this.model.get("personaImgurl"),
              altimagetext: orginalThumbnail.altimagetext,
            }
            : orginalThumbnail;
        original_Ret.personaPdfurl =
          havepersonalization == "T" ? this.model.get("personaPdfurl") : "";
        var newLine = original_Ret.line.get("internalid");
        this.showPdf(newLine);
        return original_Ret;
      }),
    });

Leave a comment

Your email address will not be published. Required fields are marked *