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();