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;
}),
});