diff --git a/AndorsTrailEdit/controllers.js b/AndorsTrailEdit/controllers.js index 167ebfdb1..b30ff476e 100644 --- a/AndorsTrailEdit/controllers.js +++ b/AndorsTrailEdit/controllers.js @@ -236,22 +236,34 @@ var ATEditor = (function(ATEditor, model, importExport, exampleData) { $scope.sections = model.sections; $scope.content = ""; $scope.selectedSection = $scope.selectedSection || model.items; + $scope.importType = $scope.importType || 'paste'; + $scope.availableFiles = ATEditor.exampleData.resources; - $scope.importData = function() { + var countBefore = 0; + function success() { + var section = $scope.selectedSection; + var countAfter = section.items.length; + $scope.importedMsg = "Imported " + (countAfter - countBefore) + " " + section.name; + } + function error(msg) { + $scope.errorMsg = "Error importing data: " + msg; + } + $scope.importPastedData = function() { $scope.errorMsg = ""; $scope.importedMsg = ""; - var section = $scope.selectedSection; - var countBefore = section.items.length; - function success() { - var countAfter = section.items.length; - $scope.importedMsg = "Imported " + (countAfter - countBefore) + " " + section.name; - } - function error(msg) { - $scope.errorMsg = "Error importing data: " + msg; - } + countBefore = section.items.length; importExport.importText(section, $scope.content, success, error); }; + $scope.importExistingData = function() { + $scope.errorMsg = ""; + $scope.importedMsg = ""; + var section = $scope.selectedSection; + countBefore = section.items.length; + ATEditor.exampleData.loadUrlFromGit("AndorsTrail/res/raw/" + $scope.selectedFile, function(data) { + importExport.importDataObjects(section, data, success, error); + }); + }; }; controllers.ExportController = function($scope) { $scope.sections = model.sections; diff --git a/AndorsTrailEdit/datastore.js b/AndorsTrailEdit/datastore.js index c8f83789e..7a2e11a65 100644 --- a/AndorsTrailEdit/datastore.js +++ b/AndorsTrailEdit/datastore.js @@ -44,7 +44,9 @@ var ATEditor = (function(ATEditor, _) { }; this.remove = function(o) { var idx = items.indexOf(o); - items.splice(idx, 1); + if (idx >= 0) { + items.splice(idx, 1); + } }; this.findFirstFreeId = function(id) { diff --git a/AndorsTrailEdit/exampledata.js b/AndorsTrailEdit/exampledata.js index 584835afa..2311c92aa 100644 --- a/AndorsTrailEdit/exampledata.js +++ b/AndorsTrailEdit/exampledata.js @@ -44,6 +44,7 @@ var ATEditor = (function(ATEditor, model, utils, _, $) { parseListOfResourceFiles("loadresource_droplists", model.droplists); parseListOfResourceFiles("loadresource_quests", model.quests); parseListOfResourceFiles("loadresource_conversationlists", model.dialogue); + parseListOfResourceFiles("loadresource_monsters", model.monsters); _.each(resources['itemcategory'], function(file) { loadUrlFromGit("AndorsTrail/res/raw/" + file, function(data) { @@ -74,6 +75,7 @@ var ATEditor = (function(ATEditor, model, utils, _, $) { ATEditor.exampleData = { init: init ,resources: resources + ,loadUrlFromGit: loadUrlFromGit }; return ATEditor; diff --git a/AndorsTrailEdit/import.html b/AndorsTrailEdit/import.html index 07600fb06..21f017acb 100644 --- a/AndorsTrailEdit/import.html +++ b/AndorsTrailEdit/import.html @@ -2,13 +2,32 @@