How to clear the values when user clicks on save as draft button in servicenow portal

Bala13
Kilo Guru

Hi,

We have an portal widget, and when user fills out the form in portal and they intended to click on Save as Draft button then what ever the values they have enetered on the form must be cleared off after they click on Save as Draft button. How can i acheive it?

PLease help me on this request.

 


(function() {
	

	var localInput = input; 
	var embeddedWidgetOptions = ['auto_redirect', 'requested_for_id', 'requested_for_display'];
	if(localInput.draft){
		createDraft($sp.getParameter("sys_id"));
	}
	if(localInput.checkDraft == 'true'){
	deleteDraft(gs.action.getGlideURI().getMap().get('sysparam_draft'));
		data.draft = '';
	}
	if (localInput && localInput.action == "from_attachment")
		return;

	
	else if (localInput && localInput.action === "order_item") {
		
		
		embeddedWidgetOptions.forEach(function (embeddedWidgetOption) {
			if (typeof localInput[embeddedWidgetOption] != 'undefined')
				options[embeddedWidgetOption] = localInput[embeddedWidgetOption];
		});
		data.orderItemModal = $sp.getWidget('widget-modal', {
			embeddedWidgetId: 'sc-checkout', 
			embeddedWidgetOptions: {
				cart: {name: localInput.cart}, 
				action: 'order_now', 
				item: localInput.itemDetails, 
																																requested_for: {id:options.requested_for_id, displayValue:options.requested_for_display},
																																auto_redirect: options.auto_redirect,
																																parentParams: localInput.workspaceParams,
																																native_mobile: options.native_mobile
			}, 
			backdrop: 'static', 
			keyboard: false, 
			size: 'md'
		});
		return;
	} else if (localInput && localInput.action == "order_wishlist_item") {
		
		embeddedWidgetOptions.forEach(function (embeddedWidgetOption) {
			if (typeof localInput[embeddedWidgetOption] != 'undefined')
				options[embeddedWidgetOption] = localInput[embeddedWidgetOption];
		});
		data.orderItemModal = $sp.getWidget('widget-modal', {
			embeddedWidgetId: 'sc-checkout', 
			embeddedWidgetOptions: {
				cart: {name: localInput.cart}, 
				action: 'order_now_wishlisted_item', 
				item: localInput.itemDetails, 
																																	requested_for: {id:options.requested_for_id, displayValue:options.requested_for_display},
																																	auto_redirect: options.auto_redirect,
																																	parentParams: localInput.workspaceParams,
																																	native_mobile: options.native_mobile
			}, 
			backdrop: 'static', 
			keyboard: false, 
			size: 'md'
		});
		return;
	} else if (localInput && localInput.action === 'log_request') {
		 $sp.logStat('Cat Item Request', localInput.itemDetails.sys_class_name, localInput.itemDetails.sys_id, localInput.itemDetails.name, $sp.getPortalRecord().getUniqueValue());
		 return;
	}
	
	var catalogID = $sp.getParameter("catalog_id") ? $sp.getParameter("catalog_id") + "" : "-1";
	data.sc_catalog_page = $sp.getDisplayValue("sc_catalog_page") || "sc_home";
	data.sc_category_page = $sp.getDisplayValue("sc_category_page") || "sc_category";
	var edit_parm = $sp.getParameter('edit');
	data.is_cart_item = edit_parm == 'cart';
	var clGenerator = new GlideChoiceList();
	var choiceListQuantity = clGenerator.getChoiceList("sc_cart_item", "quantity");
	var choicelistQuantityData = [];
	for (var i = 0; i < choiceListQuantity.size(); i++) {
		var choice = choiceListQuantity.get(i);
		if (!isNaN(choice.getValue()))
			choicelistQuantityData.push({value : parseInt(choice.getValue()), label : choice.getLabel()});
	}
	data.choiceListQuantity = choicelistQuantityData;
	data.quantity = choicelistQuantityData[0].value;
	
	if (options.table) {
		var tableGR = new GlideRecord("sys_db_object");
		options.table = (tableGR.get(options.table)) ? tableGR.getValue("name") : null;
	}
	options.url = options.url || "id={page}&is_new_order=true&table={table}&sys_id={sys_id}";
	
	data.showPrices = $sp.showCatalogPrices();
	var m = data.msgs = {};
	m.draftMsg = gs.getMessage("Save as Draft");
	m.submitMsg = gs.getMessage("Submit");
	m.requestMsg = gs.getMessage("Request");
	m.dialogOK = gs.getMessage("OK");
	
	
	m.renameSuccessMsg = gs.getMessage("Attachment added as successfully");
	m.deleteSuccessMsg = gs.getMessage("Attachment as deleted successfully");
	m.wishlistMsg = gs.getMessage('Wish List');
	m.cartMsg = gs.getMessage('Cart');
	
	m.wishlistUpdateMsg = gs.getMessage('Your Wish List has been updated.');
	m.wishlistAddMsg = gs.getMessage('Your item has been added to your Wish List.');
	m.cartAddMsg = gs.getMessage('Your item has been added to your Cart. To make changes to the items in your cart, click ');
	m.viewWishListMsg = gs.getMessage('View List');
	m.requestSubmitted = gs.getMessage("Thank you, your request has been submitted successfully.");
	data.maxAttachmentSize = parseInt(gs.getProperty("com.glide.attachment.max_size", 1024));
	if (isNaN(data.maxAttachmentSize))
		data.maxAttachmentSize = 24;
	m.largeAttachmentMsg = gs.getMessage("Attached files must be smaller than {0} - please try again", "" + data.maxAttachmentSize + "MB");
	
	m.notForMobileMsg = gs.getMessage('Not viewable in mobile');
	
	var cartName = data.is_cart_item ? 'DEFAULT' : 'saved_items';
	var cart = new sn_sc.CartJS(cartName);
	
	if (edit_parm) {
		var cart_item_id = $sp.getParameter("sys_id");
		var gr = new GlideRecord("sc_cart_item");
		if (!gr.get(cart_item_id) || gr.cart != cart.getCartID() ||
				(!new sn_sc.CatItem(gr.getValue('cat_item')).canView())) {
			data.recordFound = false;
			return;
		}
			
		data.showWishlist = data.is_wishlist_item;
		var catItemData = {};
		catItemData.sys_id = gr.getValue('cat_item');
		catItemData.cart_item_id = gr.getUniqueValue();
		
		if (!data.hideDeliveryTime)
		data.hideDeliveryTime = (options.hide_delivery_time == "true" || data.sc_cat_item.sys_class_name == 'sc_cat_item_producer' || data.sc_cat_item.sys_class_name == 'sc_cat_item_guide' || data.sc_cat_item.sys_class_name == 'std_change_record_producer');
		
		
		var values = getValues(cart_item_id);
		for(var f in data.sc_cat_item._fields) {
						var field = data.sc_cat_item._fields[f];
			if (typeof values[f] != "undefined" && typeof values[f].value != "undefined") {
				if (values[f].type == 9 || values[f].type == 10)
					field.value = values[f].displayValue;
				else if (values[f].type == 25)
					field.value = values[f].decrypted_value;
				else
					field.value = values[f].value;
				field.displayValue = values[f].displayValue;
				field.display_value_list = values[f].display_value_list;
			}
			updatePriceOnField(field);
				
		}
		data._generatedItemGUID = cart_item_id;
		data.quantity = '' + gr.quantity;
	} else {
	
		
		
		if (localInput)
			data.sys_id = localInput.sys_id;
		else if (options.sys_id)
			data.sys_id = options.sys_id;
		else
			data.sys_id = $sp.getParameter("sys_id") || $sp.getParameter('sl_sys_id');
	
		if (!data.sys_id) {
			data.recordFound = false;
			return;
		}
	
		data._generatedItemGUID = gs.generateGUID();
		var validatedItem = new sn_sc.CatItem('' + data.sys_id);
		if (!validatedItem.canView() || !validatedItem.isVisibleServicePortal()) {
			data.recordFound = false;
			return;
		}
	
		data.sc_cat_item = $sp.getCatalogItem({
			sys_id: data.sys_id + '',
			is_ordering: true
		});
		
		if (options.native_mobile == 'true') {
				if (data.sc_cat_item.sys_class_name == 'std_change_record_producer' ||
						data.sc_cat_item.sys_class_name == 'sc_cat_item_content' ||
					  data.sc_cat_item.sys_class_name == 'sc_cat_item_producer_service') {
					data.not_for_mobile = true;
					data.sc_cat_item = {};
					return;
				}
		}
		
5 REPLIES 5

Mahesh23
Mega Sage

Hi,

Add onClick() function in 'save as draft' button something like below

 

onclick="ClearFields();"

 

and below Script in client script

function ClearFields() {

document.getElementById("textfield1").value = "";

document.getElementById("textfield2").value = "";

}

Hi Mahesh,

 

Where can i add this condition?

Could you please help  me on this?

Hi,

Add below onClick() function to 'save as draft' button.

onclick="ClearFields();"

and below Script in client script

function ClearFields() {

document.getElementById("textfield1").value = "";

document.getElementById("textfield2").value = "";

}

Hi Mahesh,

I have added the above click function and tried to write that inside client contorller as well.

But it is not working as expected. 

Could you please tell me whether i need to change/update anything.

</span>
<button ng-if="::c.showOrderNowButton()" tabindex="0" name="submit" ng-disabled="submitting || submitted" ng-click="submitDraft()" ng-click="ClearFields()" class="btn btn-primary"></button>


Client controller

function ClearFields() {

document.getElementById("u_name").value = "";

document.getElementById("u_employee_name").value = "";

}