View | Details | Raw Unified | Return to bug 18483
Collapse All | Expand All

(-)a/edithelp.pl (-11 / +2 lines)
Lines 18-23 Link Here
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
use C4::Koha;
21
use C4::Output;
22
use C4::Output;
22
use C4::Templates;
23
use C4::Templates;
23
use C4::Auth;
24
use C4::Auth;
Lines 45-61 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
45
        query           => $input,
46
        query           => $input,
46
        type            => "intranet",
47
        type            => "intranet",
47
        authnotrequired => 0,
48
        authnotrequired => 0,
48
        flagsrequired   => {
49
        flagsrequired   => { tools => 'edit_help' },
49
            catalogue        => 1,
50
            circulate        => 1,
51
            parameters       => 1,
52
            borrowers        => 1,
53
            permissions      => 1,
54
            reserveforothers => 1,
55
            reserveforself   => 1,
56
            editcatalogue    => 1,
57
            updatecharges    => 1,
58
        },
59
        debug => 1,
50
        debug => 1,
60
    }
51
    }
61
);
52
);
(-)a/help.pl (-4 / +46 lines)
Lines 21-27 use strict; Link Here
21
use warnings;
21
use warnings;
22
use C4::Templates;
22
use C4::Templates;
23
use C4::Output;
23
use C4::Output;
24
# use C4::Auth;
24
use C4::NewsChannels; # GetNewsToDisplay
25
use C4::Auth;
25
use C4::Context;
26
use C4::Context;
26
use CGI qw ( -utf8 );
27
use CGI qw ( -utf8 );
27
28
Lines 47-70 C4::Context->interface('intranet'); Link Here
47
our $refer = $query->param('url');
48
our $refer = $query->param('url');
48
$refer = $query->referer()  if !$refer || $refer eq 'undefined';
49
$refer = $query->referer()  if !$refer || $refer eq 'undefined';
49
my $from = _help_template_file_of_url($refer);
50
my $from = _help_template_file_of_url($refer);
51
my $helpkey = substr( $from, 0, rindex( $from, q{.} ) );
50
my $htdocs = C4::Context->config('intrahtdocs');
52
my $htdocs = C4::Context->config('intrahtdocs');
51
53
52
#
54
my $helpsys = C4::Context->preference('HelpSystem');
55
56
#Template for 'classic' Koha help text (filebased) if needed, otherwise no text
57
53
# checking that the help file exist, otherwise, display nohelp.tt page
58
# checking that the help file exist, otherwise, display nohelp.tt page
54
#
55
my ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
59
my ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
60
56
unless ( -e "$htdocs/$theme/$lang/modules/$from" ) {
61
unless ( -e "$htdocs/$theme/$lang/modules/$from" ) {
57
    $from = "help/nohelp.tt";
62
    $from = "help/nohelp.tt";
58
    ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
63
    ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
59
}
64
}
60
65
61
my $template = C4::Templates::gettemplate($from, 'intranet', $query);
66
# Classic Koha help text not used
67
if ( $helpsys eq 'newsbased' ) {
68
    #Template without classic Koha help text
69
    $from = "help/nohelptext.tt";
70
    ( $theme, $lang ) = C4::Templates::themelanguage( $htdocs, $from, "intranet", $query );
71
}
72
73
#my $template = C4::Templates::gettemplate($from, 'intranet', $query);
74
75
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
76
    {
77
        template_name   => $from,
78
        query           => $query,
79
        type            => "intranet",
80
        authnotrequired => 0,
81
    }
82
);
83
84
85
86
62
$template->param(
87
$template->param(
63
    referer => $refer,
88
    referer => $refer,
89
    helpkey => $helpkey,
64
    intranetstylesheet => C4::Context->preference("intranetstylesheet"),
90
    intranetstylesheet => C4::Context->preference("intranetstylesheet"),
65
    intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
91
    intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
92
    helpsystem => $helpsys,
66
);
93
);
67
94
95
if ( index($helpsys,'newsbased') != -1 || index ($helpsys,'filebased') != -1 ) {
96
97
    my $homebranch;
98
    if (C4::Context->userenv) {
99
        $homebranch = C4::Context->userenv->{'branch'};
100
    }
101
    my $help_from_news   = &GetNewsToDisplay('staffhelp', $homebranch);
102
    my $help_from_news_count = scalar @$help_from_news;
103
    $template->param(
104
        help_from_news       => $help_from_news,
105
        help_from_news_count => $help_from_news_count,
106
        homebranch           => $homebranch
107
    );
108
}
109
68
my $help_version = C4::Context->preference("Version");
110
my $help_version = C4::Context->preference("Version");
69
if ( $help_version =~ m|^(\d+)\.(\d{2}).*$| ) {
111
if ( $help_version =~ m|^(\d+)\.(\d{2}).*$| ) {
70
    my $version = $1;
112
    my $version = $1;
(-)a/installer/data/mysql/atomicupdate/bug_18472-Add_system_preference_CustomOnlineHelpStaff.perl (-1 / +1 lines)
Lines 1-7 Link Here
1
$DBversion = 'XXX';  # will be replaced by the RM
1
$DBversion = 'XXX';  # will be replaced by the RM
2
if( CheckVersion( $DBversion ) ) {
2
if( CheckVersion( $DBversion ) ) {
3
    # you can use $dbh here like:
3
    # you can use $dbh here like:
4
    $dbh->do("INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES  ('HelpSystem', 'filebased', 'filebased', 'Select online help system.', 'multiple')" );
4
    $dbh->do("INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES  ('HelpSystem', 'filebased', 'filebased|newsbased', 'Select online help system.', 'multiple')" );
5
    $dbh->do("INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES  ('EnableEditingFilebasedHelp', '1', '', 'Enable editing of file based Koha help.', 'yesno')" );
5
    $dbh->do("INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES  ('EnableEditingFilebasedHelp', '1', '', 'Enable editing of file based Koha help.', 'yesno')" );
6
6
7
    # or perform some test and warn
7
    # or perform some test and warn
(-)a/installer/data/mysql/atomicupdate/bug_18483_news-driven-help-system.perl (+17 lines)
Line 0 Link Here
1
$DBversion = 'XXXX';  # will be replaced by the RM
2
if( CheckVersion( $DBversion ) ) {
3
    # you can use $dbh here like:
4
    $dbh->do( "UPDATE systempreferences SET VALUE = 'filebased', OPTIONS = 'filebased|newsbased' where variable = 'HelpSystem'" );
5
6
    $dbh->do( "ALTER TABLE opac_news ADD COLUMN helpkey varchar(250) AFTER lang ");
7
    $dbh->do( "INSERT IGNORE INTO permissions (module_bit, code, description) VALUES (13, 'edit_help', 'Edit custom help');" );
8
9
    # or perform some test and warn
10
    # if( !column_exists( 'biblio', 'biblionumber' ) ) {
11
    #    warn "There is something wrong";
12
    # }
13
14
    # Always end with this (adjust the bug info)
15
    SetVersion( $DBversion );
16
    print "Upgrade to $DBversion done (Bug 18483 - Customised help: Enhance staff client with news based, easily editable help system)\n";
17
}
(-)a/installer/data/mysql/sysprefs.sql (-1 / +1 lines)
Lines 115-121 INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` Link Here
115
('CronjobLog','0',NULL,'If ON, log information from cron jobs.','YesNo'),
115
('CronjobLog','0',NULL,'If ON, log information from cron jobs.','YesNo'),
116
('CumulativeRestrictionPeriods',0,NULL,'Cumulate the restriction periods instead of keeping the highest','YesNo'),
116
('CumulativeRestrictionPeriods',0,NULL,'Cumulate the restriction periods instead of keeping the highest','YesNo'),
117
('CurrencyFormat','US','US|FR|CH','Determines the display format of currencies. eg: \'36000\' is displayed as \'360 000,00\'  in \'FR\' or \'360,000.00\'  in \'US\'.','Choice'),
117
('CurrencyFormat','US','US|FR|CH','Determines the display format of currencies. eg: \'36000\' is displayed as \'360 000,00\'  in \'FR\' or \'360,000.00\'  in \'US\'.','Choice'),
118
('HelpSystem', 'filebased', 'filebased', 'Select online help system.', 'multiple'),
118
('HelpSystem', 'filebased', 'filebased|newsbased', 'Select online help system.', 'multiple'),
119
('EnableEditingFilebasedHelp', '1', '', 'Enable editing of file based Koha help.', 'yesno'),
119
('EnableEditingFilebasedHelp', '1', '', 'Enable editing of file based Koha help.', 'yesno'),
120
('dateformat','us','metric|us|iso|dmydot','Define global date format (us mm/dd/yyyy, metric dd/mm/yyy, ISO yyyy-mm-dd, dmydot dd.mm.yyyy)','Choice'),
120
('dateformat','us','metric|us|iso|dmydot','Define global date format (us mm/dd/yyyy, metric dd/mm/yyy, ISO yyyy-mm-dd, dmydot dd.mm.yyyy)','Choice'),
121
('DebugLevel','2','0|1|2','Define the level of debugging information sent to the browser when errors are encountered (set to 0 in production). 0=none, 1=some, 2=most','Choice'),
121
('DebugLevel','2','0|1|2','Define the level of debugging information sent to the browser when errors are encountered (set to 0 in production). 0=none, 1=some, 2=most','Choice'),
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/header.inc (-1 / +1 lines)
Lines 98-104 Link Here
98
                    </li>
98
                    </li>
99
                </ul>
99
                </ul>
100
            </li>
100
            </li>
101
                [% IF Koha.Preference('HelpSystem') == 'filebased' %]
101
                [% IF Koha.Preference('HelpSystem').match('filebased|newsbased')  %]
102
                    <li>
102
                    <li>
103
                        <a class="toplinks" href="/cgi-bin/koha/help.pl" id="helper">Help</a>
103
                        <a class="toplinks" href="/cgi-bin/koha/help.pl" id="helper">Help</a>
104
                    </li>
104
                    </li>
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/help-bottom.inc (-5 / +10 lines)
Lines 1-10 Link Here
1
[% USE Koha %]
2
1
<form action="/cgi-bin/koha/edithelp.pl" method="post">
3
<form action="/cgi-bin/koha/edithelp.pl" method="post">
2
    <fieldset class="action"><input type="button" class="close" value="Close help window" />
4
    <fieldset class="action">
3
    [% IF (Koha.Preference('HelpSystem') == 'filebased') && (Koha.Preference('EnableEditingFilebasedHelp') ) %]
5
        <input type="button" class="close" value="Close help window" />
4
        <input type="hidden" name="type" value="modify" />
5
        <input type="hidden" name="referer" value="[% referer %]" />
6
        <input type="hidden" name="referer" value="[% referer %]" />
6
        <input type="submit" class="submit" value="Edit help" /></fieldset>
7
        [% IF ( Koha.Preference('HelpSystem').match('filebased') && Koha.Preference('EnableEditingFilebasedHelp') && CAN_user_tools_edit_help ) %]
7
    [% END %]
8
            <input type="hidden" name="type" value="modify" />
9
            <input type="submit" class="submit" value="Edit help" />
10
        [% END %]
11
    </fieldset>
8
</form>
12
</form>
13
</div> <!-- /koha-help -->
9
</body>
14
</body>
10
</html>
15
</html>
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/help-top.inc (-16 / +39 lines)
Lines 1-21 Link Here
1
[% USE Koha %]
1
[% USE Koha %]
2
[% USE Branches %]
2
[% INCLUDE 'doc-head-open.inc' %]
3
[% INCLUDE 'doc-head-open.inc' %]
3
<title>Online help</title>
4
<title>Online help</title>
4
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
<link rel="shortcut icon" href="[% IF ( IntranetFavicon ) %][% IntranetFavicon %][% ELSE %][% interface %]/[% theme %]/img/favicon.ico[% END %]" type="image/x-icon" />
6
<link rel="stylesheet" type="text/css" href="[% interface %]/lib/jquery/jquery-ui-1.11.4.min.css" />
7
<link rel="stylesheet" type="text/css" media="print" href="[% interface %]/[% theme %]/css/print.css" />
8
[% INCLUDE intranetstylesheet.inc %]
9
[% IF ( bidi ) %]
10
   <link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/right-to-left.css" />
11
[% END %]
12
<script type="text/javascript" src="[% interface %]/lib/jquery/jquery-2.2.3.min.js"></script>
13
<script type="text/javascript" src="[% interface %]/lib/jquery/jquery-migrate-1.3.0.min.js"></script>
14
<script type="text/javascript" src="[% interface %]/lib/jquery/jquery-ui-1.11.4.min.js"></script>
15
<script type="text/javascript" src="[% interface %]/lib/shortcut/shortcut.js"></script>
16
<!-- koha core js -->
17
<script type="text/javascript" src="[% interface %]/[% theme %]/js/staff-global.js"></script>
18
19
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/help.css" />
5
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/help.css" />
20
</head>
6
[% USE Koha %]
7
[% INCLUDE 'doc-head-close.inc' %]
8
21
<body id="help" class="help">
9
<body id="help" class="help">
10
11
[% IF Koha.Preference('HelpSystem').match('newsbased') %]
12
    <div id="help_from_news">
13
        <h1><span class="help_title">Help for [% Branches.GetName( homebranch ) %]</span></h1>
14
            [% FOREACH helpitem IN help_from_news %]
15
            [% IF (helpitem.helpkey == helpkey) || (helpitem.helpkey == 'all') %]
16
                <div class="help-item-title" id="helpnews[% helpitem.idnew %]">
17
                    <h4>[% helpitem.title %]</h4>
18
                    <div class="help-item-body">[% helpitem.content %]</div>
19
                    <div class="help-item-date">[% helpitem.newdate %]</div>
20
                    <div class="help-item-footer">
21
                        [% IF CAN_user_tools_edit_help %]
22
                            <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/koha-news.pl?op=add_form&amp;id=[% helpitem.idnew %]&amp;popup_window=1">
23
                            <i class="fa fa-pencil"></i>Edit</a>
24
                            <a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/koha-news.pl?op=del&amp;ids=[% helpitem.idnew %]&amp;popup_window=1">
25
                            <i class="fa fa-trash"></i>Delete</a>
26
                        [% END %]
27
                    </div>
28
                </div>
29
            [% END %]
30
        [% END %]
31
        [% IF CAN_user_tools_edit_help %]
32
            <div class="help-item-buttons">
33
                <p><a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/koha-news.pl?op=add_form&amp;helpkey=[% helpkey %]&amp;lang=staffhelp&amp;popup_window=1">
34
                <i class="fa fa-plus"></i>New custom help for this page</a>
35
                <span class="hint">Key is: [% helpkey %]</span></p>
36
                <p><a class="btn btn-default btn-xs" href="/cgi-bin/koha/tools/koha-news.pl?op=add_form&amp;helpkey=all&amp;lang=staffhelp&amp;popup_window=1">
37
                <i class="fa fa-plus"></i>New custom help for all pages</a>
38
                <span class="hint">Key is: all</span></p>
39
            </div>
40
        [% END %]
41
    </div><!-- /help-from-news -->
42
[% END %]
43
44
<div id="koha-help">
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc (+1 lines)
Lines 57-62 Link Here
57
    [%- CASE 'batch_upload_patron_images' -%]<span>Upload patron images in a batch or one at a time</span>
57
    [%- CASE 'batch_upload_patron_images' -%]<span>Upload patron images in a batch or one at a time</span>
58
    [%- CASE 'delete_anonymize_patrons' -%]<span>Delete old borrowers and anonymize circulation history (deletes borrower reading history)</span>
58
    [%- CASE 'delete_anonymize_patrons' -%]<span>Delete old borrowers and anonymize circulation history (deletes borrower reading history)</span>
59
    [%- CASE 'edit_calendar' -%]<span>Define days when the library is closed</span>
59
    [%- CASE 'edit_calendar' -%]<span>Define days when the library is closed</span>
60
    [%- CASE 'edit_help' -%]<span>Edit custom help</span>
60
    [%- CASE 'edit_news' -%]<span>Write news for the OPAC and staff interfaces</span>
61
    [%- CASE 'edit_news' -%]<span>Write news for the OPAC and staff interfaces</span>
61
    [%- CASE 'edit_notice_status_triggers' -%]<span>Set notice/status triggers for overdue items</span>
62
    [%- CASE 'edit_notice_status_triggers' -%]<span>Set notice/status triggers for overdue items</span>
62
    [%- CASE 'edit_notices' -%]<span>Define notices</span>
63
    [%- CASE 'edit_notices' -%]<span>Define notices</span>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/admin.pref (+1 lines)
Lines 420-425 Administration: Link Here
420
              default: filebased
420
              default: filebased
421
              multiple:
421
              multiple:
422
                  filebased: "File based (staff client)"
422
                  filebased: "File based (staff client)"
423
                  newsbased: "News based"
423
        -
424
        -
424
            - "Enable editing of file based Koha help: "
425
            - "Enable editing of file based Koha help: "
425
            - pref: EnableEditingFilebasedHelp
426
            - pref: EnableEditingFilebasedHelp
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/help/mainpage.tt (-2 / +3 lines)
Lines 2-8 Link Here
2
[% INCLUDE 'help-top.inc' %]
2
[% INCLUDE 'help-top.inc' %]
3
3
4
<h2>Welcome to Koha</h2>
4
<h2>Welcome to Koha</h2>
5
6
<p>If this is your first time logging into Koha, you should now go to Koha Administration and set up all system preferences, patron categories, item types and libraries. You should also review the other settings found in Administration.</p>
5
<p>If this is your first time logging into Koha, you should now go to Koha Administration and set up all system preferences, patron categories, item types and libraries. You should also review the other settings found in Administration.</p>
7
6
8
<p>Once you have set up patron categories, you should create a new user in the Patrons module with superlibrarian permissions. Once that user is created, you should log in as that user rather than the root user which is set up as part of installation.</p>
7
<p>Once you have set up patron categories, you should create a new user in the Patrons module with superlibrarian permissions. Once that user is created, you should log in as that user rather than the root user which is set up as part of installation.</p>
Lines 18-24 Link Here
18
<li><a href="http://koha-community.org/get-involved/irc/">Chat with Koha users and developers</a></li>
17
<li><a href="http://koha-community.org/get-involved/irc/">Chat with Koha users and developers</a></li>
19
</ul>
18
</ul>
20
19
21
[% IF ( Koha.Preference('HelpSystem') == 'filebased' ) %]
20
 [% IF Koha.Preference('HelpSystem').match('filebased') && (Koha.Preference('EnableEditingFilebasedHelp') && CAN_user_tools_edit_help ) %]
21
22
    <h2>Can I edit the online help?</h2>
22
    <h2>Can I edit the online help?</h2>
23
23
24
    <p>You can edit the online help through the Koha Staff Client by clicking the &quot;Edit Help&quot; button. This feature has been designed so that library workflow and policies can be documented within Koha.</p>
24
    <p>You can edit the online help through the Koha Staff Client by clicking the &quot;Edit Help&quot; button. This feature has been designed so that library workflow and policies can be documented within Koha.</p>
Lines 26-31 Link Here
26
    <p><strong>IMPORTANT:</strong> Your online help will be overwritten by the new Help when there is an upgrade. If you want to keep a copy of your online help, you should instruct your System Administrator to upgrade the Online Help directory in the Koha file tree.</p>
26
    <p><strong>IMPORTANT:</strong> Your online help will be overwritten by the new Help when there is an upgrade. If you want to keep a copy of your online help, you should instruct your System Administrator to upgrade the Online Help directory in the Koha file tree.</p>
27
27
28
    <p>The online help directory is: <pre>[% themelang %]/modules/help</pre></p>
28
    <p>The online help directory is: <pre>[% themelang %]/modules/help</pre></p>
29
29
    <p><strong>Note:</strong> Files in help directory must be writeable to make this feature work. Additionally, system preference 'EnableEditingFilebasedHelp' must be set to 'Yes'.</p>
30
    <p><strong>Note:</strong> Files in help directory must be writeable to make this feature work. Additionally, system preference 'EnableEditingFilebasedHelp' must be set to 'Yes'.</p>
30
[% END %]
31
[% END %]
31
32
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/help/nohelptext.tt (+2 lines)
Line 0 Link Here
1
[% INCLUDE 'help-top.inc' %]
2
[% INCLUDE 'help-bottom.inc' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/koha-news.tt (-5 / +50 lines)
Lines 1-3 Link Here
1
[% USE Koha %]
1
[% USE KohaDates %]
2
[% USE KohaDates %]
2
[% USE Branches %]
3
[% USE Branches %]
3
[% INCLUDE 'doc-head-open.inc' %]
4
[% INCLUDE 'doc-head-open.inc' %]
Lines 72-82 tinyMCE.init({ Link Here
72
</script>
73
</script>
73
</head>
74
</head>
74
<body id="tools_koha-news" class="tools">
75
<body id="tools_koha-news" class="tools">
75
[% INCLUDE 'header.inc' %]
76
[% INCLUDE 'cat-search.inc' %]
77
76
78
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; [% IF ( add_form ) %]<a href="/cgi-bin/koha/tools/koha-news.pl">News</a> &rsaquo; [% IF ( id ) %]
77
[% IF not popup_window  %]
78
    [% INCLUDE 'header.inc' %]
79
    [% INCLUDE 'cat-search.inc' %]
80
81
    <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo; [% IF ( add_form ) %]<a href="/cgi-bin/koha/tools/koha-news.pl">News</a> &rsaquo; [% IF ( id ) %]
79
Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div>
82
Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div>
83
[% END %]
80
84
81
[% IF ( add_form ) %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %]
85
[% IF ( add_form ) %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %]
82
   <div id="bd">
86
   <div id="bd">
Lines 119-124 Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> Link Here
119
                [% ELSE %]
123
                [% ELSE %]
120
                <option value="slip"                    >Slip</option>
124
                <option value="slip"                    >Slip</option>
121
                [% END %]
125
                [% END %]
126
                [% IF ( Koha.Preference('HelpSystem').match('newsbased') && CAN_user_tools_edit_help ) %]
127
                    [% IF ( default_lang == "staffhelp" ) %]
128
                        <option value="staffhelp" selected="selected">Staff help</option>
129
                    [% ELSE %]
130
                        <option value="staffhelp">Staffhelp</option>
131
                    [% END %]
132
                [% END %]
122
                [% FOREACH lang_lis IN lang_list %]
133
                [% FOREACH lang_lis IN lang_list %]
123
                [% IF ( lang_lis.language == default_lang ) %]
134
                [% IF ( lang_lis.language == default_lang ) %]
124
                    <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option>
135
                    <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option>
Lines 161-173 Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> Link Here
161
                    <input id="number" size="3" name="number" type="text" />
172
                    <input id="number" size="3" name="number" type="text" />
162
                [% END %]
173
                [% END %]
163
            </li>
174
            </li>
175
            <li>
176
                [% IF ( Koha.Preference('HelpSystem').match('newsbased') && CAN_user_tools_edit_help ) %]
177
                    <label for="helpkey">Help key: </label>
178
                    [% IF ( new_detail.helpkey ) %]
179
                        <input id="number" size="60" name="helpkey" type="text" value="[% new_detail.helpkey %]" />
180
                    [% ELSIF ( helpkey ) %]
181
                        <input id="number" size="60" name="helpkey" type="text" value="[% helpkey %]" />
182
                    [% ELSE %]
183
                        <input id="helpkey" size="60" name="helpkey" type="text" />
184
                    [% END %]
185
                    <span class="hint">Used for news driven custom help system</span>
186
                [% END %]
187
188
            </li>
164
            <li><label for="content">News: </label>
189
            <li><label for="content">News: </label>
165
            <textarea name="content" id="content"  cols="75" rows="10">[% new_detail.content %]</textarea>
190
            <textarea name="content" id="content"  cols="75" rows="10">[% new_detail.content %]</textarea>
166
            </li>
191
            </li>
167
            </ol>
192
            </ol>
168
			</fieldset>
193
			</fieldset>
169
  
194
170
                <fieldset class="action"><input class="button" type="submit" value="Submit" /> <a class="cancel" href="/cgi-bin/koha/tools/koha-news.pl">Cancel</a></fieldset>
195
            <fieldset class="action">
196
                [% IF popup_window %]
197
                    <input class="button" type="submit" value="Submit" />
198
                    <a class="cancel" href="#" onclick="history.back(); return false;">Cancel</a>
199
                [% ELSE %]
200
                    <input class="button" type="submit" value="Submit" />
201
                    <a class="cancel" href="/cgi-bin/koha/tools/koha-news.pl">Cancel</a>
202
                [% END %]
203
            </fieldset>
171
        </form>
204
        </form>
172
    [% ELSE %]
205
    [% ELSE %]
173
        <div style="margin-bottom:5px;">
206
        <div style="margin-bottom:5px;">
Lines 189-194 Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> Link Here
189
            [% ELSE %]
222
            [% ELSE %]
190
            <option value="slip"         >Slip</option>
223
            <option value="slip"         >Slip</option>
191
            [% END %]
224
            [% END %]
225
            [% IF ( lang == "staffhelp" ) %]
226
            <option value="staffhelp" selected="selected">Staff help</option>
227
            [% ELSE %]
228
            <option value="staffhelp"         >Staff help</option>
229
            [% END %]
192
                [% FOREACH lang_lis IN lang_list %]
230
                [% FOREACH lang_lis IN lang_list %]
193
                [% IF ( lang_lis.language == lang ) %]
231
                [% IF ( lang_lis.language == lang ) %]
194
                    <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option>
232
                    <option value="[% lang_lis.language %]" selected="selected">OPAC ([% lang_lis.language %])</option>
Lines 225-230 Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> Link Here
225
                        <th>Actions</th>
263
                        <th>Actions</th>
226
                    </tr></thead>
264
                    </tr></thead>
227
                    <tbody>[% FOREACH opac_new IN opac_news %]
265
                    <tbody>[% FOREACH opac_new IN opac_news %]
266
                        [% IF opac_new.lang == 'staffhelp' %]
267
                            [% NEXT IF not ( CAN_user_tools_edit_help && Koha.Preference('HelpSystem').match('newsbased') ) %]
268
                        [% ELSE %]
269
                            [% NEXT IF not CAN_user_tools_edit_news %]
270
                        [% END %]
228
                         [% IF ( opac_new.expired ) %]
271
                         [% IF ( opac_new.expired ) %]
229
                            <tr class="expired">
272
                            <tr class="expired">
230
                            [% ELSE %]
273
                            [% ELSE %]
Lines 240-245 Edit news item[% ELSE %]Add news item[% END %][% ELSE %]News[% END %]</div> Link Here
240
                                    Slip
283
                                    Slip
241
                                [%   CASE "" %]
284
                                [%   CASE "" %]
242
                                    All
285
                                    All
286
                                [% CASE "staffhelp" %]
287
                                    Staff help <span class="hint">[% opac_new.helpkey %]</span>
243
                                [%   CASE %]
288
                                [%   CASE %]
244
                                    OPAC ([% opac_new.lang %])
289
                                    OPAC ([% opac_new.lang %])
245
                                [% END %]
290
                                [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/tools-home.tt (-3 / +11 lines)
Lines 1-3 Link Here
1
[% USE Koha %]
1
[% INCLUDE 'doc-head-open.inc' %]
2
[% INCLUDE 'doc-head-open.inc' %]
2
<title>Koha &rsaquo; Tools</title>
3
<title>Koha &rsaquo; Tools</title>
3
[% INCLUDE 'doc-head-close.inc' %]
4
[% INCLUDE 'doc-head-close.inc' %]
Lines 89-97 Link Here
89
    <dd>Browse the system logs</dd>
90
    <dd>Browse the system logs</dd>
90
    [% END %]
91
    [% END %]
91
92
92
    [% IF ( CAN_user_tools_edit_news ) %]
93
    [% IF CAN_user_tools_edit_news && CAN_user_tools_edit_help && Koha.Preference('HelpSystem').match('newsbased') %]
93
    <dt><a href="/cgi-bin/koha/tools/koha-news.pl">News</a></dt>
94
        <dt><a href="/cgi-bin/koha/tools/koha-news.pl">Manage news and news based help</a></dt>
94
    <dd>Write news for the OPAC and staff interfaces</dd>
95
        <dd>Write news for the OPAC and staff interfaces and manage news based online help for staff interface</dd>
96
    [% ELSIF CAN_user_tools_edit_help && Koha.Preference('HelpSystem').match('newsbased')  %]
97
        <dt><a href="/cgi-bin/koha/tools/koha-news.pl">Manage news based help</a></dt>
98
        <dd>Manage news based online help for staff interface</dd>
99
    [% ELSE %]
100
        <dt><a href="/cgi-bin/koha/tools/koha-news.pl">Manage news</a></dt>
101
        <dd>Write news for the OPAC and staff interfaces</dd>
102
95
    [% END %]
103
    [% END %]
96
104
97
    [% IF ( CAN_user_tools_schedule_tasks ) %]
105
    [% IF ( CAN_user_tools_schedule_tasks ) %]
(-)a/tools/koha-news.pl (-5 / +24 lines)
Lines 45-50 if ( $cgi->param('expirationdate') ) { Link Here
45
}
45
}
46
my $timestamp      = output_pref({ dt => dt_from_string( scalar $cgi->param('timestamp') ), dateformat => 'iso', dateonly => 1 });
46
my $timestamp      = output_pref({ dt => dt_from_string( scalar $cgi->param('timestamp') ), dateformat => 'iso', dateonly => 1 });
47
my $number         = $cgi->param('number');
47
my $number         = $cgi->param('number');
48
my $helpkey        = $cgi->param('helpkey');
48
my $lang           = $cgi->param('lang');
49
my $lang           = $cgi->param('lang');
49
my $branchcode     = $cgi->param('branch');
50
my $branchcode     = $cgi->param('branch');
50
my $error_message  = $cgi->param('error_message');
51
my $error_message  = $cgi->param('error_message');
Lines 55-71 $branchcode = undef if (defined($branchcode) && $branchcode eq ''); Link Here
55
56
56
my $new_detail = get_opac_new($id);
57
my $new_detail = get_opac_new($id);
57
58
59
# flagsrequired checks for all flags listed, we need an 'or'
60
# to work with edit_news or edit_help.
58
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
61
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
59
    {
62
    {
60
        template_name   => "tools/koha-news.tt",
63
        template_name   => "tools/koha-news.tt",
61
        query           => $cgi,
64
        query           => $cgi,
62
        type            => "intranet",
65
        type            => "intranet",
63
        authnotrequired => 0,
66
        authnotrequired => 1,
64
        flagsrequired   => { tools => 'edit_news' },
65
        debug           => 1,
67
        debug           => 1,
66
    }
68
    }
67
);
69
);
68
70
71
#news based help system can call this script as a popup window
72
$template->param( popup_window => 1 ) if( $cgi->param('popup_window')== 1 );
73
74
#Check now the flags, user must have news or help edit permissions
75
if ( not (defined $template->{VARS}->{'CAN_user_tools_edit_news'} ||
76
    defined $template->{VARS}->{'CAN_user_tools_edit_help'} ) ) {
77
warn "EXIT FROM koha-news.pl ";
78
    print $cgi->redirect("/cgi-bin/koha/errors/403.pl");
79
} else {
80
#TODO: Indent as followup to bug 18483
81
69
# Pass error message if there is one.
82
# Pass error message if there is one.
70
$template->param( error_message => $error_message ) if $error_message;
83
$template->param( error_message => $error_message ) if $error_message;
71
84
Lines 99-105 if ( $op eq 'add_form' ) { Link Here
99
        $template->{VARS}->{'new_detail'} = $new_detail;
112
        $template->{VARS}->{'new_detail'} = $new_detail;
100
    }
113
    }
101
    else {
114
    else {
102
        $template->param( op => 'add' );
115
        $template->param(
116
            op => 'add',
117
            helpkey => $helpkey
118
        );
119
103
    }
120
    }
104
}
121
}
105
elsif ( $op eq 'add' ) {
122
elsif ( $op eq 'add' ) {
Lines 112-117 elsif ( $op eq 'add' ) { Link Here
112
                expirationdate => $expirationdate,
129
                expirationdate => $expirationdate,
113
                timestamp      => $timestamp,
130
                timestamp      => $timestamp,
114
                number         => $number,
131
                number         => $number,
132
                helpkey        => $helpkey,
115
                branchcode     => $branchcode,
133
                branchcode     => $branchcode,
116
                borrowernumber => $borrowernumber,
134
                borrowernumber => $borrowernumber,
117
            }
135
            }
Lines 131-136 elsif ( $op eq 'edit' ) { Link Here
131
            lang           => $lang,
149
            lang           => $lang,
132
            expirationdate => $expirationdate,
150
            expirationdate => $expirationdate,
133
            timestamp      => $timestamp,
151
            timestamp      => $timestamp,
152
            helpkey        => $helpkey,
134
            number         => $number,
153
            number         => $number,
135
            branchcode     => $branchcode,
154
            branchcode     => $branchcode,
136
        }
155
        }
Lines 145-151 elsif ( $op eq 'del' ) { Link Here
145
164
146
else {
165
else {
147
166
148
    my ( $opac_news_count, $opac_news ) = &get_opac_news( undef, $lang, $branchcode );
167
    my ( $opac_news_count, $opac_news ) = &get_opac_news( undef, 'staffhelp', $branchcode );
149
    
168
    
150
    foreach my $new ( @$opac_news ) {
169
    foreach my $new ( @$opac_news ) {
151
        next unless $new->{'expirationdate'};
170
        next unless $new->{'expirationdate'};
Lines 161-164 else { Link Here
161
		);
180
		);
162
}
181
}
163
$template->param( lang => $lang );
182
$template->param( lang => $lang );
183
}
164
output_html_with_http_headers $cgi, $cookie, $template->output;
184
output_html_with_http_headers $cgi, $cookie, $template->output;
165
- 

Return to bug 18483