OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * Takes the |componentsData| input argument which represents data about the | 8 * Takes the |componentsData| input argument which represents data about the |
9 * currently installed components and populates the html jstemplate with | 9 * currently installed components and populates the html jstemplate with |
10 * that data. It expects an object structure like the above. | 10 * that data. It expects an object structure like the above. |
11 * @param {Object} componentsData Detailed info about installed components. | 11 * @param {Object} componentsData Detailed info about installed components. |
12 * Same expected format as returnComponentsData(). | 12 * Same expected format as returnComponentsData(). |
13 */ | 13 */ |
14 function renderTemplate(componentsData) { | 14 function renderTemplate(componentsData) { |
15 // This is the javascript code that processes the template: | 15 // This is the javascript code that processes the template: |
16 var input = new JsEvalContext(componentsData); | 16 var input = new JsEvalContext(componentsData); |
17 var output = $('componentTemplate'); | 17 var output = $('component-template').cloneNode(true); |
18 $('component-placeholder').innerHTML = ''; | |
19 $('component-placeholder').appendChild(output); | |
18 jstProcess(input, output); | 20 jstProcess(input, output); |
21 output.removeAttribute('hidden'); | |
19 } | 22 } |
20 | 23 |
21 /** | 24 /** |
22 * Asks the C++ ComponentsDOMHandler to get details about the installed | 25 * Asks the C++ ComponentsDOMHandler to get details about the installed |
23 * components. | 26 * components. |
24 * The ComponentsDOMHandler should reply to returnComponentsData() (below). | 27 * The ComponentsDOMHandler should reply to returnComponentsData() (below). |
25 */ | 28 */ |
26 function requestComponentsData() { | 29 function requestComponentsData() { |
27 chrome.send('requestComponentsData'); | 30 chrome.send('requestComponentsData'); |
28 } | 31 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
66 | 69 |
67 // Disable some controls for Guest in ChromeOS. | 70 // Disable some controls for Guest in ChromeOS. |
68 if (cr.isChromeOS) | 71 if (cr.isChromeOS) |
69 uiAccountTweaks.UIAccountTweaks.applyGuestModeVisibility(document); | 72 uiAccountTweaks.UIAccountTweaks.applyGuestModeVisibility(document); |
70 | 73 |
71 bodyContainer.style.visibility = 'visible'; | 74 bodyContainer.style.visibility = 'visible'; |
72 body.className = 'show-tmi-mode-initial'; | 75 body.className = 'show-tmi-mode-initial'; |
73 } | 76 } |
74 | 77 |
75 /** | 78 /** |
79 * Component update status refresh interval. | |
80 */ | |
81 var STATUS_REFRESH_INTERVAL = 1000; | |
82 | |
83 function returnComponentStatus(component_id, status) { | |
84 $('status-' + component_id).textContent = status; | |
85 var node = $(component_id); | |
86 if (status == 'in-progress') { | |
87 node.disabled = true; | |
88 window.setTimeout(function() { updateComponentStatus(node); }, | |
89 STATUS_REFRESH_INTERVAL); | |
James Hawkins
2014/03/27 20:12:03
Why are we using polling instead of having the bro
Shrikant Kelkar
2014/03/27 22:00:13
The c++ code doesn't have a callback so far.
James Hawkins
2014/03/27 22:02:44
So let's fix it. We shouldn't be polling from the
| |
90 } else { | |
91 node.disabled = false; | |
92 } | |
93 } | |
94 | |
95 function updateComponentStatus(node) { | |
96 chrome.send('requestComponentStatus', [String(node.id)]); | |
97 } | |
98 | |
99 /** | |
76 * Handles an 'enable' or 'disable' button getting clicked. | 100 * Handles an 'enable' or 'disable' button getting clicked. |
77 * @param {HTMLElement} node The HTML element representing the component | 101 * @param {HTMLElement} node The HTML element representing the component |
78 * being checked for update. | 102 * being checked for update. |
79 */ | 103 */ |
80 function handleCheckUpdate(node) { | 104 function handleCheckUpdate(node) { |
81 node.disabled = true; | 105 node.disabled = true; |
106 | |
107 $('status-' + String(node.id)).textContent = 'Checking for update...'; | |
108 | |
82 // Tell the C++ ComponentssDOMHandler to check for update. | 109 // Tell the C++ ComponentssDOMHandler to check for update. |
83 chrome.send('checkUpdate', [String(node.id)]); | 110 chrome.send('checkUpdate', [String(node.id)]); |
111 window.setTimeout(function() { updateComponentStatus(node); }, | |
112 STATUS_REFRESH_INTERVAL); | |
84 } | 113 } |
85 | 114 |
86 // Get data and have it displayed upon loading. | 115 // Get data and have it displayed upon loading. |
87 document.addEventListener('DOMContentLoaded', requestComponentsData); | 116 document.addEventListener('DOMContentLoaded', requestComponentsData); |
88 | |
89 // Add handlers to static HTML elements. | |
90 $('button-check-update').onclick = handleCheckUpdate; | |
OLD | NEW |