diff --git a/src/app/components/Header.jsx b/src/app/components/Header.jsx
index b401fbb9..a5526aaf 100644
--- a/src/app/components/Header.jsx
+++ b/src/app/components/Header.jsx
@@ -7,7 +7,6 @@ import ActiveLink from './ActiveLink';
import cn from 'classnames';
import { Cogs, CoriolisLogo, Hammer, Help, Rocket, StatsBars } from './SvgIcons';
import Persist from '../stores/Persist';
-import { toDetailedExport } from '../shipyard/Serializer';
import ModalDeleteAll from './ModalDeleteAll';
import ModalExport from './ModalExport';
import ModalHelp from './ModalHelp';
@@ -16,7 +15,8 @@ import Slider from './Slider';
import Announcement from './Announcement';
import { outfitURL } from '../utils/UrlGenerators';
import autoBind from 'auto-bind';
-import { Factory } from 'ed-forge';
+import { Factory, Ship } from 'ed-forge';
+import { chain, entries } from 'lodash';
const SIZE_MIN = 0.65;
const SIZE_RANGE = 0.55;
@@ -208,20 +208,6 @@ export default class Header extends TranslatedComponent {
this.context.showModal();
};
- /**
- * Show export modal with backup data
- * @param {SyntheticEvent} e Event
- */
- _showBackup(e) {
- let translate = this.context.language.translate;
- e.preventDefault();
- this.context.showModal();
- };
-
/**
* Show export modal with detailed export
* @param {SyntheticEvent} e Event
@@ -230,10 +216,22 @@ export default class Header extends TranslatedComponent {
let translate = this.context.language.translate;
e.preventDefault();
+ const builds = chain(Persist.getBuilds())
+ .values()
+ .map((builds) => Object.values(builds))
+ .flatMap()
+ .map((code) => new Ship(code))
+ .value();
+
this.context.showModal( {
+ return {
+ header: { appName: 'Inara', 'appVersion': '1.0' },
+ data: build.toJSON(),
+ };
+ }))}
/>);
}
@@ -432,10 +430,9 @@ export default class Header extends TranslatedComponent {
{translate('builds')} & {translate('comparisons')}
- - {translate('backup')}
- - {translate('detailed export')}
- - {translate('import')}
- - {translate('delete all')}
+ - {translate('detailed export')}
+ - {translate('import')}
+ - {translate('delete all')}
diff --git a/src/app/shipyard/Serializer.js b/src/app/shipyard/Serializer.js
deleted file mode 100644
index 4702ae6f..00000000
--- a/src/app/shipyard/Serializer.js
+++ /dev/null
@@ -1,100 +0,0 @@
-import { ModuleGroupToName, MountMap, BulkheadNames } from './Constants';
-import * as Utils from '../utils/UtilityFunctions';
-import LZString from 'lz-string';
-import { outfitURL } from '../utils/UrlGenerators';
-
-/**
- * Generates ship-loadout JSON Schema standard object
- * @param {Object} standard model
- * @return {Object} JSON Schema
- */
-function standardToSchema(standard) {
- if (standard.m) {
- let o = {
- class: standard.m.class,
- rating: standard.m.rating,
- enabled: Boolean(standard.enabled),
- priority: standard.priority + 1
- };
-
- if (standard.m.name) {
- o.name = standard.m.name;
- }
-
- if (standard.m.mods && Object.keys(standard.m.mods).length > 0) {
- o.modifications = standard.m.mods;
- }
-
- if (standard.m.blueprint && Object.keys(standard.m.blueprint).length > 0) {
- o.blueprint = standard.m.blueprint;
- }
-
- return o;
- }
- return null;
-}
-
-/**
- * Generates ship-loadout JSON Schema slot object
- * @param {Object} slot Slot model
- * @return {Object} JSON Schema Slot
- */
-function slotToSchema(slot) {
- if (slot.m) {
- let o = {
- class: slot.m.class,
- rating: slot.m.rating,
- enabled: Boolean(slot.enabled),
- priority: slot.priority + 1,
- group: ModuleGroupToName[slot.m.grp]
- };
-
- if (slot.m.name) {
- o.name = slot.m.name;
- }
- if (slot.m.mount) {
- o.mount = MountMap[slot.m.mount];
- }
- if (slot.m.missile) {
- o.missile = slot.m.missile;
- }
- if (slot.m.mods && Object.keys(slot.m.mods).length > 0) {
- o.modifications = slot.m.mods;
- }
- if (slot.m.blueprint && Object.keys(slot.m.blueprint).length > 0) {
- o.blueprint = slot.m.blueprint;
- }
-
- return o;
- }
- return null;
-}
-
-/**
- * Serializes a comparion and all of the ships to zipped
- * Base 64 encoded JSON.
- * @param {string} name Comparison name
- * @param {array} builds Array of ship builds
- * @param {array} facets Selected facets
- * @param {string} predicate sort predicate
- * @param {boolean} desc sort order
- * @return {string} Zipped Base 64 encoded JSON
- */
-export function fromComparison(name, builds, facets, predicate, desc) {
- return LZString.compressToBase64(JSON.stringify({
- n: name,
- b: builds.map((b) => { return { s: b.id, n: b.buildName, c: b.toString() }; }),
- f: facets,
- p: predicate,
- d: desc ? 1 : 0
- }));
-};
-
-/**
- * Parses the comarison data string back to an object.
- * @param {string} code Zipped Base 64 encoded JSON comparison data
- * @return {Object} Comparison data object
- */
-export function toComparison(code) {
- return JSON.parse(LZString.decompressFromBase64(Utils.fromUrlSafe(code)));
-};