Files
digiproof/js/models.js
2025-12-13 21:03:30 +01:00

140 lines
3.4 KiB
JavaScript

/*
*
* This file is part of the digital testament management program
* DigiProof.
*
* By accessing this software, DigiProof, you are duly informed
* of and agree to be bound by the conditions described below in this
* notice:
*
* This software product, DigiProof, is developed by T. Linden and
* copyrighted (C) 2013 by T. Linden, with all rights reserved.
*
* There is no charge for DigiProof software. You can redistribute
* it and/or modify it under the terms of the GNU General Public
* License, which is incorporated by reference herein.
*
* DigiProof is distributed WITHOUT ANY WARRANTY, IMPLIED OR EXPRESS,
* OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE or that
* the use of it will not infringe on any third party's intellectual
* property rights.
*
* You should have received a copy of the GNU General Public License
* along with DigiProof. Copies can also be obtained from:
*
* http://www.gnu.org/licenses/gpl-2.0.html
*
* or by writing to:
*
* Free Software Foundation, Inc.
* Inc., 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301
* USA
*
* Or contact:
*
* "T. Linden" <tlinden@cpan.org>
*
* The sourcecode can be found on:
*
* https://codeberg.org/scip/digiproof
*
*/
var attr = DS.attr;
App.Order = DS.Model.extend({
name: attr('string')
});
App.Self = DS.Model.extend(App.SelfMixin, {
name: attr('string'),
address: attr('string'),
birth: attr('string'),
password: attr('string'),
toJson: function() {
return JSON.stringify({
name: this.get('name'),
address: this.get('address'),
birth: this.get('birth')
});
}.property()
});
App.Import = DS.Model.extend(App.ImportMixin, {
importdata: attr('string'),
password: attr('string')
});
App.Successor = DS.Model.extend(App.SuccessorMixin, {
name: attr('string'),
address: attr('string'),
birth: attr('string'),
name2: attr('string'),
address2: attr('string'),
birth2: attr('string'),
assets: DS.hasMany('App.Asset', {
inverse: 'successor'
}),
toJson: function() {
return JSON.stringify({
id: this.get('id'),
name: this.get('name'),
address: this.get('address'),
birth: this.get('birth'),
name2: this.get('name2'),
address2: this.get('address2'),
birth2: this.get('birth2')
});
}.property(),
has_assets: function() {
var has = false;
var assets = this.get('assets');
has = assets.forEach(function(asset) {
return true;
});
return has;
}.property()
});
App.Asset = DS.Model.extend(App.AssetMixin, {
name: attr('string'),
uri: attr('string'),
login: attr('string'),
password: attr('string'),
mail: attr('string'),
order: DS.belongsTo('App.Order'),
notes: attr('string'),
successor: DS.belongsTo('App.Successor'),
toJson: function() {
var orderid = "0";
var successorid = "0";
try {
orderid = this.get('order').get('id');
}
catch (e) {}
try {
successorid = this.get('successor').get('id');
}
catch (e) {}
return JSON.stringify({
id: this.get('id'),
name: this.get('name'),
uri: this.get('uri'),
login: this.get('login'),
password: this.get('password'),
mail: this.get('mail'),
notes: this.get('notes'),
order: orderid,
successor: successorid
});
}.property()
});