This program simplifies the process of deleting Jotform submissions. It allows users to view their forms, their submission counts, and the last submission date, as well as delete all submissions for selected forms.
This program addresses the need to efficiently manage and clear out submissions from Jotform forms. It provides a user-friendly interface to perform bulk deletion of submissions, saving time and effort compared to manual deletion through the Jotform website. The program also offers a clear overview of all forms, their statuses, submission counts, and the most recent submission times.
To run this program, the following are required:
-
A Web Browser: This program is an HTML file that runs within a standard web browser. Any modern web browser (such as Google Chrome, Mozilla Firefox, Safari, or Microsoft Edge) should work. No installation is needed; your computer likely already has a web browser.
-
JotForm Account and API Key: This application integrates with JotForm.
- Jotform Account: You need an active Jotform account to use this tool. This account is where your forms are stored. If you don't have a JotForm account, visit JotForm's website to create one.
- JotForm API Key: The application necessitates a Jotform API key to function.
- A Jotform API Key acts as a secure password, permitting this program to access your Jotform data.
- To locate your API key:
- Log in to your JotForm account.
- Go to your account settings.
- Navigate to the "API" section.
- Create a new API key with "Read Access" and "Full Access" if it does not already exist. Copy this key.
-
Whitelist File (whitelist.txt): This program requires a
whitelist.txt
file in the same directory as the HTML file. This file contains authorized passwords and corresponding Jotform API keys. It is essential for authentication.- Format: Each line in
whitelist.txt
should be in the formatencoded_password,encoded_api_key
, where:encoded_password
is the base64 encoded version of the password.encoded_api_key
is the base64 encoded version of the Jotform API key.
- Example: If your password is "myPassword" and your API key is "abcdef123456", you would first encode them using a base64 encoder (many are available online). If the encoded password is "bXlQYXNzd29yZA==" and the encoded API key is "YWJjZGVmMTIzNDU2", the line in
whitelist.txt
would be:bXlQYXNzd29yZA==,YWJjZGVmMTIzNDU2
. - Creating the File: Create a new plain text file named
whitelist.txt
, input the comma separated base64 encoded passwords and API Keys, and save it to the same directory the downloaded code is in.
- Format: Each line in
-
Downloading the Code:
- On the GitHub repository page, click the green "<> Code" button.
- Select "Download ZIP" from the dropdown menu. This will download a ZIP file containing the program files.
-
Extracting the ZIP:
- Locate the downloaded ZIP file (usually in your "Downloads" folder).
- Double-click the ZIP file to open it.
- Extract the contents of the ZIP file to a folder of your choice. This typically involves dragging the files from the ZIP window to the desired folder.
-
Running the Program:
- Navigate to the folder where you extracted the files.
- Locate the HTML file (
.html
extension). - Double-click the HTML file. This will open the program in your default web browser. No terminal or command prompt is needed.
- You will be prompted to enter a password. This password must match one of the encoded passwords in the
whitelist.txt
file. - After successful authentication, you will be prompted to either load a pre-saved API key or to enter your Jotform API key.
-
Authentication: Upon opening the HTML file, a modal will appear, prompting you for a password. Enter a password that corresponds to an entry in your
whitelist.txt
file. -
API Key Input: Once authenticated, you will see a field labeled "Chiave API JotForm." Paste your Jotform API key into this field.
-
Retrieving Forms:
- Click the "Recupera Moduli" (Retrieve Forms) button.
- The program will fetch a list of your Jotform forms and display them in a table.
- A log box at the bottom will show the progress and any error messages.
- The table will display the following information for each form:
- Seleziona (Select): A checkbox to select the form for deletion. Checkboxes for forms with no submissions are disabled.
- Titolo (Title): The title of the form.
- ID: The unique ID of the form.
- Stato (Status): Whether the form is "Attivato" (Enabled) or "Disattivato" (Disabled).
- Invii (Submissions): The number of submissions received for the form.
- Ultimo Invio (Last Submission): The date and time of the most recent submission, displayed in Central European Time (CET).
-
Table Sorting: The displayed table can be sorted by: Titolo (Title), ID, Stato (Status), Invii (Submissions), and Ultimo Invio (Last Submission).
- Click on the table header of the category to be sorted.
- An arrow will appear next to the header name of the category being sorted.
- An upwards-pointing arrow indicates the category is being sorted from least to greatest, earliest to latest, or alphabetically from A to Z.
- A downwards-pointing arrow indicates that the category is being sorted from greatest to least, latest to earliest, or alphabetically from Z to A.
-
Deleting Submissions:
- Check the boxes in the "Seleziona" column for the forms whose submissions you want to delete. You can only select forms that have submissions.
- Click the "Elimina Invii Selezionati" (Delete Selected Submissions) button.
- A confirmation dialog will appear. Click "OK" to confirm the deletion or "Cancel" to abort.
- The program will delete all submissions for the selected forms and update the table to reflect the changes.
- Warning: Deleting submissions is irreversible.
-
Automatic Refresh: The program automatically refreshes the form data every 60 seconds. A progress bar and countdown timer show the time until the next refresh.
Scenario 1: Cleaning Up Test Submissions
- Situation: A user creates a new Jotform form and submits several test entries to ensure it works correctly. After testing, they want to remove these test submissions before making the form live.
- Example:
- The user opens this program, enters their API key, and clicks "Recupera Moduli."
- They locate the test form in the table, check its "Seleziona" box, and click "Elimina Invii Selezionati."
- The test submissions are deleted.
- Sample Input: (Form with ID
1234567890
has 5 test submissions) - Expected Output: The table updates, showing 0 submissions for form
1234567890
.
Scenario 2: Regular Form Maintenance
- Situation: A company uses Jotform for weekly feedback forms. Every Monday, they want to clear out the previous week's submissions to prepare for the new week.
- Example:
- The administrator opens this program, enters the API key, and clicks "Recupera Moduli."
- They select all relevant feedback forms in the table (assuming submissions exist) and click "Elimina Invii Selezionati."
- All submissions from the past week are removed.
- Sample Input: (Multiple feedback forms with varying submission counts)
- Expected Output: The table updates, showing 0 submissions for all selected forms.
Scenario 3: Archiving Old Forms
- Situation: A user has several old, inactive Jotform forms that are no longer needed. They want to clear out all submissions from these forms before disabling or deleting them on Jotform.
- Example:
- The user opens this program, enters their API key, and clicks "Recupera Moduli."
- They identify the old, inactive forms (indicated by "Disattivato" status).
- They check the "Seleziona" boxes for these forms (if they have any submissions) and click "Elimina Invii Selezionati."
- The submissions are cleared, allowing the user to safely disable or delete the forms on Jotform without losing any data.
- Sample Input: (A mix of active and inactive forms, some with submissions)
- Expected Output: The table updates, showing 0 submissions for the selected inactive forms (if submissions previously existed).
This repository is subject to updates at any time. These updates may render portions of this README file outdated. No guarantee is made that this README file will be updated to reflect changes in the repository.