Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
caosdb-webui
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
caosdb-webui
Commits
30878f32
Verified
Commit
30878f32
authored
5 years ago
by
Timm Fitschen
Browse files
Options
Downloads
Plain Diff
Merge branch 'f-revision-module' into r-v0.2rc1
parents
4926251e
87edfe39
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CHANGELOG.md
+5
-0
5 additions, 0 deletions
CHANGELOG.md
src/core/js/ext_revisions.js
+14
-12
14 additions, 12 deletions
src/core/js/ext_revisions.js
test/core/js/modules/ext_revisions.js.js
+4
-1
4 additions, 1 deletion
test/core/js/modules/ext_revisions.js.js
with
23 additions
and
13 deletions
CHANGELOG.md
+
5
−
0
View file @
30878f32
...
...
@@ -25,6 +25,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
information (like plots, video players, thumbnails...) can be shown.
*
Enable with build property
`BUILD_MODULE_EXT_BOTTOM_LINE=ENABLED`
.
*
More documentation in
`src/core/js/ext_bottom_line.js`
.
*
ext_revisions (v0.1 - EXPERIMENTAL)
*
Creates a backup copy of each entity which is updated via the edit_mode.
*
Enable via the build property
`BUILD_MODULE_EXT_REVISIONS=ENABLED`
.
*
Needs two special entities. A RecordType "Obsolete" and a reference
property "revisionOf" with data type "Obsolete".
*
Map (v0.3)
*
Adds a button to the navbar which toggles a map in the top of the main
panel. The map currently shows all known entities which have geolocation
...
...
This diff is collapsed.
Click to expand it.
src/core/js/ext_revisions.js
+
14
−
12
View file @
30878f32
...
...
@@ -2,8 +2,8 @@
* ** header v3.0
* This file is a part of the CaosDB Project.
*
* Copyright (C) 20
19
IndiScale GmbH
(
info@indiscale.com
)
* Copyright (C) 20
19
Timm Fitschen
(
t.fitschen@indiscale.com
)
* Copyright (C) 20
20
IndiScale GmbH
<
info@indiscale.com
>
* Copyright (C) 20
20
Timm Fitschen
<
t.fitschen@indiscale.com
>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
...
...
@@ -31,7 +31,7 @@
* proxy (or wrapper) function adds further functionality.
*
* The extended update function creates a back-up version of the updated entity
* and
and
adds a revisionOf property to the updated entity which references
* and adds a revisionOf property to the updated entity which references
* the back-up. The back-up entity loses all of its original parents and gets
* an "Obsolete" as only parent instead.
*
...
...
@@ -55,8 +55,6 @@ var ext_revisions = function ($, logger, edit_mode, getEntityID, transaction, _c
/**
* Default names for the two entities which are required by this module.
*
* TODO: rename
*/
var
_datamodel
=
{
obsolete
:
"
Obsolete
"
,
revisionOf
:
"
revisionOf
"
};
...
...
@@ -75,16 +73,18 @@ var ext_revisions = function ($, logger, edit_mode, getEntityID, transaction, _c
logger
.
debug
(
"
insert obsolete
"
,
id
);
// create new obsolete entity from the original
var
obsolete
=
await
transaction
.
retrieveEntityById
(
id
);
const
obsolete
=
await
transaction
.
retrieveEntityById
(
id
);
$
(
obsolete
).
attr
(
"
id
"
,
"
-1
"
);
$
(
obsolete
).
find
(
"
Permissions
"
).
remove
();
$
(
obsolete
).
find
(
"
Parent
"
).
remove
();
$
(
obsolete
).
append
(
`<Parent name="
${
_datamodel
.
obsolete
}
"/>`
);
var
doc
=
_createDocument
(
"
Request
"
);
const
doc
=
_createDocument
(
"
Request
"
);
doc
.
firstElementChild
.
appendChild
(
obsolete
);
var
result
=
await
transaction
.
insertEntitiesXml
(
doc
);
return
$
(
result
.
firstElementChild
).
find
(
"
[id]
"
).
first
().
attr
(
"
id
"
);
const
result
=
await
transaction
.
insertEntitiesXml
(
doc
);
const
obsolete_id
=
$
(
result
.
firstElementChild
).
find
(
"
[id]
"
).
first
().
attr
(
"
id
"
);
logger
.
trace
(
"
leave _insert_obsolete
"
,
obsolete_id
);
return
obsolete_id
;
};
/**
...
...
@@ -98,11 +98,12 @@ var ext_revisions = function ($, logger, edit_mode, getEntityID, transaction, _c
* @returns {string} A HTML represesentation of an entity property.
*/
var
_make_revision_of_property
=
async
function
(
obsolete_id
)
{
logger
.
debug
(
"
_make_revision_of_property
"
,
obsolete_id
);
var
ret
=
(
await
transformation
.
transformProperty
(
str2xml
(
`<Response><Property id="
${
_datamodel
.
_revisionOfId
}
" name="
${
_datamodel
.
revisionOf
}
" datatype="
${
_datamodel
.
obsolete
}
"></Property></Response>`
))).
firstElementChild
;
logger
.
trace
(
"
enter
_make_revision_of_property
"
,
obsolete_id
);
const
ret
=
(
await
transformation
.
transformProperty
(
str2xml
(
`<Response><Property id="
${
_datamodel
.
_revisionOfId
}
" name="
${
_datamodel
.
revisionOf
}
" datatype="
${
_datamodel
.
obsolete
}
"></Property></Response>`
))).
firstElementChild
;
$
(
ret
).
append
(
`<div class="caosdb-property-edit-value"><select><option value="
${
obsolete_id
}
" selected="selected"></option></select></div>`
);
$
(
ret
).
find
(
"
.caosdb-f-property-value
"
).
append
(
`<div class="caosdb-property-edit-value"><select><option value="
${
obsolete_id
}
" selected="selected"></option></select></div>`
);
logger
.
trace
(
"
leave _make_revision_of_property
"
,
ret
);
return
ret
;
}
...
...
@@ -215,6 +216,7 @@ var ext_revisions = function ($, logger, edit_mode, getEntityID, transaction, _c
// private members, exposed for testing
_make_revision_of_property
:
_make_revision_of_property
,
_datamodel
:
_datamodel
,
_logger
:
logger
,
}
}(
$
,
log
.
getLogger
(
"
ext_revisions
"
),
edit_mode
,
getEntityID
,
transaction
,
_createDocument
);
...
...
This diff is collapsed.
Click to expand it.
test/core/js/modules/ext_revisions.js.js
+
4
−
1
View file @
30878f32
...
...
@@ -2,7 +2,8 @@
* ** header v3.0
* This file is a part of the CaosDB Project.
*
* Copyright (C) 2019 IndiScale GmbH
* Copyright (C) 2020 IndiScale GmbH <info@indiscale.com>
* Copyright (C) 2020 Timm Fitschen <t.fitschen@indiscale.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
...
...
@@ -33,6 +34,7 @@ var ext_revisions_test_suite = function ($, ext_revisions, QUnit, edit_mode) {
this
.
original_insert
=
transaction
.
insertEntitiesXml
;
this
.
original_retrieve
=
transaction
.
retrieveEntityById
;
this
.
original_query
=
query
;
ext_revisions
.
_logger
.
setLevel
(
"
trace
"
);
},
beforeEach
:
function
(
assert
)
{
// setup before each test
...
...
@@ -80,6 +82,7 @@ var ext_revisions_test_suite = function ($, ext_revisions, QUnit, edit_mode) {
assert
.
equal
(
rec
.
id
,
"
-1
"
,
"
insert with tmp id
"
);
assert
.
equal
(
$
(
rec
).
find
(
"
Parent
"
).
attr
(
"
name
"
),
datamodel
.
obsolete
,
"
Obsolete Parent
"
);
xml
.
firstElementChild
.
firstElementChild
.
id
=
"
2345
"
;
console
.
log
(
xml2str
(
xml
));
done
();
return
xml
;
};
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment