Index: openacs-4/packages/acs-authentication/acs-authentication.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/acs-authentication.info,v diff -u -r1.43 -r1.43.2.1 --- openacs-4/packages/acs-authentication/acs-authentication.info 4 Oct 2018 09:16:04 -0000 1.43 +++ openacs-4/packages/acs-authentication/acs-authentication.info 14 Feb 2019 10:02:36 -0000 1.43.2.1 @@ -6,17 +6,17 @@ ACS Authentication t t - - + + Lars Pind Authentication, account management, and related functionality. - 2017-08-06 + 2019-01-16 Collaboraid 3 GPL version 2 Implements authentication-related security functions for OpenACS, including password, account and session management, bulk account creation etc. Provides a contract based interface for different authentication methods such as PAM or LDAP based authentication. - + Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml,v diff -u -r1.8 -r1.8.2.1 --- openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml 1 Mar 2018 13:35:13 -0000 1.8 +++ openacs-4/packages/acs-authentication/catalog/acs-authentication.de_DE.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.8.2.1 @@ -4,8 +4,10 @@ Zur Gemeinschaft hinzuf�gen Zu %system_name% hinzuf�gen Hat kein Benutzerkonto auf %system_name% + Falls Sie gerade ein Formular bearbeitet haben, bitte den Zur�ck-Button verwenden und dieses erneut einreichen. Hat ein Benutzerkonto auf %system_name% Benutzeridentifikation oder Passwort ist falsch + Ihre Sitzung ist abgelaufen. Die ermittelte Return-URL ist zu lange um automatisch fortfahren zu k�nnen. Nicht die Resultate, die Sie erwartet haben? Suchen Sie nach: Zugriff aufgrund zu vieler fehlgeschlagener Anmeldeversuche tempor�r gesperrt. Versuchen Sie es sp�ter erneut! Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml,v diff -u -r1.12 -r1.12.2.1 --- openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml 22 Jun 2018 08:33:48 -0000 1.12 +++ openacs-4/packages/acs-authentication/catalog/acs-authentication.en_US.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.12.2.1 @@ -4,8 +4,10 @@ Add to Community Add to %system_name% Does not have an account on %system_name% + If you were editing a form, please use the back button after logging in and resubmit the form. Has an account on %system_name% Invalid username or password + Your login expired and the computed URL for automated continuation is too long. Not getting the results you expected? Try searching: Access rejected because of too many invalid login attempts. Try again later! Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml,v diff -u -r1.9 -r1.9.2.1 --- openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml 22 Jun 2018 10:46:50 -0000 1.9 +++ openacs-4/packages/acs-authentication/catalog/acs-authentication.es_ES.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.9.2.1 @@ -4,8 +4,10 @@ A�adir a comunidad A�adir a %system_name% No tiene cuenta en %system_name% + Si estaba editando un formulario, pulse el bot�n de volver tras registrarse y vuelva a enviarlo, por favor. Tiene cuenta en %system_name% Usuario o contrase�a erroneo + Su registro ha expirado y la URL computada para continuar autom�ticamente es demasiado larga. Si no ha obtenido los resultados esperados, intente buscar: Acceso denegado: demasiados intentos err�neos. Int�ntelo de nuevo mas tarde. Index: openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml,v diff -u -r1.8 -r1.8.2.1 --- openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml 22 Jun 2018 08:33:48 -0000 1.8 +++ openacs-4/packages/acs-authentication/catalog/acs-authentication.it_IT.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.8.2.1 @@ -4,8 +4,10 @@ Aggiungi alla Comunit� Aggiungi a %system_name% Non ha un account su %system_name% + Se stavi editando una form, clicca il tasto indietro dopo esserti loggato e re-invia la form. Ha un account su %system_name% Nome utente o password non sono corretti + Il tuo login � scaduto e lo URL generato per continuare automaticamente � troppo lungo. Non stai ottenendo i risultati che ti aspettavi? Prova a cercare: Accesso negato a causa di troppi tentativi di login falliti. Riprova pi� tardi! Index: openacs-4/packages/acs-bootstrap-installer/installer/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/installer/index.tcl,v diff -u -r1.32 -r1.32.2.1 --- openacs-4/packages/acs-bootstrap-installer/installer/index.tcl 31 Jan 2018 20:45:38 -0000 1.32 +++ openacs-4/packages/acs-bootstrap-installer/installer/index.tcl 14 Feb 2019 10:02:36 -0000 1.32.2.1 @@ -80,7 +80,7 @@ append body [subst {

For more information about the $acs_application(pretty_name) application visit the $acs_application(pretty_name) home page - } + }] } } else { set acs_application(name) openacs Index: openacs-4/packages/acs-kernel/acs-kernel.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v diff -u -r1.150 -r1.150.2.1 --- openacs-4/packages/acs-kernel/acs-kernel.info 28 Jan 2019 21:44:12 -0000 1.150 +++ openacs-4/packages/acs-kernel/acs-kernel.info 14 Feb 2019 10:02:36 -0000 1.150.2.1 @@ -9,15 +9,15 @@ f t - + OpenACS Core Team

Routines and data models providing the foundation for OpenACS-based Web services. 2017-08-06 OpenACS The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, partiies and the supporting PL/SQL and PL/pgSQL procedures. 3 - + Index: openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql 7 Aug 2017 23:47:56 -0000 1.4 +++ openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql 14 Feb 2019 10:02:36 -0000 1.4.2.1 @@ -36,6 +36,42 @@ function index_exists ( name in varchar2) return boolean; + + function foreign_key_exists ( + table IN varchar2, + column IN varchar2, + reftable IN varchar2, + refcolumn IN varchar2) + return boolean; + + function unique_exists ( + table IN varchar2, + column IN varchar2, + single_p IN boolean default true) + return boolean; + + function primary_key_exists ( + table IN varchar2, + column IN varchar2, + single_p IN boolean default true) + return boolean; + + function not_null_exists ( + table IN varchar2, + column IN varchar2) + return boolean; + + function get_default ( + table IN varchar2, + column IN varchar2) + return LONG; + + TYPE primary_keys IS TABLE OF varchar2; + + function get_primary_keys(table IN varchar2) + return primary_keys + PIPELINED; + end util; / show errors @@ -168,6 +204,156 @@ return v_exists; END index_exists; + function foreign_key_exists ( + table IN varchar2, + column IN varchar2, + reftable IN varchar2, + refcolumn IN varchar2) + return boolean + as + v_count integer; + v_exists boolean; + + begin + select decode(count(*),0,0,1) into v_count + from user_constraints cons + left join user_cons_columns cols on cols.constraint_name = cons.constraint_name + left join user_constraints cons_r on cons_r.constraint_name = cons.r_constraint_name + left join user_cons_columns cols_r on cols_r.constraint_name = cons.r_constraint_name + where cons.constraint_type = 'R' + and cons.table_name = foreign_key_exists.table + and cols.column_name = foreign_key_exists.column + and cons_r.table_name = foreign_key_exists.reftable + and cols_r.column_name = foreign_key_exists.refcolumn; + + if v_count = 1 then + v_exists := true; + else + v_exists := false; + end if; + + return v_exists; + end foreign_key_exists; + + function unique_exists ( + table IN varchar2, + column IN varchar2, + single_p IN boolean default true) + return boolean + as + v_count integer; + v_exists boolean; + + begin + select decode(count(*),0,0,1) into v_count + from all_constraints c + join all_cons_columns cc on (c.owner = cc.owner + and c.constraint_name = cc.constraint_name) + where c.constraint_type = 'U' + and c.table_name = unique_exists.table + and cc.column_name = unique_exists.column + and (not unique_exists.single_p or ( + select count(*) from all_cons_columns + where constraint_name = c.constraint_name) = 1); + if v_count = 1 then + v_exists := true; + else + v_exists := false; + end if; + + return v_exists; + END unique_exists; + + function primary_key_exists ( + table IN varchar2, + column IN varchar2, + single_p IN boolean default true) + return boolean + as + v_count integer; + v_exists boolean; + + begin + select decode(count(*),0,0,1) into v_count + from all_constraints c + join all_cons_columns cc on (c.owner = cc.owner + and c.constraint_name = cc.constraint_name) + where c.constraint_type = 'P' + and c.table_name = primary_key_exists.table + and cc.column_name = primary_key_exists.column + and (not primary_key_exists.single_p or ( + select count(*) from all_cons_columns + where constraint_name = c.constraint_name + and owner = c.owner) = 1); + + if v_count = 1 then + v_exists := true; + else + v_exists := false; + end if; + + return v_exists; + END primary_key_exists; + + function not_null_exists ( + table IN varchar2, + column IN varchar2) + return boolean + as + v_count integer; + v_exists boolean; + + begin + select decode(count(*),0,0,1) into v_count + from all_tab_columns + where table_name = not_null_exists.table + and column_name = not_null_exists.column + and nullable = 'N'; + + if v_count = 1 then + v_exists := true; + else + v_exists := false; + end if; + + return v_exists; + END not_null_exists; + + function get_default ( + table in varchar2, + column in varchar2) + return long + as + v_value long; + + begin + select data_default into v_value + from all_tab_columns + where table_name = get_default.table + and column_name = get_default.column; + + return v_value; + end get_default; + + function get_primary_keys( + table in varchar2) + return primary_keys + as + v_rec primary_keys; + + begin + select cols.column_name + bulk collect into v_rec + from all_constraints cons, all_cons_columns cols + where cols.table_name = get_primary_keys.table + and cons.constraint_type = 'P' + and cons.constraint_name = cols.constraint_name + and cons.owner = cols.owner + order by cols.table_name, cols.position; + + return v_rec; + end get_primary_keys; + end util; / show errors Index: openacs-4/packages/acs-lang/tcl/localization-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/localization-procs.tcl,v diff -u -r1.29 -r1.29.2.1 --- openacs-4/packages/acs-lang/tcl/localization-procs.tcl 3 Nov 2018 19:47:34 -0000 1.29 +++ openacs-4/packages/acs-lang/tcl/localization-procs.tcl 14 Feb 2019 10:02:36 -0000 1.29.2.1 @@ -201,7 +201,7 @@ ad_proc -public clock_to_ansi { seconds } { - Convert a time in the Tcl internal clock seeconds format to ANSI format, usable by lc_time_fmt. + Convert a time in the Tcl internal clock seconds format to ANSI format, usable by lc_time_fmt. @author Lars Pind (lars@pinds.com) @return ANSI (YYYY-MM-DD HH24:MI:SS) formatted date. @@ -530,7 +530,7 @@ ad_proc -public lc_list_all_timezones { } { - @return list of pairs containing all timezone names and offsets. + @return list of pairs containing all timezone names and offsets. Data drawn from acs-reference package timezones table } { return [db_list_of_lists all_timezones {}] Index: openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl,v diff -u -r1.33 -r1.33.2.1 --- openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl 4 Oct 2018 09:53:51 -0000 1.33 +++ openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl 14 Feb 2019 10:02:36 -0000 1.33.2.1 @@ -1,6 +1,6 @@ ad_library { - Support library for acs service contracts. - + Support library for acs service contracts. + @author Neophytos Demetriou @creation-date 2001-09-01 @cvs-id $Id$ @@ -28,15 +28,15 @@ the contract you passed in. If you supply both impl_id and impl, we throw an error. Additional documentation and commentary at http://openacs.org/forums/message-view?message_id=108614. - + @param contract The name of the contract you wish to use. @param operation The name of the operation in the contract you wish to call. @param impl The name of the implementation you wish to use. @param impl_id The ID of the implementation you wish to use. @param call_args The arguments you want to pass to the proc. @param error If specified, will throw an error if the operation isn't implemented. - + @author Lars Pind (lars@collaboraid.biz) @see acs_sc_call } { @@ -58,13 +58,13 @@ set proc_name [acs_sc_generate_name $contract $impl $operation] if { [info commands $proc_name] ne "" } { - return [ad_apply $proc_name $call_args] - } + return [ad_apply $proc_name $call_args] + } if { $error_p } { - error "Operation $operation is not implemented in '$impl' implementation of contract '$contract'" + error "Operation $operation is not implemented in '$impl' implementation of contract '$contract'" } else { - ns_log warning "ACS-SC: Function Not Found: $proc_name [info commands $proc_name]" + ns_log warning "ACS-SC: Function Not Found: $proc_name [info commands $proc_name]" } return } @@ -80,14 +80,14 @@ contract impl } { - Returns a boolean depending on whether or not the binding between + Returns a boolean depending on whether or not the binding between the contract and implementation exists. - @param contract the contract name - @param impl the implementation name + @param contract the contract name + @param impl the implementation name @return 0 or 1 - + @author Neophytos Demetriou } { @@ -113,10 +113,10 @@ operation impl } { - Returns the implementation alias (the - proc defined to handle a given operation - for a given implementation). - + Returns the implementation alias (the + proc defined to handle a given operation + for a given implementation). + @author Neophytos Demetriou } { # LARS @@ -125,7 +125,7 @@ #set exists_p [util_memoize [list acs_sc_binding_exists_p $contract $impl]] if {![set exists_p]} {return ""} - + db_0or1row get_alias { select impl_alias, impl_pl from acs_sc_impl_aliases @@ -145,7 +145,7 @@ {impl_alias {}} {impl_pl {}} } { - Builds the proc used by acs_sc::invoke, generally only called + Builds the proc used by acs_sc::invoke, generally only called in acs-service-contract-init.tcl at startup. @return 0 on failure, 1 on success. @@ -157,26 +157,26 @@ set proc_name [acs_sc_generate_name $contract $impl $operation] acs_sc_log SCDebug "ACS_SC_PROC: proc_name = $proc_name" - + if { $impl_alias eq "" } { - lassign [acs_sc_get_alias $contract $operation $impl] impl_alias impl_pl + lassign [acs_sc_get_alias $contract $operation $impl] impl_alias impl_pl } if { $impl_alias eq "" } { - error "ACS-SC: Cannot find alias for $proc_name" + error "ACS-SC: Cannot find alias for $proc_name" } if {![db_0or1row get_operation_definition { - select - operation_desc, - coalesce(operation_iscachable_p,'f') as operation_iscachable_p, - operation_nargs, - operation_inputtype_id, - operation_outputtype_id - from acs_sc_operations - where contract_name = :contract - and operation_name = :operation - }]} { + select + operation_desc, + coalesce(operation_iscachable_p,'f') as operation_iscachable_p, + operation_nargs, + operation_inputtype_id, + operation_outputtype_id + from acs_sc_operations + where contract_name = :contract + and operation_name = :operation + }]} { ns_log warning "ACS-SC: operation definition not found for contract $contract operation $operation" return 0 } @@ -185,27 +185,27 @@ set msg_type_id $operation_inputtype_id db_foreach operation_msgtype_element {} { - lappend arguments "$element_name" - append docblock "\n@param $element_name $element_msg_type_name" - if { $element_msg_type_isset_p } { - append docblock " \[\]" - } + lappend arguments "$element_name" + append docblock "\n@param $element_name $element_msg_type_name" + if { $element_msg_type_isset_p } { + append docblock " \[\]" + } } - set msg_type_id $operation_outputtype_id + set msg_type_id $operation_outputtype_id db_foreach operation_msgtype_element {} { - append docblock "\n@return $element_name - $element_msg_type_name" - if { $element_msg_type_isset_p } { - append docblock " \[\]" - } + append docblock "\n@return $element_name - $element_msg_type_name" + if { $element_msg_type_isset_p } { + append docblock " \[\]" + } } append docblock "\n@see $impl_alias\n@see acs_sc::invoke" set full_statement [acs_sc_get_statement $impl_alias $impl_pl $arguments] if { $operation_iscachable_p } { - set full_statement "util_memoize \"$full_statement\"" + set full_statement "util_memoize \"$full_statement\"" } #FIX ME: CALL BY NAME USING UPVAR @@ -214,18 +214,20 @@ set arguments [join $arguments] acs_sc_log SCDebug "ACS-SC: ad_proc $proc_name $arguments\n$docblock\n$body\n" ad_proc -private $proc_name $arguments $docblock $body - + return 1 } ad_proc acs_sc_update_alias_wrappers {} { Loop over actual bindings, finding every impl alias for each contract operation - and adfine a "acs_sc_proc" for all of these. - + and call "acs_sc_proc" for all of these. + + @see acs_sc_proc + } { db_foreach impl_operation { - select ia.impl_contract_name, + select ia.impl_contract_name, ia.impl_operation_name, ia.impl_name, ia.impl_alias, @@ -249,7 +251,7 @@ } } errorMsg]} { ns_log error "Service contract initialization failed, call was:\n\ - acs_sc_proc $impl_contract_name $impl_operation_name $impl_name $impl_alias $impl_pl" + acs_sc_proc $impl_contract_name $impl_operation_name $impl_name $impl_alias $impl_pl" } } } @@ -270,24 +272,24 @@ switch $impl_pl { - TCL { - set full_statement [list $impl_alias] - for {set __i 0} {$__i < [llength $arguments]} {incr __i} { - lappend full_statement "\$[lindex $arguments $__i]" - } - set full_statement [join $full_statement] - } - PLPGSQL { - set args_list [list] - for {set __i 0} {$__i < [llength $arguments]} {incr __i} { - lappend args_list "\$[lindex $arguments $__i]" - } - set args_final [join $args_list ,] - set full_statement "db_exec_plsql full_statement \"select ${impl_alias}(${args_final})\"" - } - default { - error "ACS-SC: Unknown impl_pl: $impl_pl" - } + TCL { + set full_statement [list $impl_alias] + for {set __i 0} {$__i < [llength $arguments]} {incr __i} { + lappend full_statement "\$[lindex $arguments $__i]" + } + set full_statement [join $full_statement] + } + PLPGSQL { + set args_list [list] + for {set __i 0} {$__i < [llength $arguments]} {incr __i} { + lappend args_list "\$[lindex $arguments $__i]" + } + set args_final [join $args_list ,] + set full_statement "db_exec_plsql full_statement \"select ${impl_alias}(${args_final})\"" + } + default { + error "ACS-SC: Unknown impl_pl: $impl_pl" + } } return $full_statement @@ -302,7 +304,7 @@ } { Additional documentation and commentary at http://openacs.org/forums/message-view?message_id=108614. - @param contract the contract name + @param contract the contract name @param operation the method to invoke @param arguments list of arguments to pass to the method @param impl the implementation name. @@ -313,10 +315,9 @@ @see acs_sc::invoke } { acs_sc::invoke -contract $contract -operation $operation -impl $impl -call_args $arguments -error=$error_p -} +} - ## ## Logging ## @@ -326,7 +327,7 @@ # If you want to debug the SC, uncomment the Debug log below if { "SCDebug" ne $level } { ns_log $level "$msg" - } else { + } else { # ns_log Debug "$msg" } } Index: openacs-4/packages/acs-templating/acs-templating.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/acs-templating.info,v diff -u -r1.66 -r1.66.2.1 --- openacs-4/packages/acs-templating/acs-templating.info 26 Jun 2018 19:31:20 -0000 1.66 +++ openacs-4/packages/acs-templating/acs-templating.info 14 Feb 2019 10:02:36 -0000 1.66.2.1 @@ -9,10 +9,10 @@ f t - + OpenACS Templating library. - 2017-08-06 + 2019-01-23 OpenACS The templating system provides the tag library and support routines that allow developers and graphic designers to work @@ -27,7 +27,7 @@ GPL version 2 3 - + Index: openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl,v diff -u -r1.4 -r1.4.4.1 --- openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl 27 Oct 2014 16:41:45 -0000 1.4 +++ openacs-4/packages/intermedia-driver/tcl/intermedia-procs.tcl 14 Feb 2019 10:02:36 -0000 1.4.4.1 @@ -6,37 +6,37 @@ Search Index Callback for Oracle Intermedia @author Dave Bauer (dave@thedesignexperience.org) @creation-date 2005-06-12 - + } { # we want the datasource array reference in case we want to do something clever if {$datasource ne ""} { - upvar $datasource _datasource + upvar $datasource _datasource } set content "${title} ${content}" # if storage type is file, store the text in the site_wide_index table if {![db_string index_exists "select 1 from site_wide_index where object_id=:object_id" -default 0]} { - db_dml index "insert into site_wide_index - (object_id, object_name, package_id, relevant_date, community_id, indexed_content) - values - (:object_id, :title, :package_id, :relevant_date, :community_id, empty_clob() ) - returning indexed_content into :1" -clobs [list $content] + db_dml index "insert into site_wide_index + (object_id, object_name, package_id, relevant_date, community_id, indexed_content) + values + (:object_id, :title, :package_id, :relevant_date, :community_id, empty_clob() ) + returning indexed_content into :1" -clobs [list $content] } else { - # call the update index proc since this object is already indexed - callback -impl intermedia-driver search::update_index \ - -object_id $object_id \ - -content $content \ - -title $title \ - -keywords $keywords \ - -community_id $community_id \ - -relevant_date $relevant_date \ - -description $description \ - -datasource $datasource \ - -package_id $package_id + # call the update index proc since this object is already indexed + callback -impl intermedia-driver search::update_index \ + -object_id $object_id \ + -content $content \ + -title $title \ + -keywords $keywords \ + -community_id $community_id \ + -relevant_date $relevant_date \ + -description $description \ + -datasource $datasource \ + -package_id $package_id } - + } ad_proc -public -callback search::update_index -impl intermedia-driver {} { @@ -45,29 +45,29 @@ @creation-date 2005-08-01 } { if {$datasource ne ""} { - upvar $datasource _datasource - } + upvar $datasource _datasource + } if {![db_string index_exists "select 1 from site_wide_index where object_id=:object_id" -default 0]} { - callback -impl intermedia-driver search::index \ - -object_id $object_id \ - -content $content \ - -title $title \ - -keywords $keywords \ - -community_id $community_id \ - -relevant_date $relevant_date \ - -description $description \ - -datasource $datasource \ - -package_id $package_id - return + callback -impl intermedia-driver search::index \ + -object_id $object_id \ + -content $content \ + -title $title \ + -keywords $keywords \ + -community_id $community_id \ + -relevant_date $relevant_date \ + -description $description \ + -datasource $datasource \ + -package_id $package_id + return } else { - db_dml index "update site_wide_index - set object_name=:title, - package_id=:package_id, - community_id=:community_id, - relevant_date=:relevant_date, - indexed_content=empty_clob() - where object_id=:object_id - returning indexed_content into :1" -clobs [list $content] + db_dml index "update site_wide_index + set object_name=:title, + package_id=:package_id, + community_id=:community_id, + relevant_date=:relevant_date, + indexed_content=empty_clob() + where object_id=:object_id + returning indexed_content into :1" -clobs [list $content] } } @@ -94,19 +94,19 @@ @param object_type } { if {[info exists package_ids] && [llength $package_ids]} { - set package_ids_clause " and swi.package_id in ([template::util::tcl_to_sql_list $package_ids]) " + set package_ids_clause " and swi.package_id in ([template::util::tcl_to_sql_list $package_ids]) " } else { - set package_ids_clause "" + set package_ids_clause "" } if {[info exists object_type] && $object_type eq "forums"} { - set object_type_clause " and o.object_type in ('forums_forum', 'forums_message') " + set object_type_clause " and o.object_type in ('forums_forum', 'forums_message') " } elseif {[info exists object_type] && $object_type ne "all" } { - set object_type_clause " and o.object_type = :object_type " + set object_type_clause " and o.object_type = :object_type " } else { - set object_type_clause "" + set object_type_clause "" } - + set weighted_score "score(10) - case when object_type='faq' then nvl(months_between(sysdate,relevant_date)/4,20) when object_type='forums' @@ -127,7 +127,7 @@ set people_search_clause { o.object_type = 'phb_person' or } if {[apm_package_installed_p "dotlrn"]} { - set is_guest_p [search::is_guest_p] + set is_guest_p [db_string get_is_guest_p {select dotlrn_privacy.guest_p(:user_id) from dual}] if {$is_guest_p} { set people_search_clause { and }; # doesn't look like legal SQL } @@ -144,33 +144,33 @@ set member_clause {} } - set results_ids [db_list search "select s.object_id from + set results_ids [db_list search "select s.object_id from (select rownum as r,o.object_id - from site_wide_index swi, acs_objects o - where swi.object_id= o.object_id + from site_wide_index swi, acs_objects o + where swi.object_id= o.object_id $object_type_clause - and contains (swi.indexed_content,:query, 10)> 0 + and contains (swi.indexed_content,:query, 10)> 0 and ( - $people_search_clause + $people_search_clause (exists (select 1 from acs_object_party_privilege_map m where m.object_id = o.object_id and m.party_id = :user_id - and m.privilege = 'read') + and m.privilege = 'read') $community_id_clause)) $package_ids_clause order by $weighted_score desc) s where r > $offset and r <= $offset + $limit"] # TODO implement stopwords reporting for user query - set count [db_string count "select count(swi.object_id) from site_wide_index swi, acs_objects o where o.object_id=swi.object_id $object_type_clause and contains (swi.indexed_content,:query)> 0 + set count [db_string count "select count(swi.object_id) from site_wide_index swi, acs_objects o where o.object_id=swi.object_id $object_type_clause and contains (swi.indexed_content,:query)> 0 and ( - $people_search_clause + $people_search_clause (exists (select 1 from acs_object_party_privilege_map m where m.object_id = o.object_id and m.party_id = :user_id - and m.privilege = 'read') + and m.privilege = 'read') $member_clause)) $package_ids_clause "] set stop_words "" @@ -206,7 +206,13 @@ @author Dave Bauer (dave@thedesignexperience.org) @creation-date 2005-05-29 - + } { return [list package_key intermedia-driver version 1 automatic_and_queries_p 1 stopwords_p 1] } + +# Local variables: +# mode: tcl +# tcl-indent-level: 4 +# indent-tabs-mode: nil +# End: Index: openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml,v diff -u -r1.14 -r1.14.2.1 --- openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml 7 Aug 2017 23:48:13 -0000 1.14 +++ openacs-4/packages/notifications/catalog/notifications.it_IT.ISO-8859-1.xml 14 Feb 2019 10:02:36 -0000 1.14.2.1 @@ -30,6 +30,8 @@ Annulla Iscrizione Richiedi notifiche Regola le notifiche + Nessuna notifica + Nessuno ha sottoscritto le notifiche per questo oggetto Notifica Risposte a Notifica Risposta a Notifica Index: openacs-4/packages/openacs-default-theme/lib/plain-master.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/openacs-default-theme/lib/plain-master.tcl,v diff -u -r1.6 -r1.6.2.1 --- openacs-4/packages/openacs-default-theme/lib/plain-master.tcl 7 Aug 2017 23:48:13 -0000 1.6 +++ openacs-4/packages/openacs-default-theme/lib/plain-master.tcl 14 Feb 2019 10:02:36 -0000 1.6.2.1 @@ -4,7 +4,7 @@ Properties allowed doc(title) HTML title head code to be entered into head of document - body + body focus HTML id of form element to focus skip_link href of link to skip to. Should be of format #skip_link main_content_p if true wrap in the main content divs (if false, provide your own @@ -53,7 +53,7 @@ } } -# +# # User information and top level navigation links # set user_id [ad_conn user_id] @@ -96,7 +96,7 @@ # util_get_user_messages -multirow user_messages -# +# # Set acs-lang urls # set acs_lang_url [apm_package_url_from_key "acs-lang"] @@ -144,6 +144,7 @@ } else { set context_tmp {} } +# ns_log notice "context_tmp <$context_tmp>" ad_context_bar_multirow -- $context_tmp @@ -153,7 +154,7 @@ # # Curriculum specific bar -# TODO: remove this and add a more systematic / package independent way +# TODO: remove this and add a more systematic / package independent way # TODO of getting this content here # set curriculum_bar_p [expr { Index: openacs-4/tcl/zz-postload.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/tcl/zz-postload.tcl,v diff -u -r1.7 -r1.7.2.1 --- openacs-4/tcl/zz-postload.tcl 7 Aug 2017 23:48:31 -0000 1.7 +++ openacs-4/tcl/zz-postload.tcl 14 Feb 2019 10:02:36 -0000 1.7.2.1 @@ -12,7 +12,7 @@ ns_log "Notice" "Done." # This should probably be moved to the end of bootstrap.tcl once all files are -# weeded out of the tcl directory. +# weeded out of the Tcl directory. ns_log "Notice" "Executing initialization code blocks..." foreach init_item [nsv_get ad_after_server_initialization .] { array set init $init_item @@ -36,7 +36,7 @@ proc __is_xql {arg} { return [expr {[file isdirectory $arg] || [file extension $arg] eq ".xql"}]} -# We need to load query files for the top-level stuff in www and tcl +# We need to load query files for the top-level stuff in www and Tcl # dirs is the list of directories to walk for xql files. Packages .xql # files are parsed elsewhere in the bootstrap process. Index: openacs-4/www/blank-master.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/www/blank-master.tcl,v diff -u -r1.57 -r1.57.2.1 --- openacs-4/www/blank-master.tcl 7 Aug 2017 23:48:31 -0000 1.57 +++ openacs-4/www/blank-master.tcl 14 Feb 2019 10:02:36 -0000 1.57.2.1 @@ -1,5 +1,5 @@ ad_page_contract { - This is the top level master template. It allows the basic parts of an HTML + This is the top-level master template. It allows the basic parts of an HTML document to be set through convenient data structures without introducing anything site specific. @@ -16,7 +16,7 @@ @property doc(title_lang) The language of the document title, if different from the document language. - The document output can be customised by supplying the following variables: + The document output can be customized by supplying the following variables: @property doc(type) The declared xml DOCTYPE. @property doc(charset) The document character set. @@ -26,7 +26,7 @@ ad_conn -set language Must be used to override the document language if necessary. - To add a CSS or Javascripts to the section of the document you can + To add CSS or JavaScript files to the section of the document you can call the corresponding template::head::add_* functions within your page. @see template::head::add_css @@ -40,7 +40,7 @@ @see template::head::add_link @see template::head::add_script - Javascript event handlers, such as onload, an be added to the tag by + JavaScript event handlers, such as onload, an be added to the tag by calling template::add_body_handler within your page. @see template::add_body_handler @@ -73,14 +73,26 @@ -lang en \ -content "OpenACS version [ad_acs_version]" -# Add standard javascript +# Add standard JavaScript # # Include core.js inclusion to the bottom of the body. template::add_body_script -type "text/javascript" -src "/resources/acs-subsite/core.js" # -# Add css for the current subsite, defaulting to the old list/form css which was +# Add page plugin specific code +# +# The check is transitional code (until the release of OpenACS 5.11 or +# 5.12) and is just upgrading the package from earlier versions, where +# e.g. the blank master is installed before the subsite definitions +# for the page_plugin callback. Templates are required to be very +# robust. +if {[info commands ::callback::subsite::page_plugin::*] ne ""} { + callback subsite::page_plugin +} + +# +# Add CSS for the current subsite, defaulting to the old list/form CSS which was # hard-wired in previous versions of OpenACS. set cssList [parameter::get -package_id [ad_conn subsite_id] -parameter ThemeCSS -default ""] @@ -153,14 +165,7 @@ # page (that might require a list of the HTML IDs of all affected # textareas). # -# We check whether render_widgets command exists, as during a release -# upgrade this could be missing and would prevent any further action -# on the system after installing new code -if {[info proc ::template::util::richtext::render_widgets] ne ""} { - ::template::util::richtext::render_widgets -} else { - ns_log warning "::template::util::richtext::render_widgets not defined. Richtext widgets won't work. Try restarting the server." -} +::template::util::richtext::render_widgets # # Get the basic content info like title and charset for the head of @@ -190,7 +195,7 @@ -content "text/html; charset=$doc(charset)" \ -http_equiv "content-type" # -# The following meta tags are unknwon for HTML5, therefore discouraged +# The following meta tags are unknown for HTML5, therefore discouraged # # template::head::add_meta \ # -content "text/css" \ @@ -233,7 +238,9 @@ document.forms[form_name].elements[element_name].focus(); }; } - append focus_script "acs_Focus('${form_name}', '${element_name}');\n" + append focus_script "window.addEventListener('load', function() { + acs_Focus('${form_name}', '${element_name}'); + }, false);" template::add_body_script -script $focus_script } else { ns_log warning "blank-master: variable focus has invalid value '$focus'"