trello integration finished
This commit is contained in:
@@ -23,3 +23,4 @@ gem "sinatra-contrib"
|
||||
gem 'rerun'
|
||||
gem 'xxhash', '~> 0.3.0'
|
||||
gem 'sendgrid-ruby'
|
||||
gem 'ruby-trello'
|
||||
|
||||
@@ -1,111 +1,106 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activemodel (4.2.0)
|
||||
activesupport (= 4.2.0)
|
||||
activemodel (4.2.4)
|
||||
activesupport (= 4.2.4)
|
||||
builder (~> 3.1)
|
||||
activerecord (4.2.0)
|
||||
activemodel (= 4.2.0)
|
||||
activesupport (= 4.2.0)
|
||||
activerecord (4.2.4)
|
||||
activemodel (= 4.2.4)
|
||||
activesupport (= 4.2.4)
|
||||
arel (~> 6.0)
|
||||
activerecord-jdbc-adapter (1.3.13)
|
||||
activerecord-jdbc-adapter (1.3.18)
|
||||
activerecord (>= 2.2)
|
||||
activerecord-jdbcpostgresql-adapter (1.3.13)
|
||||
activerecord-jdbc-adapter (~> 1.3.13)
|
||||
activerecord-jdbcpostgresql-adapter (1.3.18)
|
||||
activerecord-jdbc-adapter (~> 1.3.18)
|
||||
jdbc-postgres (>= 9.1)
|
||||
activesupport (4.2.0)
|
||||
activesupport (4.2.4)
|
||||
i18n (~> 0.7)
|
||||
json (~> 1.7, >= 1.7.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
arel (6.0.0)
|
||||
backports (3.6.4)
|
||||
addressable (2.3.8)
|
||||
arel (6.0.3)
|
||||
backports (3.6.6)
|
||||
bcrypt (3.1.10)
|
||||
bcrypt (3.1.10-java)
|
||||
builder (3.2.2)
|
||||
celluloid (0.16.0)
|
||||
timers (~> 4.0.0)
|
||||
domain_name (0.5.24)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
elasticsearch (1.0.8)
|
||||
elasticsearch-api (= 1.0.7)
|
||||
elasticsearch-transport (= 1.0.7)
|
||||
elasticsearch-api (1.0.7)
|
||||
elasticsearch (1.0.13)
|
||||
elasticsearch-api (= 1.0.13)
|
||||
elasticsearch-transport (= 1.0.13)
|
||||
elasticsearch-api (1.0.13)
|
||||
multi_json
|
||||
elasticsearch-transport (1.0.7)
|
||||
elasticsearch-transport (1.0.13)
|
||||
faraday
|
||||
multi_json
|
||||
faraday (0.9.1)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.9.6)
|
||||
ffi (1.9.6-java)
|
||||
hitimes (1.2.2)
|
||||
hitimes (1.2.2-java)
|
||||
http-cookie (1.0.2)
|
||||
domain_name (~> 0.5)
|
||||
ffi (1.9.10)
|
||||
ffi (1.9.10-java)
|
||||
hitimes (1.2.3)
|
||||
hitimes (1.2.3-java)
|
||||
i18n (0.7.0)
|
||||
jdbc-postgres (9.3.1102)
|
||||
jruby-openssl (0.9.6-java)
|
||||
json (1.8.1)
|
||||
json (1.8.1-java)
|
||||
listen (2.8.5)
|
||||
celluloid (>= 0.15.2)
|
||||
jdbc-postgres (9.4.1200)
|
||||
jruby-openssl (0.9.11-java)
|
||||
json (1.8.3)
|
||||
listen (2.10.1)
|
||||
celluloid (~> 0.16.0)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
mime-types (2.6.2)
|
||||
minitest (5.5.0)
|
||||
multi_json (1.10.1)
|
||||
minitest (5.8.0)
|
||||
multi_json (1.11.2)
|
||||
multipart-post (2.0.0)
|
||||
netrc (0.10.3)
|
||||
pg (0.17.1)
|
||||
puma (2.10.2)
|
||||
rack (>= 1.1, < 2.0)
|
||||
puma (2.10.2-java)
|
||||
rack (>= 1.1, < 2.0)
|
||||
rack (1.6.0)
|
||||
oauth (0.4.7)
|
||||
pg (0.18.3)
|
||||
puma (2.14.0)
|
||||
puma (2.14.0-java)
|
||||
rack (1.6.4)
|
||||
rack-protection (1.5.3)
|
||||
rack
|
||||
rack-test (0.6.3)
|
||||
rack (>= 1.0)
|
||||
rb-fsevent (0.9.4)
|
||||
rb-fsevent (0.9.6)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
rerun (0.10.0)
|
||||
listen (~> 2.7, >= 2.7.3)
|
||||
rest-client (1.8.0)
|
||||
http-cookie (>= 1.0.2, < 2.0)
|
||||
rest-client (1.7.3)
|
||||
mime-types (>= 1.16, < 3.0)
|
||||
netrc (~> 0.7)
|
||||
ruby-trello (1.2.1)
|
||||
activemodel (>= 3.2.0)
|
||||
addressable (~> 2.3)
|
||||
json
|
||||
oauth (~> 0.4.5)
|
||||
rest-client (~> 1.7.2)
|
||||
sendgrid-ruby (0.0.3)
|
||||
rest-client
|
||||
smtpapi
|
||||
sinatra (1.4.5)
|
||||
sinatra (1.4.6)
|
||||
rack (~> 1.4)
|
||||
rack-protection (~> 1.4)
|
||||
tilt (~> 1.3, >= 1.3.4)
|
||||
sinatra-activerecord (2.0.3)
|
||||
tilt (>= 1.3, < 3)
|
||||
sinatra-activerecord (2.0.8)
|
||||
activerecord (>= 3.2)
|
||||
sinatra (~> 1.0)
|
||||
sinatra-contrib (1.4.2)
|
||||
sinatra-contrib (1.4.6)
|
||||
backports (>= 2.0)
|
||||
multi_json
|
||||
rack-protection
|
||||
rack-test
|
||||
sinatra (~> 1.4.0)
|
||||
tilt (~> 1.3)
|
||||
tilt (>= 1.3, < 3)
|
||||
smtpapi (0.1.0)
|
||||
thread_safe (0.3.4)
|
||||
thread_safe (0.3.4-java)
|
||||
tilt (1.4.1)
|
||||
timers (4.0.1)
|
||||
thread_safe (0.3.5)
|
||||
tilt (2.0.1)
|
||||
timers (4.0.4)
|
||||
hitimes
|
||||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf (0.1.4-java)
|
||||
unf_ext (0.0.7.1)
|
||||
xxhash (0.3.0)
|
||||
|
||||
PLATFORMS
|
||||
@@ -122,6 +117,7 @@ DEPENDENCIES
|
||||
pg
|
||||
puma
|
||||
rerun
|
||||
ruby-trello
|
||||
sendgrid-ruby
|
||||
sinatra
|
||||
sinatra-activerecord
|
||||
|
||||
@@ -1,13 +1,26 @@
|
||||
require 'sinatra'
|
||||
require 'sinatra/activerecord'
|
||||
require './config'
|
||||
require './helpers'
|
||||
require 'json'
|
||||
require 'sinatra/cookies'
|
||||
require 'elasticsearch'
|
||||
require 'xxhash'
|
||||
require 'trello'
|
||||
require 'sendgrid-ruby'
|
||||
|
||||
|
||||
|
||||
|
||||
Trello.configure do |config|
|
||||
# API key generated by visiting https://trello.com/1/appKey/generate
|
||||
config.developer_public_key = "f13dd6c2dcc65f48b9a56c6d420e32e7"
|
||||
|
||||
# Member token
|
||||
# larry-price.com/blog/2014/03/18/connecting-to-the-trello-api/
|
||||
config.member_token = "e8e1885d794dbc4d9d8d1ae586a84e580be224b2737254de6064d7d7219f3064"
|
||||
end
|
||||
|
||||
Dir[File.dirname(__FILE__) + '/models/*.rb'].each {|file| require file }
|
||||
|
||||
set :bind, '0.0.0.0'
|
||||
|
||||
@@ -54,22 +54,36 @@ put '/cart/delivery_destination', &update_delivery_destination
|
||||
post '/cart/delivery_destination', &update_delivery_destination
|
||||
|
||||
|
||||
def send_order_email(cart)
|
||||
def report_to_trello(cart)
|
||||
Thread.new do
|
||||
@cart = cart
|
||||
board = Trello::Board.find('FqDO1eFL')
|
||||
list = board.lists.first
|
||||
card = Trello::Card.new
|
||||
card.list_id = list.id
|
||||
card.name = cart.title
|
||||
card.pos = "bottom"
|
||||
card.desc = erb(:cart_trello, :layout => false)
|
||||
card.save
|
||||
end
|
||||
end
|
||||
|
||||
client = SendGrid::Client.new(api_user: "ribica",
|
||||
api_key: "plava*kutija*svjetlo*torba07"
|
||||
def send_order_email(cart)
|
||||
Thread.new do
|
||||
client = SendGrid::Client.new(
|
||||
api_user: "ribica",
|
||||
api_key: "plava*kutija*svjetlo*torba07"
|
||||
)
|
||||
|
||||
email = SendGrid::Mail.new do |m|
|
||||
m.to = "narudzbe@ribica.ba"
|
||||
m.from = "draga@ribica.ba"
|
||||
m.from_name = "Prodavnica Ribica"
|
||||
m.subject = "Nova Narudžba: #{cart.id}"
|
||||
m.html = "Mušterija naručila nešto. <br /> Pogledati https://www.ribica.ba/backoffice/carts/#{cart.id}"
|
||||
email = SendGrid::Mail.new do |m|
|
||||
m.to = "narudzbe@ribica.ba"
|
||||
m.from = "draga@ribica.ba"
|
||||
m.from_name = "Prodavnica Ribica"
|
||||
m.subject = "Nova Narudžba: #{cart.id}"
|
||||
m.html = "Mušterija naručila nešto. <br /> Pogledati https://www.ribica.ba/backoffice/carts/#{cart.id}"
|
||||
end
|
||||
client.send(email)
|
||||
end
|
||||
|
||||
client.send(email)
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -83,6 +97,7 @@ post '/cart/confirmation' do
|
||||
# since there is no more ordered cart this needs to be done
|
||||
# in order for next call of Cart#just_find to be ready
|
||||
Cart.find_or_create(anonymous, logged_in_user_id)
|
||||
report_to_trello(cart)
|
||||
send_order_email(cart)
|
||||
"OK".to_json
|
||||
end
|
||||
|
||||
5
front-api/helpers.rb
Normal file
5
front-api/helpers.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
class Helper
|
||||
def self.money(amount)
|
||||
sprintf('%.2f KM', amount.to_f)
|
||||
end
|
||||
end
|
||||
@@ -53,4 +53,30 @@ class Cart < ActiveRecord::Base
|
||||
cart ||= Cart.where(anonymous_id_string: anonymous_id).where(ordered: false).first
|
||||
return cart
|
||||
end
|
||||
|
||||
def confirmed_at
|
||||
delivery_destination.updated_at.in_time_zone('Europe/Sarajevo')
|
||||
end
|
||||
|
||||
def delivery_cost
|
||||
place = Place.by_code_or_default(delivery_destination.place)
|
||||
if delivery_destination.instant_delivery
|
||||
place.instant_delivery_price
|
||||
else
|
||||
place.delivery_price
|
||||
end
|
||||
end
|
||||
|
||||
def total
|
||||
sum = item_in_carts.inject (0) { |sum, iic| sum + (iic.price * iic.count) }
|
||||
sum += delivery_cost
|
||||
end
|
||||
|
||||
def title
|
||||
number = id
|
||||
name = delivery_destination.name
|
||||
value = Helper.money(total)
|
||||
phone = "0#{delivery_destination.phone}"
|
||||
"BR: #{number} za #{name} (#{phone}) - #{value}"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,4 +8,526 @@ class Place < ActiveRecord::Base
|
||||
return place
|
||||
end
|
||||
|
||||
|
||||
def self.name_from_code(code)
|
||||
places_bulk = %Q{Aleksandrovac 78255
|
||||
Avtovac 89245
|
||||
Balatun 76310
|
||||
Banja Luka 78000
|
||||
Banovici 75290
|
||||
Batkovic 76312
|
||||
Begov Han 72233
|
||||
Berkovici 88363
|
||||
Bihac 77000
|
||||
Bijela 76204
|
||||
Bijeljina 76300
|
||||
Bijelo Brdo 73263
|
||||
Bileca 89230
|
||||
Biljesevo 72248
|
||||
Bjelimici 88407
|
||||
Blagaj 88201
|
||||
Blatnica 74275
|
||||
Blatnica Kod Mostara 88263
|
||||
Blazuj 71215
|
||||
Bok 76277
|
||||
Boljanic 74322
|
||||
Bosanska Krupa 77240
|
||||
Bosanski Petrovac 77250
|
||||
Bosansko Grahovo 80270
|
||||
Bradina 88408
|
||||
Bratunac 75420
|
||||
Brcko 76000
|
||||
Brcko Distrikt 76100
|
||||
Brekovica 77205
|
||||
Brestovo 74210
|
||||
Brestovsko 71255
|
||||
Breza 71370
|
||||
Brezicani 79208
|
||||
Brezik 76109
|
||||
Brezovo Polje 76216
|
||||
Brijesnica 74206
|
||||
Brijesnica Kod Doboja 74206
|
||||
Brijesnica Mala 74206
|
||||
Brijesnica Velika 74206
|
||||
Brka 76206
|
||||
Brnjic 72243
|
||||
Brocanac 88243
|
||||
Brocanac 88243
|
||||
Brod Kod Foce 73309
|
||||
Brodac 76313
|
||||
Bronzani Majdan 78204
|
||||
Bucici 72290
|
||||
Bugojno 70230
|
||||
Bukinje 75203
|
||||
Buletic 74277
|
||||
Buna 88202
|
||||
Busovaca 72260
|
||||
Buturovicpolje 88409
|
||||
Buzim 77245
|
||||
Cajnice 73280
|
||||
Caparde 75405
|
||||
Capljina 88300
|
||||
Cardak 72224
|
||||
Careva Cuprija 71347
|
||||
Catici 72246
|
||||
Cazin 77220
|
||||
Cecava 74274
|
||||
Celebici 88404
|
||||
Celebici Lusnic 80203
|
||||
Celebici Kod Foce 73307
|
||||
Celic 75246
|
||||
Celinac 78240
|
||||
Cemerno 89243
|
||||
Cerin 88265
|
||||
Cerovica 74211
|
||||
Cerovljani 78403
|
||||
Citluk 88260
|
||||
Coralici 77226
|
||||
Crkvina 76239
|
||||
Crnici 88367
|
||||
Crnjelovo 76328
|
||||
Dejcici 71221
|
||||
Demirovac 79243
|
||||
Derventa 74400
|
||||
Derventa Kod Vlasenice 75444
|
||||
Divin 89233
|
||||
Doboj 74000
|
||||
Doboj Istok 74206
|
||||
Doboj Jug 74203
|
||||
Doborovci 75328
|
||||
Dobosnica 75308
|
||||
Dobretici 77210
|
||||
Dobrinja 71245
|
||||
Dobrljin 79223
|
||||
Dobro Selo 77242
|
||||
Dobrun 73247
|
||||
Dokanj 75206
|
||||
Dolac Na Lasvi 72278
|
||||
Domaljevac 76233
|
||||
Domanovici 88305
|
||||
Donja Mahala 76274
|
||||
Donja Medjidja 76257
|
||||
Donja Slatina 76327
|
||||
Donje Mostre 71305
|
||||
Donji Agici 79228
|
||||
Donji Memici 88343
|
||||
Donji Vakuf 70220
|
||||
Donji Vijacani 78432
|
||||
Donji Vrbljani 79289
|
||||
Donji Zabar 76273
|
||||
Dragaljevac 76323
|
||||
Dragalovci 74209
|
||||
Dragocaj 78215
|
||||
Dreznica 88215
|
||||
Drinjaca 75410
|
||||
Drinovci 88344
|
||||
Drvar 80260
|
||||
Duboki Potok 75358
|
||||
Dubostica 75308
|
||||
Dubrave 78411
|
||||
Dubrave Donje 75274
|
||||
Dubrave Gornje 75273
|
||||
Dubrovik 79227
|
||||
Dugo Polje 74483
|
||||
Djurdjevik 75272
|
||||
Dusanovo 75445
|
||||
Duzice 88342
|
||||
Dvorovi 76311
|
||||
Fajtovci 79264
|
||||
Foca 73300
|
||||
Fojnica 71270
|
||||
Fojnica Kod Gacka 89247
|
||||
Gabela Polje 88306
|
||||
Gacko 89240
|
||||
Glamoc 80230
|
||||
Glavicice 76318
|
||||
Globarica 72230
|
||||
Gojevici 71275
|
||||
Gorazde 73000
|
||||
Gorica 88340
|
||||
Gornja Koprivna 77222
|
||||
Gornja Slatina 76238
|
||||
Gornja Tuzla 75208
|
||||
Gornji Kamengrad 79266
|
||||
Gornji Podgradci 78405
|
||||
Gornji Rahic 76207
|
||||
Gornji Strpci 78439
|
||||
Gornji Teslic 74272
|
||||
Gornji Vakuf Uskoplje 70240
|
||||
Gornji Zovik 76207
|
||||
Grab 89201
|
||||
Grabovica 78227
|
||||
Gracanica 75320
|
||||
Gracanica Kod Bugojna 70233
|
||||
Gracanica Selo 75276
|
||||
Gradac 88392
|
||||
Gradacac 76250
|
||||
Gradiska 78400
|
||||
Grude 88340
|
||||
Guber 80205
|
||||
Listani 80204
|
||||
Guca Gora 72277
|
||||
Hadzici 71240
|
||||
Hajdarevici 72225
|
||||
Haljinici 72245
|
||||
Han Bila 72281
|
||||
Han Pijesak 71360
|
||||
Hrasnica 71212
|
||||
Hrasno 88395
|
||||
Hresa 71144
|
||||
Hrvacani 78436
|
||||
Husino 75216
|
||||
Hutovo 88394
|
||||
Ilidza 71210
|
||||
Ilijas 71380
|
||||
Ilovaca 73208
|
||||
Imljani 78234
|
||||
Izacic 77208
|
||||
Jablanica 88420
|
||||
Jahorina 71423
|
||||
Jajce 70101
|
||||
Janja 76316
|
||||
Janjici 72215
|
||||
Jare 88224
|
||||
Javorani 78233
|
||||
Jelah 74264
|
||||
Jezerski 77241
|
||||
Johova 79244
|
||||
Josanica 73319
|
||||
Josavka 78244
|
||||
Kacuni 72264
|
||||
Kakanj 72240
|
||||
Kalenderovci 74413
|
||||
Kalesija 75260
|
||||
Kalinovik 71230
|
||||
Kamenica 77204
|
||||
Kaonik 72265
|
||||
Kasindo 71213
|
||||
Kazaginac 80246
|
||||
Kifino Selo 88283
|
||||
Kiseljak 71250
|
||||
Kiseljak, Kod Tuzle 75211
|
||||
Kladanj 75280
|
||||
Klakar Donji 74452
|
||||
Kljuc 79280
|
||||
Klobuk 88324
|
||||
Klokotnica 74207
|
||||
Knezevo 78230
|
||||
Skender Vakuf 78230
|
||||
Knezica 79246
|
||||
Knezina 71356
|
||||
Kobas 78423
|
||||
Kocerin 88226
|
||||
Kocicevo 78409
|
||||
Kola 78207
|
||||
Kongora 80244
|
||||
Konjic 88400
|
||||
Konjoder 77249
|
||||
Koprivna 74489
|
||||
Koraj 75247
|
||||
Kornica 76236
|
||||
Kosova 74253
|
||||
Kostric 76276
|
||||
Kotor Varos 78220
|
||||
Kotorsko 74215
|
||||
Kovaci 72226
|
||||
Kozarac 79002
|
||||
Bosanska Dubica 79240
|
||||
Kozluk 75413
|
||||
Kraljeva Sutjeska 72244
|
||||
Kresevo 71260
|
||||
Kriskovci 78256
|
||||
Krupa Na Vrbasu 78206
|
||||
Krusevo 88203
|
||||
Kukulje 78424
|
||||
Kula 71216
|
||||
Kulasi 78443
|
||||
Kulen Vakuf 77206
|
||||
Kupres 80320
|
||||
Laktasi 78250
|
||||
Laminci Sredjani 78407
|
||||
Lamovita 79204
|
||||
Lastva 89208
|
||||
Lasva 72216
|
||||
Liplje 78222
|
||||
Lipnica 75213
|
||||
Lisnja 78434
|
||||
Livno 80101
|
||||
Ljubace 75214
|
||||
Ljubija 79206
|
||||
Ljubinje 88380
|
||||
Ljubomir 89209
|
||||
Ljubuski 88320
|
||||
Ljuti Dolac 88223
|
||||
Loncari 76278
|
||||
Lopare 75240
|
||||
Lukavac 75300
|
||||
Lukavac Mjesto 75301
|
||||
Lukavica 75327
|
||||
Lusci Palanka 79267
|
||||
Maglaj 74250
|
||||
Majevac 74216
|
||||
Mala Kladusa 77235
|
||||
Mala Socanica 74418
|
||||
Malesici 75320
|
||||
Maoca 76208
|
||||
Masici 78410
|
||||
Maslovare 78223
|
||||
Matici 76271
|
||||
Matuzici 74203
|
||||
Medjugorje 88266
|
||||
Medjuvodje 79247
|
||||
Mehurici 72282
|
||||
Mesihovina 80243
|
||||
Milici 75446
|
||||
Miljeno 73283
|
||||
Miljevina 73313
|
||||
Milosevac 74485
|
||||
Miricina 75329
|
||||
Modrica 74480
|
||||
Mokro 71428
|
||||
Mosko 89204
|
||||
Mostar 88000
|
||||
Mostar, Jug 88000
|
||||
Mostar, Jugozapad 88000
|
||||
Mostar, Sjever 88000
|
||||
Mostar, Zapad 88000
|
||||
Mramor 75212
|
||||
Mravinjac 73206
|
||||
Mrkodol 79544
|
||||
Mrkonjic Grad 70260
|
||||
Nemila 72212
|
||||
Neum 88390
|
||||
Nevesinje 88280
|
||||
Nova Bila 72276
|
||||
Nova Topola 78418
|
||||
Bosanski Novi 79220
|
||||
Novi Seher 74254
|
||||
Novi Travnik 72290
|
||||
Nozicko 78428
|
||||
Oborci 70225
|
||||
Obudovac 76235
|
||||
Odzak 76290
|
||||
Vukosavlje 74470
|
||||
Odzak Kod Nevesinja 88285
|
||||
Olovo 71340
|
||||
Omarska 79203
|
||||
Orahova 78406
|
||||
Orahovica Donja 75323
|
||||
Orasje 76270
|
||||
Osinja 74412
|
||||
Osjecani 74225
|
||||
Osmaci 75406
|
||||
Ostra Luka 79263
|
||||
Ostrozac 88423
|
||||
Ostrozac Kod Cazina 77228
|
||||
Otoka 77244
|
||||
Ozimica 72238
|
||||
Palackovci 78437
|
||||
Pale 71420
|
||||
Papraca 75435
|
||||
Pazaric 71243
|
||||
Pecigrad 77227
|
||||
Pelagicevo 76256
|
||||
Perin Han 72112
|
||||
Petrovo 74317
|
||||
Pilica 75412
|
||||
Piskavica 78217
|
||||
Pocitelj 88305
|
||||
Poculica 72252
|
||||
Podgrab 71425
|
||||
Podhum 80209
|
||||
Podlugovi 71387
|
||||
Podnovlje 74217
|
||||
Podorasje Kod Srebrenika 75355
|
||||
Podzvizd 77232
|
||||
Poljice 75303
|
||||
Popovi 75320
|
||||
Posusje 88240
|
||||
Potkozarje 78216
|
||||
Potocani 78435
|
||||
Potoci 88208
|
||||
Praca 73290
|
||||
Prelovo 73245
|
||||
Previja 79287
|
||||
Pribinic 74276
|
||||
Priboj Kod Lopara 75249
|
||||
Prijedor 79101
|
||||
Priluka 80202
|
||||
Prisoje 80245
|
||||
Prnjavor 78430
|
||||
Prolog 80206
|
||||
Prozor 88440
|
||||
Prusac 70223
|
||||
Przici 71335
|
||||
Puhovac 72207
|
||||
Puracic 75305
|
||||
Radisici 88325
|
||||
Rainci Gornji 75268
|
||||
Rakitno 88245
|
||||
Rakovica 71217
|
||||
Rasko Polje 80247
|
||||
Razboj Lijevce 78429
|
||||
Razljevo 76218
|
||||
Ribnik 79288
|
||||
Ripac 77215
|
||||
Rogatica 73220
|
||||
Rudice 79226
|
||||
Rudo 73260
|
||||
Ruzici 88347
|
||||
Bosanski Samac 76230
|
||||
Sanica Gornja 79285
|
||||
Sanski Most 79260
|
||||
Sapna 75411
|
||||
Saracica 78202
|
||||
Sarajevo 71000
|
||||
Sarajevo, Centar 71103
|
||||
Sarajevo, Novi Grad 71160
|
||||
Sarajevo, Novo Sarajevo 71120
|
||||
Sarajevo, Stari Grad 71140
|
||||
Satorovici 76209
|
||||
Sekovici 73305
|
||||
Sekovici 75450
|
||||
Semizovac 71321
|
||||
Seonjaci 76205
|
||||
Serici 75275
|
||||
Sibosnica 75245
|
||||
Sibovska 78433
|
||||
Simin Han 75207
|
||||
Sipovo 78364
|
||||
Siprage 78224
|
||||
Siroki Brijeg 88220
|
||||
Sitnesi 78422
|
||||
Sitnica 79283
|
||||
Skelani 75436
|
||||
Skugric 74261
|
||||
Sladna 75353
|
||||
Slatina Ilidza 78253
|
||||
Smrtici 78438
|
||||
Snjegotina Gornja 74279
|
||||
Sockovac 74323
|
||||
Sokolac 71350
|
||||
Sokolovici 71210
|
||||
Sovici 88345
|
||||
Spionica 75356
|
||||
Srbac 78420
|
||||
Srebrenica 75430
|
||||
Srebrenik 75350
|
||||
Srednje 71385
|
||||
Sreflije 79249
|
||||
Srnice 76258
|
||||
Bosanska Kostajnica 79224
|
||||
Bosanski Brod 74450
|
||||
Istocno Gorazde 73110
|
||||
Istocno Orasje 76278
|
||||
Istocno Sarajevo 71123
|
||||
Stanari 74208
|
||||
Stara Dubrava 78243
|
||||
Stari Majdan 79268
|
||||
Stijena 77224
|
||||
Stjenice 73223
|
||||
Stjepan Polje 75324
|
||||
Stolac 88360
|
||||
Stranjani 72209
|
||||
Stricici 78208
|
||||
Strpci 75305
|
||||
Studenci 88323
|
||||
Stupari 75283
|
||||
Sturlic 77223
|
||||
Suho Polje 75344
|
||||
Sujica 80249
|
||||
Svodna 79229
|
||||
Tarcin 71244
|
||||
Teocak 75414
|
||||
Tesanj 74260
|
||||
Tesanjka 74266
|
||||
Teslic 74270
|
||||
Tihaljina 88348
|
||||
Tinja 75357
|
||||
Tisca 75455
|
||||
Todorovo 77233
|
||||
Tojsici 75265
|
||||
Tolisa 76272
|
||||
Tomina 79265
|
||||
Tomislavgrad 80240
|
||||
Topcic Polje 72213
|
||||
Travnik 72270
|
||||
Trebinja 88375
|
||||
Trebinje 89000
|
||||
Trn 78252
|
||||
Trnava Donja 76335
|
||||
Trnjaci 76310
|
||||
Trnovo 71220
|
||||
Trzacka Rastela 77225
|
||||
Turbe 72283
|
||||
Turija 75306
|
||||
Turjak Kod Bosanske Gradiske 78404
|
||||
Tuzla 75000
|
||||
Ugljevik 76330
|
||||
Ugodnovici 74278
|
||||
Ulog 71233
|
||||
Usora 74230
|
||||
Ustikolina 73250
|
||||
Uvac 73265
|
||||
Vardiste 73249
|
||||
Vares 71330
|
||||
Varoska Rijeka 77245
|
||||
Velika Bukovica 74213
|
||||
Velika Gata 77207
|
||||
Velika Kladusa 77230
|
||||
Velika Obarska 76329
|
||||
Vidosi 88208
|
||||
Vidovice 76275
|
||||
Vinac 70202
|
||||
Vir Kod Posusja 88247
|
||||
Visegrad 73240
|
||||
Visici 88307
|
||||
Visoko 71300
|
||||
Vitez 72250
|
||||
Vitina 88326
|
||||
Vitkovci Donji 74265
|
||||
Vitkovici 73205
|
||||
Vlasenica 75440
|
||||
Vogosca 71320
|
||||
Vojkovici 71123
|
||||
Voljevac 70246
|
||||
Vozuca 72227
|
||||
Vranjak 74488
|
||||
Vrapcici 88113
|
||||
Vrazici 75248
|
||||
Vrbanja Kod Banja Luke 78211
|
||||
Vrbanjci 78225
|
||||
Vrbaska 78408
|
||||
Vrnograc 77231
|
||||
Vrsani 76325
|
||||
Vrsta 77203
|
||||
Vuckovci 76254
|
||||
Vukosavlje 74470
|
||||
Zabar Donji 76273
|
||||
Zaborak 73287
|
||||
Zabrdje 72220
|
||||
Zabrdje 76333
|
||||
Zabrdje Kod Kotor Varosi 78221
|
||||
Zaluzani 78214
|
||||
Zavidovici 72220
|
||||
Zboriste 74451
|
||||
Zelinja 76259
|
||||
Zeljezno Polje 72236
|
||||
Zenica 72000
|
||||
Zepce 72230
|
||||
Zitomislici 88268
|
||||
Zivinice 75270
|
||||
Zupca 71370
|
||||
Zvornik 75400}
|
||||
|
||||
separator = /(.*)\s(\d{5})/
|
||||
places = places_bulk.split("\n")
|
||||
places.each do |place|
|
||||
matches = separator.match(place)
|
||||
return matches[1].strip if matches and matches[2] === code.strip
|
||||
end
|
||||
|
||||
return "<nepoznato mjesto>";
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
52
front-api/views/cart_trello.erb
Normal file
52
front-api/views/cart_trello.erb
Normal file
@@ -0,0 +1,52 @@
|
||||
|
||||
<%
|
||||
dd = @cart.delivery_destination
|
||||
c = @cart
|
||||
%>
|
||||
|
||||
**Ime:** <%= dd.name %>
|
||||
|
||||
**Adresa:**
|
||||
<%= dd.address %>
|
||||
|
||||
<%= dd.place.to_s.strip %> <%= Place.name_from_code(dd.place.to_s) %>
|
||||
|
||||
Bosna i Hercegovina
|
||||
|
||||
**Email: **<%= dd.email %>
|
||||
|
||||
**Telefon: ** +387 <%= dd.phone %>
|
||||
|
||||
**Napomena: **
|
||||
<%= dd.note %>
|
||||
|
||||
|
||||
**Naručeno:** <%= @cart.updated_at.in_time_zone("Europe/Sarajevo").strftime("%A %d.%m.%Y. %H:%M") %>
|
||||
|
||||
|
||||
<% if dd.instant_delivery %>
|
||||
** OVO JE NARUDŽBA ZA INSTANT DOSTAVU **
|
||||
<% end %>
|
||||
<% @cart.item_in_carts.each do |iic| %>
|
||||
**<%= iic.item.code %> <%= iic.item.name %>**
|
||||
|
||||
**<%= iic.count %>** x <%= Helper.money(iic.price) %> = <%= Helper.money(iic.count * iic.price) %>
|
||||
|
||||
|
||||
<% end %>
|
||||
|
||||
Dostava
|
||||
1 x <%= Helper.money(c.delivery_cost) %> = <%= Helper.money(c.delivery_cost) %>
|
||||
|
||||
**UKUPNO:** <%= Helper.money(c.total) %>
|
||||
|
||||
[Pogledati OVAJ LINK](https://www.ribica.ba/backoffice/carts/<%= @cart.id %>)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
52
front-ui/app/components/about/aboutUsPage.js
Normal file
52
front-ui/app/components/about/aboutUsPage.js
Normal file
@@ -0,0 +1,52 @@
|
||||
var React = require('react'),
|
||||
CartStore = require('../../stores/cartStore'),
|
||||
AddToCart = require('../cart/addToCart'),
|
||||
CartActions = require('../../actions/cartActions'),
|
||||
LinkBanner = require('../linkBanner/linkBanner'),
|
||||
NavigationActions = require('../../actions/navigationActions'),
|
||||
Globals = require('../../globals')
|
||||
Router = require("react-router"),
|
||||
Link = Router.Link;
|
||||
|
||||
|
||||
var AboutUsPage = React.createClass({
|
||||
|
||||
render: function() {
|
||||
|
||||
return (
|
||||
|
||||
<div className="message center">
|
||||
<p>Rođenje djeteta je sigurno jedan od najljepših trenutaka u životu svakog čovjeka, ali biti roditelj jedan je od najtežih poslova.</p>
|
||||
|
||||
<p>Svjesni brzine života, želimo da Vam olakšamo pri nabavci opreme koja je neophodna u svakom domu koji krasi dijete.
|
||||
Pažljivo biramo artikle, te štedimo vrijeme i novac.</p>
|
||||
|
||||
<p>Internet trgovina je dostupna uvijek. Jednostavnim pretraživanjem možete naći artikle, te ih spremiti u korpu, a mi ćemo se potruditi da ih dostavimo u dogovoreno vrijeme.</p>
|
||||
|
||||
<p>Potrudili smo se prilagoditi svima:
|
||||
<ul>
|
||||
<li>djevojkama i ženama koje tek postaju majke, a ne žele puno vremena trošiti na kupovinu;</li>
|
||||
<li>onima koje tek rode, a ne žele čekati rodbinu i prijatelje da im donesu mnoge stvari koje beba zahtijeva, a same nisu u mogućnosti izaći;</li>
|
||||
<li>majkama koje su kancelarijski radnici, a vrijeme poslije posla žele posvetiti djeci;</li>
|
||||
<li>očevima koji većinom ne vole ići u kupovinu, a trebaju im adekvatne igračke, te</li>
|
||||
<li>svima onima kojima treba pomoć oko kupovine artikala namijenjenih djeci.</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>Ova e-trgovina je osmišnjena u skladu sa željama i potrebama roditelja i djece, te Vam omogućava da uživate dok mi kupujemo za Vas , jer najbolje što možete pokloniti djeci je Vaše vrijeme.</p>
|
||||
|
||||
<p>Sve narudžbe u toku dana koje dobijemo do 12:00h dostavljamo isti radni dan, dok narudžbe koje priimo poslije dostavljamo sljedeći radni dan. </p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p style={{textAlign: "right" }}>Vaša Ribica.ba</p>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
module.exports = AboutUsPage;
|
||||
@@ -22,8 +22,6 @@ var RandomItems = React.createClass({
|
||||
ItemStore.removeChangeListener(this._onChange);
|
||||
},
|
||||
|
||||
|
||||
|
||||
getInitialState: function() {
|
||||
return {
|
||||
items: this.getRandomItems()
|
||||
@@ -34,10 +32,26 @@ var RandomItems = React.createClass({
|
||||
var NUMBER_OF_SUGGESTED_ITEMS = 8;
|
||||
var allItems = ItemStore.getItems();
|
||||
var randomIndexStart = Math.floor(Math.random() * ((allItems.models.length - NUMBER_OF_SUGGESTED_ITEMS + 1)));
|
||||
allItems.models = allItems.models.slice(randomIndexStart, randomIndexStart + NUMBER_OF_SUGGESTED_ITEMS);
|
||||
allItems.models = this.shuffle(allItems.models).slice(randomIndexStart, randomIndexStart + NUMBER_OF_SUGGESTED_ITEMS);
|
||||
return allItems;
|
||||
},
|
||||
|
||||
shuffle: function(array) {
|
||||
var currentIndex = array.length, temporaryValue, randomIndex ;
|
||||
|
||||
// While there remain elements to shuffle...
|
||||
while (0 !== currentIndex) {
|
||||
// Pick a remaining element...
|
||||
randomIndex = Math.floor(Math.random() * currentIndex);
|
||||
currentIndex -= 1;
|
||||
// And swap it with the current element.
|
||||
temporaryValue = array[currentIndex];
|
||||
array[currentIndex] = array[randomIndex];
|
||||
array[randomIndex] = temporaryValue;
|
||||
}
|
||||
return array;
|
||||
},
|
||||
|
||||
|
||||
_onChange: function () {
|
||||
|
||||
|
||||
@@ -87,6 +87,9 @@ var RootApp = React.createClass({
|
||||
<div className='row'>
|
||||
<RouteHandler />
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Ribica.ba 2015.
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ var ThankYouPage = React.createClass({
|
||||
|
||||
return (
|
||||
|
||||
<div className="thank-you-page center">
|
||||
<div className="message center">
|
||||
<h1>Roba je naručena!</h1>
|
||||
<p>Hvala na narudžbi. Naša zaposlenica će vas kontaktirati da ugovori detalje o preuzimanju. </p>
|
||||
|
||||
|
||||
@@ -533,5 +533,18 @@ text-decoration: none;
|
||||
|
||||
.footer {
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
bottom:0;
|
||||
left:0;
|
||||
}
|
||||
|
||||
.message {
|
||||
font-size: 130%;
|
||||
text-align: left;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
|
||||
|
||||
}
|
||||
@@ -17,6 +17,7 @@ var ByCategory = require('./components/browsing/byCategory');
|
||||
var BySubCategory = require('./components/browsing/bySubCategory');
|
||||
var BySection = require('./components/browsing/bySection');
|
||||
var ThankYouPage = require('./components/thankyou/thankYouPage');
|
||||
var AboutUsPage = require('./components/about/aboutUsPage');
|
||||
// var Register = require('./components/account/register');
|
||||
// var Login = require('./components/account/login');
|
||||
var SearchResultsPage = require('./components/search/searchResultsPage');
|
||||
@@ -34,6 +35,7 @@ var routes = (
|
||||
<Route name='podkategorija' path="/podkategorija/:id/*" handler={BySubCategory} />
|
||||
<Route name='byCat' path="sekcija/:sekcijaName/kategorija/:id/*" handler={ByCategory} />
|
||||
<Route name='hvala' path="/hvala" handler={ThankYouPage} />
|
||||
<Route name='onama' path="/o-nama" handler={AboutUsPage} />
|
||||
<Route name='pretraga' path="/pretraga" handler={SearchResultsPage} />
|
||||
<DefaultRoute handler={StartPage}/>
|
||||
</Route>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -21,11 +21,9 @@
|
||||
<img height={50} src="https://res.cloudinary.com/du5pdibul/image/upload/v1434870249/progress_bar_idgtad.gif" />
|
||||
</div>
|
||||
<script src='/ribica.js' type='text/javascript'></script>
|
||||
<div class="footer">
|
||||
© Ribica.ba 2015.
|
||||
</div>
|
||||
<script type='text/javascript'>
|
||||
RIBICA.App.bootstrap();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user