From 2cd48418809ce90ddeb684369ec8673feffaf661 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Mon, 26 Jun 2023 15:37:49 +0800 Subject: [PATCH] * Refactor ui of entry::create. --- module/entry/config.php | 4 +- module/entry/js/create.ui.js | 54 ++++++++++++ module/entry/model.php | 1 + module/entry/ui/create.html.php | 145 ++++++++++++++++++++++++++++++++ 4 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 module/entry/js/create.ui.js create mode 100644 module/entry/ui/create.html.php diff --git a/module/entry/config.php b/module/entry/config.php index e1c22ce1cc..bf30baff32 100644 --- a/module/entry/config.php +++ b/module/entry/config.php @@ -1,9 +1,9 @@ entry->create = new stdclass(); -$config->entry->create->requiredFields = 'name, code, account, key'; +$config->entry->create->requiredFields = 'name,code,account,key'; $config->entry->edit = new stdclass(); -$config->entry->edit->requiredFields = 'name, code, account, key'; +$config->entry->edit->requiredFields = 'name,code,account,key'; $config->entry->errcode['PARAM_CODE_MISSING'] = 401; $config->entry->errcode['PARAM_TOKEN_MISSING'] = 401; diff --git a/module/entry/js/create.ui.js b/module/entry/js/create.ui.js new file mode 100644 index 0000000000..5103d1d22b --- /dev/null +++ b/module/entry/js/create.ui.js @@ -0,0 +1,54 @@ +/** + * Create key for an entry. + * + * @access public + * @return void + */ +function createKey() +{ + var chars = '0123456789abcdefghiklmnopqrstuvwxyz'.split(''); + var key = ''; + for(var i = 0; i < 32; i ++) + { + key += chars[Math.floor(Math.random() * chars.length)]; + } + $('#key').val(key); +} + +/** + * Disable ip if allIP is checked. + * + * @param event $event + * @access public + * @return void + */ +function toggleAllIP(event) +{ + if($(event.target).prop('checked')) + { + $('#ip').attr('disabled', 'disabled'); + } + else + { + $('#ip').removeAttr('disabled'); + } +} + +/** + * Hide account row when enabling password-free login. + * + * @param event $event + * @access public + * @return void + */ +function toggleFreePasswd(event) +{ + if($(event.target).val() == '1') + { + $('#account').closest('.form-row').addClass('hidden'); + } + else + { + $('#account').closest('.form-row').removeClass('hidden'); + } +} diff --git a/module/entry/model.php b/module/entry/model.php index ac5798b5c5..faa5e7ac4a 100644 --- a/module/entry/model.php +++ b/module/entry/model.php @@ -90,6 +90,7 @@ class entryModel extends model $entry = fixer::input('post') ->setDefault('ip', '*') ->setIF($this->post->allIP, 'ip', '*') + ->setIF($this->post->freePasswd == '1', 'account', '') ->add('createdBy', $this->app->user->account) ->add('createdDate', helper::now()) ->remove('allIP') diff --git a/module/entry/ui/create.html.php b/module/entry/ui/create.html.php new file mode 100644 index 0000000000..2b64b9626c --- /dev/null +++ b/module/entry/ui/create.html.php @@ -0,0 +1,145 @@ + + * @package entry + * @link https://www.zentao.net + */ +namespace zin; + +formPanel +( + set::title($lang->entry->create), + to::headingActions + ( + toolbar + ( + a + ( + setClass('text-darken'), + set::href($lang->entry->helpLink), + set('target', '_blank'), + $lang->entry->help, + ), + div(setClass('toolbar-divider')), + a + ( + setClass('text-darken'), + set::href($lang->entry->notifyLink), + set('target', '_blank'), + $lang->entry->notify, + ), + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::label($lang->entry->name), + set::name('name'), + set::title($lang->entry->note->name), + set::placeholder($lang->entry->note->name), + set::value('') + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::label($lang->entry->code), + set::name('code'), + set::title($lang->entry->note->code), + set::placeholder($lang->entry->note->code), + set::value('') + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::label($lang->entry->freePasswd), + radioList + ( + on::change('toggleFreePasswd'), + set::name('freePasswd'), + set::items($lang->entry->freePasswdList), + set::value(0), + set::inline(true), + ), + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::label($lang->entry->account), + set::placeholder($lang->entry->note->account), + set::name('account'), + set::items($users), + set::value(''), + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::label($lang->entry->key), + set::placeholder($lang->entry->note->key), + set::name('key'), + set::value(md5((string)rand())), + set::readonly(true), + ), + formGroup + ( + a + ( + setClass('btn ml-2 text-darken'), + on::click('createKey()'), + $lang->entry->createKey, + ), + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::label($lang->entry->ip), + set::title($lang->entry->note->ip), + set::placeholder($lang->entry->note->ip), + set::name('ip'), + set::value(''), + ), + formGroup + ( + setClass('items-center ml-2'), + checkbox + ( + set::name('allIP'), + on::change('toggleAllIP'), + $lang->entry->note->allIP, + ), + ), + ), + formGroup + ( + set::label($lang->entry->desc), + editor + ( + set::name('desc'), + set::rows('3'), + ) + ), + +); + +render(); +