Files
EasySoft-ZenTaoPMS/module/repo/ui/diff.html.php
T

145 lines
4.6 KiB
PHP

<?php
declare(strict_types=1);
/**
* The diff view file of repo module of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Ke Zhao<zhaoke@easycorp.ltd>
* @package repo
* @link http://www.zentao.net
*/
namespace zin;
$module = $app->tab == 'devops' ? 'repo' : $app->tab;
dropmenu
(
set::module($module),
set::tab($module),
set::url(createLink($module, $app->tab == 'devops' ? 'ajaxGetDropMenu' : 'ajaxGetDropMenuData', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}"))
);
jsVar('repo', $repo);
jsVar('repoLang', $lang->repo);
jsVar('objectID', $objectID);
/* Prepare repo dropdown data. */
if($repo->SCM != 'Subversion')
{
$items = $this->repoZen->getBranchAndTagItems($repo, '');
$tabs = array(array('name' => 'branchesAndTags', 'text' => $lang->repo->branch));
$menuData = array('branchesAndTags' => array(array('text' => $lang->repo->branch, 'items' => $items['branchMenus']), array('text' => $lang->repo->tag, 'items' => $items['tagMenus'])));
}
$browser = helper::getBrowser();
jsVar('browser', $browser['name']);
jsVar('edition', $config->edition);
$breadcrumbItems = array();
$breadcrumbItems[] = h::a
(
set::href($this->repo->createLink('browse', "repoID=$repoID&branchID=&objectID=$objectID"), $repo->name, '', "data-app='{$app->tab}'"),
set('data-app', $app->tab),
$repo->name,
);
$breadcrumbItems[] = h::span('/', setStyle('margin', '0 5px'));
$paths = explode('/', $entry);
$fileName = array_pop($paths);
$postPath = '';
$base64BranchID = helper::safe64Encode(base64_encode($branchID));
foreach($paths as $pathName)
{
$postPath .= $pathName . '/';
$breadcrumbItems[] = h::a
(
set::href($this->repo->createLink('browse', "repoID=$repoID&branchID=$base64BranchID&objectID=$objectID&path=" . $this->repo->encodePath($postPath))),
set('data-app', $app->tab),
trim($pathName, '/'),
);
$breadcrumbItems[] = h::span('/', setStyle('margin', '0 5px'));
}
if($fileName) $breadcrumbItems[] = h::span($fileName);
if($repo->SCM != 'Subversion')
{
$oldRevision = $oldRevision == '^' ? "$newRevision" : $oldRevision;
$breadcrumbItems[] = input(set::type('hidden'), set::name('oldRevision'), set::value($oldRevision));
$breadcrumbItems[] = input(set::type('hidden'), set::name('newRevision'), set::value($newRevision));
$breadcrumbItems[] = input(set::type('hidden'), set::name('isBranchOrTag'), set::value($isBranchOrTag));
$breadcrumbItems[] = span($lang->repo->source . ':', setClass('ml-3'));
$breadcrumbItems[] = dropmenu
(
setID('source'),
set::objectID($objectID),
set::text($oldRevision),
set::data(array('data' => $menuData, 'tabs' => $tabs))
);
$breadcrumbItems[] = span(setClass('label label-exchange mr-2'), icon('exchange'));
$breadcrumbItems[] = span($lang->repo->target . ':');
$breadcrumbItems[] = dropmenu
(
setID('target'),
set::objectID($objectID),
set::text($newRevision),
set::data(array('data' => $menuData, 'tabs' => $tabs))
);
$breadcrumbItems[] = btn
(
set::id('diffForm'),
set::type('primary'),
set::size('md'),
$lang->repo->compare,
on::click('goDiff')
);
}
else
{
$oldRevision = $oldRevision == '^' ? $newRevision - 1 : $oldRevision;
$breadcrumbItems[] = input(set::type('hidden'), set::name('isBranchOrTag'), set::value($isBranchOrTag));
$breadcrumbItems[] = input
(
setClass('svn-version mr-2'),
setStyle('width', '160px'),
set::name('oldRevision'),
set::value($oldRevision),
set::placeholder($lang->repo->source),
);
$breadcrumbItems[] = span(setClass('label label-exchange mr-2'), icon('exchange'));
$breadcrumbItems[] = input
(
setClass('svn-version mr-2'),
setStyle('width', '160px'),
set::name('newRevision'),
set::value($newRevision),
set::placeholder($lang->repo->target),
);
$breadcrumbItems[] = btn
(
set::id('diffForm'),
set::type('primary'),
set::size('md'),
$lang->repo->compare,
on::click('goDiff')
);
}
\zin\featureBar
(
backBtn(set::icon('back'), setClass('bg-transparent diff-back-btn'), set::back('GLOBAL'), $lang->goback),
item(set::type('divider')),
...$breadcrumbItems,
);
if($diffs) include 'diffeditor.html.php';
jsVar('oldRevision', $oldRevision);
jsVar('newRevision', $newRevision);