schema/mssql.sql
schema/mysql_build.pl # builds site/util/mysql.str
schema/site_users_to_members.sql
+site/cgi-bin/admin/add.fcgi
site/cgi-bin/admin/add.pl
site/cgi-bin/admin/admin.pl
site/cgi-bin/admin/admin_seminar.pl
site/cgi-bin/modules/BSE/UI.pm
site/cgi-bin/modules/BSE/UI/AdminAudit.pm
site/cgi-bin/modules/BSE/UI/AdminDispatch.pm
+site/cgi-bin/modules/BSE/UI/AdminEdit.pm
site/cgi-bin/modules/BSE/UI/AdminImageClean.pm
site/cgi-bin/modules/BSE/UI/AdminImporter.pm
site/cgi-bin/modules/BSE/UI/AdminIPAddress.pm
--- /dev/null
+#!/usr/bin/perl -w
+# -d:ptkdb
+BEGIN { $ENV{DISPLAY} = '192.168.32.54:0.0' }
+use strict;
+use FindBin;
+use lib "$FindBin::Bin/../modules";
+use BSE::UI;
+
+BSE::UI->run_fcgi("BSE::UI::AdminEdit");
use strict;
use FindBin;
use lib "$FindBin::Bin/../modules";
-use Articles;
-use Article;
-use BSE::DB;
-use BSE::Request;
-use BSE::Edit::Base;
-use Carp qw'verbose';
-use Carp 'confess';
-
-# $SIG{__DIE__} =
-# sub {
-# if ($@ =~ /^ENOIMPL\b/) {
-# die $@;
-# }
-# else {
-# confess $@;
-# }
-# };
-
-my $req = BSE::Request->new;
-my $cgi = $req->cgi;
-my $cfg = $req->cfg;
-my $id = $cgi->param('id');
-my $articles = 'Articles'; # for a later switch to proper objects, I hope
-my $result;
-if (defined $id && $id =~ /\d/ && $id == -1) {
- my $obj = get_class('BSE::Edit::Site', $cfg)
- or die "Cannot get sections class";
- $result = $obj->edit_sections($req, $articles);
-}
-elsif (my ($obj, $article) = BSE::Edit::Base->article_class_id($id, $articles, $cfg)) {
- $result = $obj->article_dispatch($req, $article, $articles);
-}
-elsif ($id && $req->is_ajax) {
- $result = $req->json_content
- (
- success => 0,
- error_code => "UNKNOWN",
- message => "Unknown article id $id"
- );
-}
-else {
- # look for a type
- my $obj;
- my $type = $cgi->param('type');
- if ($type && $type !~ /\W/) {
- my $class = "BSE::Edit::$type";
- $obj = get_class($class, $cfg);
- }
- unless ($obj) {
- my $parentid = $cgi->param('parentid');
- my $parent;
- if (($obj, $parent) = BSE::Edit::Base->article_class_id($parentid, $articles, $cfg)) {
- if (my ($class) = $obj->child_types($parent)) {
- $obj = get_class($class, $cfg);
- }
- else {
- undef $obj;
- }
- }
- }
- unless ($obj) {
- # last try
- $obj = get_class("BSE::Edit::Article", $cfg)
- or die "Cannot get article class!!";
- }
- $result = $obj->noarticle_dispatch($req, $articles);
-}
-
-$req->output_result($result);
-
-sub get_class {
- my ($class, $cfg) = @_;
-
- (my $file = $class . ".pm") =~ s!::!/!g;
- eval {
- require $file;
- };
- if ($@) {
- print STDERR "Loading $class: $@\n";
- return;
- }
- return $class->new(cfg=>$cfg, db=>BSE::DB->single);
-}
+use BSE::UI;
+BSE::UI->run("BSE::UI::AdminEdit");
--- /dev/null
+package BSE::UI::AdminEdit;
+use strict;
+use base 'BSE::UI::AdminDispatch';
+use BSE::Edit::Base;
+use Articles;
+
+our $VERSION = "1.000";
+
+sub dispatch {
+ my ($self, $req) = @_;
+
+ my $cgi = $req->cgi;
+ my $cfg = $req->cfg;
+ my $id = $cgi->param('id');
+ my $articles = 'Articles'; # for a later switch to proper objects, I hope
+ my $result;
+ if (defined $id && $id =~ /\d/ && $id == -1) {
+ my $obj = get_class('BSE::Edit::Site', $cfg)
+ or die "Cannot get sections class";
+ $result = $obj->edit_sections($req, $articles);
+ }
+ elsif (my ($obj, $article) = BSE::Edit::Base->article_class_id($id, $articles, $cfg)) {
+ $result = $obj->article_dispatch($req, $article, $articles);
+ }
+ elsif ($id && $req->is_ajax) {
+ $result = $req->json_content
+ (
+ success => 0,
+ error_code => "UNKNOWN",
+ message => "Unknown article id $id"
+ );
+ }
+ else {
+ # look for a type
+ my $obj;
+ my $type = $cgi->param('type');
+ if ($type && $type !~ /\W/) {
+ my $class = "BSE::Edit::$type";
+ $obj = get_class($class, $cfg);
+ }
+ unless ($obj) {
+ my $parentid = $cgi->param('parentid');
+ my $parent;
+ if (($obj, $parent) = BSE::Edit::Base->article_class_id($parentid, $articles, $cfg)) {
+ if (my ($class) = $obj->child_types($parent)) {
+ $obj = get_class($class, $cfg);
+ }
+ else {
+ undef $obj;
+ }
+ }
+ }
+ unless ($obj) {
+ # last try
+ $obj = get_class("BSE::Edit::Article", $cfg)
+ or die "Cannot get article class!!";
+ }
+ $result = $obj->noarticle_dispatch($req, $articles);
+ }
+
+ return $result;
+}
+
+sub get_class {
+ my ($class, $cfg) = @_;
+
+ (my $file = $class . ".pm") =~ s!::!/!g;
+ eval {
+ require $file;
+ };
+ if ($@) {
+ print STDERR "Loading $class: $@\n";
+ return;
+ }
+ return $class->new(cfg=>$cfg, db=>BSE::DB->single);
+}
+
+1;