Removed old .tmpl files from upgrades. All upgrade collateral must now be in .wgpkg packages
This commit is contained in:
parent
c6660242de
commit
c6106634fe
9 changed files with 55 additions and 548 deletions
|
|
@ -16,6 +16,8 @@
|
|||
- Added a new plugin handler system that is both faster and more secure.
|
||||
- Added switch for assets to determine whether they are exportable.
|
||||
- Added migration utility for Gallery
|
||||
- Removed old .tmpl files from upgrades. ALL templates in upgrades must now
|
||||
be in Packages!
|
||||
|
||||
7.4.20
|
||||
- fix: Assets with no committed versions may be left as orphans when parent is purged
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
|
||||
# WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
|
|
@ -48,118 +48,51 @@ sub addPackage {
|
|||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
WebGUI::Asset->getImportNode($session)->importPackage( $storage );
|
||||
my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage );
|
||||
|
||||
# Make the package not a package anymore
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a template from a file
|
||||
sub addTemplate {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
my $newFolder = shift;
|
||||
|
||||
open(FILE,"<",$file);
|
||||
my $first = 1;
|
||||
my $create = 0;
|
||||
my $head = 0;
|
||||
my %properties = (className=>"WebGUI::Asset::Template");
|
||||
while (my $line = <FILE>) {
|
||||
if ($first) {
|
||||
$line =~ m/^\#(.*)$/;
|
||||
$properties{id} = $1;
|
||||
$first = 0;
|
||||
}
|
||||
elsif ($line =~ m/^\#create$/) {
|
||||
$create = 1;
|
||||
}
|
||||
elsif ($line =~ m/^\#(.*):(.*)$/) {
|
||||
$properties{$1} = $2;
|
||||
}
|
||||
elsif ($line =~ m/^~~~$/) {
|
||||
$head = 1;
|
||||
}
|
||||
elsif ($head) {
|
||||
$properties{headBlock} .= $line;
|
||||
}
|
||||
else {
|
||||
$properties{template} .= $line;
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
if ($create) {
|
||||
$$newFolder = createNewTemplatesFolder(WebGUI::Asset->getImportNode($session))
|
||||
unless (defined $$newFolder);
|
||||
my $template = $$newFolder->addChild(\%properties, $properties{id});
|
||||
}
|
||||
else {
|
||||
my $template = WebGUI::Asset->new($session,$properties{id}, "WebGUI::Asset::Template");
|
||||
if (defined $template) {
|
||||
my $newRevision = $template->addRevision(\%properties);
|
||||
}
|
||||
}
|
||||
$package->update({ isPackage => 0 });
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open("../..",$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".$session->datetime->time().")");
|
||||
updateTemplates($session);
|
||||
return $session;
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open("../..",$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".$session->datetime->time().")");
|
||||
updateTemplates($session);
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->close();
|
||||
my $session = shift;
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "templates-".$toVersion);
|
||||
print "\tUpdating templates.\n" unless ($quiet);
|
||||
opendir(DIR,"templates-".$toVersion);
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.(tmpl|wgpkg)$/);
|
||||
my $type = $1;
|
||||
$file = "templates-" . $toVersion . "/" . $file;
|
||||
if ($type eq "tmpl") {
|
||||
addTemplate( $session, $file, \$newFolder );
|
||||
}
|
||||
elsif ($type eq "wgpkg") {
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub createNewTemplatesFolder {
|
||||
my $importNode = shift;
|
||||
my $newFolder = $importNode->addChild({
|
||||
className=>"WebGUI::Asset::Wobject::Folder",
|
||||
title => $toVersion." New Templates",
|
||||
menuTitle => $toVersion." New Templates",
|
||||
url=> $toVersion."_new_templates",
|
||||
groupIdView=>"12"
|
||||
});
|
||||
return $newFolder;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
BIN
docs/upgrades/packages-7.5.0/7.5.0_new_templates.wgpkg
Normal file
BIN
docs/upgrades/packages-7.5.0/7.5.0_new_templates.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.5.0/default-tt-template-user.wgpkg
Normal file
BIN
docs/upgrades/packages-7.5.0/default-tt-template-user.wgpkg
Normal file
Binary file not shown.
|
|
@ -1,61 +0,0 @@
|
|||
#managefriends_________
|
||||
#url: managefriendstemplate
|
||||
#title: Manage Friends (default)
|
||||
#menuTitle: Manage Friends
|
||||
#namespace:friends/manage
|
||||
#create
|
||||
<h1>^International("my friends","Friends");</h1>
|
||||
<tmpl_var formHeader>
|
||||
<table>
|
||||
<tr style="background-color: #cccccc;">
|
||||
<td><input type="checkbox" onclick="toggleUserSelectAll(this.form);" value="1" name="checkAllUserIds"></td>
|
||||
<th>^International("name","Friends");</th>
|
||||
<th>^International("status","Friends");</th>
|
||||
</tr>
|
||||
<tmpl_loop friends>
|
||||
<tr>
|
||||
<td><tmpl_var checkboxForm></td>
|
||||
<td><a href="<tmpl_var profileUrl>"><tmpl_var name></a></td>
|
||||
<td><tmpl_var status></td>
|
||||
</tr>
|
||||
</tmpl_loop>
|
||||
</table>
|
||||
<tmpl_var removeFriendButton>
|
||||
<p>^International("send friend email instructions","Friends");</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="subject_formId">^International("subject","Friends");</label></td>
|
||||
<td><tmpl_var subjectForm><tmpl_var sendMessageButton></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="message_formId">^International("message","Friends");</label></td>
|
||||
<td><tmpl_var messageForm></td>
|
||||
</tr>
|
||||
</table>
|
||||
<tmpl_var formFooter>
|
||||
|
||||
<div class="accountOptions">
|
||||
<ul>
|
||||
<tmpl_loop account.options>
|
||||
<li><tmpl_var options.display></li>
|
||||
</tmpl_loop>
|
||||
</ul>
|
||||
</div>
|
||||
~~~
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var userSelectAllToggle = false;
|
||||
function toggleUserSelectAll(form){
|
||||
userSelectAllToggle = userSelectAllToggle ? false : true;
|
||||
for(var i = 0; i < form.userId.length; i++)
|
||||
form.userId[i].checked = userSelectAllToggle;
|
||||
}
|
||||
function confirmRemovalOfFriends (form) {
|
||||
if (confirm('^International("confirm remove friends","Friends");')) {
|
||||
form.op.value = 'removeFriends';
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
|
|
@ -1,311 +0,0 @@
|
|||
#TimeTrackingTMPL000001
|
||||
<tmpl_if session.var.adminOn>
|
||||
<p><tmpl_var controls></p>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if displayTitle>
|
||||
<h2><tmpl_var title></h2>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if description>
|
||||
<div class="fontSettings">
|
||||
<tmpl_var description>
|
||||
</div>
|
||||
</tmpl_if>
|
||||
|
||||
<script language="JavaScript">
|
||||
var nextRowNum = <tmpl_var time.report.rows.total>;
|
||||
var projectTasks = <tmpl_var project.task.array> //Do not put a semi colon at the end of this. The app does it
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function changeOptions(proj,task) {
|
||||
var projId = proj.value;
|
||||
//Remove all options from task list except first one
|
||||
var optLen = task.options.length;
|
||||
while (task.options.length > 1) {
|
||||
var elem = task.options[1];
|
||||
task.removeChild(elem);
|
||||
}
|
||||
|
||||
if(projId != "") {
|
||||
//Add new options
|
||||
var array = projectTasks[projId];
|
||||
for (var word in array) {
|
||||
var opt = document.createElement("option");
|
||||
opt.setAttribute("value",word);
|
||||
opt.appendChild(document.createTextNode(array[word]));
|
||||
task.appendChild(opt);
|
||||
}
|
||||
}
|
||||
|
||||
//Fix IE Bug which causes dymamic repopulation to fail
|
||||
var newtask = task;
|
||||
var col = task.parentNode;
|
||||
col.removeChild(task);
|
||||
col.appendChild(newtask);
|
||||
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function recalcHours() {
|
||||
var newHours = 0;
|
||||
var rows = document.getElementById("ttbody");
|
||||
var rowLen = rows.childNodes.length;
|
||||
|
||||
for(var i = 0; i <= rowLen; i++) {
|
||||
var row = rows.childNodes[i];
|
||||
if(row && row.id && row.id.indexOf("row") > -1) {
|
||||
var rowId = row.id;
|
||||
var idPart = rowId.split("_");
|
||||
var rowNum = idPart[1];
|
||||
var hourElem = document.getElementById("hours_"+rowNum+"_formId");
|
||||
if (hourElem) {
|
||||
newHours += parseFloat(hourElem.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
document.getElementById('totalHours').innerHTML = newHours;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function getTarget(e) {
|
||||
var targ;
|
||||
if (!e) e = window.event || window.Event;
|
||||
if (e.target) targ = e.target;
|
||||
else if (e.srcElement) targ = e.srcElement;
|
||||
if (targ.nodeType == 3) // defeat Safari bug
|
||||
targ = targ.parentNode;
|
||||
return targ
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function removeRow(e) {
|
||||
if(!e) e = window.event || window.Event;
|
||||
var eleId = e;
|
||||
if(typeof(e) == "object") {
|
||||
var targ = getTarget(e);
|
||||
eleId = targ.parentNode.parentNode.id;
|
||||
}
|
||||
var row = document.getElementById(eleId);
|
||||
var ttbody = document.getElementById("ttbody");
|
||||
var timeRowCount = getTimeRowCount();
|
||||
if(timeRowCount > 1) {
|
||||
ttbody.removeChild(row);
|
||||
recalcHours();
|
||||
return;
|
||||
}
|
||||
alert("<tmpl_var js.alert.removeRow.error>");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function getTimeRowCount() {
|
||||
var rows = document.getElementById("ttbody");
|
||||
var rowLen = rows.childNodes.length;
|
||||
var count = 0;
|
||||
|
||||
for(var i = 0; i <= rowLen; i++) {
|
||||
var row = rows.childNodes[i];
|
||||
//Skip Text and Attribute Nodes
|
||||
if(row && row.id && row.id.indexOf("row") > -1) count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function countRows(ttbody) {
|
||||
var tbLen = ttbody.childNodes.length;
|
||||
var rowCount = 0;
|
||||
for (var i = (tbLen - 1); i >= 0; i--) {
|
||||
if(ttbody.childNodes[i].nodeType != 1) continue;
|
||||
rowCount++;
|
||||
}
|
||||
return rowCount;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function addRow() {
|
||||
var rowx = document.getElementById('row_x');
|
||||
|
||||
var ttbody = document.getElementById('ttbody');
|
||||
//Insert row into the right place
|
||||
var rowCount = countRows(ttbody); //Count actual rows for firefox b/c it's stupid
|
||||
var row = ttbody.insertRow((rowCount-2));
|
||||
|
||||
row.id='row_'+nextRowNum;
|
||||
//Task Entry Id
|
||||
var rowLen = rowx.childNodes.length;
|
||||
|
||||
for ( var i = 0; i < rowLen; i++) {
|
||||
if(rowx.childNodes[i].nodeType != 1) continue;
|
||||
// create the cell
|
||||
var clonetd = rowx.childNodes[i].cloneNode(true);
|
||||
|
||||
var td = row.appendChild(clonetd);
|
||||
var colLen = td.childNodes.length;
|
||||
for ( var j = 0; j < colLen; j++) {
|
||||
var node = td.childNodes[j];
|
||||
// alert(node + " " + node.nodeType);
|
||||
//Skip Text and Attirbute Node Types
|
||||
if(node.nodeType != 1) continue;
|
||||
//alert(node + " " + node.tagName);
|
||||
var nodeName = node.name;
|
||||
|
||||
//Handle Image Node
|
||||
if(node.tagName == "IMG") {
|
||||
var newImg = document.createElement('img');
|
||||
newImg.setAttribute("style","cursor:pointer");
|
||||
newImg.src = "<tmpl_var extras>/delete.gif";
|
||||
newImg.onclick = removeRow;
|
||||
|
||||
childLen = node.childNodes.length;
|
||||
// alert("removing this node");
|
||||
td.removeChild(node);
|
||||
|
||||
// alert("appending new node: " + newImg);
|
||||
td.appendChild(newImg);
|
||||
continue;
|
||||
}
|
||||
|
||||
//Skip Nodes that have no names
|
||||
if(nodeName == "") continue;
|
||||
var nameParts = nodeName.split("_");
|
||||
var colName = nameParts[0];
|
||||
//Set New Node Name
|
||||
node.name = colName + "_" + nextRowNum;
|
||||
//Set New Node ID
|
||||
node.id = colName + "_" + nextRowNum + "_formId";
|
||||
|
||||
if(colName == "projectId") {
|
||||
node.onchange = new Function('changeOptions(this,document.getElementById("taskId_'+nextRowNum+'_formId"));');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
nextRowNum++;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
function validateForm(form) {
|
||||
//Set Row Total
|
||||
form.rowTotal.value = (nextRowNum - 1);
|
||||
if(parseFloat(document.getElementById('totalHours').innerHTML) > 168) {
|
||||
alert("<tmpl_var js.alert.validate.hours.error>");
|
||||
return false;
|
||||
}
|
||||
|
||||
var rows = document.getElementById("ttbody");
|
||||
var rowLen = rows.childNodes.length;
|
||||
var isValid = true;
|
||||
|
||||
for(var i = 0; i <= rowLen; i++) {
|
||||
var row = rows.childNodes[i];
|
||||
if(row && row.id && row.id.indexOf("row") > -1) {
|
||||
var rowId = row.id;
|
||||
var idPart = rowId.split("_");
|
||||
var rowNum = idPart[1];
|
||||
var taskDateElem = document.getElementById("taskDate_"+rowNum+"_formId");
|
||||
taskDateElem.style.background='#FFFFFF';
|
||||
var projectElem = document.getElementById("projectId_"+rowNum+"_formId");
|
||||
projectElem.style.background='#FFFFFF';
|
||||
var taskElem = document.getElementById("taskId_"+rowNum+"_formId");
|
||||
taskElem.style.background='#FFFFFF';
|
||||
var hourElem = document.getElementById("hours_"+rowNum+"_formId");
|
||||
hourElem.style.background='#FFFFFF';
|
||||
//Uncomment below if you wish comments to be required
|
||||
//var comments = document.getElementById("hours_"+rowNum+"_formId");
|
||||
//comments.style.background='#FFFFFF';
|
||||
|
||||
//Uncomment below if you wish comments to be required
|
||||
//if(taskDateElem.value != "" || projectElem.value != "" || taskElem.value != "" || hourElem.value != "" || comments.value != "" ) {
|
||||
//Comment below if you wish comments to be required
|
||||
if(taskDateElem.value != "" || projectElem.value != "" || taskElem.value != "" || (hourElem.value != "" && hourElem.value != "0")) {
|
||||
if(taskDateElem.value == "") {
|
||||
taskDateElem.style.background='#FFFF99';
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
if(projectElem.value == "") {
|
||||
projectElem.style.background='#FFFF99';
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
if(taskElem.value == "") {
|
||||
taskElem.style.background='#FFFF99';
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
if(hourElem.value == "" || hourElem.value == 0) {
|
||||
hourElem.style.background='#FFFF99';
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
//Uncomment below if you wish comments to be required
|
||||
/*if(comments.value == "") {
|
||||
commnts.style.background='#FFFF99';
|
||||
isValid = false;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!isValid) {
|
||||
alert("<tmpl_var js.alert.validate.incomplete.error>");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<p><tmpl_if project.manage.url><a href="<tmpl_var project.manage.url>"><tmpl_var project.manage.label></a></tmpl_if></p>
|
||||
<tmpl_var form.header>
|
||||
<tmpl_var form.timetracker>
|
||||
<tmpl_var form.footer>
|
||||
|
||||
~~~
|
||||
|
||||
<style type="text/css">
|
||||
.timeTracking02 {
|
||||
width:850px;
|
||||
}
|
||||
.timeTracking02 td {
|
||||
border:solid silver 1px;
|
||||
border-bottom:solid gray 1px;
|
||||
font-size:9pt;
|
||||
font-family:arial;
|
||||
}
|
||||
tr.tt_title td {
|
||||
font-weight:bold;
|
||||
background-color:#F0F0F0;
|
||||
border-style:none;
|
||||
font-size:11pt;
|
||||
}
|
||||
tr.tt_header td {
|
||||
font-weight:bold;
|
||||
text-align:center;
|
||||
}
|
||||
tr.tt_empty td {
|
||||
border-style:none;
|
||||
}
|
||||
|
||||
a.PM_blueLink {
|
||||
color:#29587E;
|
||||
text-decoration:none;
|
||||
font-weight:bold;
|
||||
}
|
||||
a.PM_blueLink:hover {
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
.pt-select {
|
||||
font-weight: normal;
|
||||
color: black;
|
||||
width: 175px;
|
||||
}
|
||||
.date-select {
|
||||
font-weight: normal;
|
||||
color: black;
|
||||
width: 110px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
|
||||
# WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
|
|
@ -288,57 +288,10 @@ sub addPackage {
|
|||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
WebGUI::Asset->getImportNode($session)->importPackage( $storage );
|
||||
my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage );
|
||||
|
||||
# Make the package not a package anymore
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a template from a file
|
||||
sub addTemplate {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
my $newFolder = shift;
|
||||
|
||||
open(FILE,"<",$file);
|
||||
my $first = 1;
|
||||
my $create = 0;
|
||||
my $head = 0;
|
||||
my %properties = (className=>"WebGUI::Asset::Template");
|
||||
while (my $line = <FILE>) {
|
||||
if ($first) {
|
||||
$line =~ m/^\#(.*)$/;
|
||||
$properties{id} = $1;
|
||||
$first = 0;
|
||||
}
|
||||
elsif ($line =~ m/^\#create$/) {
|
||||
$create = 1;
|
||||
}
|
||||
elsif ($line =~ m/^\#(.*):(.*)$/) {
|
||||
$properties{$1} = $2;
|
||||
}
|
||||
elsif ($line =~ m/^~~~$/) {
|
||||
$head = 1;
|
||||
}
|
||||
elsif ($head) {
|
||||
$properties{headBlock} .= $line;
|
||||
}
|
||||
else {
|
||||
$properties{template} .= $line;
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
if ($create) {
|
||||
$$newFolder = createNewTemplatesFolder(WebGUI::Asset->getImportNode($session))
|
||||
unless (defined $$newFolder);
|
||||
my $template = $$newFolder->addChild(\%properties, $properties{id});
|
||||
}
|
||||
else {
|
||||
my $template = WebGUI::Asset->new($session,$properties{id}, "WebGUI::Asset::Template");
|
||||
if (defined $template) {
|
||||
my $newRevision = $template->addRevision(\%properties);
|
||||
}
|
||||
}
|
||||
$package->update({ isPackage => 0 });
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
|
|
@ -368,35 +321,16 @@ sub finish {
|
|||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "templates-".$toVersion);
|
||||
print "\tUpdating templates.\n" unless ($quiet);
|
||||
opendir(DIR,"templates-".$toVersion);
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.(tmpl|wgpkg)$/);
|
||||
my $type = $1;
|
||||
$file = "templates-" . $toVersion . "/" . $file;
|
||||
if ($type eq "tmpl") {
|
||||
addTemplate( $session, $file, \$newFolder );
|
||||
}
|
||||
elsif ($type eq "wgpkg") {
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub createNewTemplatesFolder {
|
||||
my $importNode = shift;
|
||||
my $newFolder = $importNode->addChild({
|
||||
className=>"WebGUI::Asset::Wobject::Folder",
|
||||
title => $toVersion." New Templates",
|
||||
menuTitle => $toVersion." New Templates",
|
||||
url=> $toVersion."_new_templates",
|
||||
groupIdView=>"12"
|
||||
});
|
||||
return $newFolder;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -198,11 +198,12 @@ A reference to a WebGUI::Storage object that contains a webgui package file.
|
|||
=cut
|
||||
|
||||
sub importPackage {
|
||||
my $self = shift;
|
||||
my $storage = shift;
|
||||
my $decompressed = $storage->untar($storage->getFiles->[0]);
|
||||
my %assets = ();
|
||||
my $error = $self->session->errorHandler;
|
||||
my $self = shift;
|
||||
my $storage = shift;
|
||||
my $decompressed = $storage->untar($storage->getFiles->[0]);
|
||||
my %assets = (); # All the assets we've imported
|
||||
my $package = undef; # The asset package
|
||||
my $error = $self->session->errorHandler;
|
||||
$error->info("Importing package.");
|
||||
foreach my $file (sort(@{$decompressed->getFiles})) {
|
||||
next unless ($decompressed->getFileExtension($file) eq "json");
|
||||
|
|
@ -224,15 +225,24 @@ sub importPackage {
|
|||
my $newAsset = $asset->importAssetData($data);
|
||||
$newAsset->importAssetCollateralData($data);
|
||||
$assets{$newAsset->getId} = $newAsset;
|
||||
|
||||
# First imported asset must be the "package"
|
||||
unless ($package) {
|
||||
$package = $newAsset;
|
||||
}
|
||||
}
|
||||
|
||||
# Handle autocommit workflows
|
||||
if ($self->session->setting->get("autoRequestCommit")) {
|
||||
if ($self->session->setting->get("skipCommitComments")) {
|
||||
WebGUI::VersionTag->getWorking($self->session)->requestCommit;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$self->session->http->setRedirect($self->getUrl("op=commitVersionTag;tagId=".WebGUI::VersionTag->getWorking($self->session)->getId));
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
return $package;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue