Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions tinasharma/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
node_modules
db\
.DS_Store
notes.js
**/*bundle.js
**/build
66 changes: 66 additions & 0 deletions tinasharma/app/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title>Parcel site</title>
<link rel="stylesheet" href="/main.css" type="text/css">
</head>

<body data-ng-app="ParcelStreamApp">
<h1>Parcels App!</h1>
<main data-ng-controller="ParcelsController" data-ng-init="getAll()">
<ul id="errorslist">
<li data-ng-repeat="error in errors">{{error}}</li>
</ul>

<form class="containers" name="newParcelForm" data-ng-submit="create(newParcel)">
<h2>New parcel:</h2>

<label for="newParcelName">Name:</label>
<input type="text" id="newParcelName" required data-ng-model="newParcel.name">

<label for="newParcelSize">Parcel size: </label>
<input type="text" id="newParcelSize" data-ng-model="newParcel.size" placeholder="small/medium/large">

<label for="newParcelWeight">Parcel weight:</label>
<input type="text" id="newParcelWeight" data-ng-model="newParcel.weight" placeholder="less than 10 lbs">

<button type="submit" data-ng-disabled="newParcelForm.$invalid">Create New Parcel</button>
</form>

<ul id="parcellist">
<li data-ng-repeat="parcel in parcels">
{{parcel.name}}

<form class="row" name="parcelForm{{parcel._id}}" data-ng-submit="update(parcel)" data-ng-if="parcel.editing">
<h2>Update: {{parcel.name}}</h2>

<label for="parcelName{{parcel._id}}">Name:</label>
<input type="text" id="parcelName{{parcel._id}}" required data-ng-model="parcel.name">

<label for="parcelSize{{parcel._id}}">Size:</label>
<input type="text" id="parcelSize{{parcel._id}}" data-ng-model="parcel.size" placeholder="small/medium/large">

<label for="parcelWeight{{parcel._id}}">Weight:</label>
<input type="text" id="parcelWeight{{parcel._id}}" data-ng-model="parcel.weight" placeholder="less than 10 lbs">

<button type="submit">Update</button>
<button data-ng-click="reset(parcel)">Don't update</button>

</form>

<button id="update-btn" data-ng-if="!parcel.editing" data-ng-click="startUpdate(parcel)">Update</button>

<button id="delete-btn" data-ng-if="!parcel.editing" data-ng-click="remove(parcel)">Remove This Parcel!</button>

</li>
</ul>
</main>
<script src="/bundle.js"></script>

</body>


</html>

6 changes: 6 additions & 0 deletions tinasharma/app/js/entry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
require('angular/angular');
var angular = window.angular;

var parcelStreamApp = angular.module('ParcelStreamApp', []);

require('./parcels/parcels')(parcelStreamApp);
68 changes: 68 additions & 0 deletions tinasharma/app/js/parcels/controllers/parcels_controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
var angular = window.angular;
module.exports = function(app) {
app.controller('ParcelsController', ['$scope', '$http', function($scope, $http) {
$scope.parcels = [];
$scope.newParcel = null;
$scope.errors = [];
$scope.updatingParcels = {};
$scope.defaults = {size: 'small', weight: '3'};
$scope.newParcel = angular.copy($scope.defaults);

$scope.getAll = function() {
$http.get('/api/parcels')
.then(function(res) {
$scope.parcels = res.data;
}, function(err) {
console.log(err.data);
});
};

$scope.create = function(parcel) {
$http.post('/api/parcels', parcel)
.then(function(res) {
$scope.parcels.push(res.data);
$scope.newParcel = angular.copy($scope.defaults);
}, function(err) {
console.log(err.data);
});
};

$scope.update = function(parcel) {
parcel.editing = false;
$http.put('/api/parcels/' + parcel._id, parcel)
.then(function(res) {
console.log('parcel is updated');
}, function(err) {
$scope.errors.push('could not update: ' + parcel.name + ' parcel');
console.log(err.data);
});
};

$scope.startUpdate = function(parcel) {
parcel.editing = true;
$scope.updatingParcels[parcel._id] = {name: parcel.name, size: parcel.size, weight: parcel.weight};
};

$scope.reset = function(parcel) {
var oldParcel = $scope.updatingParcels[parcel._id];
$scope.parcel = angular.copy($scope.master);
parcel.name = oldParcel.name;
parcel.size = oldParcel.size;
parcel.weight = oldParcel.weight;
parcel.editing = false;
};

$scope.remove = function(parcel) {
$scope.parcels.splice($scope.parcels.indexOf(parcel), 1);
$http.delete('/api/parcels/' + parcel._id)
.then(function(res) {
console.log('parcel deleted');
}, function(err) {
console.log(err.data);
$scope.errors.push('could not delete parcelzzz: ' + parcel.name);
$scope.getAll();
});
};

}]);
};
3 changes: 3 additions & 0 deletions tinasharma/app/js/parcels/parcels.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = function(app) {
require('./controllers/parcels_controller')(app);
};
42 changes: 42 additions & 0 deletions tinasharma/app/sass/base/_base.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
body {
font-family: $font-stack;
line-height: 1.5;
}

h1,
h2 {
font-family: 'Roboto Slab', serif;
text-decoration: underline;

}

h2 {
color: $primary-color;
}

h1 {
text-align: center;
@extend %large-type;
}

form {
@include default-box;
background-color: $background-color;
border-color: $border-color;
}

.row {
color: $primary-color;
}

label {
color:blue;
}

#parcellist {
margin-left: 180px;
}
button,
input {

}
Loading