bookingsync_portal 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/bookingsync_portal/admin/application.js.coffee +55 -0
- data/app/assets/javascripts/bookingsync_portal/admin/connections.js.coffee +2 -47
- data/app/assets/stylesheets/bookingsync_portal/admin/application.css.scss +5 -0
- data/app/controllers/bookingsync_portal/admin/connections_controller.rb +4 -1
- data/app/controllers/bookingsync_portal/admin/rentals_controller.rb +1 -1
- data/app/views/bookingsync_portal/admin/connections/create.js.coffee +6 -0
- data/app/views/bookingsync_portal/admin/connections/destroy.js.coffee +7 -0
- data/app/views/bookingsync_portal/admin/rentals/_connected_rental.html.erb +3 -2
- data/app/views/bookingsync_portal/admin/rentals/_rentals.html.erb +14 -0
- data/app/views/bookingsync_portal/admin/rentals/index.html.erb +1 -14
- data/lib/bookingsync_portal/version.rb +1 -1
- metadata +5 -3
- data/app/views/bookingsync_portal/admin/connections/create.js.erb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90a5f5b87509d851d09d5adecfe7aefbe2a3d9c0
|
4
|
+
data.tar.gz: 6cfa15d7ab2a8bdccafbf4ce77eb667a6fdb1a6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b43d1c7f39fc7b5b8ee0e618dbe6c2be81a9122e24449aa8feed9928fccc6b331b4d55cf3b882153b472e29f37227f2d6e119d879025090da5dc46b6ac7ac78
|
7
|
+
data.tar.gz: 61c627baccb81333491250cf8e9129e1fb02e8e30c7807831151f252950972c4162bafb114a6cad6568df483c0eb28a054db5c99e1e71997b59a1cfaf80a44ba
|
@@ -27,3 +27,58 @@
|
|
27
27
|
window.extractIdFromDomId = (attribute) ->
|
28
28
|
if attribute
|
29
29
|
attribute.split("_").pop()
|
30
|
+
$.fn.extend
|
31
|
+
draggableRental: ->
|
32
|
+
settings =
|
33
|
+
revert: "invalid"
|
34
|
+
zIndex: 50
|
35
|
+
revertDuration: 100
|
36
|
+
cursor: "move"
|
37
|
+
containment: '.rentals-container'
|
38
|
+
appendTo: '.rentals-container'
|
39
|
+
helper: "clone"
|
40
|
+
scroll: false
|
41
|
+
|
42
|
+
start: (e, ui) ->
|
43
|
+
$(ui.helper).addClass "ui-draggable-helper"
|
44
|
+
|
45
|
+
@each () ->
|
46
|
+
$(this).draggable(settings)
|
47
|
+
|
48
|
+
droppableRemoteRental: ->
|
49
|
+
settings =
|
50
|
+
accept: ".bookingsync-rental"
|
51
|
+
activeClass: "dropzone-active"
|
52
|
+
hoverClass: "dropzone-hover"
|
53
|
+
greedy: true
|
54
|
+
tolerance: "pointer"
|
55
|
+
drop: (event, ui) ->
|
56
|
+
remoteRentalDropZone = $(@)
|
57
|
+
|
58
|
+
rentalId = extractIdFromDomId($(ui.draggable).attr("id"))
|
59
|
+
remoteRentalId = extractIdFromDomId(remoteRentalDropZone.attr("id"))
|
60
|
+
remoteAccountId = remoteRentalDropZone.data("remote-account-id")
|
61
|
+
remoteRentalUid = remoteRentalDropZone.data("uid")
|
62
|
+
|
63
|
+
if remoteRentalId
|
64
|
+
postData = { "rental_id": rentalId, "remote_rental_id": remoteRentalId }
|
65
|
+
else
|
66
|
+
postData = { "rental_id": rentalId, "remote_account_id": remoteAccountId }
|
67
|
+
# clone new remote rental drop zone and append to the end
|
68
|
+
remoteRentalDropZone.clone().insertBefore(remoteRentalDropZone).addClass('new_rental_placeholder');
|
69
|
+
|
70
|
+
$(ui.draggable).remove()
|
71
|
+
|
72
|
+
connect_url = $('.remote-rentals-list.rentals-list').data('connect-url')
|
73
|
+
|
74
|
+
$.ajax
|
75
|
+
url: connect_url
|
76
|
+
type: "POST"
|
77
|
+
data: postData
|
78
|
+
dataType: 'script'
|
79
|
+
beforeSend: ->
|
80
|
+
$(@).addClass('loading')
|
81
|
+
success: ->
|
82
|
+
$(@).removeClass('loading')
|
83
|
+
@each () ->
|
84
|
+
$(this).droppable(settings)
|
@@ -1,48 +1,3 @@
|
|
1
1
|
$ ->
|
2
|
-
$(".bookingsync-rental").
|
3
|
-
|
4
|
-
zIndex: 50
|
5
|
-
revertDuration: 100
|
6
|
-
cursor: "move"
|
7
|
-
containment: '.rentals-container'
|
8
|
-
appendTo: '.rentals-container'
|
9
|
-
helper: "clone"
|
10
|
-
scroll: false
|
11
|
-
|
12
|
-
start: (e, ui) ->
|
13
|
-
$(ui.helper).addClass "ui-draggable-helper"
|
14
|
-
|
15
|
-
$(".panel.panel-remote").droppable
|
16
|
-
accept: ".bookingsync-rental"
|
17
|
-
activeClass: "dropzone-active"
|
18
|
-
hoverClass: "dropzone-hover"
|
19
|
-
greedy: true
|
20
|
-
tolerance: "pointer"
|
21
|
-
drop: (event, ui) ->
|
22
|
-
remoteRentalDropZone = $(@)
|
23
|
-
|
24
|
-
rentalId = extractIdFromDomId($(ui.draggable).attr("id"))
|
25
|
-
remoteRentalId = extractIdFromDomId(remoteRentalDropZone.attr("id"))
|
26
|
-
remoteAccountId = remoteRentalDropZone.data("remote-account-id")
|
27
|
-
remoteRentalUid = remoteRentalDropZone.data("uid")
|
28
|
-
|
29
|
-
if remoteRentalId
|
30
|
-
postData = { "rental_id": rentalId, "remote_rental_id": remoteRentalId }
|
31
|
-
else
|
32
|
-
postData = { "rental_id": rentalId, "remote_account_id": remoteAccountId }
|
33
|
-
# clone new remote rental drop zone and append to the end
|
34
|
-
remoteRentalDropZone.clone().insertBefore(remoteRentalDropZone).addClass('new_rental_placeholder');
|
35
|
-
|
36
|
-
$(ui.draggable).remove()
|
37
|
-
|
38
|
-
connect_url = $('.remote-rentals-list.rentals-list').data('connect-url')
|
39
|
-
|
40
|
-
$.ajax
|
41
|
-
url: connect_url
|
42
|
-
type: "POST"
|
43
|
-
data: postData
|
44
|
-
dataType: 'script'
|
45
|
-
beforeSend: ->
|
46
|
-
$(@).addClass('loading')
|
47
|
-
success: ->
|
48
|
-
$(@).removeClass('loading')
|
2
|
+
$(".bookingsync-rental").draggableRental()
|
3
|
+
$(".panel.panel-remote").droppableRemoteRental()
|
@@ -16,10 +16,13 @@ module BookingsyncPortal
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def destroy
|
19
|
-
connection = current_account.connections.find(params[:id]).destroy
|
19
|
+
@connection = current_account.connections.find(params[:id]).destroy
|
20
|
+
@not_connected_rentals = current_account.rentals.visible.ordered.not_connected
|
21
|
+
@visible_rentals = current_account.rentals.visible
|
20
22
|
|
21
23
|
respond_to do |wants|
|
22
24
|
wants.html { redirect_to admin_rentals_path }
|
25
|
+
wants.js
|
23
26
|
end
|
24
27
|
end
|
25
28
|
|
@@ -6,7 +6,7 @@ module BookingsyncPortal
|
|
6
6
|
|
7
7
|
def index
|
8
8
|
@not_connected_rentals = current_account.rentals.visible.ordered.not_connected
|
9
|
-
@
|
9
|
+
@visible_rentals = current_account.rentals.visible
|
10
10
|
@remote_accounts = current_account.remote_accounts
|
11
11
|
@remote_rentals_by_account = current_account.remote_rentals.ordered
|
12
12
|
.includes(:remote_account).group_by(&:remote_account)
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<%- if @connection.persisted? %>
|
2
|
+
$("#<%= dom_id @connection.remote_rental %>, .new_rental_placeholder").first().replaceWith(
|
3
|
+
"<%=j render 'bookingsync_portal/admin/rentals/connected_rental', rental: @connection.rental, remote_rental: @connection.remote_rental %>");
|
4
|
+
$(".bookingsync-rental").draggableRental()
|
5
|
+
$(".panel.panel-remote").droppableRemoteRental()
|
6
|
+
<%- end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
$("#<%= dom_id @connection.rental %>").first().replaceWith(
|
2
|
+
"<%=j render 'bookingsync_portal/admin/rentals/remote_rental', remote_rental: @connection.remote_rental %>")
|
3
|
+
$(".bookingsync-rentals-list .rentals-list-scroll").first().html(
|
4
|
+
"<%=j render 'bookingsync_portal/admin/rentals/rentals', visible_rentals: @visible_rentals, not_connected_rentals: @not_connected_rentals %>");
|
5
|
+
|
6
|
+
$(".bookingsync-rental").draggableRental()
|
7
|
+
$(".panel.panel-remote").droppableRemoteRental()
|
@@ -9,12 +9,13 @@
|
|
9
9
|
</div>
|
10
10
|
<div class="panel-body-grid-text">
|
11
11
|
<h4 title="<%= RemoteRental.human_attribute_name(:uid) %>: <%= remote_rental.uid %>">
|
12
|
-
<%=
|
12
|
+
<%= rental.name %><br>
|
13
|
+
<small><%= remote_rental.display_name %></small>
|
13
14
|
</h4>
|
14
15
|
<div class="status">
|
15
16
|
<%= link_to bookingsync_portal.admin_connection_path(rental.connection),
|
16
17
|
class: ["btn", "btn-xs", "remove-connection", rental.remote_rental.synchronized? ? "btn-success" : "btn-warning"],
|
17
|
-
data: { disable_with: t('.disconnecting_rental') }, method: :delete do %>
|
18
|
+
data: { disable_with: t('.disconnecting_rental') }, method: :delete, remote: true do %>
|
18
19
|
<% unless rental.remote_rental.synchronized? %>
|
19
20
|
<span class="hover_hide"><%= icon('spinner') %></span>
|
20
21
|
<% else %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%- if visible_rentals.count == 0 -%>
|
2
|
+
<div class="lead text-center well">
|
3
|
+
<p><%= t('.no_published_rentals_html', id: current_account.synced_id) %></p>
|
4
|
+
</div>
|
5
|
+
<%- elsif not_connected_rentals.count > 0 -%>
|
6
|
+
<% not_connected_rentals.each do |rental| %>
|
7
|
+
<%= render rental %>
|
8
|
+
<% end %>
|
9
|
+
<%- else -%>
|
10
|
+
<div class="lead text-center well">
|
11
|
+
<p class=""><%= icon 'thumbs-up fa-lg' %></p>
|
12
|
+
<p><%=t '.all_synchronized' %></p>
|
13
|
+
</div>
|
14
|
+
<%- end -%>
|
@@ -10,20 +10,7 @@
|
|
10
10
|
<legend class="text-center"><%= image_tag('bookingsync_portal/bookingsync.png', alt: 'BookingSync') %></legend>
|
11
11
|
</div>
|
12
12
|
<div class="rentals-list-scroll">
|
13
|
-
|
14
|
-
<div class="lead text-center well">
|
15
|
-
<p><%= t('.no_published_rentals_html', id: current_account.synced_id) %></p>
|
16
|
-
</div>
|
17
|
-
<%- elsif @not_connected_rentals.count > 0 -%>
|
18
|
-
<% @not_connected_rentals.each do |rental| %>
|
19
|
-
<%= render rental %>
|
20
|
-
<% end %>
|
21
|
-
<%- else -%>
|
22
|
-
<div class="lead text-center well">
|
23
|
-
<p class=""><%= icon 'thumbs-up fa-lg' %></p>
|
24
|
-
<p><%=t '.all_synchronized' %></p>
|
25
|
-
</div>
|
26
|
-
<%- end -%>
|
13
|
+
<%= render "rentals", visible_rentals: @visible_rentals, not_connected_rentals: @not_connected_rentals %>
|
27
14
|
</div>
|
28
15
|
</div>
|
29
16
|
</div>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bookingsync_portal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Marciniak
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-02-
|
13
|
+
date: 2016-02-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -359,7 +359,8 @@ files:
|
|
359
359
|
- app/models/bookingsync_portal/rental.rb
|
360
360
|
- app/synchronizers/bookingsync_portal/write/ensure_source_exists.rb
|
361
361
|
- app/synchronizers/bookingsync_portal/write/source.rb
|
362
|
-
- app/views/bookingsync_portal/admin/connections/create.js.
|
362
|
+
- app/views/bookingsync_portal/admin/connections/create.js.coffee
|
363
|
+
- app/views/bookingsync_portal/admin/connections/destroy.js.coffee
|
363
364
|
- app/views/bookingsync_portal/admin/help/_help.html.erb
|
364
365
|
- app/views/bookingsync_portal/admin/help/index.html.erb
|
365
366
|
- app/views/bookingsync_portal/admin/remote_accounts/_form.html.erb
|
@@ -370,6 +371,7 @@ files:
|
|
370
371
|
- app/views/bookingsync_portal/admin/rentals/_new_remote_rental.html.erb
|
371
372
|
- app/views/bookingsync_portal/admin/rentals/_remote_rental.html.erb
|
372
373
|
- app/views/bookingsync_portal/admin/rentals/_rental.html.erb
|
374
|
+
- app/views/bookingsync_portal/admin/rentals/_rentals.html.erb
|
373
375
|
- app/views/bookingsync_portal/admin/rentals/index.html.erb
|
374
376
|
- app/views/bookingsync_portal/admin/rentals/show.js.erb
|
375
377
|
- app/views/layouts/bookingsync_portal/_flash.html.erb
|
@@ -1,5 +0,0 @@
|
|
1
|
-
<%- if @connection.persisted? %>
|
2
|
-
$("#<%= dom_id @connection.remote_rental %>, .new_rental_placeholder").replaceWith(
|
3
|
-
"<%=j render 'bookingsync_portal/admin/rentals/connected_rental', rental: @connection.rental, remote_rental: @connection.remote_rental,
|
4
|
-
disconnect_url: bookingsync_portal.admin_connection_url(@connection) %>");
|
5
|
-
<%- end %>
|