7
6
YUI.add('webui', function (Y) {
8
var json_error_msg = "The ticket system returned data that could not be understood. " +
9
"Please try refreshing, or contact support if this problem persists.",
10
refresh_msg = "Refreshing data...";
11
var default_refresh = 15;
12
var static_prefix = "/static/common/";
8
"The ticket system returned data that could not be understood. " +
9
"Please try refreshing, or contact support if this problem " +
11
refresh_msg = "Refreshing data...",
13
static_prefix = "/static/common/";
14
15
url_prefix: "/api/v1/",
15
refresh_interval: (parseInt(Y.one('#refresh_rate'), 10) || default_refresh) * 1000,
16
refresh_interval: default_refresh * 1000,
16
18
done_loading: false,
17
log_prefixes: Y.Array(['package_build', 'image_build', 'image_test', 'package_publish']),
19
log_prefixes: Y.Array(
20
['package_build', 'image_build', 'image_test',
19
23
"Image building": "image_build",
20
24
"Image testing": "image_test",
46
50
Y.webui.logs[key].push(log_data);
48
add_refresh_div: function (callback) {
54
refresh = Y.Node.create('<div id="refresh"></div>');
56
refresh.setHTML('<small>Automatically refresh <input type="checkbox" checked="true"' +
57
'id="refresh_enabled"></input> every <input type="text"' +
58
'id="refresh_rate" value="' + default_refresh + '" maxlength="3" size="2"/> seconds.</small>'
61
Y.one('div#main-content').append(refresh);
63
Y.webui.refresh_timeout = null;
64
refresh_rate = Y.one("#refresh_rate");
65
refresh_enabled = Y.one("#refresh_enabled");
66
Y.webui.refresh_enabled = refresh_enabled.get('checked');
68
onChange = function () {
69
var value = refresh_rate.get('value'),
72
val = parseInt(value, 10);
74
if (Y.webui.refresh_timeout) {
75
clearTimeout(Y.webui.refresh_timeout);
78
Y.webui.refresh_interval = val * 1000;
82
refresh_rate.on('change', onChange);
83
refresh_enabled.on('change', function () {
84
if (Y.webui.refresh_timeout) {
85
clearTimeout(Y.webui.refresh_timeout);
88
Y.webui.refresh_enabled = refresh_enabled.get('checked');
90
if (Y.webui.refresh_enabled) {
54
* Setup page auto-refresh.
56
* Immediately runs the callback when auto-refresh is set up
57
* (page is loaded) then use Y.later() for periodically calling
58
* the 'callback' at the `Y.webui.refresh_interval` rate.
60
* @method setup_auto_refresh
62
setup_auto_refresh: function (callback) {
64
Y.webui.refresh_timer = Y.later(
65
Y.webui.refresh_interval, Y, callback, '', true);
96
68
get_workflow_data: function (api_url) {
350
322
artifact_link: function (data, new_name) {
351
323
var name = Y.webui.basename(data.name),
352
link = Y.Node.create("<a/>");
324
link = Y.Node.create('<a/>');
354
326
// Lookup a corresponding tempurl.
355
327
var tempurl = Y.webui.tempurls[name];
648
* Returns the ticket ID based on the window URL.
650
* Checks the known ticket page path (/ticket/<id>), then match
651
* a valid integer ID.
653
* @method get_ticket_id
674
655
get_ticket_id: function () {
675
var query = window.location.search.split('?')[1],
680
ob = Y.QueryString.parse(query);
681
ticket_id = ob.ticket_id;
656
var path = Y.config.win.location.pathname;
657
if (!path.match(/\/ticket\/\d+\//g)) {
660
var id_match = path.match(/\d+/g);
668
* Updates ticket information.
670
* @method update_ticket
686
672
update_ticket: function () {
687
673
var ticket_id = Y.webui.get_ticket_id();
690
675
Y.webui.get_ticket(ticket_id, Y.one('#container'));
693
// we're done so allow more refreshes if needed.
694
if (Y.webui.refresh_timeout) {
695
clearTimeout(Y.webui.refresh_timeout);
696
Y.webui.refresh_timeout = null;
699
if (Y.webui.refresh_enabled && !Y.webui.refresh_timeout && Y.webui.refresh_interval > 0) {
700
Y.webui.refresh_timeout = setTimeout(Y.webui.update_ticket, Y.webui.refresh_interval);
703
678
has_ticket: function (ticket_ids, id) {
704
679
return ticket_ids[id] === true;
813
788
Y.webui.main_table.set('data', recordset);
814
789
Y.webui.main_table.render();
816
// we're done so allow more refreshes if needed.
817
if (Y.webui.refresh_timeout) {
818
clearTimeout(Y.webui.refresh_timeout);
819
Y.webui.refresh_timeout = null;
821
if (Y.webui.refresh_enabled && !Y.webui.refresh_timeout && Y.webui.refresh_interval > 0) {
822
Y.webui.refresh_timeout = setTimeout(status_callback, Y.webui.refresh_interval);
825
complete: function () {
826
if (Y.webui.refresh_enabled && !Y.webui.refresh_timeout && Y.webui.refresh_interval > 0) {
827
Y.webui.refresh_timeout = setTimeout(status_callback, Y.webui.refresh_interval);
833
if (Y.webui.refresh_timeout) {
834
clearTimeout(Y.webui.refresh_timeout);
835
Y.webui.refresh_timeout = null;
837
if (Y.webui.refresh_enabled && !Y.webui.refresh_timeout && Y.webui.refresh_interval > 0) {
838
Y.webui.refresh_timeout = setTimeout(status_callback, Y.webui.refresh_interval);
842
795
add_item: function (item) {