From 1624ce382eb033c2cf3ef1fe6b9c41beb0b0a91b Mon Sep 17 00:00:00 2001 From: Angelo Naselli Date: Mon, 27 Jan 2014 18:20:30 +0100 Subject: Project structure change --- AdminPanel/Shared.pm | 712 --------------------------------------------------- 1 file changed, 712 deletions(-) delete mode 100644 AdminPanel/Shared.pm (limited to 'AdminPanel/Shared.pm') diff --git a/AdminPanel/Shared.pm b/AdminPanel/Shared.pm deleted file mode 100644 index 583b214c..00000000 --- a/AdminPanel/Shared.pm +++ /dev/null @@ -1,712 +0,0 @@ -#!/usr/bin/perl -# vim: set et ts=4 sw=4: -# Copyright 2012-2013 Angelo Naselli -# -# This file is part of AdminPanel -# -# AdminPanel is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# AdminPanel is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with AdminPanel. If not, see . - -package AdminPanel::Shared; - -=head1 NAME - -AdminPanel::Shared - AdminPanel::Shared contains all the shared routines - needed by AdminPanel and modules - -=head1 SYNOPSIS - - - -=head1 DESCRIPTION - -This module collects all the routines shared between AdminPanel and its modules. - -=head1 EXPORT - - warningMsgBox - msgBox - infoMsgBox - ask_YesOrNo - ask_OkCancel - AboutDialog - trim - - -=head1 SUPPORT - -You can find documentation for this module with the perldoc command: - - perldoc AdminPanel::Shared - -=head1 AUTHOR - -Angelo Naselli - -=head1 COPYRIGHT and LICENSE - -Copyright (C) 2013, Angelo Naselli. - -This file is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This file is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this file. If not, see . - -=head1 FUNCTIONS - -=cut - -use strict; -use warnings; -use diagnostics; - -use lib qw(/usr/lib/libDrakX); -use common qw(N - N_); -use yui; -use base qw(Exporter); - -# TODO move GUI dialogs to Shared::GUI -our @EXPORT = qw( - warningMsgBox - msgBox - infoMsgBox - ask_YesOrNo - ask_OkCancel - ask_fromList - AboutDialog - trim - member -); - - -=head1 VERSION - -Version 0.01 - -=cut - -our $VERSION = '0.01'; - -our $License = N_("This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -"); - - -#============================================================= - -=head2 warningMsgBox - -=head3 INPUT - - $st: string to be swhon into the dialog - -=head3 DESCRIPTION - -This function creates an Warning dialog and show the message -passed as input. - -=cut - -#============================================================= - -sub warningMsgBox { - my ($st) = @_; - my $factory = yui::YUI::widgetFactory; - my $msg_box = $factory->createPopupDialog($yui::YDialogWarnColor); - my $layout = $factory->createVBox($msg_box); - my $align = $factory->createAlignment($layout, 3, 0); - $factory->createLabel( $align, $st, 1, 0); - $align = $factory->createAlignment($layout, 3, 0); - $factory->createPushButton($align, N("Ok")); - $msg_box->waitForEvent(); - - destroy $msg_box; -} - -#============================================================= - -=head2 infoMsgBox - -=head3 INPUT - - $st: string to be swhon into the dialog - -=head3 DESCRIPTION - -This function creates an Info dialog and show the message -passed as input. - -=cut - -#============================================================= - -sub infoMsgBox { - my ($st) = @_; - my $factory = yui::YUI::widgetFactory; - my $msg_box = $factory->createPopupDialog($yui::YDialogInfoColor); - my $layout = $factory->createVBox($msg_box); - my $align = $factory->createAlignment($layout, 3, 0); - $factory->createLabel( $align, $st, 1, 0); - $align = $factory->createAlignment($layout, 3, 0); - $factory->createPushButton($align, N("Ok")); - $msg_box->waitForEvent(); - - destroy $msg_box; -} - -#============================================================= - -=head2 msgBox - -=head3 INPUT - - $st: string to be swhon into the dialog - -=head3 DESCRIPTION - -This function creates a dialog and show the message passed as input. - -=cut - -#============================================================= - -sub msgBox { - my ($st) = @_; - my $factory = yui::YUI::widgetFactory; - my $msg_box = $factory->createPopupDialog($yui::YDialogNormalColor); - my $layout = $factory->createVBox($msg_box); - my $align = $factory->createAlignment($layout, 3, 0); - $factory->createLabel( $align, $st, 1, 0); - $align = $factory->createAlignment($layout, 3, 0); - $factory->createPushButton($align, N("Ok")); - $msg_box->waitForEvent(); - - destroy $msg_box; -} - -#============================================================= - -=head2 ask_OkCancel - -=head3 INPUT - - $title: Title shown as heading - $text: text to be shown into the dialog - -=head3 OUTPUT - - 0: Cancel button has been pressed - 1: Ok button has been pressed - -=head3 DESCRIPTION - -This function create an OK-Cancel dialog with a 'title' and a -'text' passed as parameters. - -=cut - -#============================================================= - -sub ask_OkCancel { - my ($title, $text) = @_; - my $retVal = 0; - my $factory = yui::YUI::widgetFactory; - - my $msg_box = $factory->createPopupDialog($yui::YDialogNormalColor); - my $layout = $factory->createVBox($msg_box); - - my $align = $factory->createAlignment($layout, 3, 0); - ## title with headings true - $factory->createLabel( $align, $title, 1, 0); - $align = $factory->createLeft($layout); - $factory->createLabel( $align, $text, 0, 0); - - $align = $factory->createRight($layout); - my $hbox = $factory->createHBox($align); - my $okButton = $factory->createPushButton($hbox, N("Ok")); - my $cancelButton = $factory->createPushButton($hbox, N("Cancel")); - - my $event = $msg_box->waitForEvent(); - - my $eventType = $event->eventType(); - - if ($eventType == $yui::YEvent::WidgetEvent) { - # widget selected - my $widget = $event->widget(); - $retVal = ($widget == $okButton) ? 1 : 0; - } - - destroy $msg_box; - - return $retVal; -} - -#============================================================= - -=head2 ask_YesOrNo - -=head3 INPUT - - $title: Title shown as heading - $text: question text to be shown into the dialog - -=head3 OUTPUT - - 0: "No" button has been pressed - 1: "Yes" button has been pressed - -=head3 DESCRIPTION - -This function create a Yes-No dialog with a 'title' and a -question 'text' passed as parameters. - -=cut - -#============================================================= - -sub ask_YesOrNo { - my ($title, $text) = @_; - my $retVal = 0; - my $factory = yui::YUI::widgetFactory; - - my $msg_box = $factory->createPopupDialog($yui::YDialogNormalColor); - my $layout = $factory->createVBox($msg_box); - - my $align = $factory->createAlignment($layout, 3, 0); - ## title with headings true - $factory->createLabel( $align, $title, 1, 0); - $align = $factory->createLeft($layout); - $factory->createLabel( $align, $text, 0, 0); - - $align = $factory->createRight($layout); - my $hbox = $factory->createHBox($align); - my $yesButton = $factory->createPushButton($hbox, N("Yes")); - my $noButton = $factory->createPushButton($hbox, N("No")); - - my $event = $msg_box->waitForEvent(); - - my $eventType = $event->eventType(); - - if ($eventType == $yui::YEvent::WidgetEvent) { - # widget selected - my $widget = $event->widget(); - $retVal = ($widget == $yesButton) ? 1 : 0; - } - - destroy $msg_box; - - return $retVal; -} - - -#============================================================= - -=head2 ask_fromList - -=head3 INPUT - - $title: dialog title - $text: combobox heading - $list: item list - -=head3 OUTPUT - - undef: if Cancel button has been pressed - selected item: if Ok button has been pressed - -=head3 DESCRIPTION - -This function create a dialog with a combobox in which to -choose an item from a given list. - -=cut - -#============================================================= - -sub ask_fromList { - my ($title, $text, $list) = @_; - - die "Title is mandatory" if (! $title); - die "Heading is mandatory" if (! $text); - die "List is mandatory" if (! $list ); - die "At least one element is mandatory into list" if (scalar(@$list) < 1); - - my $choice = undef; - my $factory = yui::YUI::widgetFactory; - - ## push application title - my $appTitle = yui::YUI::app()->applicationTitle(); - ## set new title to get it in dialog - yui::YUI::app()->setApplicationTitle($title); - - my $dlg = $factory->createPopupDialog($yui::YDialogNormalColor); - my $layout = $factory->createVBox($dlg); - - my $combo = $factory->createComboBox($layout, $text, 0); - my $itemColl = new yui::YItemCollection; - foreach (@$list) { - my $item = new yui::YItem ($_, 0); - $itemColl->push($item); - $item->DISOWN(); - } - $combo->addItems($itemColl); - - my $align = $factory->createRight($layout); - my $hbox = $factory->createHBox($align); - my $okButton = $factory->createPushButton($hbox, N("Ok")); - my $cancelButton = $factory->createPushButton($hbox, N("Cancel")); - - while (1) { - my $event = $dlg->waitForEvent(); - - my $eventType = $event->eventType(); - #event type checking - if ($eventType == $yui::YEvent::CancelEvent) { - last; - } - elsif ($eventType == $yui::YEvent::WidgetEvent) { - # widget selected - my $widget = $event->widget(); - - if ($widget == $cancelButton) { - last; - } - elsif ($widget == $okButton) { - my $item = $combo->selectedItem(); - $choice = $item->label() if ($item); - last; - } - } - } - - destroy $dlg; - - #restore old application title - yui::YUI::app()->setApplicationTitle($appTitle); - - return $choice; -} - - -#============================================================= - -=head2 AboutDialog - -=head3 INPUT - - $opts: optional options needed to get info for dialog. - name => Application Name, - version => Application Version, - copyright => Copyright ususally like "Copyright (C) copyright-holder Year", - license => License text, - comments => A comment related to application to be shown, - website => Web site URL, - website_label => Label to hide previous link, - authors => Application authors, - translator_credits => Application translators - documenters => Application documenters - artists => Graphic applicaton designers - logo => picture path to be shown as application logo - -=head3 OUTPUT - - Output_Parameter: out_par_description - -=head3 DESCRIPTION - -About dialog implementation, this dialog can be used by -modules, to show authors, license, credits, etc. - -=cut - -#============================================================= - -sub AboutDialog { - my ($opts) = @_; - - # Credits dialog - sub Credits { - my ($opts) = @_; - - my $factory = yui::YUI::widgetFactory; - my $optional = yui::YUI::optionalWidgetFactory; - - my $creditsdlg = $factory->createPopupDialog(); - my $layout = $factory->createVBox($creditsdlg); - - # header - $factory->createHBox($layout); - my $hbox = $factory->createHBox($layout); - my $align = $factory->createHVCenter($hbox); - $hbox = $factory->createHBox($align); - $factory->createHeading($hbox, N("Credits")); - - # Credits tab widget - if ($optional->hasDumbTab()) { - $hbox = $factory->createHBox($layout); - $align = $factory->createAlignment($hbox, 3, 0); - my $dumptab = $optional->createDumbTab($align); - my $item = new yui::YItem(N("Written by")); - $item->setSelected(); - $dumptab->addItem( $item ); - $item->DISOWN(); - if (exists $opts->{documenters}) { - $item = new yui::YItem(N("Documented by")); - $dumptab->addItem( $item ); - $item->DISOWN(); - } - if (exists $opts->{translator_credits}) { - $item = new yui::YItem(N("Translated by")); - $dumptab->addItem( $item ); - $item->DISOWN(); - } - if (exists $opts->{artists}) { - $item = new yui::YItem(N("Artwork by")); - $dumptab->addItem( $item ); - $item->DISOWN(); - } - my $vbox = $factory->createVBox($dumptab); - $align = $factory->createLeft($vbox); - $factory->createVSpacing($vbox, 1.0); - my $label = $factory->createLabel( $align, "***", 0); - $factory->createVSpacing($vbox, 1.0); - - # start value for first Item - $label->setValue($opts->{authors}) if exists $opts->{authors}; - - # Close button - $align = $factory->createRight($layout); - my $closeButton = $factory->createPushButton($align, N("Close")); - - # manage Credits dialog events - while(1) { - my $event = $creditsdlg->waitForEvent(); - my $eventType = $event->eventType(); - - #event type checking - if ($eventType == $yui::YEvent::CancelEvent) { - last; - } - elsif ($eventType == $yui::YEvent::WidgetEvent) { - # widget selected - my $widget = $event->widget(); - - if ($widget == $closeButton) { - last; - } - } - elsif ($event->item() ) { - # $eventType MenuEvent!!! - my $itemLabel = $event->item()->label(); - $itemLabel =~ s/&//; #remove shortcut from label - if ($itemLabel eq N("Written by")) { - $label->setValue($opts->{authors}) if exists $opts->{authors}; - } - elsif ($itemLabel eq N("Documented by")) { - $label->setValue($opts->{documenters}) if exists $opts->{documenters}; - } - elsif ($itemLabel eq N("Translated by")) { - $label->setValue($opts->{translator_credits}) if exists $opts->{translator_credits}; - } - elsif ($itemLabel eq N("Artwork by")) { - $label->setValue($opts->{artists}) if exists $opts->{artists}; - } - } - } - } - else { - print "No tab widgets available!\n"; - } - destroy $creditsdlg; - } - - # License dialog - sub License { - my ($license) = @_; - - my $factory = yui::YUI::widgetFactory; - my $licensedlg = $factory->createPopupDialog(); - my $layout = $factory->createVBox($licensedlg); - - # header - $factory->createHBox($layout); - my $hbox = $factory->createHBox($layout); - my $align = $factory->createHVCenter($hbox); - $hbox = $factory->createHBox($align); - $factory->createHeading($hbox, N("License")); - - # license - $hbox = $factory->createHBox($layout); - $align = $factory->createAlignment($hbox, 3, 0); - $factory->createLabel( $align, $license); - - $align = $factory->createRight($layout); - my $closeButton = $factory->createPushButton($align, N("Close")); - - $licensedlg->waitForEvent(); - - destroy $licensedlg; - } - - my $website = "http://www.mageia.org"; - my $website_label = "Mageia"; - my $factory = yui::YUI::widgetFactory; - my $aboutdlg = $factory->createPopupDialog(); - my $layout = $factory->createVBox($aboutdlg); - - # header - $factory->createHBox($layout); - my $hbox_iconbar = $factory->createHBox($layout); - my $align = $factory->createHVCenter($hbox_iconbar); - $hbox_iconbar = $factory->createHBox($align); - $factory->createImage($hbox_iconbar, $opts->{logo}) if exists $opts->{logo}; - my $header = $opts->{name} . " " . $opts->{version}; - $factory->createHeading($hbox_iconbar, $header); - - # comments - my $hbox = $factory->createHBox($layout); - $align = $factory->createAlignment($hbox, 3, 0); - $factory->createLabel( $align, $opts->{comments}, 0, 0) if exists $opts->{comments}; - - # copyright - $hbox = $factory->createHBox($layout); - $align = $factory->createHVCenter($hbox); - $factory->createLabel( $align, $opts->{copyright}, 0, 0) if exists $opts->{copyright}; - - # website / website_label - $hbox = $factory->createHBox($layout); - $align = $factory->createHVCenter($hbox); - $website = $opts->{website} if exists $opts->{website}; - $website_label = $opts->{website_label} if exists $opts->{website_label}; - my $webref = "". $website_label .""; - $factory->createRichText( $align, $webref); - - # Credits, License and Close buttons - $hbox = $factory->createHBox($layout); - $align = $factory->createLeft($hbox); - my $hbox1 = $factory->createHBox($align); - my $creditsButton = $factory->createPushButton($hbox1, N("Credits")); - my $licenseButton = $factory->createPushButton($hbox1, N("License")); - $factory->createHSpacing($hbox, 2.0); - $align = $factory->createRight($hbox); - my $closeButton = $factory->createPushButton($align, N("Close")); - - # AboutDialog Events - while(1) { - my $event = $aboutdlg->waitForEvent(); - my $eventType = $event->eventType(); - - #event type checking - if ($eventType == $yui::YEvent::CancelEvent) { - last; - } - elsif ($eventType == $yui::YEvent::WidgetEvent) { - # widget selected - my $widget = $event->widget(); - - if($widget == $licenseButton) { - License($opts->{license}) if exists $opts->{license}; - } - elsif ($widget == $creditsButton) { - Credits($opts); - } - elsif ($widget == $closeButton) { - last; - } - } - elsif ($eventType == $yui::YEvent::MenuEvent) { - my $menuEvent = yui::YMGAWidgetFactory::getYMenuEvent($event); - #TODO check why is not working - run_program::raw({ detach => 1 }, 'www-browser', $menuEvent->id()); - } - } - - destroy $aboutdlg; -} - -#============================================================= - -=head2 trim - -=head3 INPUT - - $st: String to be trimmed - -=head3 OUTPUT - - $st: trimmed string - -=head3 DESCRIPTION - -This function trim the given string. - -=cut - -#============================================================= - -sub trim { - my ($st) = shift; - $st =~s /^\s+//g; - $st =~s /\s+$//g; - return $st; -} - -#============================================================= - -=head2 member - -=head3 INPUT - - $e: Array element to be found into array - @_: any array - -=head3 OUTPUT - - 1 or 0: if $e is a member of the given array - -=head3 DESCRIPTION - -This function look for an element into an array - -=cut - -#============================================================= -sub member { - my $e = shift; - foreach (@_) { - $e eq $_ and return 1; - } - 0; -} - -1; # End of AdminPanel::Shared -- cgit v1.2.1