2016-08-04 17:44:47 -07:00
function setOwnerNameAutocomplete ( controller )
{
if ( ! controller )
{
return ;
}
$ ( '.userEntity' ) . blur ( function ( data ) {
var userEntitiesMaps = controller . get ( "userEntitiesMaps" ) ;
var value = this . value ;
if ( userEntitiesMaps [ value ] )
{
controller . set ( "showMsg" , false ) ;
var owners = controller . get ( "owners" ) ;
for ( var i = 0 ; i < owners . length ; i ++ )
{
if ( owners [ i ] . userName == value )
{
Ember . set ( owners [ i ] , "name" , userEntitiesMaps [ value ] ) ;
if ( userEntitiesMaps [ value ] )
{
Ember . set ( owners [ i ] , "isGroup" , false ) ;
}
else
{
Ember . set ( owners [ i ] , "isGroup" , true ) ;
}
}
}
}
else
{
controller . set ( "showMsg" , true ) ;
controller . set ( "alertType" , "alert-danger" ) ;
controller . set ( "ownerMessage" , "The user name '" + value + "' is invalid" ) ;
}
} ) ;
$ ( '.userEntity' ) . autocomplete ( {
select : function ( event , ui )
{
var userEntitiesMaps = controller . get ( "userEntitiesMaps" ) ;
var value = ui . item . value ;
if ( value in userEntitiesMaps )
{
var owners = controller . get ( "owners" ) ;
for ( var i = 0 ; i < owners . length ; i ++ )
{
if ( owners [ i ] . userName == value )
{
controller . set ( "showMsg" , false ) ;
Ember . set ( owners [ i ] , "name" , userEntitiesMaps [ value ] ) ;
if ( userEntitiesMaps [ value ] )
{
Ember . set ( owners [ i ] , "isGroup" , false ) ;
}
else
{
Ember . set ( owners [ i ] , "isGroup" , true ) ;
}
}
}
}
} ,
source : function ( request , response ) {
var userEntitiesSource = controller . get ( "userEntitiesSource" ) ;
var results = $ . ui . autocomplete . filter ( userEntitiesSource , request . term ) ;
response ( results . slice ( 0 , 20 ) ) ;
}
} ) ;
}
App . EmberSelectorComponent = Ember . Component . extend ( {
init : function ( ) {
this . _super ( ) ;
var values = this . get ( 'values' ) ;
var selected = this . get ( 'selected' ) ;
var renderValues = [ ] ;
if ( values && values . length > 0 )
{
for ( var i = 0 ; i < values . length ; i ++ )
{
renderValues . push ( { 'value' : values [ i ] , 'isSelected' : values [ i ] === selected } ) ;
}
}
this . set ( 'renderValues' , renderValues ) ;
}
} ) ;
App . DatasetPropertyComponent = Ember . Component . extend ( {
} ) ;
App . DatasetSchemaComponent = Ember . Component . extend ( {
buildJsonView : function ( ) {
var dataset = this . get ( "dataset" ) ;
var schema = JSON . parse ( dataset . schema )
setTimeout ( function ( ) {
$ ( "#json-viewer" ) . JSONView ( schema )
} , 500 ) ;
} ,
actions : {
2016-08-31 16:50:20 -07:00
getSchema : function ( ) {
var _this = this
var id = _this . get ( 'dataset.id' )
var columnUrl = 'api/v1/datasets/' + id + "/columns" ;
_this . set ( "isTable" , true ) ;
_this . set ( "isJSON" , false ) ;
$ . get ( columnUrl , function ( data ) {
if ( data && data . status == "ok" )
{
if ( data . columns && ( data . columns . length > 0 ) )
{
_this . set ( "hasSchemas" , true ) ;
data . columns = data . columns . map ( function ( item , idx ) {
item . commentHtml = marked ( item . comment ) . htmlSafe ( )
return item
} )
_this . set ( "schemas" , data . columns ) ;
setTimeout ( initializeColumnTreeGrid , 500 ) ;
}
else
{
_this . set ( "hasSchemas" , false ) ;
}
}
else
{
_this . set ( "hasSchemas" , false ) ;
}
} ) ;
} ,
2016-08-04 17:44:47 -07:00
setView : function ( view ) {
switch ( view ) {
case "tabular" :
this . set ( 'isTable' , true ) ;
this . set ( 'isJSON' , false ) ;
$ ( '#json-viewer' ) . hide ( ) ;
$ ( '#json-table' ) . show ( ) ;
break ;
case "json" :
this . set ( 'isTable' , false ) ;
this . set ( 'isJSON' , true ) ;
this . buildJsonView ( ) ;
$ ( '#json-table' ) . hide ( ) ;
$ ( '#json-viewer' ) . show ( ) ;
break ;
default :
this . set ( 'isTable' , true ) ;
this . set ( 'isJSON' , false ) ;
$ ( '#json-viewer' ) . hide ( ) ;
$ ( '#json-table' ) . show ( ) ;
}
}
}
} ) ;
App . DatasetSampleComponent = Ember . Component . extend ( {
} ) ;
2016-08-09 11:34:46 -07:00
App . DatasetAccessComponent = Ember . Component . extend ( {
} ) ;
2016-08-04 17:44:47 -07:00
App . DatasetImpactComponent = Ember . Component . extend ( {
} ) ;
App . DatasetAuthorComponent = Ember . Component . extend ( {
actions : {
addOwner : function ( data ) {
var owners = data ;
var controller = this . get ( "parentController" ) ;
var currentUser = this . get ( "currentUser" ) ;
var addedOwner = { "userName" : "Owner" , "email" : null , "name" : "" , "isGroup" : false ,
"namespace" : "urn:li:griduser" , "type" : "Producer" , "subType" : null , "sortId" : 0 } ;
var userEntitiesSource = controller . get ( "userEntitiesSource" ) ;
var userEntitiesMaps = controller . get ( "userEntitiesMaps" ) ;
var exist = false ;
if ( owners && owners . length > 0 )
{
owners . forEach ( function ( owner ) {
if ( owner . userName == addedOwner . userName )
{
exist = true ;
}
} ) ;
}
if ( ! exist )
{
owners . unshiftObject ( addedOwner ) ;
setTimeout ( function ( ) {
setOwnerNameAutocomplete ( controller )
} , 500 ) ;
}
else
{
console . log ( "The owner is already exist" ) ;
}
} ,
removeOwner : function ( owners , owner ) {
if ( owners && owner )
{
owners . removeObject ( owner ) ;
}
} ,
2016-09-19 16:10:23 -07:00
confirmOwner : function ( owner , confirm ) {
var obj = $ ( '#loggedInUser' ) ;
if ( obj )
{
var loggedInUser = obj . attr ( "title" ) ;
if ( loggedInUser && owner )
{
if ( confirm )
{
Ember . set ( owner , "confirmedBy" , loggedInUser ) ;
}
else
{
Ember . set ( owner , "confirmedBy" , null ) ;
}
}
}
} ,
2016-08-04 17:44:47 -07:00
updateOwners : function ( owners ) {
_this = this ;
controller = this . get ( "parentController" ) ;
var showMsg = controller . get ( "showMsg" ) ;
if ( showMsg )
{
return ;
}
var model = controller . get ( "model" ) ;
if ( ! model || ! model . id )
{
return ;
}
var url = "/api/v1/datasets/" + model . id + "/owners" ;
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' ) ;
$ . ajax ( {
url : url ,
method : 'POST' ,
header : {
'Csrf-Token' : token
} ,
data : {
csrfToken : token ,
owners : JSON . stringify ( owners )
}
} ) . done ( function ( data , txt , xhr ) {
if ( data . status == "success" )
{
_this . set ( 'showMsg' , true ) ;
_this . set ( 'alertType' , "alert-success" ) ;
_this . set ( 'ownerMessage' , "Ownership successfully updated." ) ;
}
else
{
_this . set ( 'showMsg' , true ) ;
_this . set ( 'alertType' , "alert-danger" ) ;
_this . set ( 'ownerMessage' , "Ownership update failed." ) ;
}
} ) . fail ( function ( xhr , txt , error ) {
_this . set ( 'showMsg' , true ) ;
_this . set ( 'alertType' , "alert-danger" ) ;
_this . set ( 'ownerMessage' , "Ownership update failed." ) ;
} )
}
}
} ) ;
App . DatasetRelationsComponent = Ember . Component . extend ( {
} ) ;
App . MetricDetailComponent = Ember . Component . extend ( {
} ) ;
2015-11-19 14:39:21 -08:00
App . DatasetFavoriteComponent = Ember . Component . extend ( {
actions : {
favorites : function ( dataset ) {
var url = '/api/v1/datasets/' + dataset . id + '/favorite'
var method = ! dataset . isFavorite ? 'POST' : 'DELETE'
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' )
var _this = this
$ . ajax ( {
url : url ,
method : method ,
headers : {
'Csrf-Token' : token
} ,
dataType : 'json' ,
data : {
csrfToken : token
}
} ) . done ( function ( data , txt , xhr ) {
_this . set ( 'dataset.isFavorite' , ! dataset . isFavorite )
} ) . fail ( function ( xhr , txt , err ) {
console . log ( 'Error: Could not update dataset favorite.' )
} )
}
}
} )
2016-02-04 04:59:58 -08:00
App . DatasetOwnerComponent = Ember . Component . extend ( {
actions : {
owned : function ( dataset ) {
var url = '/api/v1/datasets/' + dataset . id + '/own' ;
var method = ! dataset . isOwned ? 'POST' : 'DELETE' ;
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' ) ;
var _this = this ;
$ . ajax ( {
url : url ,
method : method ,
headers : {
'Csrf-Token' : token
} ,
dataType : 'json' ,
data : {
csrfToken : token
}
} ) . done ( function ( data , txt , xhr ) {
if ( data . status == 'success' )
{
_this . set ( 'dataset.isOwned' , ! dataset . isOwned ) ;
_this . set ( 'dataset.owners' , data . owners ) ;
}
} ) . fail ( function ( xhr , txt , err ) {
console . log ( 'Error: Could not update dataset owner.' )
} )
}
}
} )
2016-02-08 02:41:06 -08:00
var insertAtCursor = function ( myField , myValue , newline ) {
if ( myField [ 0 ] . selectionStart || myField [ 0 ] . selectionStart == '0' ) {
var startPos = myField [ 0 ] . selectionStart ;
var endPos = myField [ 0 ] . selectionEnd ;
var value ;
if ( newline )
{
value = myField . val ( ) . substring ( 0 , startPos ) + '\n' +
myValue + myField . val ( ) . substring ( endPos , myField . val ( ) . length ) ;
}
else
{
value = myField . val ( ) . substring ( 0 , startPos ) +
myValue + myField . val ( ) . substring ( endPos , myField . val ( ) . length ) ;
}
myField . val ( value ) ;
myField [ 0 ] . selectionEnd = myField . selectionStart = startPos + myValue . length ;
} else {
var value ;
if ( newline )
{
value = myField . val ( ) + '\n' + myValue ;
}
else
{
value = myField . val ( ) + myValue ;
}
myField . val ( value ) ;
}
} ;
var insertListAtCursor = function ( myField , myValue , number ) {
if ( myField [ 0 ] . selectionStart || myField [ 0 ] . selectionStart == '0' ) {
var startPos = myField [ 0 ] . selectionStart ;
var endPos = myField [ 0 ] . selectionEnd ;
var selection ;
var value ;
if ( endPos > startPos )
{
selection = myField . val ( ) . substring ( startPos , endPos ) ;
}
var insertvalue = "" ;
if ( selection )
{
var lines = selection . split ( '\n' ) ;
for ( var i = 0 ; i < lines . length ; i ++ )
{
if ( number == 'numbered' )
{
insertvalue += ( i + 1 ) + "." ;
}
else if ( number == 'bulleted' )
{
insertvalue += "-" ;
}
else if ( number == 'blockquote' )
{
insertvalue += "> " ;
}
insertvalue += " " + lines [ i ] ;
if ( i < lines . length )
{
insertvalue += "\n" ;
}
}
value = myField . val ( ) . substring ( 0 , startPos ) + insertvalue + myField . val ( ) . substring ( endPos , myField . val ( ) . length ) ;
myField . val ( value ) ;
myField [ 0 ] . selectionEnd = myField . selectionStart = startPos + insertvalue . length ;
return ;
}
}
var lines = myValue . split ( '\n' ) ;
for ( var i = 0 ; i < lines . length ; i ++ )
{
if ( number == 'numbered' )
{
insertvalue += ( i + 1 ) + "." ;
}
else if ( number == 'bulleted' )
{
insertvalue += "-" ;
}
else if ( number == 'blockquote' )
{
insertvalue += ">" ;
}
insertvalue += " " + lines [ i ] ;
if ( i < lines . length )
{
insertvalue += "\n" ;
}
}
value = myField . val ( ) + '\n' + insertvalue ;
myField . val ( value ) ;
} ;
var insertSourcecodeAtCursor = function ( myField ) {
if ( myField [ 0 ] . selectionStart || myField [ 0 ] . selectionStart == '0' ) {
var startPos = myField [ 0 ] . selectionStart ;
var endPos = myField [ 0 ] . selectionEnd ;
var selection ;
var value ;
if ( endPos > startPos )
{
selection = myField . val ( ) . substring ( startPos , endPos ) ;
}
var insertvalue = "```\n" ;
if ( selection ) {
insertvalue += selection + '\n```' ;
}
else {
insertvalue += 'code text' + '\n```\n' ;
}
value = myField . val ( ) . substring ( 0 , startPos ) + insertvalue + myField . val ( ) . substring ( endPos , myField . val ( ) . length ) ;
myField . val ( value ) ;
myField [ 0 ] . selectionEnd = myField . selectionStart = startPos + insertvalue . length ;
return ;
}
var insertvalue = "```\n" ;
insertvalue += 'code text' + '\n```\n' ;
value = myField . val ( ) + '\n' + insertvalue ;
myField . val ( value ) ;
} ;
var insertImageAtCursor = function ( myField , param ) {
if ( myField [ 0 ] . selectionStart || myField [ 0 ] . selectionStart == '0' ) {
var startPos = myField [ 0 ] . selectionStart ;
var endPos = myField [ 0 ] . selectionEnd ;
var selection ;
var value ;
if ( endPos > startPos )
{
selection = myField . val ( ) . substring ( startPos , endPos ) ;
}
var insertvalue = "" ;
if ( selection && selection . length > 0 &&
( selection . substr ( 0 , 7 ) == 'http://' || selection . substr ( 0 , 7 ) == 'https:/' ) ) {
if ( param == 'image' )
{
insertvalue = "[alt text](" + selection + ")" ;
}
else
{
insertvalue = "[" + selection + "](" + selection + ")" ;
}
}
else {
if ( param == 'image' )
{
insertvalue = "" ;
}
else
{
insertvalue = "[example link](http://example.com/)" ;
}
}
value = myField . val ( ) . substring ( 0 , startPos ) + insertvalue + myField . val ( ) . substring ( endPos , myField . val ( ) . length ) ;
myField . val ( value ) ;
myField [ 0 ] . selectionEnd = myField . selectionStart = startPos + insertvalue . length ;
return ;
}
if ( param == 'image' )
{
insertvalue = "" ;
}
else
{
insertvalue = "[example link](http://example.com/)" ;
}
value = myField . val ( ) + '\n' + insertvalue ;
myField . val ( value ) ;
} ;
2015-11-19 14:39:21 -08:00
var datasetCommentsComponent = null ;
App . DatasetCommentsComponent = Ember . Component . extend ( {
totalPages : null ,
commentsLoading : true ,
itemsPerPage : 3 ,
page : 1 ,
count : null ,
comments : [ ] ,
comment : { } ,
isEdit : false ,
commentTypes : [
'Comment' ,
'Question' ,
'Description' ,
'Partition' ,
'ETL Schedule' ,
'Grain' ,
'DQ Issue'
] ,
getComments : function ( params ) {
if ( this . isDestroyed || this . isDestroying )
{
return ;
}
var _this = this ;
datasetCommentsComponent = this ;
var datasetId = this . get ( 'dataset.model.id' )
var url = '/api/v1/datasets/' + datasetId + '/comments'
params =
{ size : ( params || { } ) . size || this . get ( 'itemsPerPage' )
, page : ( params || { } ) . page || this . get ( 'page' )
}
url += '?' + $ . param ( params )
$ . get
( url
, function ( data ) {
if ( _this . isDestroyed || _this . isDestroying )
{
return ;
}
_this . set ( 'totalPages' , data . data . totalPages )
_this . set ( 'page' , data . data . page )
_this . set ( 'count' , data . data . count )
_this . set ( 'itemsPerPage' , data . data . itemsPerPage )
_this . set ( 'commentsLoading' , false )
var comments = data . data . comments
comments . forEach ( function ( cmnt ) {
2016-09-09 10:42:46 -07:00
cmnt . html = marked ( cmnt . text ) . htmlSafe ( ) ;
2015-11-19 14:39:21 -08:00
} )
2016-02-08 02:15:58 -08:00
_this . set ( 'comments' , comments ) ;
2015-11-19 14:39:21 -08:00
}
)
. fail ( function ( ) {
_this . set ( 'comments' , [ ] )
_this . set ( 'commentsLoading' , false )
} )
} . on ( 'init' ) ,
defaultCommentText : function ( ) {
return "#We Support Markdown ([GitHub Flavored][gh])! \n##Secondary Header \n* bullet \n* bullet\n\n\n| Col 1 | Col 2 | Col 3|\n|:--|:--:|--:|\n|Left|Center|Right|\n```sql\nSELECT * FROM ABOOK_DATA WHERE modified_date > 1436830358700;\n```\n[ABOOK_DATA](/#/dataset/1/ABOOK_DATA) All links will open in a new tab\n\n[gh]: https://help.github.com/articles/github-flavored-markdown/"
} ,
setDefaultCommentText : function ( ) {
this . set ( 'comment' , { type : 'Comment' } ) ;
this . set ( 'comment.text' , this . defaultCommentText ( ) ) ;
} ,
actions : {
2016-02-08 02:41:06 -08:00
insertImageOrLink : function ( param ) {
var target = $ ( '#datasetcomment' ) ;
insertImageAtCursor ( target , param ) ;
var text = $ ( "#datasetComment-write > textarea" ) . val ( )
$ ( "#datasetComment-preview" ) . html ( marked ( text ) )
} ,
insertSourcecode : function ( ) {
var target = $ ( '#datasetcomment' ) ;
insertSourcecodeAtCursor ( target ) ;
var text = $ ( "#datasetComment-write > textarea" ) . val ( )
$ ( "#datasetComment-preview" ) . html ( marked ( text ) )
} ,
insertList : function ( param ) {
var target = $ ( '#datasetcomment' ) ;
var value = "Apple\nBananna\nOrange" ;
insertListAtCursor ( target , value , param ) ;
var text = $ ( "#datasetComment-write > textarea" ) . val ( )
$ ( "#datasetComment-preview" ) . html ( marked ( text ) )
} ,
insertElement : function ( param ) {
var target = $ ( '#datasetcomment' ) ;
var value ;
var selectedValue ;
if ( target [ 0 ] . selectionStart || target [ 0 ] . selectionStart == '0' ) {
var startPos = target [ 0 ] . selectionStart ;
var endPos = target [ 0 ] . selectionEnd ;
selectedValue = target . val ( ) . substring ( startPos , endPos ) ;
}
var insertedValue ;
if ( selectedValue )
{
insertedValue = selectedValue ;
}
else
{
insertedValue = param + " text" ;
}
switch ( param )
{
case 'bold' :
value = "**" + insertedValue + "**" ;
break ;
case 'italic' :
value = "*" + insertedValue + "*" ;
break ;
case 'heading_1' :
value = "#" + insertedValue + "#" ;
break ;
case 'heading_2' :
value = "##" + insertedValue + "##" ;
break ;
case 'heading_3' :
value = "###" + insertedValue + "###" ;
break ;
}
insertAtCursor ( target , value , false ) ;
var text = $ ( "#datasetComment-write > textarea" ) . val ( )
$ ( "#datasetComment-preview" ) . html ( marked ( text ) )
} ,
2016-02-08 02:15:58 -08:00
importCSVTable : function ( ) {
var input = $ ( '#tsv-input' ) ;
var output = $ ( '#table-output' ) ;
var headerCheckbox = $ ( '#has-headers' ) ;
var delimiterMarker = $ ( '#delimiter-marker' ) ;
var getDelimiter = function ( ) {
var delim = delimiterMarker . val ( ) ;
if ( delim == 'tab' ) {
delim = "\t" ;
}
return delim ;
} ;
input . keydown ( function ( e ) {
if ( e . key == 'tab' ) {
e . stop ( ) ;
insertAtCursor ( e . target , "\t" ) ;
}
} ) ;
var renderTable = function ( ) {
var value = input . val ( ) . trim ( ) ;
var hasHeader = headerCheckbox . is ( ":checked" ) ;
var t = csvToMarkdown ( value , getDelimiter ( ) , hasHeader ) ;
output . val ( csvToMarkdown ( value , getDelimiter ( ) , hasHeader ) ) ;
} ;
input . keyup ( renderTable ) ;
headerCheckbox . change ( renderTable ) ;
delimiterMarker . change ( renderTable ) ;
$ ( '#submitConvertForm' ) . click ( function ( ) {
$ ( "#convertTableModal" ) . modal ( 'hide' ) ;
var target = $ ( '#datasetcomment' ) ;
2016-02-08 02:41:06 -08:00
insertAtCursor ( target , output . val ( ) , true ) ;
2016-02-08 02:15:58 -08:00
var text = $ ( "#datasetComment-write > textarea" ) . val ( ) ;
$ ( "#datasetComment-preview" ) . html ( marked ( text ) ) ;
} ) ;
renderTable ( ) ;
$ ( "#convertTableModal" ) . modal ( 'show' ) ;
} ,
2015-11-19 14:39:21 -08:00
remove : function ( comment ) {
var url = '/api/v1/datasets/' + comment . datasetId + '/comments/' + comment . id
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' )
var _this = this
$ . ajax ( {
url : url ,
method : 'DELETE' ,
headers : {
'Csrf-Token' : token
} ,
dataType : 'json' ,
data : {
csrfToken : token
}
} ) . done ( function ( data , txt , xhr ) {
_this . getComments ( )
} ) . fail ( function ( xhr , txt , err ) {
console . log ( 'Error: Could not remove comment.' )
} )
} ,
updatePreview : function ( ) {
var text = $ ( "#datasetComment-write > textarea" ) . val ( )
$ ( "#datasetComment-preview" ) . html ( marked ( text ) )
} ,
update : function ( ) {
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' )
var _this = this ;
comment . datasetId = this . get ( 'dataset.id' )
var cmnt = { }
cmnt . text = comment . text
cmnt . type = comment . type
var url = '/api/v1/datasets/' + comment . datasetId + '/comments/' + comment . id
cmnt . csrfToken = token
$ . ajax ( {
url : url ,
method : 'PUT' ,
headers : {
'Csrf-Token' : token
} ,
dataType : 'json' ,
data : {
csrfToken : token
}
} ) . done ( function ( data , txt , xhr ) {
_this . getComments ( )
} ) . fail ( function ( xhr , txt , err ) {
console . log ( 'Error: Could not update comment.' )
} )
} ,
create : function ( comment ) {
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' )
var _this = this ;
var cmnt = { }
var isEdit = this . get ( 'isEdit' )
cmnt . datasetId = this . get ( 'dataset.model.id' )
cmnt . text = comment . text
cmnt . type = comment . type
cmnt . id = comment . id
var url = '/api/v1/datasets/' + cmnt . datasetId + '/comments'
cmnt . csrfToken = token
console . log ( 'comment data: ' , cmnt )
$ . ajax ( {
url : url ,
method : 'POST' ,
headers : {
'Csrf-Token' : token
} ,
dataType : 'json' ,
data : cmnt
} ) . done ( function ( data , txt , xhr ) {
_this . getComments ( )
_this . send ( 'hideModal' )
} ) . fail ( function ( xhr , txt , err ) {
console . log ( 'Error: Could not create comment.' )
} )
} ,
showModal : function ( comment ) {
if ( comment ) {
this . set ( 'comment' , comment )
this . set ( 'isEdit' , true )
this . set ( 'isEdit' , false )
} else {
//this.set('comment', {type: 'Comment'})
this . setDefaultCommentText ( ) ;
$ ( "#datasetComment-preview" ) . html ( marked ( this . defaultCommentText ( ) ) ) ;
}
$ ( "#datasetCommentModal" ) . modal ( 'show' )
} ,
hideModal : function ( ) {
this . set ( 'isEdit' , false )
this . set ( 'comment' , { } )
$ ( "#datasetCommentModal" ) . modal ( 'hide' )
} ,
pageForward : function ( ) {
var totalPages = this . get ( 'totalPages' ) ;
var currentPage = this . get ( 'page' ) ;
if ( currentPage < totalPages )
{
this . getComments ( { page : this . get ( 'page' ) + 1 } ) ;
}
} ,
pageBack : function ( ) {
var currentPage = this . get ( 'page' ) ;
if ( currentPage > 1 )
{
this . getComments ( { page : this . get ( 'page' ) - 1 } ) ;
}
}
}
} )
App . DatasetWatchComponent = Ember . Component . extend ( {
actions : {
watch : function ( dataset ) {
var url = '/api/v1/datasets/' + dataset . id + '/watch'
var method = ! dataset . watchId ? 'POST' : 'DELETE'
if ( method . toLowerCase ( ) === 'delete' )
url += '/' + dataset . watchId
var token = $ ( "#csrfToken" ) . val ( ) . replace ( '/' , '' )
var _this = this
$ . ajax ( {
url : url ,
method : method ,
headers : {
'Csrf-Token' : token
} ,
dataType : 'json' ,
data : {
csrfToken : token ,
item _type : 'dataset' ,
notification _type : 'weekly'
}
} ) . done ( function ( data , txt , xhr ) {
_this . set ( 'dataset.isWatched' , ! dataset . isWatched )
_this . sendAction ( 'getDatasets' )
} ) . fail ( function ( xhr , txt , err ) {
console . log ( 'Error: Could not watch dataset.' )
} )
}
}
} )