Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Maxime Chaillet
doi-landing-page
Commits
23c2094d
Commit
23c2094d
authored
Jan 18, 2019
by
Alejandro De Maria Antolinos
Browse files
It fixes
icat/doi-landing-page#62
parent
d243d56c
Changes
3
Hide whitespace changes
Inline
Side-by-side
www/src/doicontroller.js
View file @
23c2094d
...
...
@@ -2,6 +2,7 @@ function DOIController(view) {
var
_this
=
this
;
// doiServer = the server which provides doi details from a given doi name.
this
.
doiServer
=
"
https://data.datacite.org/
"
;
this
.
icatPlusServer
=
"
https://icatplus.esrf.fr/doi/
"
;
// 10.5072 is the test esrf doi prefix;
// 10.15151 is the production esrf doi prefix;
...
...
@@ -27,13 +28,6 @@ function DOIController(view) {
* executed. Reloading the page is treated by .fail as it should be.
*/
DOIController
.
prototype
.
isValidDOIData
=
function
(
doiData
)
{
// console.log(doiData)
// if (_.keysIn(doiData).length > 3) {
// return _.find(_.keysIn(doiData), function (value) {
// return value === "title";
// }).length > 0;
// }
// return false;
return
true
;
};
...
...
@@ -62,12 +56,7 @@ DOIController.prototype.render = function (doi, data) {
doiData
.
abstract
=
jsonExtractor
.
getAbstract
(
data
);
doiData
.
investigationId
=
jsonExtractor
.
getInvestigationId
(
data
);
doiData
.
resourceType
=
jsonExtractor
.
getResourceType
(
data
);
// doiData.mintingYear = jsonExtractor.getMintingYear(data);
//console.log("minting year = " + doiData.mintingYear);
doiData
.
proposalType
=
jsonExtractor
.
getFieldFromSubject
(
data
.
subjects
,
"
Proposal Type Description
"
);
...
...
@@ -115,29 +104,51 @@ DOIController.prototype.getData = function (doi) {
}
if
(
this
.
hasAcceptedPrefix
(
doi
))
{
$
.
ajax
({
headers
:
{
Accept
:
"
application/vnd.datacite.datacite+json
"
},
type
:
"
GET
"
,
timeout
:
15000
,
// triggers timeout when request pends longer than
// 5000ms
url
:
this
.
doiServer
+
doi
,
beforeSend
:
function
()
{
_this
.
view
.
setLoading
(
"
Retrieving data from Server
"
);
},
complete
:
function
()
{
_this
.
view
.
setLoading
(
false
);
}
})
$
.
ajax
({
headers
:
{
Accept
:
"
application/vnd.datacite.datacite+json
"
},
type
:
"
GET
"
,
timeout
:
15000
,
// triggers timeout when request pends longer than
// 5000ms
url
:
"
sdfdsf
"
+
this
.
doiServer
+
doi
,
beforeSend
:
function
()
{
_this
.
view
.
setLoading
(
"
Retrieving data from Server
"
);
},
complete
:
function
()
{
_this
.
view
.
setLoading
(
false
);
}
})
.
done
(
function
(
data
)
{
if
(
data
)
{
_this
.
render
(
doi
,
data
);
}
}).
fail
(
function
(
jqXHR
,
textStatus
,
errorThrown
)
{
_this
.
view
.
renderError
(
jqXHR
,
errorThrown
,
_this
.
origin
);
_this
.
view
.
setLoading
(
false
);
}).
fail
(
function
(
jqXHR
,
textStatus
,
errorThrown
)
{
/** Try with icat server **/
$
.
ajax
({
type
:
"
GET
"
,
timeout
:
15000
,
// triggers timeout when request pends longer than
// 5000ms
url
:
_this
.
icatPlusServer
+
doi
+
"
/json-datacite
"
,
beforeSend
:
function
()
{
try
{
$
(
"
logo
"
).
fadeIn
().
fadeOut
().
fadeIn
().
fadeOut
().
fadeIn
().
fadeOut
();
}
catch
(
e
){}
_this
.
view
.
setLoading
(
"
Retrieving data from Server
"
);
},
complete
:
function
()
{
_this
.
view
.
setLoading
(
false
);
}
})
.
done
(
function
(
data
)
{
if
(
data
)
{
_this
.
render
(
doi
,
data
);
}
}).
fail
(
function
(
jqXHR
,
textStatus
,
errorThrown
)
{
_this
.
view
.
renderError
(
jqXHR
,
errorThrown
,
_this
.
origin
);
_this
.
view
.
setLoading
(
false
);
});
});
}
else
{
...
...
www/src/doiview.js
View file @
23c2094d
...
...
@@ -52,8 +52,7 @@ DOIView.prototype.renderExperimentalReportData = function (data) {
};
DOIView
.
prototype
.
renderDOIData
=
function
(
doiData
)
{
var
_this
=
this
;
console
.
log
(
doiData
);
var
_this
=
this
;
dust
.
render
(
'
landingpage_tpl
'
,
{
data
:
doiData
,
constants
:
CONSTANTS
...
...
www/src/experimentalreportcontroller.js
View file @
23c2094d
...
...
@@ -6,36 +6,63 @@ function ExperimentalReportController() {
this
.
onError
=
new
Event
(
this
);
}
ExperimentalReportController
.
prototype
.
normalizeProposalName
=
function
(
proposalName
)
{
try
{
// extract the proposal LetterCode (before the hyphen) and the digits (after the hyphen)
var
aroundHyphenRegExp
=
new
RegExp
(
/^
(
.*
)
-
(
.*
)
/
);
return
{
categoryCode
:
aroundHyphenRegExp
.
exec
(
proposalName
)[
1
],
categoryCounter
:
aroundHyphenRegExp
.
exec
(
proposalName
)[
2
]
};
}
catch
(
e
)
{
/** It is most likely that symbol '-' is not present in the proposal name then we use /\d+$/ */
var
aroundHyphenRegExp
=
new
RegExp
(
/
\d
+$/
);
/** This will get all numbers at the end of the string
* Example: input=mx3030 then output[0]=3030
*/
try
{
return
{
categoryCode
:
proposalName
.
substring
(
0
,
proposalName
.
length
-
aroundHyphenRegExp
.
exec
(
proposalName
)[
0
].
length
),
categoryCounter
:
aroundHyphenRegExp
.
exec
(
proposalName
)[
0
]
};
}
catch
(
e
){
console
.
log
(
e
);
return
null
;
}
}
};
/**
* Request the experimental report filename list for the given proposal
* @param {string} proposal The proposal
* @param {string} proposal The proposal
code
*/
ExperimentalReportController
.
prototype
.
requestFilenameList
=
function
(
proposal
)
{
ExperimentalReportController
.
prototype
.
requestFilenameList
=
function
(
proposal
)
{
var
_this
=
this
;
if
(
proposal
)
{
// extract the proposal LetterCode (before the hyphen) and the digits (after the hyphen)
var
aroundHyphenRegExp
=
new
RegExp
(
/^
(
.*
)
-
(
.*
)
/
);
var
beforeHyphen
=
aroundHyphenRegExp
.
exec
(
proposal
)[
1
];
var
afterHyphen
=
aroundHyphenRegExp
.
exec
(
proposal
)[
2
];
if
(
beforeHyphen
&&
afterHyphen
)
{
var
data
=
this
.
normalizeProposalName
(
proposal
);
if
(
data
)
{
$
.
ajax
({
type
:
"
GET
"
,
timeout
:
this
.
timeout
,
url
:
this
.
server
,
data
:
{
categoryCode
:
beforeHyphen
,
categoryCounter
:
afterHyphen
},
dataType
:
"
json
"
,
success
:
function
(
data
)
{
type
:
"
GET
"
,
timeout
:
this
.
timeout
,
url
:
this
.
server
,
data
:
data
,
dataType
:
"
json
"
,
success
:
function
(
data
)
{
_this
.
onSuccess
.
notify
(
data
);
},
error
:
function
(
message
)
{
error
:
function
(
message
)
{
_this
.
onError
.
notify
(
message
);
}
});
}
else
{
_this
.
onError
.
notify
(
"
Proposal could not be normalized:
"
+
proposal
);
}
}
else
{
_this
.
onError
.
notify
(
"
Proposal is null
"
);
}
...
...
@@ -45,7 +72,7 @@ ExperimentalReportController.prototype.requestFilenameList = function(proposal)
* Opens the file in a new tab if it exists. Display an alert message if it
* fails loading the file
*/
ExperimentalReportController
.
prototype
.
openFileInNewTab
=
function
(
filename
)
{
ExperimentalReportController
.
prototype
.
openFileInNewTab
=
function
(
filename
)
{
if
(
filename
)
{
try
{
window
.
open
(
'
ftp://www.esrf.eu/pub/UserReports/
'
+
filename
,
'
_blank
'
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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