diff --git a/docs/upgrades/upgrade_3.7.0-3.8.0.sql b/docs/upgrades/upgrade_3.7.0-3.8.0.sql
index 3909175e8..89bb3178c 100644
--- a/docs/upgrades/upgrade_3.7.0-3.8.0.sql
+++ b/docs/upgrades/upgrade_3.7.0-3.8.0.sql
@@ -68,6 +68,10 @@ delete from widget where namespace='MessageBoard';
alter table MessageBoard change widgetId wobjectId int not null;
alter table discussion change widgetId wobjectId int not null;
+insert into wobject (wobjectId, pageId, title, displayTitle, processMacros, description, dateAdded, addedBy, namespace, lastEdited, editedBy, templatePosition, sequenceNumber, startDate, endDate) select widgetId, pageId, title, displayTitle, processMacros, description, dateAdded, addedBy, namespace, lastEdited, editedBy, templatePosition, sequenceNumber, dateAdded, 1336444487 from widget where namespace='ExtraColumn';
+delete from widget where namespace='ExtraColumn';
+alter table ExtraColumn change widgetId wobjectId int not null;
+
delete from international where language='Svenska';
diff --git a/lib/WebGUI/Widget/ExtraColumn.pm b/lib/WebGUI/Widget/ExtraColumn.pm
deleted file mode 100644
index 3061430fe..000000000
--- a/lib/WebGUI/Widget/ExtraColumn.pm
+++ /dev/null
@@ -1,150 +0,0 @@
-package WebGUI::Widget::ExtraColumn;
-
-our $namespace = "ExtraColumn";
-
-#-------------------------------------------------------------------
-# WebGUI is Copyright 2001-2002 Plain Black Software.
-#-------------------------------------------------------------------
-# Please read the legal notices (docs/legal.txt) and the license
-# (docs/license.txt) that came with this distribution before using
-# this software.
-#-------------------------------------------------------------------
-# http://www.plainblack.com info@plainblack.com
-#-------------------------------------------------------------------
-
-use strict;
-use Tie::CPHash;
-use WebGUI::International;
-use WebGUI::Privilege;
-use WebGUI::Session;
-use WebGUI::Shortcut;
-use WebGUI::SQL;
-use WebGUI::Widget;
-
-#-------------------------------------------------------------------
-sub duplicate {
- my (%data, $newWidgetId, $pageId);
- tie %data, 'Tie::CPHash';
- %data = getProperties($namespace,$_[0]);
- $pageId = $_[1] || $data{pageId};
- $newWidgetId = create($pageId,$namespace,$data{title},
- $data{displayTitle},$data{description},$data{processMacros},$data{templatePosition});
- WebGUI::SQL->write("insert into ExtraColumn values ($newWidgetId, '$data{spacer}', '$data{width}', ".
- quote($data{class}).")");
-}
-
-#-------------------------------------------------------------------
-sub purge {
- purgeWidget($_[0],$_[1],$namespace);
-}
-
-#-------------------------------------------------------------------
-sub widgetName {
- return WebGUI::International::get(1,$namespace);
-}
-
-#-------------------------------------------------------------------
-sub www_add {
- my ($output, %hash);
- tie %hash, 'Tie::IxHash';
- if (WebGUI::Privilege::canEditPage()) {
- $output = helpLink(1,$namespace);
- $output .= '
'.WebGUI::International::get(2,$namespace).'
';
- $output .= formHeader();
- $output .= WebGUI::Form::hidden("widget",$namespace);
- $output .= WebGUI::Form::hidden("func","addSave");
- $output .= WebGUI::Form::hidden("title","column");
- $output .= '';
- %hash = WebGUI::Widget::getPositions();
- $output .= tableFormRow(WebGUI::International::get(363),WebGUI::Form::selectList("templatePosition",\%hash));
- $output .= tableFormRow(WebGUI::International::get(3,$namespace),WebGUI::Form::text("spacer",20,3,10));
- $output .= tableFormRow(WebGUI::International::get(4,$namespace),WebGUI::Form::text("width",20,3,200));
- $output .= tableFormRow(WebGUI::International::get(5,$namespace),WebGUI::Form::text("class",20,50,"content"));
- $output .= formSave();
- $output .= '
';
- return $output;
- } else {
- return WebGUI::Privilege::insufficient();
- }
- return $output;
-}
-
-#-------------------------------------------------------------------
-sub www_addSave {
- my ($widgetId, $displayTitle, $image, $attachment);
- if (WebGUI::Privilege::canEditPage()) {
- $widgetId = create($session{page}{pageId},$session{form}{widget},$session{form}{title},$session{form}{displayTitle},$session{form}{description},$session{form}{processMacros},$session{form}{templatePosition});
- WebGUI::SQL->write("insert into ExtraColumn values ($widgetId, '$session{form}{spacer}', '$session{form}{width}', ".quote($session{form}{class}).")");
- return "";
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_copy {
- if (WebGUI::Privilege::canEditPage()) {
- duplicate($session{form}{wid});
- return "";
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_edit {
- my ($output, %data, %hash, @array);
- tie %hash, 'Tie::IxHash';
- tie %data, 'Tie::CPHash';
- if (WebGUI::Privilege::canEditPage()) {
- %data = getProperties($namespace,$session{form}{wid});
- $output = helpLink(1,$namespace);
- $output .= ''.WebGUI::International::get(6,$namespace).'
';
- $output .= formHeader();
- $output .= WebGUI::Form::hidden("wid",$session{form}{wid});
- $output .= WebGUI::Form::hidden("func","editSave");
- $output .= WebGUI::Form::hidden("title","column");
- $output .= '';
- %hash = WebGUI::Widget::getPositions();
- $array[0] = $data{templatePosition};
- $output .= tableFormRow(WebGUI::International::get(363),WebGUI::Form::selectList("templatePosition",\%hash,\@array));
- $output .= tableFormRow(WebGUI::International::get(3,$namespace),WebGUI::Form::text("spacer",20,3,$data{spacer}));
- $output .= tableFormRow(WebGUI::International::get(4,$namespace),WebGUI::Form::text("width",20,3,$data{width}));
- $output .= tableFormRow(WebGUI::International::get(5,$namespace),WebGUI::Form::text("class",20,50,$data{class}));
- $output .= formSave();
- $output .= '
';
- return $output;
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_editSave {
- my ($widgetId, $displayTitle);
- if (WebGUI::Privilege::canEditPage()) {
- WebGUI::SQL->write("update ExtraColumn set spacer='$session{form}{spacer}', width='$session{form}{width}', class=".quote($session{form}{class})." where widgetId=$session{form}{wid}");
- return "";
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_view {
- my (%data, @test, $output);
- tie %data, 'Tie::CPHash';
- %data = getProperties($namespace,$_[0]);
- if (defined %data) {
- $output = ' | ';
- }
- return $output;
-}
-
-
-
-
-
-
-
-1;
diff --git a/lib/WebGUI/Wobject/ExtraColumn.pm b/lib/WebGUI/Wobject/ExtraColumn.pm
new file mode 100644
index 000000000..530faae35
--- /dev/null
+++ b/lib/WebGUI/Wobject/ExtraColumn.pm
@@ -0,0 +1,123 @@
+package WebGUI::Wobject::ExtraColumn;
+
+#-------------------------------------------------------------------
+# WebGUI is Copyright 2001-2002 Plain Black Software.
+#-------------------------------------------------------------------
+# Please read the legal notices (docs/legal.txt) and the license
+# (docs/license.txt) that came with this distribution before using
+# this software.
+#-------------------------------------------------------------------
+# http://www.plainblack.com info@plainblack.com
+#-------------------------------------------------------------------
+
+use strict;
+use Tie::CPHash;
+use WebGUI::HTMLForm;
+use WebGUI::Icon;
+use WebGUI::International;
+use WebGUI::Privilege;
+use WebGUI::Session;
+use WebGUI::SQL;
+use WebGUI::Wobject;
+
+our @ISA = qw(WebGUI::Wobject);
+our $namespace = "ExtraColumn";
+our $name = WebGUI::International::get(1,$namespace);
+
+
+#-------------------------------------------------------------------
+sub duplicate {
+ my ($w);
+ $w = $_[0]->SUPER::duplicate($_[1]);
+ $w = WebGUI::Wobject::ExtraColumn->new({wobjectId=>$w,namespace=>$namespace});
+ $w->set({
+ spacer=>$_[0]->get("spacer"),
+ width=>$_[0]->get("width"),
+ class=>$_[0]->get("class")
+ });
+}
+
+#-------------------------------------------------------------------
+sub new {
+ my ($self, $class, $property);
+ $class = shift;
+ $property = shift;
+ $self = WebGUI::Wobject->new($property);
+ bless $self, $class;
+}
+
+#-------------------------------------------------------------------
+sub set {
+ $_[0]->SUPER::set($_[1],[qw(spacer width class)]);
+}
+
+#-------------------------------------------------------------------
+sub www_copy {
+ if (WebGUI::Privilege::canEditPage()) {
+ $_[0]->duplicate;
+ return "";
+ } else {
+ return WebGUI::Privilege::insufficient();
+ }
+}
+
+#-------------------------------------------------------------------
+sub www_edit {
+ my ($output, $f, $endDate, $width, $class, $spacer);
+ if (WebGUI::Privilege::canEditPage()) {
+ $output = helpIcon(1,$namespace);
+ $output .= ''.WebGUI::International::get(6,$namespace).'';
+ if ($_[0]->get("wobjectId") eq "new") {
+ $width = 200;
+ $spacer = 10;
+ } else {
+ $width = $_[0]->get("width");
+ $spacer = $_[0]->get("spacer");
+ }
+ $class = $_[0]->get("class") || "content";
+ $endDate = $_[0]->get("endDate") || (time()+315360000);
+ $f = WebGUI::HTMLForm->new;
+ $f->hidden("wid",$_[0]->get("wobjectId"));
+ $f->hidden("namespace",$_[0]->get("namespace")) if ($_[0]->get("wobjectId") eq "new");
+ $f->hidden("func","editSave");
+ $f->readOnly($_[0]->get("wobjectId"),WebGUI::International::get(499));
+ $f->hidden("title",$namespace);
+ $f->hidden("displayTitle",0);
+ $f->hidden("processMacros",0);
+ $f->hidden("templatePosition",'A');
+ $f->date("startDate",WebGUI::International::get(497),$_[0]->get("startDate"));
+ $f->date("endDate",WebGUI::International::get(498),$endDate);
+ $f->integer("spacer",WebGUI::International::get(3,$namespace),$spacer);
+ $f->integer("width",WebGUI::International::get(4,$namespace),$width);
+ $f->text("class",WebGUI::International::get(5,$namespace),$class);
+ $f->submit;
+ $output .= $f->print;
+ return $output;
+ } else {
+ return WebGUI::Privilege::insufficient();
+ }
+}
+
+#-------------------------------------------------------------------
+sub www_editSave {
+ if (WebGUI::Privilege::canEditPage()) {
+ $_[0]->SUPER::www_editSave();
+ $_[0]->set({
+ spacer=>$session{form}{spacer},
+ width=>$session{form}{width},
+ class=>$session{form}{class}
+ });
+ return "";
+ } else {
+ return WebGUI::Privilege::insufficient();
+ }
+}
+
+#-------------------------------------------------------------------
+sub www_view {
+ return ' | | ';
+}
+
+
+1;
+
|