diff --git a/module/gitlab/control.php b/module/gitlab/control.php index dc4621640c..b643b38390 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -806,7 +806,11 @@ class gitlab extends control $namespaces = array(); foreach($namespacesList as $namespace) { - if($namespace->kind == 'user' and $namespace->path == $user->username) $namespaces[$namespace->id] = $namespace->path; + if($namespace->kind == 'user' and $namespace->path == $user->username) + { + $namespaces[$namespace->id] = $namespace->path; + $this->view->defaultSpace = $namespace->id; + } if($namespace->kind == 'group') $namespaces[$namespace->id] = $namespace->path; } diff --git a/module/gitlab/js/createproject.ui.js b/module/gitlab/js/createproject.ui.js new file mode 100644 index 0000000000..19918652f1 --- /dev/null +++ b/module/gitlab/js/createproject.ui.js @@ -0,0 +1,12 @@ +function onNameChange(event) +{ + $("#path").val($(event.target).val().toLowerCase()); +} + +function onAclChange(event) +{ + const visibility = $(event.target).val(); + + if(visibility == 'public') $("#visibilitypublic").parent().append(publicTip); + if(visibility != 'public') $('#publicTip').remove(); +} diff --git a/module/gitlab/js/editproject.ui.js b/module/gitlab/js/editproject.ui.js new file mode 100644 index 0000000000..2301f843ce --- /dev/null +++ b/module/gitlab/js/editproject.ui.js @@ -0,0 +1,12 @@ +function onAclChange(event) +{ + const visibility = $(event.target).val(); + + if(visibility == 'public') $("#visibilitypublic").parent().append(publicTip); + if(visibility != 'public') $('#publicTip').remove(); +} + +$(function() +{ + if(visibility == 'public') $("#visibilitypublic").parent().append(publicTip); +}); diff --git a/module/gitlab/ui/createproject.html.php b/module/gitlab/ui/createproject.html.php new file mode 100644 index 0000000000..03bd5fbb50 --- /dev/null +++ b/module/gitlab/ui/createproject.html.php @@ -0,0 +1,84 @@ + + * @package gitlab + * @link https://www.zentao.net + */ +namespace zin; + +$publicTip = "" . $lang->gitlab->project->publicTip . ''; +jsVar('publicTip', $publicTip); + +$urlOptions = array(); +if(count($namespaces) < 2) +{ + $urlOptions[] = input + ( + set::name('url'), + set::value($gitlab->url . '/' . $user->username . '/'), + ); +} +else +{ + $urlOptions[] = $gitlab->url; + $urlOptions[] = picker + ( + set::name('namespace_id'), + set::value(!empty($defaultSpace) ? $defaultSpace : ''), + set::items($namespaces), + set::required(true) + ); +} + +formPanel +( + set::title($lang->gitlab->project->create), + formGroup + ( + set::name('name'), + set::label($lang->gitlab->project->name), + set::placeholder($lang->gitlab->project->name), + set::required(true), + set::width('2/3'), + on::input('onNameChange') + ), + formGroup + ( + set::label($lang->gitlab->project->url), + set::width('2/3'), + inputGroup + ( + $urlOptions + ), + ), + formGroup + ( + set::label($lang->gitlab->project->path), + set::name('path'), + set::placeholder($lang->gitlab->placeholder->projectPath), + set::required(true), + set::width('2/3'), + ), + formGroup + ( + set::label($lang->gitlab->project->description), + set::name('description'), + set::control('textarea'), + set::width('2/3') + ), + formGroup + ( + set::label($lang->gitlab->project->visibility), + set::control('radioList'), + set::items($lang->gitlab->project->visibilityList), + set::value('private'), + set::name('visibility'), + on::change('onAclChange') + ) +); + +render(); diff --git a/module/gitlab/ui/editproject.html.php b/module/gitlab/ui/editproject.html.php new file mode 100644 index 0000000000..de33d6ec38 --- /dev/null +++ b/module/gitlab/ui/editproject.html.php @@ -0,0 +1,57 @@ + + * @package gitlab + * @link https://www.zentao.net + */ +namespace zin; + +$publicTip = "" . $lang->gitlab->project->publicTip . ''; +jsVar('publicTip', $publicTip); +jsVar('visibility', $project->visibility); + + +formPanel +( + set::title($lang->gitlab->project->edit), + formGroup + ( + set::name('id'), + set::label($lang->gitlab->project->id), + set::readonly(true), + set::value($project->id), + set::width('2/3') + ), + formGroup + ( + set::name('name'), + set::label($lang->gitlab->project->name), + set::placeholder($lang->gitlab->project->name), + set::required(true), + set::value($project->name), + set::width('2/3'), + ), + formGroup + ( + set::label($lang->gitlab->project->description), + set::name('description'), + set::control('textarea'), + set::value($project->description), + set::width('2/3') + ), + formGroup + ( + set::label($lang->gitlab->project->visibility), + set::control('radioList'), + set::items($lang->gitlab->project->visibilityList), + set::value($project->visibility), + set::name('visibility'), + on::change('onAclChange') + ) +); + +render();