Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { createItem } from '../api/data.js';
- import { html } from '../lib.js';
- const createTemplate = (onSubmit) => html`
- <div class="row space-top">
- <div class="col-md-12">
- <h1>Create New Furniture</h1>
- <p>Please fill all fields.</p>
- </div>
- </div>
- <form @submit=${onSubmit}>
- <div class="row space-top">
- <div class="col-md-4">
- <div class="form-group">
- <label class="form-control-label" for="new-make">Make</label>
- <input class="form-control valid" id="new-make" type="text" name="make">
- </div>
- <div class="form-group has-success">
- <label class="form-control-label" for="new-model">Model</label>
- <input class="form-control" id="new-model" type="text" name="model">
- </div>
- <div class="form-group has-danger">
- <label class="form-control-label" for="new-year">Year</label>
- <input class="form-control" id="new-year" type="number" name="year">
- </div>
- <div class="form-group">
- <label class="form-control-label" for="new-description">Description</label>
- <input class="form-control" id="new-description" type="text" name="description">
- </div>
- </div>
- <div class="col-md-4">
- <div class="form-group">
- <label class="form-control-label" for="new-price">Price</label>
- <input class="form-control" id="new-price" type="number" name="price">
- </div>
- <div class="form-group">
- <label class="form-control-label" for="new-image">Image</label>
- <input class="form-control" id="new-image" type="text" name="img">
- </div>
- <div class="form-group">
- <label class="form-control-label" for="new-material">Material (optional)</label>
- <input class="form-control" id="new-material" type="text" name="material">
- </div>
- <input type="submit" class="btn btn-primary" value="Create" />
- </div>
- </div>
- </form>`;
- export function createPage(ctx) {
- ctx.render(createTemplate(onSubmit));
- async function onSubmit(event) {
- event.preventDefault();
- const formData = [...(new FormData(event.target)).entries()];
- const data = formData.reduce(((a, [k, v]) => Object.assign(a, { [k]: v })), {});
- const missing = formData.filter((k, v) => k !== 'material' && v === '');
- if (missing.length > 0) {
- return alert('Please fill all mandatory fields!');
- }
- data.year = Number(data.year);
- data.price = Number(data.price);
- const result = await createItem(data);
- ctx.page.redirect('/details/' + result._id);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement