---
myst:
html_meta:
"description": ""
"property=og:description": ""
"property=og:title": ""
"keywords": ""
---
# Exercise 1: Include a JavaScript resource TTW
```{warning}
This exercise requires a working buildout using a fork of the `collective.jstraining` package.
```
For this exercise, we are going to include a JavaScript using the resource registry through the web.
You will be working in the `exercise1` directory of the `collective.jstraining` package.
## Create your browser view
```{warning}
This might be redundant with other documentation.
Skip ahead if you know how to create browser views.
```
Let us add a basic new page view. This is only needed for calling our Javascript file.
Add this into your `exercise1/page.pt` file:
```xml
```
And wire it up with {term}`ZCML` registration in the `exercise1/configure.zcml` file:
```xml
```
## Add your JavaScript file
Go to the Site Setup, then to the Resource Registries.
Under the `Overrides` tab, click `Add file`
When it asks to give it a name, enter `++plone++static/exercise1.js`
Inside the new editor that comes up, enter the following:
```javascript
require([
'jquery'
], function($){
var cycle = function(){
$('h1').animate({
left: '250px',
opacity: '0.5',
'font-size': '30px'
}, function(){
$('h1').animate({
left: '0',
opacity: '1',
'font-size': '20px'
}, function(){
setTimeout(function(){
cycle();
}, 2000);
});
});
};
$(document).ready(function(){
cycle();
});
});
```
Click `Save`
You can verify that the resource works by going to `http://localhost:8080/Plone/++plone++static/exercise1.js`
### Use the Javascript in your template
Now, you just need to edit your `exercise1/page.pt` file, so it would look like this:
```xml
```
### Installation
1. Start up your Plone instance
Then, visit the URL: `http://localhost:8080/Plone/front-page/@@exercise1`.
This is assuming your Plone is located at the URL `http://localhost:8080/Plone`.
### Production
In this exercise, there is no special distinction between development and production builds.
The JavaScript is developed without any build process.