# Selima Website Content Management System # UserPref.pm: The user preference form. # Copyright (c) 2004-2018 imacat. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Author: imacat # First written: 2004-10-14 package Selima::Form::UserPref; use 5.008; use strict; use warnings; use base qw(Selima::Form); use Selima::DataVars qw(:scptconf); use Selima::FormFunc; use Selima::HTTP; use Selima::MarkAbbr; use Selima::ShortCut; use Selima::Unicode; use Selima::UserName; # new: Initialize the HTML form table displayer sub new : method { local ($_, %_); my ($class, $status, $args, $self); ($class, $status, $args) = @_; $args = {} if !defined $args; # $args must be a hash reference http_500 "type of argument 2 must be a hash reference" if ref($args) ne "HASH"; $$args{"type"} = form_type if !exists $$args{"type"}; $$args{"table"} = "usermem" if !exists $$args{"table"}; $$args{"deltext"} = C_("Delete this user preference") if !exists $$args{"deltext"}; if (!exists $$args{"summary"}) { # A form to create a new item if ($$args{"type"} eq "new") { $$args{"summary"} = C_("This table provides you a form to add a new user preference."); # A form to edit a current item } elsif ($$args{"type"} eq "cur") { $$args{"summary"} = C_("This table provides you a form to modify a current user preference."); # A form to delete a current item } elsif ($$args{"type"} eq "del") { $$args{"summary"} = C_("This table provides you a form to delete a user preference."); } } if (!exists $$args{"cols"}) { # A form to create a new item if ($$args{"type"} eq "new") { $$args{"cols"} = [qw(usr domain name value)]; # A form to edit a current item # A form to delete a current item } elsif ($$args{"type"} eq "cur" || $$args{"type"} eq "del") { $$args{"cols"} = [qw(sn usr domain name value created createdby updated updatedby)]; } } if (!exists $$args{"title"}) { # A form to create a new item if ($$args{"type"} eq "new") { $$args{"title"} = C_("Add A New User Preference"); # A form to edit a current item } elsif ($$args{"type"} eq "cur") { $$args{"title"} = C_("Modify a Current User Preference"); # A form to delete a current item } elsif ($$args{"type"} eq "del") { $$args{"title"} = C_("Delete a User Preference"); } } $self = $class->SUPER::new($status, $args); $self->{"form"}->delete("usr") if defined $self->{"form"}->param("usr") && (!defined $self->{"form"}->param("usr") || $self->{"form"}->param("usr") eq ""); return $self; } # _html_col_domain: The preference domain sub _html_col_domain : method { $_[0]->_html_coltmpl_text_null("domain", h_abbr(C_("Domain:")), "everywhere", h_abbr(C_("Everywhere"))); } # _html_col_usr: The user sub _html_col_usr : method { $_[0]->_html_coltmpl_call_null("usr", h_abbr(C_("User:")), "everyone", h_abbr(C_("Everyone")), \&username); } # _html_col_value: The preference value sub _html_col_value : method { $_[0]->_html_coltmpl_text("value", h_abbr(C_("Value:"))); } return 1;