Skip to content

Commit

Permalink
can export storyboards
Browse files Browse the repository at this point in the history
  • Loading branch information
Robby committed Oct 19, 2015
1 parent 7f54502 commit be89910
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 29 deletions.
40 changes: 39 additions & 1 deletion client/app/ios/export-strings/export-strings.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ angular.module('appManagerApp')
$scope.iosKey = Settings.getKeyByKey('ios');

$scope.localizables = $scope.initLocalizables(Settings.languages);
$scope.storyboards = {};
$scope.storyboards = false;
window.s = $scope;
}

Expand All @@ -47,6 +47,28 @@ angular.module('appManagerApp')
saveAs(zipFile, "iOS Localizables.zip");
}

$scope.saveStoryboards = function(storyboards){
var zip = new JSZip();
for (var lang in storyboards) {
if (storyboards.hasOwnProperty(lang)) {
var storyboard = storyboards[lang];
storyboard = $scope.stripBlankTranslations(storyboard);

var folderName = storyboard.folderName;
var fileName = storyboard.fileName;

var languageFolder = zip.folder(folderName);
languageFolder.file(fileName, storyboard.toString());
}
}

var zipFile = zip.generate({
type: "blob"
});

saveAs(zipFile, "iOS Storyboards.zip");
}

$scope.saveFile = function(string, fileName){
var blob = new Blob([string], {
type: "text/plain;charset=utf-8"
Expand Down Expand Up @@ -111,6 +133,18 @@ angular.module('appManagerApp')
return storyboard;
}

$scope.stripBlankTranslations = function(iosStringFile){
var trimmedList = [];
for (var i = 0; i < iosStringFile.stringList.length; i++) {
var string = iosStringFile.stringList[i];
if (string.value) {
trimmedList.push(string);
}
}
iosStringFile.stringList = trimmedList;
return iosStringFile;
}

$scope.getTranslations = function(stringArray, language){
if (!stringArray) return false;
var stringsObject = {};
Expand Down Expand Up @@ -140,5 +174,9 @@ angular.module('appManagerApp')
}
}

$scope.clearStoryboards = function(){
$scope.storyboards = false;
}

$scope.init($stateParams.strings);
});
60 changes: 32 additions & 28 deletions client/app/ios/export-strings/export-strings.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,37 +44,41 @@ <h3>File Preview:</h3>
</div>

<div ng-show="step == 'Storyboard'" id="storyboard-export" class="row marketing">
<h3>Storyboard</h3>
<form>
Storyboard Language:
<select ng-options="language.name for language in settings.languages" ng-model="storyboardLanguage">
<div class="col-md-12">
<h3>Storyboard</h3>
<form>
Storyboard Language:
<select ng-options="language.name for language in settings.languages" ng-model="storyboardLanguage">

</select>
<input id="ios-import-file" type="file" onchange="angular.element(this).scope().onAddFile(this)" />
</form>
<div class="toolbar" style="padding: 1em;">
<button class="btn btn-default" ng-click="export(storyboards)">Export to File System</button>
<button class="btn btn-default">Clear</button>
</select>
<input id="ios-import-file" type="file" onchange="angular.element(this).scope().onAddFile(this)" />
</form>
</div>
<ul class="nav nav-tabs">
<li ng-repeat="language in settings.languages"><a ng-click="$parent.storyboardPreviewLanguage = language">{{language.name}}</a>
</li>
</ul>
<div class="row toolbar">
<label>Folder Name <input type="text" ng-model="storyboards[storyboardPreviewLanguage.key].folderName" /></label>
<div class="col-md-12" ng-show="storyboards">
<div class="toolbar" style="padding: 1em;">
<button class="btn btn-default" ng-click="saveStoryboards(storyboards)">Download Translations</button>
<button class="btn btn-default" ng-click="clearStoryboards()">Clear</button>
</div>
<ul class="nav nav-tabs">
<li ng-repeat="language in settings.languages" ng-class="{active: $parent.storyboardPreviewLanguage === language}"><a ng-click="$parent.storyboardPreviewLanguage = language">{{language.name}}</a>
</li>
</ul>
<div class="row toolbar">
<label>Folder Name <input type="text" ng-model="storyboards[storyboardPreviewLanguage.key].folderName" /></label>
</div>
<table class="ios-strings-preview">
<tr>
<th>Storyboard Key</th>
<th>Original Text</th>
<th>Translation</th>
</tr>
<tr ng-repeat="string in storyboards[storyboardPreviewLanguage.key].stringList">
<td><input class="valid-{{!!string.key}}" type="text" ng-model="string.key"/></td>
<td><input type="text" ng-model="string.originalValue"></td>
<td><input class="valid-{{!!string.value}}" type="text" ng-model="string.value"/></td>
</tr>
</table>
</div>
<table class="ios-strings-preview">
<tr>
<th>Storyboard Key</th>
<th>Original Text</th>
<th>Translation</th>
</tr>
<tr ng-repeat="string in storyboards[storyboardPreviewLanguage.key].stringList">
<td><input class="valid-{{!!string.key}}" type="text" ng-model="string.key"/></td>
<td><input type="text" ng-model="string.originalValue"></td>
<td><input class="valid-{{!!string.value}}" type="text" ng-model="string.value"/></td>
</tr>
</table>
</div>

</div>
Expand Down

0 comments on commit be89910

Please sign in to comment.