Form and Document handling in React - node.js

I am working on a project that needs to be able to select a type of form (form is a long feedback form) attached to a project and fill out details of the form. Once it’s completed it’s save to backend(mongodb) and display on front end with the date it was submitted. The form needs to have auto fill in some sections thats i am pulling the data from the backend. I’m have trouble figure out how to actually display the form and be able to save it to the backend. I was wondering if anyone has had some experience with anything related to this and could give me some tips.

Related

Can you populate word fields from a react app using pdftron?

I was wondering if anyone could point me towards a solution to my issue with pdftron/webviewer. I am building a MERN app and one of the projected feature is contracts generation. I created my fields in .docx file, loaded it in with webviewer.
I tried:
having my data collecting form on the same page with webviewer and passing data via state. (...yeah)
Tried to separate contract generation page and display (webviewer) page and use localStorage/redux.
Lastly I tried to take advantage of my database, so I created new model/schema and set up the collections that on the form page the contract data gets POSTed into database and then fetches from the webview page. Mongo has a TTL flag to remove every record after 1 minute.
I can console.log(contract.name) but it just won't consistently show as {{NAME}} (consistently because on several ocassions it works..)
Any help is greatly appreciated. Can't provide console errors log/network dont show any.
It seems like you are trying to fill forms with data. You could check out this guide for form filling. PDFTron JavaScript PDF form filling library
This is an live example showing how it would work.
Let me know how this works for you.

NetSuite Saved Search Print Criteria Information

I would like to be able to print the Criteria information that I used in the footer of the PDF of a Saved Search. I have tried looking at making an Advanced PDF to handle this, but I cannot find the field to pull in the criteria information into either the Saved Search or the Advanced PDF. Any assistance would be greatly appreciated.
Edit: I have created a Saved Search in NetSuite that displays all of the Inventory Receipts made the previous week. We have to print this Saved Search and check it against the actual paper receipts to verify counts and receipts. When the Saved Search prints to PDF it does not show the criteria information for which the Saved Search was run to prove to Internal Audit that we have run this report for the correct dates. I would like a way to print the Criteria information for this Saved Search along with a timestamp of when the Saved Search was run and the users that ran the Saved Search. Is there a way to pull in this additional information in a Saved Search or Advanced PDF somehow?
add a custom Print button
button goes to a suitlet that renders the PDF
before you render, load the search and pass the search.filters in to addCustomDataSource() api of the render module
Ok, I read your edit and comment with regard to my comment. There's three big things here.
I don't think you should pursue a dev route with this. You can schedule the report for automated email once a day and prove that it came from a saved search which is the same saved search every time. This will save you an infinite amount of hassle
Developing this as your first script is going to be hard. I'm happy to help. But when I tell you it's going to be a lot of code, I mean it. See this old post I did https://stackoverflow.com/a/61066928/11323304
If you still want to pursue a dev route with this (which is totally fine), start with emulating the user event code on a custom suitelet like I posted above in my answer. You're going to need N/serverWidget/ui N/search and N/xml. The rest is all in the UserEvent functions and global context variable.
If all this still goes well over your head. Don't sweat it. Comment back, and we'll build something step by step. But, I highly, highly, highly encourage you to check out the automated email capabilities of NetSuite before trying to develop something special.

Django form - How to save data or get data without having to save it to database?

I've created a form with some fields for users to enter data, and a button to submit them and run some functions, then display the results on the same page (without having to store it to the database).
Now I would like to add a button (view/download as PDF) to have the page generated as a PDF file, so that the user can save the results.
But I'm having trouble retrieving the entered data, even they are still displaying on the page. They don't seem to be stored in the variables (or I don't know where to look).
I've read that if using modelForm I can call the .save function and save data to the database. But for this app I don't really need a database (it's more like an one-off calculations). So I would like to know if there's any way to:
Get the entered data directly while they are still on display (after submitting the form).
Generate a PDF directly from what's on the page (like the print function that most browsers have, but with some customization such as without the headings and navigation bars).
Is there a way to do this? I've been searching a lot and can't seem to be able to find an answer. I'm still very new to Django and programming in general so please forgive me if I'm asking silly questions. Thanks very much in advance.

Kentico Form - Edit Form Action and Field Names

I have a form built in Kentico and want to change the form action to point to a marketing automation vendor website (eloqua) to process the form. I noticed that there's no way to change the Action on the Form app, so I thought of using js to replace the action dynamically. I'm not sure whether it'll work, but another immediate problem I have is the field name/id generated by Kentico is so long (> 70 characters - e.g. p$lt$ctl02$pageplaceholder$p$lt$ctl03$On_lineForm$viewBiz$Company$txtText) and exceeds the length allowed by the vendor. Is there a way to shorten those names/ids?
To clarify, the reason I need to edit the name because the vendor allows to map (copy/paste) html name to whatever name it's using. I've tried pasting the whole string from one Kentico field and got the error message of exceeding character limit.
First part of the question, how do i direct a form to submit to another site?
In ASP.Net, the only way is to use javascript to alter the 's action url. Since you want to be careful where you edit this, i would use jQuery to replace the "Submit" button on your form with a javascript function that will alter the form before submission (so you don't mess up other postbacks)
$("button.MySubmitButton").click(function() {
$("form").attr("action", "http://TheVendor.com/PostLocation");
});
Next question is to alter the field names. If you absolutely MUST have form element IDs sub 70 characters, you will have to use Javascript again and it will break any postback-related functionality of the elements, so make sure the form is "as is" before doing it.
Again there is security concern because when you post to another location, you are sending ALL the data, including hidden asp.net inputs that contain viewstates and the like. You may want to take the time to 'eliminate' right before you submit any field that you don't want sent to the other site.
Something like this (Test it out a bit first though)
$("input:not(id*='txtName'):not(id*='txtEmail'),select:not(id*='ddlQuestion')").remove();
As #trevor-j-fayas points out, you can use javascript to point a form action to another url. While this does work you may end up writing a lot of javascript to not only point the form to a new url but also to do some data massaging (changing id's, doing url formatting, etc) before sending it to the target.
Additionally you lose some of the benefits of using a Kentico Form because the data never actually gets submitted back to Kentico such as email alerts.
I have worked in a similar scenario where were we sending data to Eloqua but instead of doing it client side we did it from the server by using either:
The OnOnAfterSave event on the BizForm control itself
The global BizForm submit hook BizFormInfo.TYPEINFO.Events.Insert.After
After the form is submitted to Kentico, our custom hook code runs which sends the data to Eloqua. In either hook you can fully access the Form metadata, field names, and submitted values. You can then craft an HTTP POST request and submit it asynchronously using a class such as HttpClient.
Is not a good idea from the architecture stand point and most likely not going to work without opening a huge hole in their vendor web site security. First of all how are they going to process the from if they don't know the field names, what if form fields change etc. Secondly you going to run into hell of trouble trying to submit form one site to another etc. What if the vendor site is not responding etc.
What you need to do is submit the form back to kentico web site i.e. process it on kentico web site and send email notification with results to marketing automation vendor website (the easy way for now) and redirect user to vendor web site.
Redirection and email - you can do out of the box without any programming. Actually to do all the above requires no programming and you get all the information recorded on your Kentico site.

Web scraping from a Google Chrome extension

I've started to develop a Chrome extension to navigate and perform actions on a website. Until now the extension is able to receive a couple of parameters and check a set of radio-buttons, fill in a few inputs of a form and then submit it.
What I want to do now is to repeat the process, but I'm stuck when the page is reloaded. And I don't know how can I do to make the script react to the finish of the request.
The workflow I want to achieve is the following (is for automatically copying a certain object):
Popup side
Enter the number of the Master object to copy
Enter the base name of the copies (example Mod, so the I can iterate and add mod1, mod2, modn)
Enter the number of copies
Background side
Select master
Select standard options
Fill in inputs
Submit form
Wait for the page to complete the request and continue to the next copy. (here I need help)
The problem is on the repetition, the rest is taking care of. I assume that must be a way of dealing with requests. Any ideas?
By the way I'm doing it all with the extension and tabs methods of Google Chrome plus JavaScript and jQuery.
Ok, i´m going to answer the question myself based on Matthew Getner´s comment. The chrome.webRequest.onCompleted was the solution to the problem. With this method I was able to wait for the request to be completed and start over with the process. And with the messegaes methods I´ve achieved the comunication between the background and the extension itself. So I finally was able to filled a form, send it, and repeat. This way I´ve made a kind of robot to help a co-worker with a lame repetitive task on a aged web plataform.

Resources