Mercurial > piecrust2
annotate piecrust/admin/assets/js/foodtruck.js @ 929:cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 04 Oct 2017 09:08:31 -0700 |
parents | 628d639bb30b |
children |
rev | line source |
---|---|
587
d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 |
d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 $(document).ready(function() { |
657
c1a94e1beb9d
admin: Show a more classic blog post listing in FoodTruck.
Ludovic Chabant <ludovic@chabant.com>
parents:
620
diff
changeset
|
3 $("time.timeago").timeago(); |
c1a94e1beb9d
admin: Show a more classic blog post listing in FoodTruck.
Ludovic Chabant <ludovic@chabant.com>
parents:
620
diff
changeset
|
4 |
620
c2708f20a87b
admin: Make the sidebar togglable for smaller screens.
Ludovic Chabant <ludovic@chabant.com>
parents:
616
diff
changeset
|
5 $('.ft-nav-toggle').click(function() { |
c2708f20a87b
admin: Make the sidebar togglable for smaller screens.
Ludovic Chabant <ludovic@chabant.com>
parents:
616
diff
changeset
|
6 $('.ft-nav-container').toggleClass('ft-nav-enabled'); |
c2708f20a87b
admin: Make the sidebar togglable for smaller screens.
Ludovic Chabant <ludovic@chabant.com>
parents:
616
diff
changeset
|
7 $('.ft-nav').toggleClass('ft-nav-enabled'); |
c2708f20a87b
admin: Make the sidebar togglable for smaller screens.
Ludovic Chabant <ludovic@chabant.com>
parents:
616
diff
changeset
|
8 }); |
c2708f20a87b
admin: Make the sidebar togglable for smaller screens.
Ludovic Chabant <ludovic@chabant.com>
parents:
616
diff
changeset
|
9 |
587
d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
10 $('.ft-nav-collapsed + ul').hide(); |
607
c67dcc0fa80f
admin: Prompt the user for a commit message when committing a page.
Ludovic Chabant <ludovic@chabant.com>
parents:
602
diff
changeset
|
11 |
c67dcc0fa80f
admin: Prompt the user for a commit message when committing a page.
Ludovic Chabant <ludovic@chabant.com>
parents:
602
diff
changeset
|
12 $('#ft-commit-modal').on('shown.bs.modal', function () { |
c67dcc0fa80f
admin: Prompt the user for a commit message when committing a page.
Ludovic Chabant <ludovic@chabant.com>
parents:
602
diff
changeset
|
13 $('#ft-commit-msg').focus(); |
c67dcc0fa80f
admin: Prompt the user for a commit message when committing a page.
Ludovic Chabant <ludovic@chabant.com>
parents:
602
diff
changeset
|
14 }); |
615
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
15 |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
16 var publogEl = $('#ft-publog'); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
17 publogEl.mouseenter(function() { |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
18 publogEl.attr('data-autohide', 'false'); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
19 }); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
20 publogEl.on('hide', function() { |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
21 var containerEl = $('#ft-publog-container', publogEl); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
22 containerEl.empty(); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
23 }); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
24 |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
25 var closePublogBtn = $('button', publogEl); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
26 closePublogBtn.on('click', function() { |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
27 publogEl.fadeOut(200); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
28 }); |
929
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
29 |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
30 if (!!window.EventSource) { |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
31 // TODO: this only works when the Foodtruck blueprint is added under `/pc-admin`. |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
32 var source = new EventSource('/pc-admin/publish-log'); |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
33 source.onerror = function(e) { |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
34 console.log("Error with SSE, closing.", e); |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
35 source.close(); |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
36 }; |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
37 source.addEventListener('message', onPublishEvent); |
cebeedfa034f
serve: Don't start the admin panel SSE until the window is ready.
Ludovic Chabant <ludovic@chabant.com>
parents:
921
diff
changeset
|
38 } |
587
d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 }); |
d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
40 |
602
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
41 var onPublishEvent = function(e) { |
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
42 |
615
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
43 var publogEl = $('#ft-publog'); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
44 var containerEl = $('#ft-publog-container', publogEl); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
45 |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
46 var msgEl = $('<div>' + e.data + '</div>'); |
602
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
47 var removeMsgEl = function() { |
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
48 msgEl.remove(); |
615
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
49 if (containerEl.children().length == 0) { |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
50 // Last message, hide the log window. |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
51 publogEl.fadeOut(200); |
602
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
52 } |
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
53 }; |
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
54 var timeoutId = window.setTimeout(function() { |
615
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
55 if (publogEl.attr('data-autohide') == 'true') { |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
56 msgEl.fadeOut(400, removeMsgEl); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
57 } |
602
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
58 }, 4000); |
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
59 |
615
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
60 if (containerEl.children().length == 0) { |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
61 // First message, show the log window, reset the mouseover marker. |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
62 publogEl.attr('data-autohide', 'true'); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
63 publogEl.fadeIn(200); |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
64 } |
cbb170d9c894
admin: Improve publish logs showing as alerts in the admin panel.
Ludovic Chabant <ludovic@chabant.com>
parents:
607
diff
changeset
|
65 containerEl.append(msgEl); |
602
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
66 }; |
c6bc0ef03f82
admin: Better UI for publishing websites.
Ludovic Chabant <ludovic@chabant.com>
parents:
587
diff
changeset
|
67 |