Skip to content

Commit d4fb6cd

Browse files
committed
web application supports read only attribute
1 parent dad1b1e commit d4fb6cd

File tree

8 files changed

+34
-14
lines changed

8 files changed

+34
-14
lines changed

web/src/App.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@
121121
</el-form-item>
122122
<el-form-item :label="$t('properties.attrib')">
123123
<el-checkbox :label="$t('properties.hide')" v-model="meta_form.flags.hide"></el-checkbox>
124+
<el-checkbox :label="$t('properties.readonly')" v-model="meta_form.flags.readonly"></el-checkbox>
124125
</el-form-item>
125126
</el-form>
126127
<span slot="footer" class="dialog-footer">

web/src/i18n/de_DE.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { readonly } from "vue";
2+
13
export default {
24
lang: {
35
choose: '语言/Language',
@@ -54,6 +56,7 @@ export default {
5456
entermsg: 'Bitte Notiz eingeben',
5557
attrib: 'Attribute',
5658
hide: 'Ausblenden',
59+
readonly: 'Nur lesen',
5760
errupdate: 'Eigenschaften aktualisieren fehlgeschlagen!',
5861
remarktoolong: 'Notizen können maximal ist 90 Bytes lang sein! Das entspricht 90 Buchstaben or 30 chinesischen Buchstaben (Aktuell: ',
5962
remarktoolongend: ' Bytes)'
@@ -83,7 +86,7 @@ export default {
8386
messageend: ' löschen?',
8487
error: 'Löschen der Datei fehlgeschlagen!: ',
8588
deleteok: 'Datei erfolgreich gelöscht!'
86-
},
89+
},
8790
dfumode: {
8891
title: 'DFU Modus',
8992
startconfirm: 'DFU Modus aktivieren?',
@@ -109,5 +112,5 @@ export default {
109112
drive: {
110113
message: '(Speicher nicht verügbar [Fehler: ',
111114
messageend: '])'
112-
}
115+
}
113116
}

web/src/i18n/en_US.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export default {
5454
entermsg: 'Please enter remarks',
5555
attrib: 'Attributes',
5656
hide: 'Hide',
57+
readonly: "Read only",
5758
errupdate: 'Failed to update properties!',
5859
remarktoolong: 'Remarks can only be up to 90 bytes!, that is, 90 characters or 30 Chinese characters (current: ',
5960
remarktoolongend: ' Bytes)'
@@ -83,7 +84,7 @@ export default {
8384
messageend: ' ?',
8485
error: 'Failed to delete file!: ',
8586
deleteok: 'File deleted successfully!'
86-
},
87+
},
8788
dfumode: {
8889
title: 'DFU Mode',
8990
startconfirm: 'Enter DFU mode?',
@@ -109,5 +110,5 @@ export default {
109110
drive: {
110111
message: '(Disk not available [error code: ',
111112
messageend: '])'
112-
}
113+
}
113114
}

web/src/i18n/es_ES.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export default {
5454
entermsg: 'Por favor ingrese una anotación',
5555
attrib: 'Atributos',
5656
hide: 'Oculto',
57+
readonly: 'Solo lectura',
5758
errupdate: '¡Error al actualizar propiedades!',
5859
remarktoolong: '¡Las anotaciones deben ser menores a 90 bytes!, lo cual es, 90 carácteres o 30 carácteres chinos (Longitud actual: ',
5960
remarktoolongend: ' Bytes)'
@@ -83,7 +84,7 @@ export default {
8384
messageend: ' ?',
8485
error: '¡Error al borrar!: ',
8586
deleteok: '¡Archivo borrado satisfactoriamente!'
86-
},
87+
},
8788
dfumode: {
8889
title: 'Modo DFU',
8990
startconfirm: '¿Iniciar el modo DFU?',
@@ -109,5 +110,5 @@ export default {
109110
drive: {
110111
message: '(Disco no disponible [Código de Error: ',
111112
messageend: '])'
112-
}
113+
}
113114
}

web/src/i18n/ru_RU.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export default {
5555
entermsg: 'Задайте заметку',
5656
attrib: 'Атрибуты',
5757
hide: 'Скрытый',
58+
readonly: 'только для чтения',
5859
errupdate: 'Ошибка обновления свойств',
5960
remarktoolong: 'Заметки могут быть длиной до 90 байт (то есть 90 символов или 30 китайских символов). Текущее значение: ',
6061
remarktoolongend: ' байт.'

web/src/i18n/zh_Hans.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { readonly } from "vue";
2+
13
export default {
24
lang: {
35
choose: '语言/Language',
@@ -54,6 +56,7 @@ export default {
5456
entermsg: '请输入备注',
5557
attrib: '属性',
5658
hide: '隐藏',
59+
readonly: '只读',
5760
errupdate: '更新备注失败',
5861
remarktoolong: '备注最大只能是90字节,即90个字符或30个汉字!(当前: ',
5962
remarktoolongend: ' 字节)'
@@ -83,7 +86,7 @@ export default {
8386
messageend: ' ?',
8487
error: '删除失败 ',
8588
deleteok: '删除文件成功'
86-
},
89+
},
8790
dfumode: {
8891
title: 'DFU 模式',
8992
startconfirm: '是否进入DFU模式?',
@@ -109,5 +112,5 @@ export default {
109112
drive: {
110113
message: '(磁盘不可用[错误代码: ',
111114
messageend: '])'
112-
}
115+
}
113116
}

web/src/i18n/zh_TW.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { readonly } from "vue";
2+
13
export default {
24
lang: {
35
choose: '语言/Language',
@@ -54,6 +56,7 @@ export default {
5456
entermsg: '請輸入備註',
5557
attrib: '屬性',
5658
hide: '隱藏',
59+
readonly: '只读',
5760
errupdate: '更新備註失敗',
5861
remarktoolong: '備註最大只能是90字節,即90個字符或30個漢字!(當前: ',
5962
remarktoolongend: ' 字節)'
@@ -83,7 +86,7 @@ export default {
8386
messageend: ' ?',
8487
error: '刪除失敗 ',
8588
deleteok: '刪除文件成功'
86-
},
89+
},
8790
dfumode: {
8891
title: 'DFU 模式',
8992
startconfirm: '是否進入DFU模式?',
@@ -109,5 +112,5 @@ export default {
109112
drive: {
110113
message: '(磁盤不可用[錯誤碼: ',
111114
messageend: '])'
112-
}
115+
}
113116
}

web/src/lib/pixl.proto.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,8 @@ function read_meta(bb) {
414414
var meta = {
415415
notes: "",
416416
flags: {
417-
hide: false
417+
hide: false,
418+
readonly: false
418419
},
419420
amiibo: {
420421
head: 0,
@@ -440,7 +441,10 @@ function read_meta(bb) {
440441
if (flags & 1) {
441442
meta.flags.hide = true;
442443
}
443-
}else if(type == 3){
444+
if (flags & 4) {
445+
meta.flags.readonly = true;
446+
}
447+
} else if (type == 3) {
444448
meta.amiibo.head = mb.readUint32();
445449
meta.amiibo.tail = mb.readUint32();
446450
}
@@ -454,7 +458,7 @@ function write_meta(bb, meta) {
454458
var bytes = encode_utf8(notes);
455459

456460
if (bytes.length > 90) {
457-
throw new Error(i18n.t('properties.remarktoolong') + bytes.length + i18n.t('properties.remarktoolongend') )
461+
throw new Error(i18n.t('properties.remarktoolong') + bytes.length + i18n.t('properties.remarktoolongend'))
458462
}
459463

460464
var tb = new ByteBuffer();
@@ -473,9 +477,12 @@ function write_meta(bb, meta) {
473477
if (meta.flags.hide) {
474478
flags |= 1;
475479
}
480+
if (meta.flags.readonly) {
481+
flags |= 4;
482+
}
476483
tb.writeUint8(flags);
477484

478-
if(meta.amiibo.head > 0 || meta.amiibo.tail > 0){
485+
if (meta.amiibo.head > 0 || meta.amiibo.tail > 0) {
479486
tb.writeUint8(3);
480487
tb.writeUint32(meta.amiibo.head);
481488
tb.writeUint32(meta.amiibo.tail);

0 commit comments

Comments
 (0)