mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-24 15:53:45 +08:00
NotesFolderConfig: Remove from/toFS functions
Adding a new setting is becoming a major pain, and since this isn't even being used right now, I may as well delete it.
This commit is contained in:
@ -1,10 +1,5 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:yaml/yaml.dart';
|
||||
import 'package:yaml_serializer/yaml_serializer.dart';
|
||||
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/core/sorting_mode.dart';
|
||||
@ -12,7 +7,6 @@ import 'package:gitjournal/editors/common_types.dart';
|
||||
import 'package:gitjournal/folder_views/common.dart';
|
||||
import 'package:gitjournal/folder_views/standard_view.dart';
|
||||
import 'package:gitjournal/settings/settings.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
@immutable
|
||||
class NotesFolderConfig extends Equatable {
|
||||
@ -178,118 +172,4 @@ class NotesFolderConfig extends Equatable {
|
||||
imageLocationSpec: imageLocationSpec ?? this.imageLocationSpec,
|
||||
);
|
||||
}
|
||||
|
||||
static Future<NotesFolderConfig?> fromFS(NotesFolderFS folder) async {
|
||||
var file = File(p.join(folder.folderPath, FILENAME));
|
||||
if (!file.existsSync()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var map = <String, dynamic>{};
|
||||
var contents = await file.readAsString();
|
||||
try {
|
||||
var yamlMap = loadYaml(contents);
|
||||
yamlMap.forEach((key, value) {
|
||||
map[key] = value;
|
||||
});
|
||||
} catch (err) {
|
||||
Log.d('NotesFolderConfig::decode("$contents") -> ${err.toString()}');
|
||||
}
|
||||
|
||||
var sortingField =
|
||||
SortingField.fromInternalString(map["sortingField"]!.toString());
|
||||
var sortingOrder =
|
||||
SortingOrder.fromInternalString(map["sortingOrder"]!.toString());
|
||||
var sortingMode = SortingMode(sortingField, sortingOrder);
|
||||
|
||||
var defaultEditor =
|
||||
SettingsEditorType.fromInternalString(map["defaultEditor"]?.toString());
|
||||
var defaultView = SettingsFolderViewType.fromInternalString(
|
||||
map["defaultView"]?.toString());
|
||||
|
||||
var showNoteSummary = map["showNoteSummary"].toString() != "false";
|
||||
|
||||
var folderViewHeaderType = map["folderViewHeaderType"]?.toString();
|
||||
late StandardViewHeader viewHeader;
|
||||
switch (folderViewHeaderType) {
|
||||
case "TitleGenerated":
|
||||
viewHeader = StandardViewHeader.TitleGenerated;
|
||||
break;
|
||||
case "FileName":
|
||||
viewHeader = StandardViewHeader.FileName;
|
||||
break;
|
||||
case "TitleOrFileName":
|
||||
default:
|
||||
viewHeader = StandardViewHeader.TitleOrFileName;
|
||||
break;
|
||||
}
|
||||
|
||||
var fileNameFormat = map['noteFileNameFormat']?.toString();
|
||||
var journalFileNameFormat = map['journalFileNameFormat'].toString();
|
||||
var yamlHeaderEnabled = map["yamlHeaderEnabled"]?.toString() != "false";
|
||||
|
||||
var yamlCreatedKey = map['yamlCreatedKey']!.toString();
|
||||
var yamlModifiedKey = map['yamlModifiedKey']!.toString();
|
||||
var yamlTagsKey = map['yamlTagsKey']!.toString();
|
||||
var titleSettings = map['titleSettings']?.toString();
|
||||
|
||||
// FIXME: What about inlineTagPrefixes?
|
||||
|
||||
return NotesFolderConfig(
|
||||
defaultEditor: defaultEditor.toEditorType(),
|
||||
defaultView: defaultView.toFolderViewType(),
|
||||
sortingMode: sortingMode,
|
||||
showNoteSummary: showNoteSummary,
|
||||
viewHeader: viewHeader,
|
||||
fileNameFormat: NoteFileNameFormat.fromInternalString(fileNameFormat),
|
||||
journalFileNameFormat:
|
||||
NoteFileNameFormat.fromInternalString(journalFileNameFormat),
|
||||
folder: folder,
|
||||
yamlHeaderEnabled: yamlHeaderEnabled,
|
||||
yamlCreatedKey: yamlCreatedKey,
|
||||
yamlModifiedKey: yamlModifiedKey,
|
||||
yamlTagsKey: yamlTagsKey,
|
||||
titleSettings: SettingsTitle.fromInternalString(titleSettings),
|
||||
inlineTagPrefixes: {},
|
||||
imageLocationSpec: "",
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> saveToFS() async {
|
||||
String? ht;
|
||||
switch (viewHeader) {
|
||||
case StandardViewHeader.FileName:
|
||||
ht = "FileName";
|
||||
break;
|
||||
case StandardViewHeader.TitleGenerated:
|
||||
ht = "TitleGenerated";
|
||||
break;
|
||||
case StandardViewHeader.TitleOrFileName:
|
||||
ht = "TitleOrFileName";
|
||||
break;
|
||||
}
|
||||
|
||||
var map = <String, dynamic>{
|
||||
"sortingField": sortingMode.field.toInternalString(),
|
||||
"sortingOrder": sortingMode.order.toInternalString(),
|
||||
"defaultEditor":
|
||||
SettingsEditorType.fromEditorType(defaultEditor).toInternalString(),
|
||||
"defaultView": SettingsFolderViewType.fromFolderViewType(defaultView)
|
||||
.toInternalString(),
|
||||
"showNoteSummary": showNoteSummary,
|
||||
"folderViewHeaderType": ht,
|
||||
"noteFileNameFormat": fileNameFormat.toInternalString(),
|
||||
'journalFileNameFormat': journalFileNameFormat.toInternalString(),
|
||||
'yamlHeaderEnabled': yamlHeaderEnabled,
|
||||
'yamlModifiedKey': yamlModifiedKey,
|
||||
'yamlCreatedKey': yamlCreatedKey,
|
||||
'yamlTagsKey': yamlTagsKey,
|
||||
'titleSettings': titleSettings.toInternalString(),
|
||||
};
|
||||
|
||||
var yaml = toYAML(map);
|
||||
|
||||
var file = File(p.join(folder!.folderPath, FILENAME));
|
||||
await file.writeAsString(yaml);
|
||||
}
|
||||
}
|
||||
|
@ -257,9 +257,6 @@ class _FolderViewState extends State<FolderView> {
|
||||
var settings = Provider.of<Settings>(context, listen: false);
|
||||
config.saveToSettings(settings);
|
||||
|
||||
var container = context.read<GitJournalRepo>();
|
||||
container.saveFolderConfig(sortedNotesFolder.config);
|
||||
|
||||
setState(() {
|
||||
sortedNotesFolder.changeSortingMode(newSortingMode);
|
||||
});
|
||||
@ -284,9 +281,6 @@ class _FolderViewState extends State<FolderView> {
|
||||
|
||||
var settings = Provider.of<Settings>(context, listen: false);
|
||||
config.saveToSettings(settings);
|
||||
|
||||
var container = context.read<GitJournalRepo>();
|
||||
container.saveFolderConfig(sortedNotesFolder.config);
|
||||
};
|
||||
|
||||
var summaryChanged = (bool newVal) {
|
||||
@ -300,9 +294,6 @@ class _FolderViewState extends State<FolderView> {
|
||||
|
||||
var settings = Provider.of<Settings>(context, listen: false);
|
||||
config.saveToSettings(settings);
|
||||
|
||||
var container = context.read<GitJournalRepo>();
|
||||
container.saveFolderConfig(sortedNotesFolder.config);
|
||||
};
|
||||
|
||||
return StatefulBuilder(
|
||||
@ -432,9 +423,6 @@ class _FolderViewState extends State<FolderView> {
|
||||
|
||||
var settings = Provider.of<Settings>(context, listen: false);
|
||||
config.saveToSettings(settings);
|
||||
|
||||
var container = context.read<GitJournalRepo>();
|
||||
container.saveFolderConfig(widget.notesFolder.config);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,10 +17,8 @@ import 'package:gitjournal/analytics/analytics.dart';
|
||||
import 'package:gitjournal/core/git_repo.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/notes_cache.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/error_reporting.dart';
|
||||
import 'package:gitjournal/features.dart';
|
||||
import 'package:gitjournal/settings/settings.dart';
|
||||
import 'package:gitjournal/settings/settings_migrations.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
@ -396,24 +394,6 @@ class GitJournalRepo with ChangeNotifier {
|
||||
});
|
||||
}
|
||||
|
||||
void saveFolderConfig(NotesFolderConfig config) async {
|
||||
if (!Features.perFolderConfig) {
|
||||
return;
|
||||
}
|
||||
logEvent(Event.FolderConfigUpdated);
|
||||
|
||||
return _opLock.synchronized(() async {
|
||||
Log.d("Got saveFolderConfig lock");
|
||||
|
||||
await config.saveToFS();
|
||||
_gitRepo.addFolderConfig(config).then((Result<void> _) {
|
||||
_syncNotes();
|
||||
numChanges += 1;
|
||||
notifyListeners();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> completeGitHostSetup(
|
||||
String repoFolderName, String remoteName) async {
|
||||
repoPath = p.join(gitBaseDirectory, repoFolderName);
|
||||
|
@ -1,55 +0,0 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:test/test.dart';
|
||||
|
||||
import 'package:gitjournal/core/notes_folder_config.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/core/sorting_mode.dart';
|
||||
import 'package:gitjournal/editors/common_types.dart';
|
||||
import 'package:gitjournal/folder_views/common.dart';
|
||||
import 'package:gitjournal/folder_views/standard_view.dart';
|
||||
import 'package:gitjournal/settings/settings.dart';
|
||||
|
||||
void main() {
|
||||
group('Notes Folder Config', () {
|
||||
late Directory tempDir;
|
||||
|
||||
setUp(() async {
|
||||
tempDir = await Directory.systemTemp.createTemp('__notes_config_test__');
|
||||
});
|
||||
|
||||
tearDown(() async {
|
||||
tempDir.deleteSync(recursive: true);
|
||||
});
|
||||
|
||||
test('Should load from FS correctly', () async {
|
||||
var folder = NotesFolderFS(null, tempDir.path, Settings(''));
|
||||
var config = NotesFolderConfig(
|
||||
defaultEditor: EditorType.Checklist,
|
||||
defaultView: FolderViewType.Standard,
|
||||
showNoteSummary: true,
|
||||
sortingMode:
|
||||
SortingMode(SortingField.Modified, SortingOrder.Descending),
|
||||
viewHeader: StandardViewHeader.TitleOrFileName,
|
||||
fileNameFormat: NoteFileNameFormat.Default,
|
||||
journalFileNameFormat: NoteFileNameFormat.Default,
|
||||
folder: folder,
|
||||
yamlHeaderEnabled: true,
|
||||
yamlCreatedKey: 'created',
|
||||
yamlModifiedKey: 'modified',
|
||||
yamlTagsKey: 'tags',
|
||||
titleSettings: SettingsTitle.InYaml,
|
||||
inlineTagPrefixes: {},
|
||||
imageLocationSpec: "",
|
||||
);
|
||||
|
||||
await config.saveToFS();
|
||||
var file = File(p.join(tempDir.path, NotesFolderConfig.FILENAME));
|
||||
expect(file.existsSync(), true);
|
||||
|
||||
var config2 = await NotesFolderConfig.fromFS(folder);
|
||||
expect(config, config2);
|
||||
});
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user