'use strict'; 'require form'; 'require view'; 'require uci'; 'require tools.mihomo as mihomo'; return view.extend({ load: function () { return Promise.all([ uci.load('mihomo') ]); }, render: function (data) { let m, s, o, so; m = new form.Map('mihomo'); s = m.section(form.NamedSection, 'config', 'config', _('Profile')); o = s.option(form.FileUpload, '_upload_profile', _('Upload Profile')); o.browser = true; o.enable_download = true; o.root_directory = mihomo.profilesDir; o.write = function (section_id, formvalue) { return true; }; s = m.section(form.GridSection, 'subscription', _('Subscription')); s.addremove = true; s.anonymous = true; s.sortable = true; s.modaltitle = _('Edit Subscription'); o = s.option(form.Value, 'name', _('Subscription Name')); o.rmempty = false; o = s.option(form.Value, 'used', _('Used')); o.modalonly = false; o.optional = true; o.readonly = true; o = s.option(form.Value, 'total', _('Total')); o.modalonly = false; o.optional = true; o.readonly = true; o = s.option(form.Value, 'expire', _('Expire At')); o.modalonly = false; o.optional = true; o.readonly = true; o = s.option(form.Value, 'update', _('Update At')); o.modalonly = false; o.optional = true; o.readonly = true; o = s.option(form.Button, 'update_subscription'); o.editable = true; o.inputstyle = 'positive'; o.inputtitle = _('Update'); o.modalonly = false; o.onclick = function (_, section_id) { return mihomo.updateSubscription(section_id); }; o = s.option(form.Value, 'url', _('Subscription Url')); o.modalonly = true; o.rmempty = false; o = s.option(form.Value, 'user_agent', _('User Agent')); o.default = 'clash'; o.modalonly = true; o.rmempty = false; o.value('clash'); o.value('clash.meta'); o.value('mihomo'); o = s.option(form.ListValue, 'prefer', _('Prefer')); o.default = 'remote'; o.modalonly = true; o.value('remote', _('Remote')); o.value('local', _('Local')); return m.render(); } });