Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
atlas
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dataplatform
atlas
Commits
fc7d3009
Commit
fc7d3009
authored
May 09, 2017
by
kevalbhatt
Committed by
Madhan Neethiraj
May 11, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATLAS-1756: UI update to allow user to edit tag attribute values
Signed-off-by:
Madhan Neethiraj
<
madhan@apache.org
>
parent
b2bee2cc
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
255 additions
and
156 deletions
+255
-156
main.scss
dashboardv2/public/css/scss/main.scss
+43
-0
main.js
dashboardv2/public/js/main.js
+13
-2
VEntity.js
dashboardv2/public/js/models/VEntity.js
+2
-2
Router.js
dashboardv2/public/js/router/Router.js
+68
-46
addTagModalView_tmpl.html
...boardv2/public/js/templates/tag/addTagModalView_tmpl.html
+3
-0
UrlLinks.js
dashboardv2/public/js/utils/UrlLinks.js
+8
-0
DetailPageLayoutView.js
...ardv2/public/js/views/detail_page/DetailPageLayoutView.js
+5
-3
SchemaLayoutView.js
dashboardv2/public/js/views/schema/SchemaLayoutView.js
+7
-7
SearchDetailLayoutView.js
dashboardv2/public/js/views/search/SearchDetailLayoutView.js
+3
-2
SearchResultLayoutView.js
dashboardv2/public/js/views/search/SearchResultLayoutView.js
+3
-2
TagDetailTableLayoutView.js
dashboardv2/public/js/views/tag/TagDetailTableLayoutView.js
+25
-3
addTagModalView.js
dashboardv2/public/js/views/tag/addTagModalView.js
+75
-89
No files found.
dashboardv2/public/css/scss/main.scss
View file @
fc7d3009
...
...
@@ -188,6 +188,9 @@ ul {
background-color
:
$transparent
;
border
:
1px
solid
$color_jungle_green_approx
;
cursor
:
pointer
;
&
+
.auditDetailBtn
{
margin-left
:
5px
;
}
}
.add-seperator
{
...
...
@@ -315,6 +318,10 @@ ul {
&
.editbutton
[
data-id
=
"editButton"
]
{
display
:
none
!
important
;
}
&
[
data-id
=
"delete"
],
&
[
data-id
=
"edit"
]
{
display
:
none
;
}
}
}
...
...
@@ -340,3 +347,39 @@ ul {
.no-padding
{
padding
:
0px
!
important
;
}
.no-padding-bottom
{
padding-bottom
:
0px
!
important
;
}
.no-padding-top
{
padding-top
:
0px
!
important
;
}
.no-padding-left
{
padding-left
:
0px
!
important
;
}
.no-padding-right
{
padding-right
:
0px
!
important
;
}
.no-margin
{
margin
:
0px
!
important
;
}
.no-margin-bottom
{
margin-bottom
:
0px
!
important
;
}
.no-margin-top
{
margin-top
:
0px
!
important
;
}
.no-margin-left
{
margin-left
:
0px
!
important
;
}
.no-margin-right
{
margin-right
:
0px
!
important
;
}
dashboardv2/public/js/main.js
View file @
fc7d3009
...
...
@@ -168,15 +168,19 @@ require(['App',
'select2'
],
function
(
App
,
Router
,
CommonViewFunction
,
Globals
,
UrlLinks
,
VEntityList
,
VTagList
)
{
var
that
=
this
;
this
.
asyncFetchCounter
=
3
;
this
.
asyncFetchCounter
=
4
;
this
.
entityDefCollection
=
new
VEntityList
();
this
.
entityDefCollection
.
url
=
UrlLinks
.
entitiesDefApiUrl
();
this
.
typeHeaders
=
new
VTagList
();
this
.
typeHeaders
.
url
=
UrlLinks
.
typesApiUrl
();
this
.
enumDefCollection
=
new
VTagList
();
this
.
enumDefCollection
.
url
=
UrlLinks
.
enumDefApiUrl
();
this
.
enumDefCollection
.
modelAttrName
=
"enumDefs"
;
App
.
appRouter
=
new
Router
({
entityDefCollection
:
this
.
entityDefCollection
,
typeHeaders
:
this
.
typeHeaders
typeHeaders
:
this
.
typeHeaders
,
enumDefCollection
:
this
.
enumDefCollection
});
var
startApp
=
function
()
{
...
...
@@ -228,4 +232,11 @@ require(['App',
startApp
();
}
});
this
.
enumDefCollection
.
fetch
({
skipDefaultError
:
true
,
complete
:
function
()
{
--
that
.
asyncFetchCounter
;
startApp
();
}
});
});
dashboardv2/public/js/models/VEntity.js
View file @
fc7d3009
...
...
@@ -52,8 +52,8 @@ define(['require',
return
this
.
constructor
.
nonCrudOperation
.
call
(
this
,
url
,
'GET'
,
options
);
},
saveTraitsEntity
:
function
(
options
)
{
var
url
=
UrlLinks
.
entitiesTraitsApiUrl
();
saveTraitsEntity
:
function
(
token
,
options
)
{
var
url
=
UrlLinks
.
entitiesTraitsApiUrl
(
token
);
options
=
_
.
extend
({
contentType
:
'application/json'
,
dataType
:
'json'
...
...
dashboardv2/public/js/router/Router.js
View file @
fc7d3009
...
...
@@ -42,12 +42,17 @@ define([
'*actions'
:
'defaultAction'
},
initialize
:
function
(
options
)
{
_
.
extend
(
this
,
_
.
pick
(
options
,
'entityDefCollection'
,
'typeHeaders'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'entityDefCollection'
,
'typeHeaders'
,
'enumDefCollection'
));
this
.
showRegions
();
this
.
bindCommonEvents
();
this
.
listenTo
(
this
,
'route'
,
this
.
postRouteExecute
,
this
);
this
.
tagCollection
=
new
VTagList
();
this
.
searchVent
=
new
Backbone
.
Wreqr
.
EventAggregator
();
this
.
preFetchedCollectionLists
=
{
'entityDefCollection'
:
this
.
entityDefCollection
,
'typeHeaders'
:
this
.
typeHeaders
,
'enumDefCollection'
:
this
.
enumDefCollection
}
},
bindCommonEvents
:
function
()
{
var
that
=
this
;
...
...
@@ -110,17 +115,29 @@ define([
var
paramObj
=
Utils
.
getUrlState
.
getQueryParams
();
this
.
collection
=
new
VCatalogList
();
this
.
collection
.
url
=
url
;
App
.
rNHeader
.
show
(
new
BusinessCatalogHeader
({
'url'
:
url
,
'collection'
:
this
.
collection
}));
App
.
rNHeader
.
show
(
new
BusinessCatalogHeader
(
_
.
extend
({
'url'
:
url
,
'collection'
:
this
.
collection
},
that
.
preFetchedCollectionLists
)
));
if
(
!
App
.
rSideNav
.
currentView
)
{
App
.
rSideNav
.
show
(
new
SideNavLayoutView
({
'url'
:
url
,
'collection'
:
that
.
tagCollection
,
'typeHeaders'
:
that
.
typeHeaders
}));
App
.
rSideNav
.
show
(
new
SideNavLayoutView
(
_
.
extend
({
'url'
:
url
,
'collection'
:
that
.
tagCollection
},
that
.
preFetchedCollectionLists
)
));
}
else
{
App
.
rSideNav
.
currentView
.
RBusinessCatalogLayoutView
.
currentView
.
manualRender
(
"/"
+
url
);
App
.
rSideNav
.
currentView
.
selectTab
();
}
App
.
rNContent
.
show
(
new
BusinessCatalogDetailLayoutView
({
'url'
:
url
,
'collection'
:
this
.
collection
}));
App
.
rNContent
.
show
(
new
BusinessCatalogDetailLayoutView
(
_
.
extend
({
'url'
:
url
,
'collection'
:
this
.
collection
},
that
.
preFetchedCollectionLists
)
));
this
.
collection
.
fetch
({
reset
:
true
});
}
else
{
that
.
defaultAction
()
...
...
@@ -139,16 +156,18 @@ define([
this
.
entityCollection
=
new
VEntityList
([],
{});
App
.
rNHeader
.
show
(
new
Header
());
if
(
!
App
.
rSideNav
.
currentView
)
{
App
.
rSideNav
.
show
(
new
SideNavLayoutView
({
'collection'
:
that
.
tagCollection
,
'typeHeaders'
:
that
.
typeHeaders
}));
App
.
rSideNav
.
show
(
new
SideNavLayoutView
(
_
.
extend
({
'collection'
:
that
.
tagCollection
,
},
that
.
preFetchedCollectionLists
)
));
}
else
{
App
.
rSideNav
.
currentView
.
selectTab
();
}
App
.
rNContent
.
show
(
new
DetailPageLayoutView
({
App
.
rNContent
.
show
(
new
DetailPageLayoutView
(
_
.
extend
(
{
'collection'
:
this
.
entityCollection
,
'id'
:
id
,
'entityDefCollection'
:
that
.
entityDefCollection
,
'typeHeaders'
:
that
.
typeHeaders
}));
},
that
.
preFetchedCollectionLists
)));
this
.
entityCollection
.
url
=
UrlLinks
.
entitiesApiUrl
(
id
);
this
.
entityCollection
.
fetch
({
reset
:
true
});
});
...
...
@@ -164,23 +183,24 @@ define([
],
function
(
Header
,
BusinessCatalogLayoutView
,
SideNavLayoutView
,
TagDetailLayoutView
)
{
App
.
rNHeader
.
show
(
new
Header
());
if
(
!
App
.
rSideNav
.
currentView
)
{
App
.
rSideNav
.
show
(
new
SideNavLayoutView
({
'tag'
:
tagName
,
'typeHeaders'
:
that
.
typeHeaders
,
'collection'
:
that
.
tagCollection
}));
App
.
rSideNav
.
show
(
new
SideNavLayoutView
(
_
.
extend
({
'tag'
:
tagName
,
'collection'
:
that
.
tagCollection
},
that
.
preFetchedCollectionLists
)
));
}
else
{
App
.
rSideNav
.
currentView
.
RTagLayoutView
.
currentView
.
manualRender
(
tagName
);
App
.
rSideNav
.
currentView
.
selectTab
();
}
if
(
tagName
)
{
App
.
rNContent
.
show
(
new
TagDetailLayoutView
(
{
'tag'
:
tagName
,
'entityDefCollection'
:
that
.
entityDefCollection
,
'collection'
:
that
.
tagCollection
,
'typeHeaders'
:
that
.
typeHeaders
}
));
App
.
rNContent
.
show
(
new
TagDetailLayoutView
(
_
.
extend
({
'tag'
:
tagName
,
'collection'
:
that
.
tagCollection
,
},
that
.
preFetchedCollectionLists
)
));
}
});
},
...
...
@@ -195,10 +215,11 @@ define([
var
paramObj
=
Utils
.
getUrlState
.
getQueryParams
();
App
.
rNHeader
.
show
(
new
Header
());
if
(
!
App
.
rSideNav
.
currentView
)
{
App
.
rSideNav
.
show
(
new
SideNavLayoutView
({
'collection'
:
that
.
tagCollection
,
'typeHeaders'
:
that
.
typeHeaders
}));
App
.
rSideNav
.
show
(
new
SideNavLayoutView
(
_
.
extend
({
'collection'
:
that
.
tagCollection
},
that
.
preFetchedCollectionLists
)
));
}
else
{
App
.
rSideNav
.
currentView
.
selectTab
();
if
(
Utils
.
getUrlState
.
isTagTab
())
{
...
...
@@ -208,12 +229,12 @@ define([
}
}
if
(
Globals
.
entityCreate
&&
Utils
.
getUrlState
.
isSearchTab
())
{
App
.
rNContent
.
show
(
new
SearchDetailLayoutView
(
{
'value'
:
paramObj
,
'entityDefCollection'
:
that
.
entityDefCollection
,
'initialView'
:
true
,
'typeHeaders'
:
that
.
typeHeaders
}))
App
.
rNContent
.
show
(
new
SearchDetailLayoutView
(
_
.
extend
({
'value'
:
paramObj
,
'initialView'
:
true
},
that
.
preFetchedCollectionLists
)
));
}
else
{
App
.
rNContent
.
$el
.
html
(
""
);
App
.
rNContent
.
destroy
();
...
...
@@ -231,23 +252,24 @@ define([
var
paramObj
=
Utils
.
getUrlState
.
getQueryParams
();
App
.
rNHeader
.
show
(
new
Header
());
if
(
!
App
.
rSideNav
.
currentView
)
{
App
.
rSideNav
.
show
(
new
SideNavLayoutView
({
'value'
:
paramObj
,
'collection'
:
that
.
tagCollection
,
'searchVent'
:
that
.
searchVent
,
'typeHeaders'
:
that
.
typeHeaders
}));
App
.
rSideNav
.
show
(
new
SideNavLayoutView
(
_
.
extend
({
'value'
:
paramObj
,
'collection'
:
that
.
tagCollection
,
'searchVent'
:
that
.
searchVent
},
that
.
preFetchedCollectionLists
)
));
}
else
{
App
.
rSideNav
.
currentView
.
RSearchLayoutView
.
currentView
.
manualRender
(
paramObj
);
}
App
.
rSideNav
.
currentView
.
selectTab
();
App
.
rNContent
.
show
(
new
SearchDetailLayoutView
(
{
'value'
:
paramObj
,
'entityDefCollection'
:
that
.
entityDefCollection
,
'typeHeaders'
:
that
.
typeHeaders
,
'searchVent'
:
that
.
searchVent
,
'initialView'
:
(
paramObj
.
type
||
(
paramObj
.
dslChecked
==
"true"
?
""
:
paramObj
.
tag
)
||
(
paramObj
.
query
?
paramObj
.
query
.
trim
()
:
""
)).
length
===
0
}
));
App
.
rNContent
.
show
(
new
SearchDetailLayoutView
(
_
.
extend
({
'value'
:
paramObj
,
'searchVent'
:
that
.
searchVent
,
'initialView'
:
(
paramObj
.
type
||
(
paramObj
.
dslChecked
==
"true"
?
""
:
paramObj
.
tag
)
||
(
paramObj
.
query
?
paramObj
.
query
.
trim
()
:
""
)).
length
===
0
},
that
.
preFetchedCollectionLists
)
));
});
},
defaultAction
:
function
(
actions
)
{
...
...
dashboardv2/public/js/templates/tag/addTagModalView_tmpl.html
View file @
fc7d3009
...
...
@@ -16,8 +16,11 @@
-->
<div>
<div
class=
"form-group hide"
>
{{#if tagModel}}
<h4>
{{tagModel.typeName}}
</h4>
{{else}}
<select
class=
"form-control row-margin-bottom"
data-id=
"addTagOptions"
required
>
</select>
{{/if}}
</div>
<div
class=
"row modalHeight"
>
<div
class=
"col-sm-12"
>
...
...
dashboardv2/public/js/utils/UrlLinks.js
View file @
fc7d3009
...
...
@@ -52,6 +52,14 @@ define(['require', 'utils/Enums'], function(require, Enums) {
return
entitieDefUrl
.
defs
+
'?type=entity'
;
}
},
enumDefApiUrl
:
function
(
name
)
{
var
enumDefApiUrl
=
this
.
typedefsUrl
();
if
(
name
)
{
return
enumDefApiUrl
.
def
+
'/name/'
+
name
+
'?type=enum'
;
}
else
{
return
enumDefApiUrl
.
defs
+
'?type=enum'
;
}
},
entitiesTraitsApiUrl
:
function
(
token
)
{
if
(
token
)
{
return
this
.
baseUrlV2
+
'/entity/guid/'
+
token
+
'/classifications'
;
...
...
dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
View file @
fc7d3009
...
...
@@ -104,7 +104,7 @@ define(['require',
* @constructs
*/
initialize
:
function
(
options
)
{
_
.
extend
(
this
,
_
.
pick
(
options
,
'collection'
,
'id'
,
'entityDefCollection'
,
'typeHeaders'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'collection'
,
'id'
,
'entityDefCollection'
,
'typeHeaders'
,
'enumDefCollection'
));
this
.
bindEvents
();
},
bindEvents
:
function
()
{
...
...
@@ -171,7 +171,8 @@ define(['require',
entityName
:
this
.
name
,
typeHeaders
:
this
.
typeHeaders
,
entityDefCollection
:
this
.
entityDefCollection
,
fetchCollection
:
this
.
fetchCollection
.
bind
(
that
)
fetchCollection
:
this
.
fetchCollection
.
bind
(
that
),
enumDefCollection
:
this
.
enumDefCollection
}
this
.
getEntityDef
(
obj
);
this
.
renderTagTableLayoutView
(
obj
);
...
...
@@ -325,7 +326,8 @@ define(['require',
that
.
fetchCollection
();
},
showLoader
:
that
.
showLoader
.
bind
(
that
),
hideLoader
:
that
.
hideLoader
.
bind
(
that
)
hideLoader
:
that
.
hideLoader
.
bind
(
that
),
enumDefCollection
:
that
.
enumDefCollection
});
view
.
modal
.
on
(
'ok'
,
function
()
{
Utils
.
showTitleLoader
(
that
.
$
(
'.page-title .fontLoader'
),
that
.
$
(
'.entityDetail'
));
...
...
dashboardv2/public/js/views/schema/SchemaLayoutView.js
View file @
fc7d3009
...
...
@@ -48,8 +48,7 @@ define(['require',
showMoreLess
:
'[data-id="showMoreLess"]'
,
showMoreLessTerm
:
'[data-id="showMoreLessTerm"]'
,
addAssignTag
:
"[data-id='addAssignTag']"
,
checkDeletedEntity
:
"[data-id='checkDeletedEntity']"
,
checkDeletedEntity
:
"[data-id='checkDeletedEntity']"
},
/** ui events hash */
events
:
function
()
{
...
...
@@ -95,7 +94,7 @@ define(['require',
* @constructs
*/
initialize
:
function
(
options
)
{
_
.
extend
(
this
,
_
.
pick
(
options
,
'guid'
,
'entityDefCollection'
,
'attribute'
,
'referredEntities'
,
'fetchCollection'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'guid'
,
'entityDefCollection'
,
'attribute'
,
'referredEntities'
,
'fetchCollection'
,
'enumDefCollection'
));
this
.
schemaCollection
=
new
VSchemaList
([],
{});
this
.
commonTableOptions
=
{
collection
:
this
.
schemaCollection
,
...
...
@@ -228,7 +227,7 @@ define(['require',
// return this;
// }
});
var
columns
=
new
columnCollection
(
that
.
getSchemaTableColumns
());
var
columns
=
new
columnCollection
(
that
.
getSchemaTableColumns
(
deleteEnity
));
//columns.setPositions().sort();
that
.
RSchemaTableLayoutView
.
show
(
new
TableLayout
(
_
.
extend
({},
that
.
commonTableOptions
,
{
columns
:
columns
...
...
@@ -247,7 +246,7 @@ define(['require',
});
});
},
getSchemaTableColumns
:
function
()
{
getSchemaTableColumns
:
function
(
deleteEnity
)
{
var
that
=
this
,
col
=
{
Check
:
{
...
...
@@ -271,7 +270,7 @@ define(['require',
var
value
=
model
.
get
(
'attributes'
)[
key
];
if
(
key
===
"name"
&&
model
.
get
(
'guid'
))
{
var
nameHtml
=
'<a href="#!/detailPage/'
+
model
.
get
(
'guid'
)
+
'">'
+
value
+
'</a>'
;
if
(
model
.
get
(
'status'
)
&&
Enums
.
entityStateReadOnly
[
model
.
get
(
'status'
)])
{
if
(
model
.
get
(
'status'
)
&&
Enums
.
entityStateReadOnly
[
model
.
get
(
'status'
)]
&&
deleteEnity
)
{
nameHtml
+=
'<button type="button" title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i></button>'
;
return
'<div class="readOnly readOnlyLink">'
+
nameHtml
+
'</div>'
;
}
else
{
...
...
@@ -369,7 +368,8 @@ define(['require',
that
.
arr
=
[];
},
hideLoader
:
that
.
hideLoader
.
bind
(
that
),
showLoader
:
that
.
showLoader
.
bind
(
that
)
showLoader
:
that
.
showLoader
.
bind
(
that
),
enumDefCollection
:
that
.
enumDefCollection
});
// view.saveTagData = function() {
//override saveTagData function
...
...
dashboardv2/public/js/views/search/SearchDetailLayoutView.js
View file @
fc7d3009
...
...
@@ -43,7 +43,7 @@ define(['require',
* @constructs
*/
initialize
:
function
(
options
)
{
_
.
extend
(
this
,
_
.
pick
(
options
,
'value'
,
'initialView'
,
'entityDefCollection'
,
'typeHeaders'
,
'searchVent'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'value'
,
'initialView'
,
'entityDefCollection'
,
'typeHeaders'
,
'searchVent'
,
'enumDefCollection'
));
},
bindEvents
:
function
()
{},
onRender
:
function
()
{
...
...
@@ -61,7 +61,8 @@ define(['require',
initialView
:
that
.
initialView
,
entityDefCollection
:
that
.
entityDefCollection
,
typeHeaders
:
that
.
typeHeaders
,
searchVent
:
that
.
searchVent
searchVent
:
that
.
searchVent
,
enumDefCollection
:
that
.
enumDefCollection
}));
}
});
...
...
dashboardv2/public/js/views/search/SearchResultLayoutView.js
View file @
fc7d3009
...
...
@@ -126,7 +126,7 @@ define(['require',
* @constructs
*/
initialize
:
function
(
options
)
{
_
.
extend
(
this
,
_
.
pick
(
options
,
'value'
,
'initialView'
,
'entityDefCollection'
,
'typeHeaders'
,
'searchVent'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'value'
,
'initialView'
,
'entityDefCollection'
,
'typeHeaders'
,
'searchVent'
,
'enumDefCollection'
));
var
pagination
=
""
;
this
.
entityModel
=
new
VEntity
();
this
.
searchCollection
=
new
VSearchList
();
...
...
@@ -490,7 +490,8 @@ define(['require',
},
tagList
:
that
.
getTagList
(
guid
,
multiple
),
showLoader
:
that
.
showLoader
.
bind
(
that
),
hideLoader
:
that
.
hideLoader
.
bind
(
that
)
hideLoader
:
that
.
hideLoader
.
bind
(
that
),
enumDefCollection
:
that
.
enumDefCollection
});
});
},
...
...
dashboardv2/public/js/views/tag/TagDetailTableLayoutView.js
View file @
fc7d3009
...
...
@@ -43,6 +43,7 @@ define(['require',
detailValue
:
"[data-id='detailValue']"
,
addTag
:
"[data-id='addTag']"
,
deleteTag
:
"[data-id='delete']"
,
editTag
:
"[data-id='edit']"
,
},
/** ui events hash */
events
:
function
()
{
...
...
@@ -53,6 +54,9 @@ define(['require',
events
[
"click "
+
this
.
ui
.
deleteTag
]
=
function
(
e
)
{
this
.
deleteTagDataModal
(
e
);
};
events
[
"click "
+
this
.
ui
.
editTag
]
=
function
(
e
)
{
this
.
editTagDataModal
(
e
);
};
return
events
;
},
/**
...
...
@@ -60,7 +64,7 @@ define(['require',
* @constructs
*/
initialize
:
function
(
options
)
{
_
.
extend
(
this
,
_
.
pick
(
options
,
'entity'
,
'guid'
,
'term'
,
'entityName'
,
'fetchCollection'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'entity'
,
'guid'
,
'term'
,
'entityName'
,
'fetchCollection'
,
'enumDefCollection'
));
this
.
collectionObject
=
this
.
entity
;
this
.
tagTermCollection
=
new
VTagList
();
var
tagorterm
=
_
.
toArray
(
this
.
collectionObject
.
classifications
),
...
...
@@ -151,7 +155,7 @@ define(['require',
sortable
:
false
,
formatter
:
_
.
extend
({},
Backgrid
.
CellFormatter
.
prototype
,
{
fromRaw
:
function
(
rawValue
,
model
)
{
return
'<
a href="javascript:void(0)"><i class="fa fa-trash" data-id="delete" data-name="'
+
model
.
get
(
'typeName'
)
+
'"></i></a
>'
;
return
'<
button class="btn btn-atlasAction btn-atlas no-margin-bottom typeLOV" data-id="delete" data-name="'
+
model
.
get
(
'typeName'
)
+
'"><i class="fa fa-trash"></i></button> <button class="btn btn-atlasAction btn-atlas no-margin-bottom typeLOV" data-id="edit" data-name="'
+
model
.
get
(
'typeName'
)
+
'"><i class="fa fa-pencil"></i></button
>'
;
}
})
},
...
...
@@ -164,7 +168,8 @@ define(['require',
require
([
'views/tag/addTagModalView'
],
function
(
AddTagModalView
)
{
var
view
=
new
AddTagModalView
({
guid
:
that
.
guid
,
modalCollection
:
that
.
collection
modalCollection
:
that
.
collection
,
enumDefCollection
:
that
.
enumDefCollection
});
// view.saveTagData = function() {
//override saveTagData function
...
...
@@ -218,6 +223,23 @@ define(['require',
}
});
},
editTagDataModal
:
function
(
e
)
{
var
that
=
this
,
tagName
=
$
(
e
.
currentTarget
).
data
(
'name'
),
tagModel
=
_
.
findWhere
(
that
.
collectionObject
.
classifications
,
{
typeName
:
tagName
});
require
([
'views/tag/addTagModalView'
],
function
(
AddTagModalView
)
{
var
view
=
new
AddTagModalView
({
'tagModel'
:
tagModel
,
callback
:
function
()
{
that
.
fetchCollection
();
},
guid
:
that
.
guid
,
'enumDefCollection'
:
that
.
enumDefCollection
});
});
}
});
return
TagDetailTableLayoutView
;
...
...
dashboardv2/public/js/views/tag/addTagModalView.js
View file @
fc7d3009
...
...
@@ -31,6 +31,11 @@ define(['require',
var
AddTagModel
=
Marionette
.
LayoutView
.
extend
({
template
:
AddTagModalViewTmpl
,
templateHelpers
:
function
()
{
return
{
tagModel
:
this
.
tagModel
};
},
regions
:
{},
ui
:
{
...
...
@@ -47,38 +52,40 @@ define(['require',
* @constructs
*/
initialize
:
function
(
options
)
{
var
that
=
this
;
_
.
extend
(
this
,
_
.
pick
(
options
,
'modalCollection'
,
'guid'
,
'callback'
,
'multiple'
,
'showLoader'
,
'hideLoader'
,
'tagList'
));
_
.
extend
(
this
,
_
.
pick
(
options
,
'modalCollection'
,
'guid'
,
'callback'
,
'multiple'
,
'showLoader'
,
'hideLoader'
,
'tagList'
,
'tagModel'
,
'enumDefCollection'
));
this
.
collection
=
new
VTagList
();
this
.
commonCollection
=
new
VTagList
();
this
.
enumCollection
=
new
VTagList
();
this
.
enumCollection
.
url
=
UrlLinks
.
typedefsUrl
().
defs
;
this
.
enumCollection
.
modelAttrName
=
"enumDefs"
;
this
.
asyncAttrFetchCounter
=
0
;
this
.
asyncEnumFetchCounter
=
2
;
this
.
modal
=
new
Modal
({
title
:
'Add Tag'
,
content
:
this
,
okText
:
'Add'
,
cancelText
:
"Cancel"
,
allowCancel
:
true
,
}).
open
();
this
.
modal
.
$el
.
find
(
'button.ok'
).
attr
(
"disabled"
,
true
);
var
that
=
this
,
modalObj
=
{
title
:
'Add Tag'
,
content
:
this
,
okText
:
'Add'
,
cancelText
:
"Cancel"
,
allowCancel
:
true
,
},
state
=
this
.
tagModel
?
false
:
true
;
if
(
this
.
tagModel
)
{
modalObj
.
title
=
'Edit Tag'
;
modalObj
.
okText
=
'Update'
;
}
this
.
modal
=
new
Modal
(
modalObj
).
open
();
this
.
modal
.
$el
.
find
(
'button.ok'
).
attr
(
"disabled"
,
state
);
this
.
on
(
'ok'
,
function
()
{
var
tagName
=
this
.
ui
.
addTagOptions
.
val
();
var
tagAttributes
=
{};
var
tagAttributeNames
=
this
.
$
(
".attrName"
);
var
tagName
=
this
.
tagModel
?
this
.
tagModel
.
typeName
:
this
.
ui
.
addTagOptions
.
val
(),
tagAttributes
=
{},
tagAttributeNames
=
this
.
$
(
".attrName"
),
obj
=
{
tagName
:
tagName
,
tagAttributes
:
tagAttributes
,
guid
:
[],
skipEntity
:
[],
deletedEntity
:
[]
};
tagAttributeNames
.
each
(
function
(
i
,
item
)
{
var
selection
=
$
(
item
).
data
(
"key"
);
tagAttributes
[
selection
]
=
$
(
item
).
val
()
||
null
;
});
var
obj
=
{
tagName
:
tagName
,
tagAttributes
:
tagAttributes
,
guid
:
[],
skipEntity
:
[],
deletedEntity
:
[]
}
if
(
that
.
multiple
)
{
_
.
each
(
that
.
multiple
,
function
(
entity
,
i
)
{
var
name
=
Utils
.
getName
(
entity
.
model
);
...
...
@@ -172,21 +179,16 @@ define(['require',
onRender
:
function
()
{
var
that
=
this
;
$
.
extend
(
this
.
collection
.
queryParams
,
{
type
:
'
TRAIT'
,
notsupertype
:
'TaxonomyTerm
'
});
$
.
extend
(
this
.
collection
.
queryParams
,
{
type
:
'
classification
'
});
this
.
hideAttributeBox
();
this
.
collection
.
fetch
({
reset
:
true
,
complete
:
function
()
{
--
that
.
asyncEnumFetchCounter
;
that
.
showAttributeBox
(
that
.
asyncEnumFetchCounter
);
},
});
that
.
enumCollection
.
fetch
({
complete
:
function
()
{
--
that
.
asyncEnumFetchCounter
;
that
.
showAttributeBox
(
that
.
asyncEnumFetchCounter
);
if
(
that
.
tagModel
)
{
that
.
fetchTagSubData
(
that
.
tagModel
.
typeName
);
}
that
.
showAttributeBox
();
},
reset
:
true
});
},
bindEvents
:
function
()
{
...
...
@@ -213,7 +215,7 @@ define(['require',
}
// using obj.get('name') insted of name variable because if html is presen in name then escaped name will not found in tagList.
if
(
_
.
indexOf
(
that
.
tagList
,
obj
.
get
(
'name'
))
===
-
1
)
{
str
+=
'<option>'
+
name
+
'</option>'
;
str
+=
'<option
'
+
(
that
.
tagModel
&&
that
.
tagModel
.
typeName
===
name
?
'selected'
:
''
)
+
'
>'
+
name
+
'</option>'
;
}
});
this
.
ui
.
addTagOptions
.
html
(
str
);
...
...
@@ -232,24 +234,18 @@ define(['require',
this
.
fetchTagSubData
(
tagname
);
},
fetchTagSubData
:
function
(
tagname
)
{
var
that
=
this
;
++
this
.
asyncAttrFetchCounter
;
this
.
commonCollection
.
url
=
UrlLinks
.
typesClassicationApiUrl
(
tagname
);
this
.
commonCollection
.
fetch
({
reset
:
true
,
complete
:
function
()
{
--
that
.
asyncAttrFetchCounter
;
that
.
showAttributeBox
();
}
var
attributeDefs
=
Utils
.
getNestedSuperTypeObj
({
data
:
this
.
collection
.
fullCollection
.
find
({
name
:
tagname
}).
toJSON
(),
collection
:
this
.
collection
,
attrMerge
:
true
});
this
.
subAttributeData
(
attributeDefs
);
},
showAttributeBox
:
function
(
counter
)
{
if
((
counter
||
this
.
asyncAttrFetchCounter
)
===
0
)
{
this
.
$
(
'.attrLoader'
).
hide
();
this
.
$
(
'.form-group.hide'
).
removeClass
(
'hide'
);
if
(
this
.
ui
.
tagAttribute
.
children
().
length
!==
0
)
{
this
.
ui
.
tagAttribute
.
parent
().
show
();
}
showAttributeBox
:
function
()
{
this
.
$
(
'.attrLoader'
).
hide
();
this
.
$
(
'.form-group.hide'
).
removeClass
(
'hide'
);
if
(
this
.
ui
.
tagAttribute
.
children
().
length
!==
0
)
{
this
.
ui
.
tagAttribute
.
parent
().
show
();
}
},
hideAttributeBox
:
function
()
{
...
...
@@ -257,44 +253,26 @@ define(['require',
this
.
ui
.
tagAttribute
.
parent
().
hide
();
this
.
$
(
'.attrLoader'
).
show
();
},
subAttributeData
:
function
()
{
subAttributeData
:
function
(
attributeDefs
)
{
var
that
=
this
;
if
(
this
.
commonCollection
.
models
[
0
])
{
if
(
this
.
commonCollection
.
models
[
0
].
get
(
'attributeDefs'
))
{
_
.
each
(
this
.
commonCollection
.
models
[
0
].
get
(
'attributeDefs'
),
function
(
obj
)
{
var
name
=
Utils
.
getName
(
obj
,
'name'
);
var
typeName
=
Utils
.
getName
(
obj
,
'typeName'
);
var
typeNameValue
=
that
.
enumCollection
.
fullCollection
.
findWhere
({
'name'
:
typeName
});
if
(
typeNameValue
)
{
var
str
=
"<option disabled='disabled' selected>-- Select "
+
typeName
+
" --</option>"
;
var
enumValue
=
typeNameValue
.
get
(
'elementDefs'
);
_
.
each
(
enumValue
,
function
(
key
,
value
)
{
str
+=
'<option>'
+
key
.
value
+
'</option>'
;
})
that
.
ui
.
tagAttribute
.
append
(
'<div class="form-group"><label>'
+
name
+
'</label>'
+
'<select class="form-control attributeInputVal attrName" data-key="'
+
name
+
'">'
+
str
+
'</select></div>'
);
}
else
{
that
.
ui
.
tagAttribute
.
append
(
'<div class="form-group"><label>'
+
name
+
'</label>'
+
'<input type="text" class="form-control attributeInputVal attrName" data-key="'
+
name
+
'" ></input></div>'
);
}
});
}
if
(
this
.
commonCollection
.
models
[
0
].
get
(
'superTypes'
))
{
var
superTypes
=
this
.
commonCollection
.
models
[
0
].
get
(
'superTypes'
);
if
(
!
_
.
isArray
(
superTypes
))
{
superTypes
=
[
superTypes
];
}
if
(
superTypes
.
length
)
{
_
.
each
(
superTypes
,
function
(
name
)
{
that
.
fetchTagSubData
(
name
);
});
if
(
attributeDefs
)
{
_
.
each
(
attributeDefs
,
function
(
obj
)
{
var
name
=
Utils
.
getName
(
obj
,
'name'
);
var
typeName
=
Utils
.
getName
(
obj
,
'typeName'
);
var
typeNameValue
=
that
.
enumDefCollection
.
fullCollection
.
findWhere
({
'name'
:
typeName
});
if
(
typeNameValue
)
{
var
str
=
"<option disabled='disabled'"
+
(
!
that
.
tagModel
?
'selected'
:
''
)
+
">-- Select "
+
typeName
+
" --</option>"
;
var
enumValue
=
typeNameValue
.
get
(
'elementDefs'
);
_
.
each
(
enumValue
,
function
(
key
,
value
)
{
str
+=
'<option '
+
(
that
.
tagModel
&&
key
.
value
===
_
.
values
(
that
.
tagModel
.
attributes
)[
0
]
?
'selected'
:
''
)
+
'>'
+
key
.
value
+
'</option>'
;
})
that
.
ui
.
tagAttribute
.
append
(
'<div class="form-group"><label>'
+
name
+
'</label>'
+
'<select class="form-control attributeInputVal attrName" data-key="'
+
name
+
'">'
+
str
+
'</select></div>'
);
}
else
{
this
.
showAttributeBox
();
that
.
ui
.
tagAttribute
.
append
(
'<div class="form-group"><label>'
+
name
+
'</label>'
+
'<input type="text" value="'
+
(
that
.
tagModel
?
(
that
.
tagModel
.
attributes
[
name
]
==
null
?
''
:
that
.
tagModel
.
attributes
[
name
])
:
''
)
+
'" class="form-control attributeInputVal attrName" data-key="'
+
name
+
'" ></input></div>'
);
}
}
else
{
this
.
showAttributeBox
();
}
}
else
{
});
this
.
showAttributeBox
();
}
},
...
...
@@ -310,15 +288,23 @@ define(['require',
},
"entityGuids"
:
options
.
guid
};
if
(
this
.
tagModel
)
{
json
=
[{
"typeName"
:
tagName
,
"attributes"
:
tagAttributes
}]
}
if
(
this
.
showLoader
)
{
this
.
showLoader
();
}
this
.
entityModel
.
saveTraitsEntity
({
this
.
entityModel
.
saveTraitsEntity
(
this
.
tagModel
?
options
.
guid
:
null
,
{
skipDefaultError
:
true
,
data
:
JSON
.
stringify
(
json
),
type
:
this
.
tagModel
?
'PUT'
:
'POST'
,
success
:
function
(
data
)
{
var
addupdatetext
=
that
.
tagModel
?
'updated successfully to '
:
'added to '
;
Utils
.
notifySuccess
({
content
:
"Tag "
+
tagName
+
" has been
added to "
+
(
that
.
multiple
?
"entities"
:
"entity"
)
content
:
"Tag "
+
tagName
+
" has been
"
+
addupdatetext
+
(
that
.
multiple
?
"entities"
:
"entity"
)
});
if
(
options
.
modalCollection
)
{
options
.
modalCollection
.
fetch
({
reset
:
true
});
...
...
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