From 73024e005e1e72286f2f7f83bf56e0512f1bf913 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Tue, 5 Jul 2022 06:02:50 +0000 Subject: [PATCH 01/27] * Finish task#59520. --- module/stakeholder/config.php | 2 +- module/stakeholder/js/create.js | 2 ++ module/stakeholder/model.php | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/module/stakeholder/config.php b/module/stakeholder/config.php index 574eeef4ce..30a3aae3e5 100644 --- a/module/stakeholder/config.php +++ b/module/stakeholder/config.php @@ -1,6 +1,6 @@ stakeholder->create = new stdclass(); -$config->stakeholder->create->requiredFields = 'name,company'; +$config->stakeholder->create->requiredFields = 'user,name,company'; $config->stakeholder->expect = new stdclass(); $config->stakeholder->expect->requiredFields = 'expect,progress'; diff --git a/module/stakeholder/js/create.js b/module/stakeholder/js/create.js index 501390e135..bb9d4e8632 100644 --- a/module/stakeholder/js/create.js +++ b/module/stakeholder/js/create.js @@ -2,6 +2,8 @@ $(function() { $('input[name*=from]').change(function() { + $('#userLabel').remove(); + if($(this).val() == 'team') { $('.user-info').addClass('hidden'); diff --git a/module/stakeholder/model.php b/module/stakeholder/model.php index 309d719b83..b9a7d84002 100644 --- a/module/stakeholder/model.php +++ b/module/stakeholder/model.php @@ -26,7 +26,7 @@ class stakeholderModel extends model { if(!$account) { - dao::$errors[] = $this->lang->stakeholder->userEmpty; + dao::$errors['user'] = $this->lang->stakeholder->userEmpty; return false; } $user = new stdclass(); @@ -43,7 +43,7 @@ class stakeholderModel extends model { if(!$data->name) { - dao::$errors[] = $this->lang->stakeholder->nameEmpty; + dao::$errors['name'] = $this->lang->stakeholder->nameEmpty; return false; } From 480f3f49a162ceed6974e024aa9b8f831aef2332 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Tue, 5 Jul 2022 06:32:05 +0000 Subject: [PATCH 02/27] * Finish task#59523. --- module/programplan/js/create.js | 6 ++--- module/programplan/view/create.html.php | 33 +++++++++++++------------ 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/module/programplan/js/create.js b/module/programplan/js/create.js index e87c94a816..79a3c250ae 100644 --- a/module/programplan/js/create.js +++ b/module/programplan/js/create.js @@ -11,10 +11,8 @@ function addItem(obj) $(obj).closest('tr').after('' + item + ''); var newItem = $('#names' + itemIndex).closest('tr'); newItem.find('.form-date').datepicker(); - $("#output" + itemIndex).chosen(); - $("#PM_i__chosen").remove(); - $("#PM" + itemIndex).chosen(); - $("#output_i__chosen").remove(); + $("#output" + itemIndex).picker(); + $("#PM" + itemIndex).picker(); itemIndex ++; } diff --git a/module/programplan/view/create.html.php b/module/programplan/view/create.html.php index 0cbc6974bf..ec50489d55 100644 --- a/module/programplan/view/create.html.php +++ b/module/programplan/view/create.html.php @@ -80,7 +80,7 @@ - > + > >
@@ -89,15 +89,15 @@ '>stage->typeList, $stage->type, "class='form-control'");?> '>execution->aclList, 'open', "class='form-control' $class");?> - >programplan->milestoneList, 0);?> + >programplan->milestoneList, 0);?> > > config->edition == 'max'):?> - + - + @@ -111,7 +111,7 @@ id);?> - >PM, "class='form-control chosen'");?> + >PM, "class='form-control picker-select'");?> >
@@ -120,17 +120,18 @@ '>stage->typeList, $plan->attribute, "class='form-control'");?> >execution->aclList, $plan->acl, "class='form-control' $class");?> - >programplan->milestoneList, $plan->milestone, $disabled);?> + >programplan->milestoneList, $plan->milestone, $disabled);?> > > config->edition == 'max'):?> output) ? 0 : explode(',', $plan->output);?> - + - + + @@ -139,7 +140,7 @@ - > + > >
@@ -148,15 +149,15 @@ '>stage->typeList, '', "class='form-control'");?> >execution->aclList, 'open', "class='form-control' $class");?> - >programplan->milestoneList, 0);?> + >programplan->milestoneList, 0);?> > > config->edition == 'max'):?> - + - + @@ -180,7 +181,7 @@ - + - + config->edition == 'max'):?> - + - From c85e72f4da2484979335dd75ff71c205b296d18c Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Tue, 5 Jul 2022 06:53:22 +0000 Subject: [PATCH 03/27] * Adjust code. --- module/programplan/view/create.html.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/module/programplan/view/create.html.php b/module/programplan/view/create.html.php index ec50489d55..521bfa5d6c 100644 --- a/module/programplan/view/create.html.php +++ b/module/programplan/view/create.html.php @@ -95,7 +95,7 @@ config->edition == 'max'):?> - + config->edition == 'max'):?> output) ? 0 : explode(',', $plan->output);?> - + config->edition == 'max'):?> - + config->edition == 'max'):?> - + @@ -307,9 +305,11 @@ $(function() $select.picker(pickerOptions); }); - $('#queryBox select, #queryBox input').change(function(){ - $('#save-query').attr("disabled","disabled"); + $('#queryBox select, #queryBox input').change(function() + { + $('#save-query').attr("disabled", "disabled"); }) + /* Toggle user queries action. */ $('#toggle-queries').click(function() { From 53ed45658e8c4ed77e9b9af12a2d448ae6fbeb41 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Tue, 5 Jul 2022 08:25:10 +0000 Subject: [PATCH 05/27] * Adjust CSS. --- module/execution/css/create.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/execution/css/create.css b/module/execution/css/create.css index cb9f540c66..fc8eea4d43 100644 --- a/module/execution/css/create.css +++ b/module/execution/css/create.css @@ -30,3 +30,5 @@ #dateRange {vertical-align: top; padding-top: 13px;} #dateRangeOption {vertical-align: top; padding-top: 13px;} +#beginLabel {white-space: nowrap;} +#endLabel {white-space: nowrap;} From 0d38d331d30d9c5cb01b6777a3daff473fc2d776 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Jul 2022 10:37:11 +0800 Subject: [PATCH 06/27] * Modify actions style. --- module/gitlab/view/browseproject.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/gitlab/view/browseproject.html.php b/module/gitlab/view/browseproject.html.php index 286ff6c9a7..8c9148e2d0 100644 --- a/module/gitlab/view/browseproject.html.php +++ b/module/gitlab/view/browseproject.html.php @@ -45,7 +45,7 @@ - + From a73673b993c198442d326e230c05d3695f622a6f Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Jul 2022 10:37:36 +0800 Subject: [PATCH 07/27] * Finish task #59429. --- module/repo/control.php | 35 +++++ module/repo/css/browse.css | 3 + module/repo/js/browse.js | 76 +++++++++ module/repo/lang/de.php | 30 ++-- module/repo/lang/en.php | 6 + module/repo/lang/fr.php | 230 ++++++++++++++-------------- module/repo/lang/vi.php | 255 +++++++++++++++++-------------- module/repo/lang/zh-cn.php | 6 + module/repo/model.php | 26 ++++ module/repo/view/browse.html.php | 8 +- 10 files changed, 438 insertions(+), 237 deletions(-) create mode 100644 module/repo/js/browse.js diff --git a/module/repo/control.php b/module/repo/control.php index 7942fe6a84..753e361053 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -497,6 +497,7 @@ class repo extends control $this->view->pager = $pager; $this->view->path = urldecode($path); $this->view->logType = $logType; + $this->view->downloadUrl = $this->repo->getDownloadUrl($repoID); $this->view->cacheTime = date('m-d H:i', filemtime($cacheFile)); $this->view->branchOrTag = $branchOrTag; @@ -1293,4 +1294,38 @@ class repo extends control $executions = $this->repo->getExecutionPairs($productID, $branch); echo html::select('execution', array('' => '') + $executions, '', 'class="form-control chosen"'); } + + public function ajaxGetCodeUrl($repoID = 0, $branch = '') + { + return << +
+
+
+

下载代码

+
+
+
+ + + + + + + + + + + + +
使用SSH克隆
使用HTTPS克隆
+ +
+ +
+
+
+EOF; + + } } diff --git a/module/repo/css/browse.css b/module/repo/css/browse.css index 5a0a4b0799..203bdfc3e8 100644 --- a/module/repo/css/browse.css +++ b/module/repo/css/browse.css @@ -26,3 +26,6 @@ /* Fix bug #21893. */ .in #sidebar>.sidebar-toggle>.icon-angle-left:before {content: "\e315";} .hide-sidebar #sidebar>.sidebar-toggle>.icon-angle-left:before {content: "\e314";} +.download-popover {width: 400px; max-width: none;} +.popover-content {padding: 0;} +.download-popover .table {margin-bottom: 0;} diff --git a/module/repo/js/browse.js b/module/repo/js/browse.js new file mode 100644 index 0000000000..98a2a2107f --- /dev/null +++ b/module/repo/js/browse.js @@ -0,0 +1,76 @@ +function getDownload() +{ + var content = "
"; + content += "
"; + content += ""; + if(downloadUrl.ssh) + { + content += ""; + content += ""; + content += ""; + content += ""; + content += ""; + content += ""; + content += ""; + content += ""; + } + + if(downloadUrl.http) + { + content += ""; + content += ""; + content += ""; + content += ""; + content += ""; + content += ""; + } + + content += ""; + content += ""; + content += ""; + content += ""; + content += "
" + lang.sshClone + "
" + lang.httpClone + "
"; + content += "
"; + content += "
"; + content += "
"; + return content; +} + +$(function() +{ + /* Init popover. */ + var options = { + container: 'body', + content: getDownload(), + html: true, + placement: 'bottom', + template: '

repo->create = 'Create'; $lang->repo->maintain = 'Repo List'; $lang->repo->edit = 'Edit'; $lang->repo->delete = 'Delete Repo'; -$lang->repo->showSyncCommit = 'Display Synchronization'; +$lang->repo->showSyncCommit = 'Display Sync'; $lang->repo->ajaxSyncCommit = 'Interface: Ajax Sync Note'; -$lang->repo->setRules = 'Set rules'; +$lang->repo->setRules = 'Set Rules'; $lang->repo->download = 'Download File'; $lang->repo->downloadDiff = 'Download Diff'; $lang->repo->addBug = 'Add Review'; @@ -30,16 +30,22 @@ $lang->repo->apiGetRepoByUrl = 'API: Get repo by URL'; $lang->repo->browseAction = 'Browse Repo'; $lang->repo->createAction = 'Create Repo'; $lang->repo->editAction = 'Edit Repo'; -$lang->repo->diffAction = 'Revision Diff'; +$lang->repo->diffAction = 'Diff Revision'; $lang->repo->downloadAction = 'Download File'; $lang->repo->revisionAction = 'Revision Detail'; -$lang->repo->blameAction = 'Repo Blame'; +$lang->repo->blameAction = 'Blame'; $lang->repo->reviewAction = 'Review List'; +$lang->repo->downloadCode = 'Download Code'; +$lang->repo->downloadZip = 'Download Zip file'; +$lang->repo->sshClone = 'Clone by SSH'; +$lang->repo->httpClone = 'Clone by HTTP'; $lang->repo->submit = 'Submit'; $lang->repo->cancel = 'Cancel'; $lang->repo->addComment = 'Add Comment'; +$lang->repo->copy = 'Click to copy'; +$lang->repo->copied = 'Copy successful'; $lang->repo->module = 'Module'; $lang->repo->type = 'Type'; $lang->repo->assign = 'AssignTo'; @@ -106,7 +112,7 @@ $lang->repo->openedDate = 'CreatedDate'; $lang->repo->latestRevision = 'Latest Revision'; $lang->repo->actionInfo = "Add by %s in %s"; $lang->repo->changes = "Change Log"; -$lang->repo->reviewLocation = "File: %s@%s, line:%s - %s"; +$lang->repo->reviewLocation = "File: %s@%s, Line: %s - %s"; $lang->repo->commentEdit = ''; $lang->repo->commentDelete = ''; $lang->repo->allChanges = "Other Changes"; @@ -119,7 +125,7 @@ $lang->repo->objectIdRule = 'Object ID Rule'; $lang->repo->actionRule = 'Action Rule'; $lang->repo->manHourRule = 'Man-hour Rule'; $lang->repo->ruleUnit = "Unit"; -$lang->repo->ruleSplit = "Multiple keywords are divided by ';'. For example: task multiple keywords: Task;task"; +$lang->repo->ruleSplit = "Multiple keywords are divided by ';', e.g. task multiple keywords: Task;task"; $lang->repo->viewDiffList['inline'] = 'Inline'; $lang->repo->viewDiffList['appose'] = 'Parallel'; @@ -136,7 +142,7 @@ $lang->repo->encodingList['gbk'] = 'GBK'; $lang->repo->scmList['Gitlab'] = 'GitLab'; $lang->repo->scmList['Git'] = 'Git'; -$lang->repo->scmList['Subversion'] = 'Subversion'; +$lang->repo->scmList['Subversion'] = 'SVN'; $lang->repo->gitlabHost = 'GitLab Host'; $lang->repo->gitlabToken = 'GitLab Token'; @@ -149,12 +155,12 @@ $lang->repo->notice = new stdclass(); $lang->repo->notice->syncing = 'Synchronizing. Please wait ...'; $lang->repo->notice->syncComplete = 'Synchronized. Now redirecting ...'; $lang->repo->notice->syncedCount = 'The number of records synchronized is '; -$lang->repo->notice->delete = 'Are you sure delete this repo?'; +$lang->repo->notice->delete = 'Do you want to delete this repo?'; $lang->repo->notice->successDelete = 'Repository is removed.'; $lang->repo->notice->commentContent = 'Comment'; $lang->repo->notice->deleteReview = 'Do you want to delete this review?'; -$lang->repo->notice->deleteBug = 'Are you sure to delete this bug?'; -$lang->repo->notice->deleteComment = 'Are you sure to delete this comment?'; +$lang->repo->notice->deleteBug = 'Do you want to delete this bug?'; +$lang->repo->notice->deleteComment = 'Do you want to delete this comment?'; $lang->repo->notice->lastSyncTime = 'Last Sync:'; $lang->repo->rules = new stdclass(); @@ -182,14 +188,14 @@ $lang->repo->error->noFile = '%s does not exist.'; $lang->repo->error->noPriv = 'The program does not have the privilege to switch to %s'; $lang->repo->error->output = "The command is: %s\nThe error is(%s): %s\n"; $lang->repo->error->clientVersion = "Client version is too low, please upgrade or change SVN client"; -$lang->repo->error->encoding = "The encoding maybe wrong. Please change the encoding and try again."; +$lang->repo->error->encoding = "The encoding might be wrong. Please change the encoding and try again."; $lang->repo->error->deleted = "Deletion of the repository failed. The current repository has a commit record associated with the design."; $lang->repo->error->linkedJob = "Deletion of the repository failed. The current repository has associated with the Compile."; $lang->repo->error->clientPath = "The client installation directory cannot have spaces!"; $lang->repo->error->notFound = "The repository %s’s URL %s does not exist. Please confirm if this repository has been deleted from the local server."; $lang->repo->syncTips = 'You may find the reference about how to set Git sync from here.'; -$lang->repo->encodingsTips = "The encodings of commit comments, can be comma separated values,e.g. utf-8"; +$lang->repo->encodingsTips = "The encodings of comments can be comma separated values, e.g. utf-8."; $lang->repo->pathTipsForGitlab = "GitLab Project URL"; $lang->repo->example = new stdclass(); diff --git a/module/repo/lang/en.php b/module/repo/lang/en.php index bbbdd4996f..58f207265a 100644 --- a/module/repo/lang/en.php +++ b/module/repo/lang/en.php @@ -35,11 +35,17 @@ $lang->repo->downloadAction = 'Download File'; $lang->repo->revisionAction = 'Revision Detail'; $lang->repo->blameAction = 'Blame'; $lang->repo->reviewAction = 'Review List'; +$lang->repo->downloadCode = 'Download Code'; +$lang->repo->downloadZip = 'Download Zip file'; +$lang->repo->sshClone = 'Clone by SSH'; +$lang->repo->httpClone = 'Clone by HTTP'; $lang->repo->submit = 'Submit'; $lang->repo->cancel = 'Cancel'; $lang->repo->addComment = 'Add Comment'; +$lang->repo->copy = 'Click to copy'; +$lang->repo->copied = 'Copy successful'; $lang->repo->module = 'Module'; $lang->repo->type = 'Type'; $lang->repo->assign = 'AssignTo'; diff --git a/module/repo/lang/fr.php b/module/repo/lang/fr.php index 0be6154245..58f207265a 100644 --- a/module/repo/lang/fr.php +++ b/module/repo/lang/fr.php @@ -1,24 +1,24 @@ repo->common = 'Référentiel'; -$lang->repo->browse = 'Aff'; -$lang->repo->viewRevision = 'Aff Modifs'; +$lang->repo->common = 'Repo'; +$lang->repo->browse = 'View'; +$lang->repo->viewRevision = 'View Revision'; $lang->repo->product = 'Product'; $lang->repo->execution = $lang->execution->common; -$lang->repo->create = 'Créer'; -$lang->repo->maintain = 'Liste Ref'; -$lang->repo->edit = 'Editer'; -$lang->repo->delete = 'Suppr. Ref'; -$lang->repo->showSyncCommit = 'Afficher Synchronisation'; +$lang->repo->create = 'Create'; +$lang->repo->maintain = 'Repo List'; +$lang->repo->edit = 'Edit'; +$lang->repo->delete = 'Delete Repo'; +$lang->repo->showSyncCommit = 'Display Sync'; $lang->repo->ajaxSyncCommit = 'Interface: Ajax Sync Note'; -$lang->repo->setRules = 'Fixer règles'; +$lang->repo->setRules = 'Set Rules'; $lang->repo->download = 'Download File'; $lang->repo->downloadDiff = 'Download Diff'; -$lang->repo->addBug = 'Ajout Révision'; -$lang->repo->editBug = 'Editer Bug'; -$lang->repo->deleteBug = 'Suppr. Bug'; -$lang->repo->addComment = 'Ajout Comment.'; -$lang->repo->editComment = 'Edit. Comment'; -$lang->repo->deleteComment = 'Suppr. Comment'; +$lang->repo->addBug = 'Add Review'; +$lang->repo->editBug = 'Edit Bug'; +$lang->repo->deleteBug = 'Delete Bug'; +$lang->repo->addComment = 'Add Comment'; +$lang->repo->editComment = 'Edit Comment'; +$lang->repo->deleteComment = 'Delete Comment'; $lang->repo->encrypt = 'Encrypt'; $lang->repo->repo = 'Repository'; $lang->repo->parent = 'Parent File'; @@ -28,89 +28,95 @@ $lang->repo->addWebHook = 'Add Webhook'; $lang->repo->apiGetRepoByUrl = 'API: Get repo by URL'; $lang->repo->browseAction = 'Browse Repo'; -$lang->repo->createAction = 'Créer Ref'; -$lang->repo->editAction = 'Editer Ref'; -$lang->repo->diffAction = 'Révision Diff'; +$lang->repo->createAction = 'Create Repo'; +$lang->repo->editAction = 'Edit Repo'; +$lang->repo->diffAction = 'Diff Revision'; $lang->repo->downloadAction = 'Download File'; -$lang->repo->revisionAction = 'Détail Révision'; -$lang->repo->blameAction = 'Blâme du Référentiel'; +$lang->repo->revisionAction = 'Revision Detail'; +$lang->repo->blameAction = 'Blame'; $lang->repo->reviewAction = 'Review List'; +$lang->repo->downloadCode = 'Download Code'; +$lang->repo->downloadZip = 'Download Zip file'; +$lang->repo->sshClone = 'Clone by SSH'; +$lang->repo->httpClone = 'Clone by HTTP'; -$lang->repo->submit = 'Soumettre'; -$lang->repo->cancel = 'Annuler'; -$lang->repo->addComment = 'Ajout Comment.'; +$lang->repo->submit = 'Submit'; +$lang->repo->cancel = 'Cancel'; +$lang->repo->addComment = 'Add Comment'; +$lang->repo->copy = 'Click to copy'; +$lang->repo->copied = 'Copy successful'; $lang->repo->module = 'Module'; $lang->repo->type = 'Type'; -$lang->repo->assign = 'Assigner à'; -$lang->repo->title = 'Titre'; -$lang->repo->detile = 'Détail'; -$lang->repo->lines = 'Lignes'; -$lang->repo->line = 'Ligne'; -$lang->repo->expand = 'Déplier'; -$lang->repo->collapse = 'Replier'; +$lang->repo->assign = 'AssignTo'; +$lang->repo->title = 'Title'; +$lang->repo->detile = 'Detail'; +$lang->repo->lines = 'Lines'; +$lang->repo->line = 'Line'; +$lang->repo->expand = 'Unfold'; +$lang->repo->collapse = 'Fold'; $lang->repo->id = 'ID'; $lang->repo->SCM = 'Type'; -$lang->repo->name = 'Nom'; -$lang->repo->path = 'Chemin'; -$lang->repo->prefix = 'Préfixe'; +$lang->repo->name = 'Name'; +$lang->repo->path = 'Path'; +$lang->repo->prefix = 'Prefix'; $lang->repo->config = 'Config'; $lang->repo->desc = 'Description'; -$lang->repo->account = 'Nom Utilisateur'; +$lang->repo->account = 'Username'; $lang->repo->password = 'Password'; -$lang->repo->encoding = 'Encodage'; -$lang->repo->client = 'Chemin Client'; -$lang->repo->size = 'Taille'; -$lang->repo->revision = 'Révision'; -$lang->repo->revisionA = 'Révision'; -$lang->repo->revisions = 'Révision'; +$lang->repo->encoding = 'Encoding'; +$lang->repo->client = 'Client Path'; +$lang->repo->size = 'Size'; +$lang->repo->revision = 'Revision'; +$lang->repo->revisionA = 'Revision'; +$lang->repo->revisions = 'Revision'; $lang->repo->time = 'Date'; -$lang->repo->committer = 'Committeur'; +$lang->repo->committer = 'Committer'; $lang->repo->commits = 'Commits'; -$lang->repo->synced = 'Initialise Sync'; -$lang->repo->lastSync = 'Dern Sync'; -$lang->repo->deleted = 'Supprimé'; +$lang->repo->synced = 'Initialize Sync'; +$lang->repo->lastSync = 'Last Sync'; +$lang->repo->deleted = 'Deleted'; $lang->repo->commit = 'Commit'; $lang->repo->comment = 'Comment'; -$lang->repo->view = 'Voir Fichier'; -$lang->repo->viewA = 'Voir'; -$lang->repo->log = 'Log Révision'; -$lang->repo->blame = 'Blâme'; +$lang->repo->view = 'View File'; +$lang->repo->viewA = 'View'; +$lang->repo->log = 'Revision Log'; +$lang->repo->blame = 'Blame'; $lang->repo->date = 'Date'; $lang->repo->diff = 'Diff'; $lang->repo->diffAB = 'Diff'; -$lang->repo->diffAll = 'Toutes Diff'; -$lang->repo->viewDiff = 'Voir diff'; -$lang->repo->allLog = 'Toutes Révisions'; -$lang->repo->location = 'Localisation'; -$lang->repo->file = 'Fichier'; +$lang->repo->diffAll = 'Diff All'; +$lang->repo->viewDiff = 'View diff'; +$lang->repo->allLog = 'All Revisions'; +$lang->repo->location = 'Location'; +$lang->repo->file = 'File'; $lang->repo->action = 'Action'; $lang->repo->code = 'Code'; -$lang->repo->review = 'Révision Ref'; -$lang->repo->acl = 'Privilège'; -$lang->repo->group = 'Groupe'; +$lang->repo->review = 'Repo Review'; +$lang->repo->acl = 'Privilege'; +$lang->repo->group = 'Group'; $lang->repo->user = 'User'; -$lang->repo->info = 'Info Version'; +$lang->repo->info = 'Version Info'; $lang->repo->job = 'Job'; $lang->repo->fileServerUrl = 'File Server Url'; $lang->repo->fileServerAccount = 'File Server Account'; $lang->repo->fileServerPassword = 'File Server Password'; -$lang->repo->title = 'Titre'; -$lang->repo->status = 'Statut'; -$lang->repo->openedBy = 'Créé par'; -$lang->repo->assignedTo = 'Assigné à'; -$lang->repo->openedDate = 'Date Création'; +$lang->repo->title = 'Title'; +$lang->repo->status = 'Status'; +$lang->repo->openedBy = 'CreatedBy'; +$lang->repo->assignedTo = 'AssignedTo'; +$lang->repo->openedDate = 'CreatedDate'; -$lang->repo->latestRevision = 'Dernière Révision'; -$lang->repo->actionInfo = "Ajouté par %s dans %s"; +$lang->repo->latestRevision = 'Latest Revision'; +$lang->repo->actionInfo = "Add by %s in %s"; $lang->repo->changes = "Change Log"; -$lang->repo->reviewLocation = "Fichier: %s@%s, ligne:%s - %s"; +$lang->repo->reviewLocation = "File: %s@%s, Line: %s - %s"; $lang->repo->commentEdit = ''; $lang->repo->commentDelete = ''; -$lang->repo->allChanges = "Autres Changements"; -$lang->repo->commitTitle = "Le %sème Commit"; +$lang->repo->allChanges = "Other Changes"; +$lang->repo->commitTitle = "The %sth Commit"; $lang->repo->mark = "Mark Tag"; $lang->repo->split = "Split Mark"; @@ -119,24 +125,24 @@ $lang->repo->objectIdRule = 'Object ID Rule'; $lang->repo->actionRule = 'Action Rule'; $lang->repo->manHourRule = 'Man-hour Rule'; $lang->repo->ruleUnit = "Unit"; -$lang->repo->ruleSplit = "Plusieurs mots-clés sont séparés par ';'. Par exemple : plusieurs mots clés tâche : Tâche;tâche"; +$lang->repo->ruleSplit = "Multiple keywords are divided by ';', e.g. task multiple keywords: Task;task"; -$lang->repo->viewDiffList['inline'] = 'Interligne'; -$lang->repo->viewDiffList['appose'] = 'Parallèle'; +$lang->repo->viewDiffList['inline'] = 'Inline'; +$lang->repo->viewDiffList['appose'] = 'Parallel'; -$lang->repo->encryptList['plain'] = "Pas d'encodage"; +$lang->repo->encryptList['plain'] = 'No encryption'; $lang->repo->encryptList['base64'] = 'BASE64'; -$lang->repo->logStyles['A'] = 'Ajout'; +$lang->repo->logStyles['A'] = 'Add'; $lang->repo->logStyles['M'] = 'Modification'; -$lang->repo->logStyles['D'] = 'Suppression'; +$lang->repo->logStyles['D'] = 'Delete'; $lang->repo->encodingList['utf_8'] = 'UTF-8'; $lang->repo->encodingList['gbk'] = 'GBK'; $lang->repo->scmList['Gitlab'] = 'GitLab'; $lang->repo->scmList['Git'] = 'Git'; -$lang->repo->scmList['Subversion'] = 'Subversion'; +$lang->repo->scmList['Subversion'] = 'SVN'; $lang->repo->gitlabHost = 'GitLab Host'; $lang->repo->gitlabToken = 'GitLab Token'; @@ -146,64 +152,64 @@ $lang->repo->placeholder = new stdclass; $lang->repo->placeholder->gitlabHost = 'Input url of gitlab'; $lang->repo->notice = new stdclass(); -$lang->repo->notice->syncing = 'Synchronisation en cours. Veuillez patienter ...'; -$lang->repo->notice->syncComplete = 'Synchronisé. Vous allez être redirigé ...'; -$lang->repo->notice->syncedCount = "Le nombre d'enregistrements synchronisés est "; -$lang->repo->notice->delete = 'Etes vous certain de vouloir supprimer ce référentiel ?'; -$lang->repo->notice->successDelete = 'Le référentiel est supprimé.'; -$lang->repo->notice->commentContent = 'Commentaire'; +$lang->repo->notice->syncing = 'Synchronizing. Please wait ...'; +$lang->repo->notice->syncComplete = 'Synchronized. Now redirecting ...'; +$lang->repo->notice->syncedCount = 'The number of records synchronized is '; +$lang->repo->notice->delete = 'Do you want to delete this repo?'; +$lang->repo->notice->successDelete = 'Repository is removed.'; +$lang->repo->notice->commentContent = 'Comment'; $lang->repo->notice->deleteReview = 'Do you want to delete this review?'; -$lang->repo->notice->deleteBug = 'Êtes-vous sûr de vouloir supprimer ce bug ?'; -$lang->repo->notice->deleteComment = 'Êtes-vous certain de vouloir supprimer ce commentaire ?'; -$lang->repo->notice->lastSyncTime = 'Dern Sync:'; +$lang->repo->notice->deleteBug = 'Do you want to delete this bug?'; +$lang->repo->notice->deleteComment = 'Do you want to delete this comment?'; +$lang->repo->notice->lastSyncTime = 'Last Sync:'; $lang->repo->rules = new stdclass(); -$lang->repo->rules->exampleLabel = "Comment Exemple"; +$lang->repo->rules->exampleLabel = "Comment Example"; $lang->repo->rules->example['task']['start'] = "%start% %task% %id%1%split%2 %cost%%consumedmark%1%cunit% %left%%leftmark%3%lunit%"; $lang->repo->rules->example['task']['finish'] = "%finish% %task% %id%1%split%2 %cost%%consumedmark%10%cunit%"; $lang->repo->rules->example['task']['effort'] = "%effort% %task% %id%1%split%2 %cost%%consumedmark%1%cunit% %left%%leftmark%3%lunit%"; $lang->repo->rules->example['bug']['resolve'] = "%resolve% %bug% %id%1%split%2"; $lang->repo->error = new stdclass(); -$lang->repo->error->useless = 'Votre serveur a désactivé exec et shell_exec, il ne peut donc pas être appliqué.'; -$lang->repo->error->connect = "La connexion au référentiel a échoué. Veuillez saisir correctement le nom d'utilisateur, le mot de passe et l'adresse du référentiel !"; -$lang->repo->error->version = 'Version 1.8+ de https et du protocole svn est requis. Veuillez mettre à jour vers la dernière version ! Allez à http://subversion.apache.org/'; -$lang->repo->error->path = "L'adresse du référentiel est le chemin du fichier, ex: /home/test"; -$lang->repo->error->cmd = 'Erreur du Client !'; -$lang->repo->error->diff = 'Deux version doivent être sélectionnées.'; +$lang->repo->error->useless = 'Your server disabled exec and shell_exec, so it cannot be applied.'; +$lang->repo->error->connect = 'Connection to the repo failed. Please enter username, password and repo address correctly!'; +$lang->repo->error->version = 'Version 1.8+ of https and svn protocol is required. Please update to latest version! Go to http://subversion.apache.org/'; +$lang->repo->error->path = 'Repo address is the file path, e.g. /home/test.'; +$lang->repo->error->cmd = 'Client Error!'; +$lang->repo->error->diff = 'Two versions must be selected.'; $lang->repo->error->safe = 'For security reasons, the client version needs to be detected. Please write the version to the file %s.
Execute command: %s'; -$lang->repo->error->product = "Veuillez sélectionner un {$lang->productCommon}!"; -$lang->repo->error->commentText = 'Veuillez entrer du contenu pour une révision !'; -$lang->repo->error->comment = 'Veuillez entrer le contenu du commentaire !'; -$lang->repo->error->title = 'Veuillez saisir un titre !'; -$lang->repo->error->accessDenied = "Vous n'avez pas les privilèges d'accéder au référentiel."; -$lang->repo->error->noFound = 'Le référentiel est non trouvé.'; -$lang->repo->error->noFile = "%s n'existe pas."; -$lang->repo->error->noPriv = "Le programme n'a pas les privilèges pour basculer vers %s"; -$lang->repo->error->output = "La commande est: %s\nL'erreur est (%s): %s\n"; -$lang->repo->error->clientVersion = "La version du client est trop ancienne, veuillez mettre à niveau ou changer le client SVN"; -$lang->repo->error->encoding = "L'encodage est peut-être erroné. Veuillez modifier l'encodage et réessayer."; +$lang->repo->error->product = "Please select {$lang->productCommon}!"; +$lang->repo->error->commentText = 'Please enter content for review!'; +$lang->repo->error->comment = 'Please enter content!'; +$lang->repo->error->title = 'Please enter title!'; +$lang->repo->error->accessDenied = 'You do not have the privilege to access the repository.'; +$lang->repo->error->noFound = 'The repo is not found.'; +$lang->repo->error->noFile = '%s does not exist.'; +$lang->repo->error->noPriv = 'The program does not have the privilege to switch to %s'; +$lang->repo->error->output = "The command is: %s\nThe error is(%s): %s\n"; +$lang->repo->error->clientVersion = "Client version is too low, please upgrade or change SVN client"; +$lang->repo->error->encoding = "The encoding might be wrong. Please change the encoding and try again."; $lang->repo->error->deleted = "Deletion of the repository failed. The current repository has a commit record associated with the design."; $lang->repo->error->linkedJob = "Deletion of the repository failed. The current repository has associated with the Compile."; $lang->repo->error->clientPath = "The client installation directory cannot have spaces!"; $lang->repo->error->notFound = "The repository %s’s URL %s does not exist. Please confirm if this repository has been deleted from the local server."; -$lang->repo->syncTips = 'Vous pouvez trouver la référence sur la façon de définir la synchronisation Git à partir de la page se trouvant ici.'; -$lang->repo->encodingsTips = "Les encodages des commentaires de validation peuvent être des valeurs séparées par des virgules,ex: utf-8"; +$lang->repo->syncTips = 'You may find the reference about how to set Git sync from here.'; +$lang->repo->encodingsTips = "The encodings of comments can be comma separated values, e.g. utf-8."; $lang->repo->pathTipsForGitlab = "GitLab Project URL"; $lang->repo->example = new stdclass(); $lang->repo->example->client = new stdclass(); $lang->repo->example->path = new stdclass(); -$lang->repo->example->client->git = "ex: /usr/bin/git"; -$lang->repo->example->client->svn = "ex: /usr/bin/svn"; -$lang->repo->example->path->git = "ex: /home/user/myproject"; -$lang->repo->example->path->svn = "ex: http://example.googlecode.com/svn/trunk/myproject"; -$lang->repo->example->config = "Le répertoire de configuration est requis en https. Utilisez '--config-dir' pour générer le répertoire de configuration."; -$lang->repo->example->encoding = "encodage d'entrée des fichiers"; +$lang->repo->example->client->git = "e.g. /usr/bin/git"; +$lang->repo->example->client->svn = "e.g. /usr/bin/svn"; +$lang->repo->example->path->git = "e.g. /home/user/myproject"; +$lang->repo->example->path->svn = "e.g. http://example.googlecode.com/svn/trunk/myproject"; +$lang->repo->example->config = "Config directory is required in https. Use '--config-dir' to generate config dir."; +$lang->repo->example->encoding = "input encoding of files"; $lang->repo->typeList['standard'] = 'Standard'; $lang->repo->typeList['performance'] = 'Performance'; -$lang->repo->typeList['security'] = 'Securité'; -$lang->repo->typeList['redundancy'] = 'Redondance'; -$lang->repo->typeList['logicError'] = 'Erreur Logique'; +$lang->repo->typeList['security'] = 'Security'; +$lang->repo->typeList['redundancy'] = 'Redundancy'; +$lang->repo->typeList['logicError'] = 'Logic Error'; diff --git a/module/repo/lang/vi.php b/module/repo/lang/vi.php index 18f8986521..58f207265a 100644 --- a/module/repo/lang/vi.php +++ b/module/repo/lang/vi.php @@ -1,24 +1,24 @@ repo->common = 'Repo'; -$lang->repo->browse = 'Xem'; -$lang->repo->viewRevision = 'Xem Revision'; +$lang->repo->browse = 'View'; +$lang->repo->viewRevision = 'View Revision'; $lang->repo->product = 'Product'; $lang->repo->execution = $lang->execution->common; -$lang->repo->create = 'Tạo'; -$lang->repo->maintain = 'Repo danh sách'; -$lang->repo->edit = 'Sửa'; -$lang->repo->delete = 'Xóa Repo'; +$lang->repo->create = 'Create'; +$lang->repo->maintain = 'Repo List'; +$lang->repo->edit = 'Edit'; +$lang->repo->delete = 'Delete Repo'; $lang->repo->showSyncCommit = 'Display Sync'; $lang->repo->ajaxSyncCommit = 'Interface: Ajax Sync Note'; -$lang->repo->setRules = 'Thiết lập quy định'; -$lang->repo->download = 'Tải về File'; -$lang->repo->downloadDiff = 'Tải về Diff'; -$lang->repo->addBug = 'Thêm duyệt'; -$lang->repo->editBug = 'Sửa Bug'; -$lang->repo->deleteBug = 'Xóa Bug'; -$lang->repo->addComment = 'Thêm nhận xét'; -$lang->repo->editComment = 'Sửa nhận xét'; -$lang->repo->deleteComment = 'Xóa nhận xét'; +$lang->repo->setRules = 'Set Rules'; +$lang->repo->download = 'Download File'; +$lang->repo->downloadDiff = 'Download Diff'; +$lang->repo->addBug = 'Add Review'; +$lang->repo->editBug = 'Edit Bug'; +$lang->repo->deleteBug = 'Delete Bug'; +$lang->repo->addComment = 'Add Comment'; +$lang->repo->editComment = 'Edit Comment'; +$lang->repo->deleteComment = 'Delete Comment'; $lang->repo->encrypt = 'Encrypt'; $lang->repo->repo = 'Repository'; $lang->repo->parent = 'Parent File'; @@ -27,112 +27,140 @@ $lang->repo->tag = 'Tag'; $lang->repo->addWebHook = 'Add Webhook'; $lang->repo->apiGetRepoByUrl = 'API: Get repo by URL'; -$lang->repo->submit = 'Gửi'; -$lang->repo->cancel = 'Hủy'; -$lang->repo->addComment = 'Thêm nhận xét'; +$lang->repo->browseAction = 'Browse Repo'; +$lang->repo->createAction = 'Create Repo'; +$lang->repo->editAction = 'Edit Repo'; +$lang->repo->diffAction = 'Diff Revision'; +$lang->repo->downloadAction = 'Download File'; +$lang->repo->revisionAction = 'Revision Detail'; +$lang->repo->blameAction = 'Blame'; +$lang->repo->reviewAction = 'Review List'; +$lang->repo->downloadCode = 'Download Code'; +$lang->repo->downloadZip = 'Download Zip file'; +$lang->repo->sshClone = 'Clone by SSH'; +$lang->repo->httpClone = 'Clone by HTTP'; +$lang->repo->submit = 'Submit'; +$lang->repo->cancel = 'Cancel'; +$lang->repo->addComment = 'Add Comment'; + +$lang->repo->copy = 'Click to copy'; +$lang->repo->copied = 'Copy successful'; $lang->repo->module = 'Module'; -$lang->repo->type = 'Loại'; -$lang->repo->assign = 'Giao cho'; -$lang->repo->title = 'Tiêu đề'; -$lang->repo->detile = 'Chi tiết'; -$lang->repo->lines = 'Dòng'; -$lang->repo->line = 'Dòng'; -$lang->repo->expand = 'Mở ra'; -$lang->repo->collapse = 'Gấp lại'; +$lang->repo->type = 'Type'; +$lang->repo->assign = 'AssignTo'; +$lang->repo->title = 'Title'; +$lang->repo->detile = 'Detail'; +$lang->repo->lines = 'Lines'; +$lang->repo->line = 'Line'; +$lang->repo->expand = 'Unfold'; +$lang->repo->collapse = 'Fold'; -$lang->repo->id = 'ID'; -$lang->repo->SCM = 'Loại'; -$lang->repo->name = 'Tên'; -$lang->repo->path = 'Đường dẫn'; -$lang->repo->prefix = 'Prefix'; -$lang->repo->config = 'Cấu hình'; -$lang->repo->desc = 'Mô tả'; -$lang->repo->account = 'Người dùng'; -$lang->repo->password = 'Mật khẩu'; -$lang->repo->encoding = 'Encoding'; -$lang->repo->client = 'Client Path'; -$lang->repo->size = 'Size'; -$lang->repo->revision = 'Revision'; -$lang->repo->revisionA = 'Revision'; -$lang->repo->revisions = 'Revision'; -$lang->repo->time = 'Ngày'; -$lang->repo->committer = 'Committer'; -$lang->repo->commits = 'Commits'; -$lang->repo->synced = 'Khởi tạo đồng bộ'; -$lang->repo->lastSync = 'Last Sync'; -$lang->repo->deleted = 'Đã xóa'; -$lang->repo->commit = 'Giao phó'; -$lang->repo->comment = 'Nhận xét'; -$lang->repo->view = 'Xem File'; -$lang->repo->viewA = 'Xem'; -$lang->repo->log = 'Revision nhật ký'; -$lang->repo->blame = 'Blame'; -$lang->repo->date = 'Ngày'; -$lang->repo->diff = 'Diff'; -$lang->repo->diffAB = 'Diff'; -$lang->repo->diffAll = 'Diff tất cả'; -$lang->repo->viewDiff = 'Xem diff'; -$lang->repo->allLog = 'Tất cả Revisions'; -$lang->repo->location = 'Vị trí'; -$lang->repo->file = 'File'; -$lang->repo->action = 'Hành động'; -$lang->repo->code = 'Mã'; -$lang->repo->review = 'Repo duyệt'; -$lang->repo->acl = 'Phân quyền'; -$lang->repo->group = 'Nhóm'; -$lang->repo->user = 'Người dùng'; -$lang->repo->info = 'Thông tin phiên bản'; +$lang->repo->id = 'ID'; +$lang->repo->SCM = 'Type'; +$lang->repo->name = 'Name'; +$lang->repo->path = 'Path'; +$lang->repo->prefix = 'Prefix'; +$lang->repo->config = 'Config'; +$lang->repo->desc = 'Description'; +$lang->repo->account = 'Username'; +$lang->repo->password = 'Password'; +$lang->repo->encoding = 'Encoding'; +$lang->repo->client = 'Client Path'; +$lang->repo->size = 'Size'; +$lang->repo->revision = 'Revision'; +$lang->repo->revisionA = 'Revision'; +$lang->repo->revisions = 'Revision'; +$lang->repo->time = 'Date'; +$lang->repo->committer = 'Committer'; +$lang->repo->commits = 'Commits'; +$lang->repo->synced = 'Initialize Sync'; +$lang->repo->lastSync = 'Last Sync'; +$lang->repo->deleted = 'Deleted'; +$lang->repo->commit = 'Commit'; +$lang->repo->comment = 'Comment'; +$lang->repo->view = 'View File'; +$lang->repo->viewA = 'View'; +$lang->repo->log = 'Revision Log'; +$lang->repo->blame = 'Blame'; +$lang->repo->date = 'Date'; +$lang->repo->diff = 'Diff'; +$lang->repo->diffAB = 'Diff'; +$lang->repo->diffAll = 'Diff All'; +$lang->repo->viewDiff = 'View diff'; +$lang->repo->allLog = 'All Revisions'; +$lang->repo->location = 'Location'; +$lang->repo->file = 'File'; +$lang->repo->action = 'Action'; +$lang->repo->code = 'Code'; +$lang->repo->review = 'Repo Review'; +$lang->repo->acl = 'Privilege'; +$lang->repo->group = 'Group'; +$lang->repo->user = 'User'; +$lang->repo->info = 'Version Info'; +$lang->repo->job = 'Job'; +$lang->repo->fileServerUrl = 'File Server Url'; +$lang->repo->fileServerAccount = 'File Server Account'; +$lang->repo->fileServerPassword = 'File Server Password'; -$lang->repo->title = 'Tiêu đề'; -$lang->repo->status = 'Tình trạng'; -$lang->repo->openedBy = 'Người tạo'; -$lang->repo->assignedTo = 'Giao cho'; -$lang->repo->openedDate = 'Ngày tạo'; +$lang->repo->title = 'Title'; +$lang->repo->status = 'Status'; +$lang->repo->openedBy = 'CreatedBy'; +$lang->repo->assignedTo = 'AssignedTo'; +$lang->repo->openedDate = 'CreatedDate'; $lang->repo->latestRevision = 'Latest Revision'; -$lang->repo->actionInfo = "Thêm bởi %s trong %s"; -$lang->repo->changes = "Thay đổi nhật ký"; +$lang->repo->actionInfo = "Add by %s in %s"; +$lang->repo->changes = "Change Log"; $lang->repo->reviewLocation = "File: %s@%s, Line: %s - %s"; $lang->repo->commentEdit = ''; $lang->repo->commentDelete = ''; -$lang->repo->allChanges = "Thay đổi khác"; +$lang->repo->allChanges = "Other Changes"; $lang->repo->commitTitle = "The %sth Commit"; $lang->repo->mark = "Mark Tag"; $lang->repo->split = "Split Mark"; -$lang->repo->objectRule = 'Object quy tắc'; -$lang->repo->objectIdRule = 'Object ID quy tắc'; -$lang->repo->actionRule = 'Action quy tắc'; -$lang->repo->manHourRule = 'Man-hour quy tắc'; +$lang->repo->objectRule = 'Object Rule'; +$lang->repo->objectIdRule = 'Object ID Rule'; +$lang->repo->actionRule = 'Action Rule'; +$lang->repo->manHourRule = 'Man-hour Rule'; $lang->repo->ruleUnit = "Unit"; -$lang->repo->ruleSplit = "Multiple keywords are divided by ';'. For example: task multiple keywords: Task;task"; +$lang->repo->ruleSplit = "Multiple keywords are divided by ';', e.g. task multiple keywords: Task;task"; $lang->repo->viewDiffList['inline'] = 'Inline'; $lang->repo->viewDiffList['appose'] = 'Parallel'; -$lang->repo->encryptList['plain'] = 'Không có encryption'; +$lang->repo->encryptList['plain'] = 'No encryption'; $lang->repo->encryptList['base64'] = 'BASE64'; -$lang->repo->logStyles['A'] = 'Thêm'; -$lang->repo->logStyles['M'] = 'Sửa'; -$lang->repo->logStyles['D'] = 'Xóa'; +$lang->repo->logStyles['A'] = 'Add'; +$lang->repo->logStyles['M'] = 'Modification'; +$lang->repo->logStyles['D'] = 'Delete'; $lang->repo->encodingList['utf_8'] = 'UTF-8'; $lang->repo->encodingList['gbk'] = 'GBK'; +$lang->repo->scmList['Gitlab'] = 'GitLab'; $lang->repo->scmList['Git'] = 'Git'; $lang->repo->scmList['Subversion'] = 'SVN'; -$lang->repo->notice = new stdclass(); -$lang->repo->notice->syncing = 'Đang đồng bộ. Vui lòng đợi ...'; +$lang->repo->gitlabHost = 'GitLab Host'; +$lang->repo->gitlabToken = 'GitLab Token'; +$lang->repo->gitlabProject = 'Project'; + +$lang->repo->placeholder = new stdclass; +$lang->repo->placeholder->gitlabHost = 'Input url of gitlab'; + +$lang->repo->notice = new stdclass(); +$lang->repo->notice->syncing = 'Synchronizing. Please wait ...'; $lang->repo->notice->syncComplete = 'Synchronized. Now redirecting ...'; $lang->repo->notice->syncedCount = 'The number of records synchronized is '; -$lang->repo->notice->delete = 'Bạn có muốn xóa this repo?'; +$lang->repo->notice->delete = 'Do you want to delete this repo?'; $lang->repo->notice->successDelete = 'Repository is removed.'; -$lang->repo->notice->commentContent = 'Nhận xét'; -$lang->repo->notice->deleteBug = 'Bạn có muốn xóa bug này?'; -$lang->repo->notice->deleteComment = 'Bạn có muốn xóa this comment?'; +$lang->repo->notice->commentContent = 'Comment'; +$lang->repo->notice->deleteReview = 'Do you want to delete this review?'; +$lang->repo->notice->deleteBug = 'Do you want to delete this bug?'; +$lang->repo->notice->deleteComment = 'Do you want to delete this comment?'; $lang->repo->notice->lastSyncTime = 'Last Sync:'; $lang->repo->rules = new stdclass(); @@ -142,43 +170,46 @@ $lang->repo->rules->example['task']['finish'] = "%finish% %task% %id%1%split%2 % $lang->repo->rules->example['task']['effort'] = "%effort% %task% %id%1%split%2 %cost%%consumedmark%1%cunit% %left%%leftmark%3%lunit%"; $lang->repo->rules->example['bug']['resolve'] = "%resolve% %bug% %id%1%split%2"; -$lang->repo->error = new stdclass(); +$lang->repo->error = new stdclass(); $lang->repo->error->useless = 'Your server disabled exec and shell_exec, so it cannot be applied.'; -$lang->repo->error->connect = 'Connection to the repo failed. Vui lòng enter username, password and repo address correctly!'; -$lang->repo->error->version = 'Phiên bản 1.8+ of https and svn protocol là bắt buộc. Vui lòng update to latest version! Go to http://subversion.apache.org/'; -$lang->repo->error->path = 'Repo address is the file path, ví dụ: /home/test.'; +$lang->repo->error->connect = 'Connection to the repo failed. Please enter username, password and repo address correctly!'; +$lang->repo->error->version = 'Version 1.8+ of https and svn protocol is required. Please update to latest version! Go to http://subversion.apache.org/'; +$lang->repo->error->path = 'Repo address is the file path, e.g. /home/test.'; $lang->repo->error->cmd = 'Client Error!'; -$lang->repo->error->diff = 'Two versions phải là selected.'; +$lang->repo->error->diff = 'Two versions must be selected.'; $lang->repo->error->safe = 'For security reasons, the client version needs to be detected. Please write the version to the file %s.
Execute command: %s'; $lang->repo->error->product = "Please select {$lang->productCommon}!"; -$lang->repo->error->commentText = 'Vui lòng nhập nội dung để duyệt!'; -$lang->repo->error->comment = 'Vui lòng nhập content!'; -$lang->repo->error->title = 'Vui lòng nhập title!'; +$lang->repo->error->commentText = 'Please enter content for review!'; +$lang->repo->error->comment = 'Please enter content!'; +$lang->repo->error->title = 'Please enter title!'; $lang->repo->error->accessDenied = 'You do not have the privilege to access the repository.'; -$lang->repo->error->noFound = 'The repo không là found.'; -$lang->repo->error->noFile = '%s không tồn tại.'; +$lang->repo->error->noFound = 'The repo is not found.'; +$lang->repo->error->noFile = '%s does not exist.'; $lang->repo->error->noPriv = 'The program does not have the privilege to switch to %s'; $lang->repo->error->output = "The command is: %s\nThe error is(%s): %s\n"; $lang->repo->error->clientVersion = "Client version is too low, please upgrade or change SVN client"; -$lang->repo->error->encoding = "The encoding maybe wrong. Vui lòng change the encoding and try again."; +$lang->repo->error->encoding = "The encoding might be wrong. Please change the encoding and try again."; $lang->repo->error->deleted = "Deletion of the repository failed. The current repository has a commit record associated with the design."; +$lang->repo->error->linkedJob = "Deletion of the repository failed. The current repository has associated with the Compile."; $lang->repo->error->clientPath = "The client installation directory cannot have spaces!"; +$lang->repo->error->notFound = "The repository %s’s URL %s does not exist. Please confirm if this repository has been deleted from the local server."; -$lang->repo->syncTips = 'Bạn có thể tìm tham khảo làm sao thiết lập đồng bộ Git từ here.'; -$lang->repo->encodingsTips = "The encodings of commit comments, can be comma separated values,ví dụ: utf-8"; +$lang->repo->syncTips = 'You may find the reference about how to set Git sync from here.'; +$lang->repo->encodingsTips = "The encodings of comments can be comma separated values, e.g. utf-8."; +$lang->repo->pathTipsForGitlab = "GitLab Project URL"; $lang->repo->example = new stdclass(); $lang->repo->example->client = new stdclass(); $lang->repo->example->path = new stdclass(); -$lang->repo->example->client->git = "ví dụ: /usr/bin/git"; -$lang->repo->example->client->svn = "ví dụ: /usr/bin/svn"; -$lang->repo->example->path->git = "ví dụ: /home/user/myproject"; -$lang->repo->example->path->svn = "ví dụ: http://example.googlecode.com/svn/trunk/myproject"; -$lang->repo->example->config = "Config directory là bắt buộc in https. Sử dụng '--config-dir' to generate config dir."; +$lang->repo->example->client->git = "e.g. /usr/bin/git"; +$lang->repo->example->client->svn = "e.g. /usr/bin/svn"; +$lang->repo->example->path->git = "e.g. /home/user/myproject"; +$lang->repo->example->path->svn = "e.g. http://example.googlecode.com/svn/trunk/myproject"; +$lang->repo->example->config = "Config directory is required in https. Use '--config-dir' to generate config dir."; $lang->repo->example->encoding = "input encoding of files"; -$lang->repo->typeList['standard'] = 'Tiêu chuẩn'; -$lang->repo->typeList['performance'] = 'Hiệu suất'; -$lang->repo->typeList['security'] = 'Bảo mật'; +$lang->repo->typeList['standard'] = 'Standard'; +$lang->repo->typeList['performance'] = 'Performance'; +$lang->repo->typeList['security'] = 'Security'; $lang->repo->typeList['redundancy'] = 'Redundancy'; $lang->repo->typeList['logicError'] = 'Logic Error'; diff --git a/module/repo/lang/zh-cn.php b/module/repo/lang/zh-cn.php index c59dcf047b..ea4d048282 100644 --- a/module/repo/lang/zh-cn.php +++ b/module/repo/lang/zh-cn.php @@ -35,11 +35,17 @@ $lang->repo->downloadAction = '下载代码库文件'; $lang->repo->revisionAction = '版本详情'; $lang->repo->blameAction = '版本追溯'; $lang->repo->reviewAction = '评审列表'; +$lang->repo->downloadCode = '下载代码'; +$lang->repo->downloadZip = '下载Zip包'; +$lang->repo->sshClone = '使用SSH克隆'; +$lang->repo->httpClone = '使用HTTP克隆'; $lang->repo->submit = '提交'; $lang->repo->cancel = '取消'; $lang->repo->addComment = '添加评论'; +$lang->repo->copy = '点击复制'; +$lang->repo->copied = '复制成功'; $lang->repo->module = '模块'; $lang->repo->type = '类型'; $lang->repo->assign = '指派'; diff --git a/module/repo/model.php b/module/repo/model.php index 390d4a8414..e4fe414196 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -2131,4 +2131,30 @@ class repoModel extends model foreach($executions as $execution) $pairs[$execution->id] = $execution->name; return $pairs; } + + /** + * Get download url. + * + * @param int $repoID + * @access public + * @return object + */ + public function getDownloadUrl($repoID) + { + $repo = $this->dao->select('*')->from(TABLE_REPO)->where('id')->eq($repoID)->fetch(); + if(empty($repo)) return null; + + $url = new stdClass(); + if($repo->SCM == 'Gitlab') + { + $project = $this->loadModel('gitlab')->apiGetSingleProject($repo->client, $repo->path); + if($project) + { + $url->http = $project->http_url_to_repo; + $url->ssh = $project->ssh_url_to_repo; + } + } + + return $url; + } } diff --git a/module/repo/view/browse.html.php b/module/repo/view/browse.html.php index 853959ab83..daa5f89c74 100644 --- a/module/repo/view/browse.html.php +++ b/module/repo/view/browse.html.php @@ -9,6 +9,10 @@ */ ?> + + +repo);?> + -EOF; - + $repo = $this->repo->getRepoByID($repoID); + if($repo->SCM == 'Gitlab') + { + return $this->loadModel('gitlab')->downloadCode($repo->gitlab, $repo->project); + } } } diff --git a/module/repo/css/browse.css b/module/repo/css/browse.css index 203bdfc3e8..d83776ee1b 100644 --- a/module/repo/css/browse.css +++ b/module/repo/css/browse.css @@ -26,6 +26,7 @@ /* Fix bug #21893. */ .in #sidebar>.sidebar-toggle>.icon-angle-left:before {content: "\e315";} .hide-sidebar #sidebar>.sidebar-toggle>.icon-angle-left:before {content: "\e314";} + .download-popover {width: 400px; max-width: none;} .popover-content {padding: 0;} .download-popover .table {margin-bottom: 0;} diff --git a/module/repo/js/browse.js b/module/repo/js/browse.js index 98a2a2107f..4439789721 100644 --- a/module/repo/js/browse.js +++ b/module/repo/js/browse.js @@ -3,30 +3,30 @@ function getDownload() var content = "
"; content += "
"; content += ""; - if(downloadUrl.ssh) + if(cloneUrl.ssh) { content += ""; content += ""; content += ""; content += ""; - content += ""; + content += ""; content += ""; content += ""; content += ""; } - if(downloadUrl.http) + if(cloneUrl.http) { content += ""; content += ""; content += ""; - content += ""; + content += ""; content += ""; content += ""; } content += ""; - content += ""; + content += ""; content += ""; content += ""; @@ -73,4 +73,10 @@ $(function() document.execCommand("Copy"); alert(lang.copied); }) + + $('.download-btn').live('click', function() + { + var link = createLink('repo', 'downloadCode', 'repoID=' + repoID); + window.open(link); + }) }) diff --git a/module/repo/lang/en.php b/module/repo/lang/en.php index 58f207265a..7e6dabca74 100644 --- a/module/repo/lang/en.php +++ b/module/repo/lang/en.php @@ -36,7 +36,7 @@ $lang->repo->revisionAction = 'Revision Detail'; $lang->repo->blameAction = 'Blame'; $lang->repo->reviewAction = 'Review List'; $lang->repo->downloadCode = 'Download Code'; -$lang->repo->downloadZip = 'Download Zip file'; +$lang->repo->downloadZip = 'Download compressed package'; $lang->repo->sshClone = 'Clone by SSH'; $lang->repo->httpClone = 'Clone by HTTP'; diff --git a/module/repo/lang/zh-cn.php b/module/repo/lang/zh-cn.php index ea4d048282..9b23233d17 100644 --- a/module/repo/lang/zh-cn.php +++ b/module/repo/lang/zh-cn.php @@ -36,7 +36,7 @@ $lang->repo->revisionAction = '版本详情'; $lang->repo->blameAction = '版本追溯'; $lang->repo->reviewAction = '评审列表'; $lang->repo->downloadCode = '下载代码'; -$lang->repo->downloadZip = '下载Zip包'; +$lang->repo->downloadZip = '下载压缩包'; $lang->repo->sshClone = '使用SSH克隆'; $lang->repo->httpClone = '使用HTTP克隆'; diff --git a/module/repo/model.php b/module/repo/model.php index e4fe414196..08213ab154 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -2133,21 +2133,20 @@ class repoModel extends model } /** - * Get download url. + * Get clone url. * - * @param int $repoID + * @param object $repo * @access public * @return object */ - public function getDownloadUrl($repoID) + public function getCloneUrl($repo) { - $repo = $this->dao->select('*')->from(TABLE_REPO)->where('id')->eq($repoID)->fetch(); if(empty($repo)) return null; $url = new stdClass(); if($repo->SCM == 'Gitlab') { - $project = $this->loadModel('gitlab')->apiGetSingleProject($repo->client, $repo->path); + $project = $this->loadModel('gitlab')->apiGetSingleProject($repo->gitlab, $repo->project); if($project) { $url->http = $project->http_url_to_repo; diff --git a/module/repo/view/browse.html.php b/module/repo/view/browse.html.php index daa5f89c74..9553bfc7b7 100644 --- a/module/repo/view/browse.html.php +++ b/module/repo/view/browse.html.php @@ -9,10 +9,10 @@ */ ?> - - -repo);?> - + + +repo);?> +

noData;?> - createLink('gitlab', 'createProject', "gitlabID=$gitlabID"), " " . $lang->gitlab->user->create, '', "class='btn btn-info'");?> + createLink('gitlab', 'createProject', "gitlabID=$gitlabID"), " " . $lang->gitlab->user->create, '', "class='btn btn-info'");?>

From 36427cc0486a979a6eee61f4f96a3ae3732b6a97 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Jul 2022 13:45:45 +0800 Subject: [PATCH 10/27] * Fix bug #24820. --- module/pipeline/model.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/pipeline/model.php b/module/pipeline/model.php index 59bb07e11a..c740085398 100644 --- a/module/pipeline/model.php +++ b/module/pipeline/model.php @@ -86,6 +86,7 @@ class pipelineModel extends model $this->dao->insert(TABLE_PIPELINE)->data($pipeline) ->batchCheck($this->config->pipeline->create->requiredFields, 'notempty') ->batchCheck("url", 'URL') + ->check('name', 'unique', "`type` = '$type'") ->autoCheck() ->exec(); if(dao::isError()) return false; @@ -116,6 +117,7 @@ class pipelineModel extends model $this->dao->update(TABLE_PIPELINE)->data($pipeline) ->batchCheck($this->config->pipeline->edit->requiredFields, 'notempty') ->batchCheck("url", 'URL') + ->check('name', 'unique', "`type` = '$type' and id <> $id") ->autoCheck() ->where('id')->eq($id) ->exec(); From becc67abda5c67e26fc36322f017213ddc847044 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Jul 2022 13:52:16 +0800 Subject: [PATCH 11/27] * Modify download code style. --- module/repo/css/browse.css | 1 + module/repo/model.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/module/repo/css/browse.css b/module/repo/css/browse.css index d83776ee1b..9ecc8cca58 100644 --- a/module/repo/css/browse.css +++ b/module/repo/css/browse.css @@ -30,3 +30,4 @@ .download-popover {width: 400px; max-width: none;} .popover-content {padding: 0;} .download-popover .table {margin-bottom: 0;} +.download-popover .table td {padding-right: 0;} diff --git a/module/repo/model.php b/module/repo/model.php index 08213ab154..3e9ca0c39f 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -2147,7 +2147,7 @@ class repoModel extends model if($repo->SCM == 'Gitlab') { $project = $this->loadModel('gitlab')->apiGetSingleProject($repo->gitlab, $repo->project); - if($project) + if(isset($project->id)) { $url->http = $project->http_url_to_repo; $url->ssh = $project->ssh_url_to_repo; From 5e883406fe712c631420caac1acaa1df3da287d2 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Jul 2022 14:02:33 +0800 Subject: [PATCH 12/27] * Fix bug #24847. --- module/gitlab/control.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 564f183c93..6d4d3dc397 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -634,10 +634,17 @@ class gitlab extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browseUser', "gitlabID=$gitlabID"))); } - $userPairs = $this->loadModel('user')->getPairs('noclosed|noletter'); $user = $this->gitlab->apiGetSingleUser($gitlabID, $userID); $zentaoBindAccount = $this->dao->select('account')->from(TABLE_OAUTH)->where('providerType')->eq('gitlab')->andWhere('providerID')->eq($gitlabID)->andWhere('openID')->eq($user->id)->fetch('account'); + $users = $this->loadModel('user')->getList(); + $bindedUsers = $this->gitlab->getUserAccountIdPairs($gitlabID); + $userPairs = array('' => ''); + foreach($users as $u) + { + if(!isset($bindedUsers[$u->account]) or $u->account == $zentaoBindAccount) $userPairs[$u->account] = $u->realname; + } + $this->view->title = $this->lang->gitlab->common . $this->lang->colon . $this->lang->gitlab->user->edit; $this->view->user = $user; $this->view->userPairs = $userPairs; From 17eda754f9447357e9d0ac6d518a9e1d8cea56be Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 6 Jul 2022 14:17:25 +0800 Subject: [PATCH 13/27] * Fix bug #24829. --- module/gitlab/view/browsegroup.html.php | 2 +- module/gitlab/view/browseproject.html.php | 2 +- module/gitlab/view/browseuser.html.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module/gitlab/view/browsegroup.html.php b/module/gitlab/view/browsegroup.html.php index cb0a0e07f6..fb4315ff18 100644 --- a/module/gitlab/view/browsegroup.html.php +++ b/module/gitlab/view/browsegroup.html.php @@ -14,7 +14,7 @@
" + lang.sshClone + "
" + lang.httpClone + "
"; content += "