confirming works, last address is now persisted, thank you page is up but not yet accessible

This commit is contained in:
Senad Uka
2015-03-03 07:26:18 +01:00
parent 4befef5bf4
commit 0f47367cd0
9 changed files with 153 additions and 20 deletions

View File

@@ -78,9 +78,17 @@ var NavigationActions = {
actionType: NavigationConstants.CHANGE_URL,
url: '/'
});
},
goToThankYou: function() {
AppDispatcher.handleAction({
actionType: NavigationConstants.CHANGE_URL,
url: '/hvala'
});
}
};
module.exports = NavigationActions;

View File

@@ -12,15 +12,25 @@ var AddToCart = React.createClass({
render: function() {
return (
var itemCount = this.state.item.get('count');
var moreThanZeroItems = (
<div className="row-fluid add-to-cart">
<div className="span12">
<div style={buttonHolderStyle}><button className="btn btn-success" onClick={this._onIncreaseClick}>+</button></div>
<div style={buttonHolderStyle}><button className="btn"> { this.state.item.get('count') } </button></div>
<div style={buttonHolderStyle}><button className="btn"> { itemCount } </button></div>
<div style={buttonHolderStyle}><button className="btn btn-success" onClick={this._onDecreaseClick}>-</button></div>
<div style={buttonHolderStyle}><button className="btn btn-success" onClick={this._onIncreaseClick}>+</button></div>
</div>
</div>
);
var zeroItems = (<div className="row-fluid add-to-cart">
<div className="span12">
<div style={buttonHolderStyle}><button className="btn btn-success" onClick={this._onIncreaseClick}>Kupi</button></div>
</div>
</div> );
return (itemCount <= 0) ? zeroItems : moreThanZeroItems;
},
// Add change listeners to stores

View File

@@ -0,0 +1,60 @@
var React = require('react'),
CartStore = require('../../stores/cartStore'),
AddToCart = require('../cart/addToCart'),
CartActions = require('../../actions/cartActions'),
NavigationActions = require('../../actions/navigationActions'),
Globals = require('../../globals')
Router = require("react-router"),
Link = Router.Link;
var ThankYouPage = React.createClass({
render: function() {
return (
<div className="thank-you-page center">
<h1>Roba je naručena!</h1>
<p>Hvala na narudžbi. Naša zaposlenica će vas kontaktirati da ugovori detalje o preuzimanju. </p>
<p>Registrujte se kako biste dobili informaciju o popustima, imali pregled svih vaših narudžbi,
koristili Baby Shower, Predlagač poklona te kalendar događaja.</p>
<p>
Registracija je jednostavna - samo jedan klik. <Link to="registracija">Klikni ovdje</Link>.
</p>
</div>
);
},
// Add change listeners to stores
/*
,
componentDidMount: function() {
CartStore.addChangeListener(this._onChange);
CartActions.load();
},
componentWillUnmount: function () {
CartStore.removeChangeListener(this._onChange);
},
_onChange: function () {
if (this.isMounted()) {
this.setState(CartStore.getWholeCartState());
}
},
getInitialState: function () {
return CartStore.getWholeCartState();
}*/
});
module.exports = ThankYouPage;

View File

@@ -0,0 +1,20 @@
var Backbone = require('backbone');
var Globals = require('../globals');
var orderConfirmation = Backbone.Model.extend({
initialize: function() {
$.ajaxPrefilter(
function(options, originalOptions, jqXHR) {
options.xhrFields = {
withCredentials: true
}
}
);
},
url: Globals.ApiUrl + '/cart/confirmation',
defaults: { }
});
module.exports = orderConfirmation;

View File

@@ -14,6 +14,7 @@ var RootApp = require('./components/rootApp');
var StartPage = require('./components/startPage/startPage');
var ByCategory = require('./components/browsing/byCategory');
var BySection = require('./components/browsing/bySection');
var ThankYouPage = require('./components/thankyou/thankYouPage');
var Register = require('./components/account/register');
var Login = require('./components/account/login');
@@ -28,6 +29,7 @@ var routes = (
<Route name='registracija' path="/registracija" handler={Register} />
<Route name='login' path="/login" handler={Login} />
<Route name='byCat' path="sekcija/:sekcijaName/kategorija/:id/*" handler={ByCategory} />
<Route name='hvala' path="/hvala" handler={ThankYouPage} />
<DefaultRoute handler={StartPage}/>
</Route>
);

View File

@@ -2,10 +2,12 @@ var AppDispatcher = require('../dispatcher/appDispatcher');
var EventEmitter = require('events').EventEmitter;
var CartConstants = require('../constants/cartConstants');
var CartActions = require('../actions/cartActions');
var NavigationActions = require('../actions/navigationActions');
var ItemInCart = require('../models/itemInCart');
var ItemInCartCollection = require('../models/itemInCartCollection');
var ItemCollection = require('../models/itemCollection');
var DeliveryDestination = require('../models/deliveryDestination');
var OrderConfirmation = require('../models/orderConfirmation');
var _ = require('underscore');
@@ -44,6 +46,15 @@ var loadCart = function() {
};
var saveCartStateForItem = function(itemId) {
var item = CartStore.getStateFor(itemId);
item.save({
success: function() {
CartActions.dataLoaded();
}
});
};
var addItem = function(itemId) {
var state = states[itemId] || new ItemInCart({
@@ -53,6 +64,7 @@ var addItem = function(itemId) {
state.set('count', state.get('count') + 1);
states[itemId] = state;
saveCartStateForItem(itemId);
};
var takeItemOut = function(itemId) {
@@ -68,23 +80,29 @@ var takeItemOut = function(itemId) {
saveCartStateForItem(itemId);
};
var saveCartStateForItem = function(itemId) {
var item = CartStore.getStateFor(itemId);
item.save({
success: function() {
CartActions.dataLoaded();
}
});
};
var changeDeliveryDestinationProperty = function(property, value) {
_deliveryDestination.set(property, value);
};
var confirmOrder = function () {
console.log("confirming");
var oc = new OrderConfirmation({ hamo: 'meho' });
oc.save({b:'b'}, {
success: function () {
console.log("done");
NavigationActions.goToThankYou();
}
});
};
var saveDeliveryDestination = function() {
_deliveryDestination.save({
console.log("saving delivery destination");
_deliveryDestination.save(null,{
success: function() {
CartActions.dataLoaded();
console.log("saved delivery destination");
confirmOrder();
}
})
};