Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Devrim Gunyel
core
Commits
6d78051a
Commit
6d78051a
authored
Apr 05, 2019
by
Piotr Gawron
Browse files
auto refresh function for projects panel implemented
parent
3dd68911
Changes
4
Hide whitespace changes
Inline
Side-by-side
frontend-js/src/main/js/ServerConnector.js
View file @
6d78051a
...
...
@@ -1057,7 +1057,7 @@ ServerConnector.getModels = function (projectId) {
/**
*
* @param {string} [projectId]
* @return {Promise<
Promise | never
>}
* @return {Promise<
project>| PromiseLike<Project
>}
*/
ServerConnector
.
getProject
=
function
(
projectId
)
{
var
queryParams
=
{};
...
...
frontend-js/src/main/js/gui/admin/MapsAdminPanel.js
View file @
6d78051a
...
...
@@ -41,6 +41,8 @@ function MapsAdminPanel(params) {
MapsAdminPanel
.
prototype
=
Object
.
create
(
AbstractAdminPanel
.
prototype
);
MapsAdminPanel
.
prototype
.
constructor
=
MapsAdminPanel
;
MapsAdminPanel
.
AUTO_REFRESH_TIME
=
5000
;
/**
*
* @private
...
...
@@ -91,7 +93,7 @@ MapsAdminPanel.prototype._createMenuRow = function () {
name
:
"
refreshProject
"
,
content
:
'
<span class="ui-icon ui-icon-refresh"></span> REFRESH
'
,
onclick
:
function
()
{
return
self
.
onRefreshClicked
().
then
(
null
,
GuiConnector
.
alert
);
return
self
.
onRefreshClicked
().
catch
(
GuiConnector
.
alert
);
},
xss
:
false
});
...
...
@@ -279,6 +281,7 @@ MapsAdminPanel.prototype.setProjects = function (projects) {
var
self
=
this
;
return
self
.
getServerConnector
().
getLoggedUser
().
then
(
function
(
user
)
{
var
requireUpdate
=
false
;
var
dataTable
=
$
(
"
[name='projectsTable']
"
,
self
.
getElement
()).
DataTable
();
var
data
=
[];
var
page
=
dataTable
.
page
();
...
...
@@ -288,9 +291,19 @@ MapsAdminPanel.prototype.setProjects = function (projects) {
var
rowData
=
self
.
projectToTableRow
(
project
,
undefined
,
user
);
self
.
addUpdateListener
(
project
,
rowData
);
data
.
push
(
rowData
);
if
(
project
.
getStatus
().
toLowerCase
()
!==
"
ok
"
&&
project
.
getStatus
().
toLowerCase
()
!==
"
failure
"
)
{
requireUpdate
=
true
;
}
}
//it should be simplified, but I couldn't make it work
dataTable
.
clear
().
rows
.
add
(
data
).
page
(
page
).
draw
(
false
).
page
(
page
).
draw
(
false
);
if
(
requireUpdate
)
{
setTimeout
(
function
()
{
logger
.
debug
(
"
Projects auto refresh
"
);
return
self
.
onRefreshClicked
();
},
MapsAdminPanel
.
AUTO_REFRESH_TIME
);
}
});
};
...
...
frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js
View file @
6d78051a
...
...
@@ -6,7 +6,8 @@ var MapsAdminPanel = require('../../../../main/js/gui/admin/MapsAdminPanel');
var
ServerConnector
=
require
(
'
../../ServerConnector-mock
'
);
var
logger
=
require
(
'
../../logger
'
);
var
assert
=
require
(
'
assert
'
);
var
chai
=
require
(
'
chai
'
);
var
assert
=
chai
.
assert
;
var
Promise
=
require
(
'
bluebird
'
);
function
createMapsAdminPanel
()
{
...
...
@@ -19,13 +20,40 @@ function createMapsAdminPanel() {
describe
(
'
MapsAdminPanel
'
,
function
()
{
it
(
'
refresh
'
,
function
()
{
var
mapTab
=
createMapsAdminPanel
();
return
mapTab
.
init
().
then
(
function
()
{
return
mapTab
.
onRefreshClicked
();
}).
then
(
function
()
{
assert
.
equal
(
0
,
logger
.
getWarnings
().
length
);
return
mapTab
.
destroy
();
describe
(
'
refresh
'
,
function
()
{
it
(
'
default
'
,
function
()
{
var
mapTab
=
createMapsAdminPanel
();
return
mapTab
.
init
().
then
(
function
()
{
return
mapTab
.
onRefreshClicked
();
}).
then
(
function
()
{
assert
.
equal
(
0
,
logger
.
getWarnings
().
length
);
return
mapTab
.
destroy
();
});
});
it
(
'
with auto refresh
'
,
function
()
{
var
mapTab
=
createMapsAdminPanel
();
var
originalFunction
=
ServerConnector
.
getProjects
;
var
calls
=
0
;
MapsAdminPanel
.
AUTO_REFRESH_TIME
=
50
;
ServerConnector
.
getProjects
=
function
(){
calls
++
;
var
project
=
helper
.
createProject
();
project
.
setStatus
(
"
xyz
"
);
return
Promise
.
resolve
([
project
]);
};
return
mapTab
.
init
().
then
(
function
()
{
ServerConnector
.
getProjects
=
function
(){
calls
++
;
return
Promise
.
resolve
([]);
};
return
Promise
.
delay
(
60
);
}).
then
(
function
()
{
assert
.
ok
(
calls
>=
2
);
}).
finally
(
function
(){
ServerConnector
.
getProjects
=
originalFunction
;
MapsAdminPanel
.
AUTO_REFRESH_TIME
=
5000
;
return
mapTab
.
destroy
();
});
});
});
it
(
'
showLogs
'
,
function
()
{
...
...
frontend-js/src/test/js/helper.js
View file @
6d78051a
...
...
@@ -217,6 +217,7 @@ Helper.prototype.createProject = function (params) {
}
var
result
=
new
Project
();
result
.
setProjectId
(
"
testId
"
);
result
.
setName
(
""
);
result
.
setId
(
this
.
idCounter
++
);
result
.
addModel
(
this
.
createModel
());
var
overlay
=
this
.
createOverlay
(
result
.
getModels
()[
0
]);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment