# Occasional 404 Errors on testing site for JS files On the testing site, some of the JS files respond with a 404 error sometimes, and the pattern seems to be random, except that it usually happens in about 1 in 5 tries. ### Check script This simple script checks if the particular file is failing: ```python= import requests url = "https://us-ed-testing.ckan.io/webassets/ed/7c99bdf8_dataset_org_suborg.js" count = 20 for i in range(count): response = requests.request("GET", url, headers={}, data={}) failed = False if response.status_code != 200: print("Request {}: fails with status code: {}".format(i+1, response.status_code)) failed = True print("This JS file is broken and needs to be fixed") break else: print("Check {} was successful".format(i+1)) if not failed: print("This link has a 200 status code after {} checks".format(count)) ``` Files that don't return always return a 200 status code after the specified `count` number of times are flagged as having issues. ## JS Files before fix These are all the JS files in the `webassets.yml` file: | Asset name | Original Compiled JS files | Status | | ---------- | ------- | ------------------- | | ed_mainjs | `js/uswds.js`<br>`js/particles.js`<br>`js/simplebar.js`<br>`js/main.js`<br>`js/select-tags.js`<br>`js/underscore.js`<br>`js/backbone.js`<br>`js/recline.js`<br>`js/ed-autocomplete.js`<br>`js/ed-image-upload.js`<br>`js/confirm-reject.js`<br>`js/bulk-confirm-reject.js`<br>`js/bulk-confirm.js`<br>`js/resource-urls.js`<br>`js/ed-resource-reorder.js` | Passes the check, no changes required | | [datasetorg_js](#datasetorg_js) | `js/dataset-org-suborg.js` | Fails and needs to be moved to ed_main | | [edshowcaseimg_js](#edshowcaseimg_js) | `js/ed-showcaseimg.js` | Fails and needs to be moved to main | | confirmreject_js | `js/confirm-reject.js` | Already in ed_main | | bulkconfirmreject_js | `js/bulk-confirm-reject.js` | Already in ed_main | | bulkconfirm_js | `js/bulk-confirm.js` | Already in ed_main | | [markall_resources_js](#markall_resources_js) | `js/mark-all-resources.js` | | | [download_resources_js](#download_resources_js) | `js/download-resources.js` | | | edinline_js | `js/ed-inline.js` | Passes the check, no changes required | | main_js | `js/main.js` | Already in ed_main | | move_sidebar_js | `js/move-sidebar.js` | Passes all checks, no changes required | | [edcollection_select_js](#edcollection_select_js) | `js/ed-collection-selection.js` | Fails and needs to be moved to ed_main | | [edcustom_input_js](#edcustom_input_js) | `js/ed-custom-input-type.js` | Fails and needs to be moved to ed_main | | [resourcetype_control_js](#resourcetype_control_js) | `js/resource-type-control.js` | Fails and needs to be moved to ed_main | | ed_autocomplete_js | `js/ed-autocomplete.js` | Alreaady in ed_main | | backbone_js | `js/backbone.js` | Alreaady in ed_main | | showsummary_js | `js/showsummary.js` | Passes all checks, no changes required | | [package_reorder_js](#package_reorder_js) | `js/package-reorder.js` | Fails and needs to be moved to ed_main | | edreturn_to_search_js | `js/ed-return-to-search.js` | Passes all checks, no changes required | | [ed_change_pkg_ownership_js](#ed_change_pkg_ownership_js) | `js/ed-change-package-owner.js` | Fails and needs to be moved to ed_main | | hierarchy_js | `hierarchy/jquery.hierarchy.js` | Passes all checks, no changes required | | ed_change_group_ownership_js | `js/ed-group-bulk-change-owner.js` | Passes all checks, no changes required | ### datasetorg_js Left as is. It is supposed to make some changes to a `field-suborganizations` field, but it doesn't seem like that is being used anymore. ### edshowcaseimg_js This adds a `background-image` style to each item of the pages items to generate the image show for each of the pages item. ![](https://i.imgur.com/TFXPozd.png) **Usage** This was previously called in: * [Package showcase_item.html](https://github.com/CivicActions/ckanext-ed/blob/45f74f7f39aa121e1b05710ee51e50e213813114/ckanext/ed/templates/package/snippets/showcase_item.html#L40) * [Documentation showcase_item.html](https://github.com/CivicActions/ckanext-ed/blob/45f74f7f39aa121e1b05710ee51e50e213813114/ckanext/ed/templates/documentation/snippets/showcase_item.html#L40) This has been moved to `ed_mainjs` and still works fine. > Required little code change ### markall_resources_js ### download_resources_js ### edcollection_select_js This adds the interface for selecting collections in the data profile edit page. ![](https://i.imgur.com/MjEYTPU.png) **Usage** This was previously called in: * [Collection snippet for Dataset edit page](https://github.com/CivicActions/ckanext-ed/blob/45f74f7f39aa121e1b05710ee51e50e213813114/ckanext/ed/templates/package/snippets/field_collection_modal.html#L43) > This has been moved to the `ed_mainjs` > Required little code change ### edcustom_input_js This customizes some of the fields in the dataset edit page. **Usage** This was previously called in: * [Dataset edit page](https://github.com/CivicActions/ckanext-ed/blob/45f74f7f39aa121e1b05710ee51e50e213813114/ckanext/ed/templates/package/snippets/package_basic_fields.html#L438) > Moved to ed_mainjs ### resourcetype_control_js Changes the file upload field type in the resource form page **Usage** This was previously called in: * [Resource Edit page](https://github.com/CivicActions/ckanext-ed/blob/45f74f7f39aa121e1b05710ee51e50e213813114/ckanext/ed/templates/package/snippets/resource_form.html#L186) > Moved to ed_mainjs ### package_reorder_js This is still being fixed: current error: ``` Throws TypeError: "sortable" is not a function when added to ed main.js ``` ### ed_change_pkg_ownership_js Handles package ownership change in the organization page **Usage** This was previously called in: * [Organization Read page](https://github.com/CivicActions/ckanext-ed/blob/45f74f7f39aa121e1b05710ee51e50e213813114/ckanext/ed/templates/organization/read.html#L97) > Moved to ed_mainjs ## JS files after fix | Asset name | Original Compiled JS files | Status | | ---------- | ------- | ------------------- | | ed_mainjs | `js/uswds.js`<br>`js/particles.js`<br>`js/simplebar.js`<br>`js/main.js`<br>`js/select-tags.js`<br>`js/underscore.js`<br>`js/backbone.js`<br>`js/recline.js`<br>`js/ed-autocomplete.js`<br>`js/ed-image-upload.js`<br>`js/confirm-reject.js`<br>`js/bulk-confirm-reject.js`<br>`js/bulk-confirm.js`<br>`js/resource-urls.js`<br>`js/ed-resource-reorder.js` | Passes the check, no changes required | | [datasetorg_js](#datasetorg_js) | `js/dataset-org-suborg.js` | Not sure what this does, left as is | | [edshowcaseimg_js](#edshowcaseimg_js) | `js/ed-showcaseimg.js` | Moved to ed_mainjs | | confirmreject_js | `js/confirm-reject.js` | Already in ed_main | | bulkconfirmreject_js | `js/bulk-confirm-reject.js` | Already in ed_main | | bulkconfirm_js | `js/bulk-confirm.js` | Already in ed_main | | [markall_resources_js](#markall_resources_js) | `js/mark-all-resources.js` | Not sure what this does, left as is | | [download_resources_js](#download_resources_js) | `js/download-resources.js` | Not sure what this does, left as is | | edinline_js | `js/ed-inline.js` | Passes the check, no changes required | | main_js | `js/main.js` | Already in ed_main | | move_sidebar_js | `js/move-sidebar.js` | Passes all checks, no changes required | | [edcollection_select_js](#edcollection_select_js) | `js/ed-collection-selection.js` | Moved to ed_mainjs | | [edcustom_input_js](#edcustom_input_js) | `js/ed-custom-input-type.js` | Moved to ed_mainjs | | [resourcetype_control_js](#resourcetype_control_js) | `js/resource-type-control.js` | Moved to ed_mainjs | | ed_autocomplete_js | `js/ed-autocomplete.js` | Alreaady in ed_main | | backbone_js | `js/backbone.js` | Alreaady in ed_main | | showsummary_js | `js/showsummary.js` | Moved to ed_mainjs | | [package_reorder_js](#package_reorder_js) | `js/package-reorder.js` | Fails and needs to be moved to ed_main | | edreturn_to_search_js | `js/ed-return-to-search.js` | Passes all checks, no changes required | | [ed_change_pkg_ownership_js](#ed_change_pkg_ownership_js) | `js/ed-change-package-owner.js` | Moved to ed_mainjs | | hierarchy_js | `hierarchy/jquery.hierarchy.js` | Passes all checks, no changes required | | ed_change_group_ownership_js | `js/ed-group-bulk-change-owner.js` | Passes all checks, no changes required |