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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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