From 30a5bc2e012876556ddb6e78c980ad59d5514488 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Wed, 23 May 2018 22:56:22 -0700 Subject: [PATCH 01/16] added index pages --- index.css | 0 index.html | 0 index.js | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 index.css create mode 100644 index.html create mode 100644 index.js diff --git a/index.css b/index.css new file mode 100644 index 00000000..e69de29b diff --git a/index.html b/index.html new file mode 100644 index 00000000..e69de29b diff --git a/index.js b/index.js new file mode 100644 index 00000000..e69de29b From 2dff1cd80249238667a75c5de55d54a7c10899a4 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Wed, 23 May 2018 23:41:38 -0700 Subject: [PATCH 02/16] starter code for wave 1 --- index.html | 29 +++++++++++++++++++++++++++++ index.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/index.html b/index.html index e69de29b..4319f45f 100644 --- a/index.html +++ b/index.html @@ -0,0 +1,29 @@ + + + + + Octo Trips + + + +
+ +
+
+
+
+ + +
+
+ + +
+ + + + + diff --git a/index.js b/index.js index e69de29b..3dd12dba 100644 --- a/index.js +++ b/index.js @@ -0,0 +1,42 @@ +const reportStatus = (message) => { + $('#status-message').html(message); +}; + +const tableHeaders = (trip) => { + let headers = ''; + headers += ' '; + Object.keys(trip).forEach( (header) => { + headers += `${header}`; + }); + headers += ' '; + + return headers; +}; + +const baseURL = 'https://ada-backtrek-api.herokuapp.com/trips'; + +const getTrips = () => { + const tripList = $('#trip-list'); + tripList.empty(); + + reportStatus('Loading trips...') + axios.get(baseURL) + .then( (response) => { + response.data.forEach( (trip) => { + let content = ''; + content += `
  • ${trip.id}: ${trip.name}
  • ` + content += `
  • ${trip.continent}` + + + $('#trip-list').append() + }); + }); + +}; + + + +$(document).ready( () => { + $('#load').click() + +}); From 057fe59d938f0f5d1674f849037e3f11ccafc270 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 00:56:33 -0700 Subject: [PATCH 03/16] updated all trips code to report errors and to style trips as a table --- index.html | 14 ++++++++------ index.js | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 14 deletions(-) diff --git a/index.html b/index.html index 4319f45f..997f0a33 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,8 @@ Octo Trips + +
    @@ -14,16 +16,16 @@

    TREK

    - + -
    +
    - - - + + + + diff --git a/index.js b/index.js index 3dd12dba..3464e86a 100644 --- a/index.js +++ b/index.js @@ -2,11 +2,26 @@ const reportStatus = (message) => { $('#status-message').html(message); }; +const reportError = (message, errors) => { + let content = `

    ${message}

    `; + content += '
      '; + + for (const field in errors ){ + for (const problem of errors[field]) { + content += `
    • ${field}: ${problem}
    • `; + } + } + content += '
    '; + reportStatus(content); + +}; + const tableHeaders = (trip) => { let headers = ''; headers += ' '; + console.log(Object.keys(trip)); Object.keys(trip).forEach( (header) => { - headers += `${header}`; + headers += `${header.toUpperCase()}`; }); headers += ' '; @@ -20,16 +35,37 @@ const getTrips = () => { tripList.empty(); reportStatus('Loading trips...') + axios.get(baseURL) - .then( (response) => { - response.data.forEach( (trip) => { - let content = ''; - content += `
  • ${trip.id}: ${trip.name}
  • ` - content += `
  • ${trip.continent}` + .then((response) => { + $('#trip-list').append(tableHeaders(response.data[0])); + $('#trip-list').append(''); + response.data.forEach( (trip) => { + let content = ''; + content += `${trip.id}`; + content += `${trip.name}`; + content += `${trip.continent}`; + content += `${trip.category}`; + content += `${trip.weeks}`; + content += `${trip.cost}`; + content += ``; + $('#trip-list').append(content); - $('#trip-list').append() }); + + $('#trip-list').append(''); + reportStatus(`${response.data.length} trips loaded`); + }) + .catch((error) => { + if (error.response.data && error.response.data.errors) { + reportError( + `Encountered an error: ${error.message}`, + error.response.data.errors + ); + } else { + reportStatus(`Error: ${error.message }`); + } }); }; @@ -37,6 +73,6 @@ const getTrips = () => { $(document).ready( () => { - $('#load').click() + $('#load').click(getTrips); }); From fc60b602b720b4047b27a9af628fe588e88d8e74 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 01:03:40 -0700 Subject: [PATCH 04/16] all trips table now only has id and name --- index.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/index.js b/index.js index 3464e86a..003f8d2f 100644 --- a/index.js +++ b/index.js @@ -16,17 +16,17 @@ const reportError = (message, errors) => { }; -const tableHeaders = (trip) => { - let headers = ''; - headers += ' '; - console.log(Object.keys(trip)); - Object.keys(trip).forEach( (header) => { - headers += `${header.toUpperCase()}`; - }); - headers += ' '; - - return headers; -}; +// const tableHeaders = (trip) => { +// let headers = ''; +// headers += ' '; +// console.log(Object.keys(trip)); +// Object.keys(trip).forEach( (header) => { +// headers += `${header.toUpperCase()}`; +// }); +// headers += ' '; +// +// return headers; +// }; const baseURL = 'https://ada-backtrek-api.herokuapp.com/trips'; @@ -38,17 +38,17 @@ const getTrips = () => { axios.get(baseURL) .then((response) => { - $('#trip-list').append(tableHeaders(response.data[0])); + $('#trip-list').append(' ID NAME '); $('#trip-list').append(''); response.data.forEach( (trip) => { let content = ''; content += `${trip.id}`; content += `${trip.name}`; - content += `${trip.continent}`; - content += `${trip.category}`; - content += `${trip.weeks}`; - content += `${trip.cost}`; + // content += `${trip.continent}`; + // content += `${trip.category}`; + // content += `${trip.weeks}`; + // content += `${trip.cost}`; content += ``; $('#trip-list').append(content); From b73b4639df6ce7bb2d3447c2224f9bdae4de1f66 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 21:19:37 -0700 Subject: [PATCH 05/16] added functions to see trip, trip reservation form, and reserve a trip --- index.css | 42 ++++++++++++++++++++++++ index.html | 22 ++++++++++--- index.js | 93 ++++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 128 insertions(+), 29 deletions(-) diff --git a/index.css b/index.css index e69de29b..f627482a 100644 --- a/index.css +++ b/index.css @@ -0,0 +1,42 @@ +body { + color: white; + background-color: black; + font-family: 'Karla', sans-serif; +} + +main { + display: grid; + grid-template-columns: 50% 1fr; + grid-template-rows: 5vh 50vh 1fr; +} + +nav > h1 { + font-family: 'Permanent Marker', cursive; +} + +.trip-table { + max-height: 75vh; + overflow-x: scroll; +} + +#status-message { + grid-column: 1 / span 2; +} + +#current-trips { + grid-row: 2 / span 2; +} + +#trip-info { + grid-column-start: 2; +} + +#trip-list { + width: 100%; + background-color: rgb(178, 222, 228); +} + +#trip-form { + grid-column-start: 2; + grid-row-start: 3; +} diff --git a/index.html b/index.html index 997f0a33..c246012e 100644 --- a/index.html +++ b/index.html @@ -4,28 +4,40 @@ Octo Trips - + + +
    -
    +
    +
    +
    -
    +
    +
    +
    +
    + +
    + - + + + diff --git a/index.js b/index.js index 003f8d2f..931e10a8 100644 --- a/index.js +++ b/index.js @@ -13,21 +13,8 @@ const reportError = (message, errors) => { } content += ''; reportStatus(content); - }; -// const tableHeaders = (trip) => { -// let headers = ''; -// headers += ' '; -// console.log(Object.keys(trip)); -// Object.keys(trip).forEach( (header) => { -// headers += `${header.toUpperCase()}`; -// }); -// headers += ' '; -// -// return headers; -// }; - const baseURL = 'https://ada-backtrek-api.herokuapp.com/trips'; const getTrips = () => { @@ -38,41 +25,99 @@ const getTrips = () => { axios.get(baseURL) .then((response) => { - $('#trip-list').append(' ID NAME '); - $('#trip-list').append(''); + $('#trip-list').append(' All Trips '); + $('#trip-list').append('') response.data.forEach( (trip) => { let content = ''; - content += `${trip.id}`; - content += `${trip.name}`; - // content += `${trip.continent}`; - // content += `${trip.category}`; - // content += `${trip.weeks}`; - // content += `${trip.cost}`; + content += `${trip.name}`; content += ``; $('#trip-list').append(content); - }); $('#trip-list').append(''); reportStatus(`${response.data.length} trips loaded`); }) .catch((error) => { + // this might not be right if (error.response.data && error.response.data.errors) { reportError( `Encountered an error: ${error.message}`, error.response.data.errors ); } else { - reportStatus(`Error: ${error.message }`); + reportStatus(`Error: ${error.message}`); } }); +}; +const buildForm = function buildForm(id) { + let formContent = ''; + formContent += '

    Reserve Trip

    '; + formContent += `
    `; + formContent += '
    '; + formContent += '
    '; + formContent += ``; + formContent += ''; + + $('#trip-form').html(formContent); +}; + +const getTripInfo = function getTripInfo(event) { + let tripInfo = $('#trip-info'); + tripInfo.empty(); + + let target = event.target; + let tripLink = baseURL + '/' + target.id.toString(); + + axios.get(tripLink) + .then( (response) => { + let trip = response.data; + let content = '' + content += ``; + content += ``; + content += ``; + content += ``; + content += ``; + content += '
    ID ${trip.id}
    NAME ${trip.name}
    CONTINENT ${trip.continent}
    CATEGORY ${trip.category}
    ABOUT ${trip.about}
    ' + $('#trip-info').append('

    Trip Info

    '); + $('#trip-info').append(content); + buildForm(trip.id); + }) + .catch( (error) => { + + }); +}; + +const reserveTrip = function reserveTrip (event) { + + event.preventDefault(); + + const reservationURL = baseURL + '/' + $('input[name="id"]').val() + '/reservations' + + const tripData = { + name: $('input[name="name"]').val(), + email: $('input[name="email"]').val(), + } + + reportStatus('Attempting to book trip...'); + + axios.post(reservationURL, tripData) + .then((response) => { + $('input[name="name"]').val(''); // clearing text field + $('input[name="email"]').val(''); + + reportStatus('Successfully booked trip!'); + }) + .catch((error) => { + + }); }; $(document).ready( () => { $('#load').click(getTrips); - + $('#trip-list').on('click', 'td', getTripInfo); + $('#trip-form').submit(reserveTrip); }); From 145d33793ed38b23900492917352d36716d8d4d2 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 22:09:36 -0700 Subject: [PATCH 06/16] table styles, alternate row coloring --- index.css | 28 ++++++++++++++++++++++------ index.js | 13 ++++++++----- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/index.css b/index.css index f627482a..1d685be2 100644 --- a/index.css +++ b/index.css @@ -1,6 +1,4 @@ -body { - color: white; - background-color: black; +body, .button { font-family: 'Karla', sans-serif; } @@ -8,15 +6,30 @@ main { display: grid; grid-template-columns: 50% 1fr; grid-template-rows: 5vh 50vh 1fr; + grid-column-gap: 1em; } -nav > h1 { +h1 { + font-size: 2.25rem; +} + +nav > h1, h3 { font-family: 'Permanent Marker', cursive; } +.button { + width: 8rem; + height: 2rem; + font-size: 1rem; +} + +.trip-table, #trip-info { + overflow-x: scroll; +} + .trip-table { max-height: 75vh; - overflow-x: scroll; + margin-top: 2vh; } #status-message { @@ -33,7 +46,10 @@ nav > h1 { #trip-list { width: 100%; - background-color: rgb(178, 222, 228); +} + +#trip-list tr:nth-child(even) { + background-color: rgba(147, 147, 147, 0.16); } #trip-form { diff --git a/index.js b/index.js index 931e10a8..0c96f905 100644 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ const getTrips = () => { axios.get(baseURL) .then((response) => { - $('#trip-list').append(' All Trips '); + $('#trip-list').append('

    All Trips

    '); $('#trip-list').append('') response.data.forEach( (trip) => { @@ -58,7 +58,7 @@ const buildForm = function buildForm(id) { formContent += '
    '; formContent += '
    '; formContent += ``; - formContent += ''; + formContent += ''; $('#trip-form').html(formContent); }; @@ -73,13 +73,13 @@ const getTripInfo = function getTripInfo(event) { axios.get(tripLink) .then( (response) => { let trip = response.data; - let content = '' + let content = '
    '; content += ``; content += ``; content += ``; content += ``; - content += ``; - content += '
    ID ${trip.id}
    NAME ${trip.name}
    CONTINENT ${trip.continent}
    CATEGORY ${trip.category}
    ABOUT ${trip.about}
    ' + content += ` ABOUT ${trip.about} `; + content += ''; $('#trip-info').append('

    Trip Info

    '); $('#trip-info').append(content); buildForm(trip.id); @@ -112,6 +112,9 @@ const reserveTrip = function reserveTrip (event) { .catch((error) => { }); + + $('#trip-info').empty(); + $('#trip-form').empty(); }; From f69b5a8f3f747fddd9dd8ee0bd4d446444ef272e Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 22:30:07 -0700 Subject: [PATCH 07/16] adding optional type to status-message --- index.css | 16 ++++++++++++++++ index.js | 18 +++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/index.css b/index.css index 1d685be2..fb1375b5 100644 --- a/index.css +++ b/index.css @@ -11,6 +11,8 @@ main { h1 { font-size: 2.25rem; + margin-top: 4px; + margin-bottom: 4px; } nav > h1, h3 { @@ -21,6 +23,12 @@ nav > h1, h3 { width: 8rem; height: 2rem; font-size: 1rem; + background-color: white; + border-color: rgb(113, 134, 97); +} + +.button:hover { + background-color: rgba(155, 195, 124, 0.58); } .trip-table, #trip-info { @@ -36,6 +44,14 @@ nav > h1, h3 { grid-column: 1 / span 2; } +.success { + color: rgba(30, 172, 2, 0.64); +} + +.failure { + background-color: rgba(218, 52, 52, 0.65); +} + #current-trips { grid-row: 2 / span 2; } diff --git a/index.js b/index.js index 0c96f905..ee86ae97 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,9 @@ -const reportStatus = (message) => { - $('#status-message').html(message); +const reportStatus = (message, type) => { + if (type) { + $('#status-message').html(message).attr('class', type); + } else { + $('#status-message').html(message); + } }; const reportError = (message, errors) => { @@ -36,7 +40,7 @@ const getTrips = () => { }); $('#trip-list').append(''); - reportStatus(`${response.data.length} trips loaded`); + reportStatus(`${response.data.length} trips loaded`, 'success'); }) .catch((error) => { // this might not be right @@ -46,7 +50,7 @@ const getTrips = () => { error.response.data.errors ); } else { - reportStatus(`Error: ${error.message}`); + reportStatus(`Error: ${error.message}`, 'failure'); } }); }; @@ -67,6 +71,8 @@ const getTripInfo = function getTripInfo(event) { let tripInfo = $('#trip-info'); tripInfo.empty(); + reportStatus('Getting trip info...') + let target = event.target; let tripLink = baseURL + '/' + target.id.toString(); @@ -87,6 +93,8 @@ const getTripInfo = function getTripInfo(event) { .catch( (error) => { }); + + reportStatus(''); }; const reserveTrip = function reserveTrip (event) { @@ -107,7 +115,7 @@ const reserveTrip = function reserveTrip (event) { $('input[name="name"]').val(''); // clearing text field $('input[name="email"]').val(''); - reportStatus('Successfully booked trip!'); + reportStatus('Successfully booked trip!', 'success'); }) .catch((error) => { From edafe8f7e8a4e791fab6c8d0564507ec0ed1b927 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 22:41:56 -0700 Subject: [PATCH 08/16] added a header border background image --- index.css | 5 +++++ index.html | 1 + index.js | 2 +- space-background.jpeg | Bin 0 -> 53917 bytes 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 space-background.jpeg diff --git a/index.css b/index.css index fb1375b5..0b8e319a 100644 --- a/index.css +++ b/index.css @@ -31,6 +31,11 @@ nav > h1, h3 { background-color: rgba(155, 195, 124, 0.58); } +.header-background { + min-height: 1vh; + background-image: url('space-background.jpeg'); +} + .trip-table, #trip-info { overflow-x: scroll; } diff --git a/index.html b/index.html index c246012e..908f209d 100644 --- a/index.html +++ b/index.html @@ -13,6 +13,7 @@
    diff --git a/index.js b/index.js index ee86ae97..6fa6083a 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const reportStatus = (message, type) => { if (type) { $('#status-message').html(message).attr('class', type); } else { - $('#status-message').html(message); + $('#status-message').html(message).attr('class', ''); } }; diff --git a/space-background.jpeg b/space-background.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1c3a8a966df7ef7e960f4bb8b4ff464bf3e1b524 GIT binary patch literal 53917 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

    xctvt=VLtt|xZ$WEYSUG3QQJ$w3` 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%0D1QBa^;<7@0U9lm&e;S9G$II5C# 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 literal 0 HcmV?d00001 From c0d1969dc72dd06cde073047848141ac10ea66ee Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 23:15:30 -0700 Subject: [PATCH 09/16] changed cursor to finger when hovering over trip name --- index.css | 24 ++++++++++++++++++------ index.html | 6 ++---- index.js | 6 +++--- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/index.css b/index.css index 0b8e319a..139d1dde 100644 --- a/index.css +++ b/index.css @@ -15,7 +15,7 @@ h1 { margin-bottom: 4px; } -nav > h1, h3 { +header > h1, h3 { font-family: 'Permanent Marker', cursive; } @@ -24,15 +24,19 @@ nav > h1, h3 { height: 2rem; font-size: 1rem; background-color: white; - border-color: rgb(113, 134, 97); + border-color: rgb(64, 96, 119); +} + +.button:focus { + outline: none; } .button:hover { - background-color: rgba(155, 195, 124, 0.58); + background-color: rgb(240, 216, 232); } .header-background { - min-height: 1vh; + min-height: 0.9vh; background-image: url('space-background.jpeg'); } @@ -50,7 +54,7 @@ nav > h1, h3 { } .success { - color: rgba(30, 172, 2, 0.64); + color: rgb(38, 175, 11); } .failure { @@ -69,7 +73,11 @@ nav > h1, h3 { width: 100%; } -#trip-list tr:nth-child(even) { +#trip-list td { + cursor: pointer; +} + +#trip-list tr:nth-child(odd) { background-color: rgba(147, 147, 147, 0.16); } @@ -77,3 +85,7 @@ nav > h1, h3 { grid-column-start: 2; grid-row-start: 3; } + +#trip-form .button { + margin-top: 2vh; +} diff --git a/index.html b/index.html index 908f209d..76e31d99 100644 --- a/index.html +++ b/index.html @@ -11,10 +11,8 @@

    - +

    TREK

    +
    diff --git a/index.js b/index.js index 6fa6083a..55a4c535 100644 --- a/index.js +++ b/index.js @@ -55,9 +55,9 @@ const getTrips = () => { }); }; -const buildForm = function buildForm(id) { +const buildForm = function buildForm(id, name) { let formContent = ''; - formContent += '

    Reserve Trip

    '; + formContent += `

    Reserve Trip: ${name}

    `; formContent += ``; formContent += '
    '; formContent += '
    '; @@ -88,7 +88,7 @@ const getTripInfo = function getTripInfo(event) { content += ''; $('#trip-info').append('

    Trip Info

    '); $('#trip-info').append(content); - buildForm(trip.id); + buildForm(trip.id, trip.name); }) .catch( (error) => { From d89dfd079c6d21d86b7ac0a4a56f855dbc12a394 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Thu, 24 May 2018 23:47:05 -0700 Subject: [PATCH 10/16] working on error display --- index.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 55a4c535..db0deb8f 100644 --- a/index.js +++ b/index.js @@ -71,8 +71,6 @@ const getTripInfo = function getTripInfo(event) { let tripInfo = $('#trip-info'); tripInfo.empty(); - reportStatus('Getting trip info...') - let target = event.target; let tripLink = baseURL + '/' + target.id.toString(); @@ -91,10 +89,16 @@ const getTripInfo = function getTripInfo(event) { buildForm(trip.id, trip.name); }) .catch( (error) => { - + if (error.response.data && error.response.data.errors) { + reportError( + `Encountered an error: ${error.message}`, + error.response.data.errors + ); + } else { + reportStatus(`Error: ${error.message}`, 'failure'); + } }); - reportStatus(''); }; const reserveTrip = function reserveTrip (event) { @@ -118,7 +122,15 @@ const reserveTrip = function reserveTrip (event) { reportStatus('Successfully booked trip!', 'success'); }) .catch((error) => { - + console.log(error); + if (error.response.data && error.response.data.errors) { + reportError( + `Encountered an error`, + error.response.data.errors + ); + } else { + reportStatus(`Error: ${error.message}`, 'failure'); + } }); $('#trip-info').empty(); From 988c31a0b70d6a34a88919c70cea14a0327d8502 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Fri, 25 May 2018 10:45:42 -0700 Subject: [PATCH 11/16] basic styling of error messages --- index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index db0deb8f..0eb63d83 100644 --- a/index.js +++ b/index.js @@ -7,15 +7,15 @@ const reportStatus = (message, type) => { }; const reportError = (message, errors) => { - let content = `

    ${message}

    `; - content += '
      '; + let content = `${message}`; + content += '
      '; for (const field in errors ){ for (const problem of errors[field]) { - content += `
    • ${field}: ${problem}
    • `; + content += `${field}: ${problem} `; } } - content += '
    '; + content += ''; reportStatus(content); }; @@ -125,7 +125,7 @@ const reserveTrip = function reserveTrip (event) { console.log(error); if (error.response.data && error.response.data.errors) { reportError( - `Encountered an error`, + `Encountered an error:`, error.response.data.errors ); } else { From 66b9156d20561b6319aa0a59358ad71d6841d098 Mon Sep 17 00:00:00 2001 From: Tor Shimizu Date: Mon, 28 May 2018 19:19:48 -0700 Subject: [PATCH 12/16] added starter code for selective search optional --- index.css | 50 +++++++++++++++++++++ index.html | 16 ++++++- index.js | 127 +++++++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 179 insertions(+), 14 deletions(-) diff --git a/index.css b/index.css index 139d1dde..009aa573 100644 --- a/index.css +++ b/index.css @@ -89,3 +89,53 @@ header > h1, h3 { #trip-form .button { margin-top: 2vh; } + +#search-filters { + display: inline; +} + +i { + border: solid black; + border-width: 0 1px 1px 0; + display: inline-block; + padding: 3px; + margin-bottom: 3px; + margin-left: 5px; + transform: rotate(45deg); + -webkit-transform: rotate(45deg); +} + +/* DROPDOWN */ +/* The container
    - needed to position the dropdown content */ +.dropdown { + position: relative; + display: inline-block; +} + +/* Dropdown Content (Hidden by Default) */ +.dropdown-content { + display: none; + position: absolute; + background-color: #f1f1f1; + min-width: 160px; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + z-index: 1; +} + +/* Links inside the dropdown */ +.dropdown-content p { + color: black; + padding: 10px 16px; + text-decoration: none; + display: block; + margin-bottom: 0; + margin-top: 0 +} + +/* Change color of dropdown links on hover */ +.dropdown-content p:hover {background-color: rgb(240, 216, 232)} + +/* Show the dropdown menu on hover */ +.dropdown:hover .dropdown-content { + display: block; +} diff --git a/index.html b/index.html index 76e31d99..80802f97 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,21 @@

    TREK

    - + +
    + + +
    +
    + +
    diff --git a/index.js b/index.js index 0eb63d83..1e1fdb23 100644 --- a/index.js +++ b/index.js @@ -21,6 +21,21 @@ const reportError = (message, errors) => { const baseURL = 'https://ada-backtrek-api.herokuapp.com/trips'; +const buildTripTable = function buildTripTable(input) { + + $('#trip-list').append(''); + + input.data.forEach( (trip) => { + let content = ''; + content += `${trip.name}`; + content += ``; + $('#trip-list').append(content); + }); + + $('#trip-list').append(''); + reportStatus(`${input.data.length} trips loaded`, 'success'); +} + const getTrips = () => { const tripList = $('#trip-list'); tripList.empty(); @@ -29,18 +44,9 @@ const getTrips = () => { axios.get(baseURL) .then((response) => { + $('#trip-list').empty(); $('#trip-list').append('

    All Trips

    '); - $('#trip-list').append('') - - response.data.forEach( (trip) => { - let content = ''; - content += `${trip.name}`; - content += ``; - $('#trip-list').append(content); - }); - - $('#trip-list').append(''); - reportStatus(`${response.data.length} trips loaded`, 'success'); + buildTripTable(response); }) .catch((error) => { // this might not be right @@ -59,8 +65,8 @@ const buildForm = function buildForm(id, name) { let formContent = ''; formContent += `

    Reserve Trip: ${name}

    `; formContent += ``; - formContent += '
    '; - formContent += '
    '; + formContent += '
    '; + formContent += '
    '; formContent += ``; formContent += ''; @@ -137,10 +143,105 @@ const reserveTrip = function reserveTrip (event) { $('#trip-form').empty(); }; +const searchBySection = function searchBy (event) { + let target = event.target; + let searchCat = target.id; + + switch(searchCat) { + case 'continent': + $('#search-filters').html( + `` + ); + break; + case 'budget': + $('#search-filters').html( + `` + ); + break; + case 'weeks': + $('#search-filters').html( + `