Result:
found more than 757 distributions - search limited to the first 2001 files matching your query ( run in 1.270 )


Apache-Cache

 view release on metacpan or  search on metacpan

lib/Apache/Cache.pm  view on Meta::CPAN


C<default_lock_timeout> optional, integer

Number of second(s) to wait for locks used each time manipulating data in the shared memory.

Defaults to not waiting. This means a get() - for expample - on a temporary locked
key - certainely by another process - will return a FAILED status.

=back

Additionnaly, all Apache::SharedMem parameters are also customizable. See L<Apache::SharedMem>.

 view all matches for this distribution


Apache-DnsZone

 view release on metacpan or  search on metacpan

bin/mysql/addreversezone.pl  view on Meta::CPAN

    print "needed to be a number\n";
    $dbh->disconnect();
    exit 1;
}

print "Do you want the SOA to be locked (n): ";
my $answer = <>;
chomp($answer);
my $lock = 0;
$lock = 1 if $answer =~ /^y$/i;

bin/mysql/addreversezone.pl  view on Meta::CPAN

$dbh->disconnect();


sub rec_lock {
    my $lock = 0;
    print "Do you want this record to be locked (n): ";
    my $answer = <>;
    chomp($answer);
    $lock = 1 if $answer =~ /^y$/i;
    return $lock;
}

 view all matches for this distribution


Apache-Dynagzip

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

	- Rob Bloodgood and Damyan Ivanov complained about "uninitialized value" warnings from unused
	  HTTP headers, and about pack mode "c", which generated warnings on their systems (running -w).
	  I failed to reproduce the effect of pack mode, but decided to change the mode to "C"
	  because it has been reported as a clean solution for both Rob and Damyan from one side,
	  and this should not effect the packed code (as I understand it) from the other side.
	  "Uninitialized value" warnings were blocked in accordance with the patch provided by Rob Bloodgood.
	  All changes were manually double-checked with the patch provided by Damyan Ivanov.
	- partial code revision has been done in order to prepare the further structural changes.
	  30927 Jul 20 01:09 Apache-Dynagzip-0.10.tar.gz

0.09  Sun Jan 05 01:45:00 2003

 view all matches for this distribution


Apache-ForwardedFor

 view release on metacpan or  search on metacpan

lib/Apache/ForwardedFor.pm  view on Meta::CPAN


By using either the B<PerlSetVar> or B<PerlAddVar> directive you can
list hosts for which we will only be allowing handling of Forwarded headers from.

That means if you put one host in this list then all non-listed hosts
will be blocked.

B<Netblocks> are not supported at this time - you must supply the
full IP address.

=head2 ForwardedForDeny

 view all matches for this distribution


Apache-HTTunnel

 view release on metacpan or  search on metacpan

lib/Apache/HTTunnel.pm  view on Meta::CPAN

# that will be used byb the Apache children to communicate with the "keeper"
# process.
PerlSetVar		HTTunnelFifo				/var/lib/httunnel/httunnel.sock

# The maximum connect timeout that may be specified by the client. This value
# should be kept low (< 60) since that Apache children maybe be blocked up 
# to that ammount of time.
# In seconds.
PerlSetVar		HTTunnelMaxConnectTimeout	15

# The maximum read length that may be specified by the client.
# In bytes.
PerlSetVar		HTTunnelMaxReadLength		131072

# The maximum read timeout that may be specified by the client. This value
# should be kept low (< 60) since that Apache children maybe be blocked up 
# to that ammount of time.
# In seconds.
PerlSetVar		HTTunnelMaxReadTimeout		15

# Connections that remain inactive after this amount of time will be closed.

 view all matches for this distribution


Apache-JumpByReferer

 view release on metacpan or  search on metacpan

lib/Apache/JumpByReferer.pm  view on Meta::CPAN

 http://malicious\.site\.example\.com/ http://goodbye.example.com/
 http://another\.malicious\.site/      forbidden
 http://ime\.nu/                       forbidden
 http://[^.]+\.google\.([^/]+)/        /hello_googler.html
 http://[^.]+\.yahoo\.([^/]+)/         /do_you_yahoo/?
 "Field blocked by"                    /do/not/block/the/field/

=head1 DESCRIPTION

Apache::JumpByReferer is an access phase handler of Apache + mod_perl.
You can block or let the user jump to another URL if the user was

 view all matches for this distribution


Apache-LoggedAuthDBI

 view release on metacpan or  search on metacpan

DBI.pm  view on Meta::CPAN

drivers may attempt to implement this method by executing
"C<select max($field) from $table>". Drivers using any approach
like this should issue a warning if C<AutoCommit> is true because
it is generally unsafe - another process may have modified the table
between your insert and the select. For situations where you know
it is safe, such as when you have locked the table, you can silence
the warning by passing C<Warn> => 0 in \%attr.

B<*> If no insert has been performed yet, or the last insert failed,
then the value is implementation defined.

 view all matches for this distribution


Apache-SdnFw

 view release on metacpan or  search on metacpan

lib/Apache/SdnFw/db/install/pg.sql  view on Meta::CPAN

	login			varchar(255) unique not null,
	passwd			varchar(32) not null,
	name			varchar(255) not null,
	email			varchar(255),
	passwd_expire	timestamp,
	locked_out		boolean,
	remote_addr		inet,
	last_bad_pass	date,
	bad_pass_count	int4,
	cookie			varchar(32) unique,
	created_ts		timestamp not null default now(),

lib/Apache/SdnFw/db/install/pg.sql  view on Meta::CPAN

GRANT ALL ON employee_groups TO sdnfw;
CREATE INDEX employee_groups_employee_id ON employee_groups (employee_id);
CREATE INDEX employee_groups_group_id ON employee_groups (group_id);

CREATE VIEW employees_v_login (employee_id, login, cookie, passwd, name, email,
	password_expired, locked_out, account_expired, groups, admin) AS
SELECT e.employee_id, e.login, e.cookie, e.passwd, e.name, e.email,
	CASE WHEN passwd_expire < now() THEN TRUE ELSE NULL END as password_expired,
	e.locked_out,
	CASE WHEN expired_ts < now() THEN TRUE ELSE NULL END as account_expired,
	concat(eg.group_id) as groups,
	CASE WHEN count(g.admin) > 0 THEN TRUE ELSE NULL END as admin
FROM employees e
	LEFT JOIN employee_groups eg ON e.employee_id=eg.employee_id

 view all matches for this distribution


Apache-Session-Counted

 view release on metacpan or  search on metacpan

lib/Apache/Session/Counted.pm  view on Meta::CPAN

    }
    "$dir/$file";
  }
}

# Counted is locked by definition
sub release_all_locks {
  return;
}

*get_lock_manager = \&release_all_locks;

 view all matches for this distribution


Apache-Session

 view release on metacpan or  search on metacpan

lib/Apache/Session/Lock/File.pm  view on Meta::CPAN


Windows cannot escalate lock, so all locks will be exclusive.

release_read_lock not supported - it is not used by Apache::Session.

When deleting files, they are not locked (Win32 only).

=head1 AUTHOR

This module was written by Jeffrey William Baker <jwbaker@acm.org>.

 view all matches for this distribution


Apache-SharedMem

 view release on metacpan or  search on metacpan

lib/Apache/SharedMem.pm  view on Meta::CPAN

C<wait> optional

Defined the locking status of the request. If you must get the value, and can't continue without it, set
this argument to constant WAIT, unless you can set it to NOWAIT. 

If the key is locked when you are tring to get the value, NOWAIT return status FAILURE, and WAIT hangup
until the value is unlocked. An alternative is to setup a WAIT timeout, see below.

NOTE: you needs :wait tag import: 

    use Apache::SharedMem qw(:wait)

 view all matches for this distribution


Apache-iNcom

 view release on metacpan or  search on metacpan

lib/Apache/Session/DBIBase64Store.pm  view on Meta::CPAN

	id	    CHAR(32) PRIMARY KEY,
	length	    INT,
	a_session   TEXT,
	created	    TIMESTAMP DEFAULT 'now()',
	last_update TIMESTAMP DEFAULT 'now()'
	locked_by   INT
    );


The previous SQL statement is valid for PostgreSQL. Adapt for your
specific DBMS.

 view all matches for this distribution


Apache2-API

 view release on metacpan or  search on metacpan

lib/Apache2/API/Status.pm  view on Meta::CPAN


=head2 HTTP_LOCKED (423)

See L<rfc 4918 on WebDAV|https://tools.ietf.org/html/rfc4918>

This is returned under the WebDav protocol when one tries to make change to a locked resource.

=head2 HTTP_FAILED_DEPENDENCY (424)

See L<rfc 4918 on WebDAV|https://tools.ietf.org/html/rfc4918>

lib/Apache2/API/Status.pm  view on Meta::CPAN

This status code has been chosen on purpose, for its relation with the book L<Fahrenheit 451|https://en.wikipedia.org/wiki/Fahrenheit_451> from Ray Bradbury. In his book, the central theme is the censorship of literature. The book title itself "Fahre...

For example:

    HTTP/1.1 451 Unavailable For Legal Reasons
    Link: <https://example.org/legal>; rel="blocked-by"
    Content-Type text/plain
    Content-Length: 48

    You are prohibited from accessing this resource.

 view all matches for this distribution


Apache2-AuthCASpbh

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


	* First release

0.20	2023/01/03

	* Fiddle with sqlite autocommit to possibly resolve a locked db issue

	* Pass a copy of the cas attributes data structure to consumers so
	  they can't change the master session values

0.30	2024/11/15

 view all matches for this distribution


Apache2-SSI

 view release on metacpan or  search on metacpan

lib/Apache2/SSI/SharedMem.pm  view on Meta::CPAN

    $self->{size}       = SHM_BUFSIZ;
    $self->{_init_strict_use_sub} = 1;
    $self->SUPER::init( @_ ) || return;
    $self->{addr}       = undef();
    $self->{id}         = undef();
    $self->{locked}     = 0;
    $self->{owner}      = $$;
    $self->{removed}    = 0;
    $self->{semid}      = undef();
    return( $self );
}

lib/Apache2/SSI/SharedMem.pm  view on Meta::CPAN

    my $type = shift( @_ );
    my $timeout = shift( @_ );
    # $type = LOCK_EX if( !defined( $type ) );
    $type = LOCK_SH if( !defined( $type ) );
    return( $self->unlock ) if( ( $type & LOCK_UN ) );
    return( 1 ) if( $self->locked & $type );
    $timeout = 0 if( !defined( $timeout ) || $timeout !~ /^\d+$/ );
    # If the lock is different, release it first
    $self->unlock if( $self->locked );
    my $semid = $self->semid ||
        return( $self->error( "No semaphore id set yet." ) );
    local $@;
    # try-catch
    my $rv = eval

lib/Apache2/SSI/SharedMem.pm  view on Meta::CPAN

    {
        return( $self->error( "Unable to set a lock: $@" ) );
    }
    if( $rv )
    {
        $self->locked( $type );
    }
    else
    {
        return( $self->error( "Failed to set a lock on semaphore id \"$semid\": $!" ) );
    }
    return( $self );
}

sub locked { return( shift->_set_get_scalar( 'locked', @_ ) ); }

sub mode { return( shift->_set_get_scalar( 'mode', @_ ) ); }

sub op
{

lib/Apache2/SSI/SharedMem.pm  view on Meta::CPAN

sub supported { return( $SYSV_SUPPORTED ); }

sub unlock
{
    my $self = shift( @_ );
    return( 1 ) if( !$self->locked );
    my $semid = $self->semid;
    return( $self->error( "No semaphore set yet. You must open the shared memory first to unlock semaphore." ) ) if( !length( $semid ) );
    my $type = $self->locked | LOCK_UN;
    $type ^= LOCK_NB if( $type & LOCK_NB );
    if( defined( $self->op( @{$SEMOP_ARGS->{ $type }} ) ) )
    {
        $self->locked( 0 );
    }
    return( $self );
}

sub write

 view all matches for this distribution


Apache2-xForwardedFor

 view release on metacpan or  search on metacpan

lib/Apache2/xForwardedFor.pm  view on Meta::CPAN

		if ( exists $ips_deny{$remote_ip} ) {
			$_accept= -1;
		}

	if 	( $_accept < 0 ) {
		DEBUG && print STDERR "\n ip in blocked list";
		return FORBIDDEN;
	}
	elsif ( !$_accept && $require_header) {
		DEBUG && print STDERR "\n ip not passed, and header required";
		return FORBIDDEN;

 view all matches for this distribution


App-AltSQL

 view release on metacpan or  search on metacpan

lib/App/AltSQL.pm  view on Meta::CPAN


All of the shells that we used on a daily basis allow you to abandon the half-written statement on the prompt by typing Ctrl-C.  Spending all day in shells, you expect this behavior to be consistent, but you do this in mysql and you will be thrown to...

=item Wide output wraps

We are grateful that mysql at least uses ASCII art for table formatting (unlike C<sqlite3> for some reason).  But there are some tables that I work with that have many columns, with long names (it's often easier to keep adding columns to a table over...

Suffice it to say, it's a much better experience if, just like with C<git diff>, wide output is left wide, and you are optionally able to scroll horizontally with your arrow keys like you wanted in the first place.

=item Color

 view all matches for this distribution


App-Base

 view release on metacpan or  search on metacpan

lib/App/Base/Daemon.pm  view on Meta::CPAN


Writes PID of the daemon into specified file, by default writes pid into /var/run/__PACKAGE__.pid

=head2 --no-pid-file

Do not write pid file, and do not check if it is exist and locked.

=head2 --no-warn

Do not produce warnings, silent mode

lib/App/Base/Daemon.pm  view on Meta::CPAN

            option_type   => 'string',
            documentation => "Use specified file to save PID",
        },
        {
            name          => 'no-pid-file',
            documentation => "Do not check if pidfile exists and locked",
        },
        {
            name          => 'user',
            documentation => "User to run as",
        },

 view all matches for this distribution


App-BlockWebFlooders

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.010   2019-01-29 (PERLANCAR)

	- Add --action and actions: block, unblock, unblock_all,
	  list_blocked.

	- [bugfix] Don't die when unblocking an IP fails (e.g. iptables has
	  been cleared).

	- [ux] Prevent running multiple instances.

Changes  view on Meta::CPAN

	- [Bugfix] --has-pattern and --lacks-pattern were not considered.


0.006   2018-11-10 (PERLANCAR)

	- [Bugfix] Display the correct number of blocked IPs.


0.005   2018-11-10 (PERLANCAR)

	- Now by default only blocks an IP for 86400 seconds.

 view all matches for this distribution


App-CamelPKI

 view release on metacpan or  search on metacpan

lib/App/CamelPKI/Action/JSON.pm  view on Meta::CPAN

(see L<App::CamelPKI/end>);

=item *

The I<cross-site request forgery> attack
(<http://en.wikipedia.org/wiki/JSON#Security_issues>) is blocked.

=back

=head2 How to call a JSON view to do JSON-RPC

 view all matches for this distribution


App-Chart

 view release on metacpan or  search on metacpan

lib/App/Chart/Glib/Ex/MoreUtils.pm  view on Meta::CPAN

C<$value> returned.

This is meant for selecting semi-technical things from a fixed set of
possibilities within the program code, for example different URLs for the
English or German version of some web page which will be parsed.  If it was
in a F<.mo> file (per C<Locale::TextDomain>) the choice would be locked down
by the translator, but C<lang_select> allows a user preference.

=back

=head1 SEE ALSO

 view all matches for this distribution


App-Cheats

 view release on metacpan or  search on metacpan

cheats.txt  view on Meta::CPAN


# Error - Could not get lock /var/lib/dpkg/lock (admin)
sudo kill -9 $(sudo lsof | grep /var/lib/dpkg/lock | awk '{print $2}')
sudo dpkg --configure -a

# dpkg: error: dpkg status database is locked by another process (DES,bench)
sudo rm -f /var/lib/dpkg/lock

# Install a package from a file
sudo dpkg -i my.deb

cheats.txt  view on Meta::CPAN

#############################################################

# Get top 20 people using too much disk space
du -ms /* | sort -nr | head -n 20

# Find how much space each locked user is using
a=`sudo passwd -Sa | AND -r "\bL$" | get_nth 0 | while read u; do ls -d1 /net/home*/$u; done 2>/dev/null | col_2_row`
b=`sudo du -scm `echo $a` | sort -nr`
echo "$b" | perl -ple '($u)=m{/([^/]+)$} or ($_=sprintf "%-30s %s", $_,"Password Status (L - Locked)") and next; ($s)=(split " ",`sudo passwd -S $u`)[-1]; chomp $s; $_ = sprintf "%-30s %s", $_, $s'

# Find how much space each locked user is using (compact)
sudo passwd -Sa | AND "\bL$" | perl -aple '$d=qx{sudo du -sm /net/home*/$F[0]}; $d = $? ? "NO HOME DIR" : (chomp $d,$d); $_ = "$d - $_"'


#############################################################
## Linux Commands - eval

cheats.txt  view on Meta::CPAN

co -u file

# RCS error: file is in use
rm -f RCS/,file_name

# RCS error: file locked by pwxxxx
rcs -U file

# RCS: check in a file initially without the prompt message
ci -t-msg tiny2_rcs.tst

cheats.txt  view on Meta::CPAN

# Thread pitfall. $a can be either 2 or 3 (race condition)
perl -lMthreads -Mthreads::shared -le '$a=1; share($a); $_->join for map async(sub{my $foo=$a; $a=$foo+1}), 1..2; print "a=$a"'

# Allow only one thread to touch a variable at a time
# This will cause a "deadlock" where one thread requires a reourses
# locked by another thread and vice versa
perl -Mthreads -Mthreads::shared -le 'share $a; share $b; push @t, async(sub{lock $a; sleep 20; lock $b}); push @t, async(sub{lock $b; sleep 20; lock $a}); $_->join for @t'
#
# Alternate syntax 1
perl -Mthreads -le 'my $a :shared; my $b :shared; push @t, async(sub{lock $a; sleep 20; lock $b}); push @t, async(sub{lock $b; sleep 20; lock $a}); $_->join for @t'
#

 view all matches for this distribution


App-Chronicle

 view release on metacpan or  search on metacpan

themes/bs2/static/js/jquery-1.7.1.min.js  view on Meta::CPAN

/*! jQuery v1.7.1 jquery.com | jquery.org/license */
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("ifram...
f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){ret...
{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this...

 view all matches for this distribution


App-ClusterSSH

 view release on metacpan or  search on metacpan

t/30cluster.t  view on Meta::CPAN

    $cluster1->read_cluster_file( $Bin . '/30cluster.doesnt exist' );
};
is( !$trap, '', 'coped with missing file ok' );
isa_ok( $cluster1, 'App::ClusterSSH::Cluster' );

# no point running this test as root since root cannot be blocked
# from accessing the file
if ( $EUID != 0 ) {
    my $no_read = $Bin . '/30cluster.cannot_read';
    chmod 0000, $no_read;
    trap {

 view all matches for this distribution


App-Context

 view release on metacpan or  search on metacpan

lib/App.pm  view on Meta::CPAN


=item * Class Group: L<C<SharedDatastore>|App::SharedDatastore>
      - a data storage area which is shared between processes

=item * Class Group: L<C<SharedResourceSet>|App::SharedResourceSet>
      - a set of shared resources which may be locked for exclusive access

=back

=cut

 view all matches for this distribution


App-Cronjob

 view release on metacpan or  search on metacpan

lib/App/Cronjob.pm  view on Meta::CPAN

        my $error = $!;
        my $mtime = (stat $lock_fh)[9];
        my $stamp = scalar localtime $mtime;
        die App::Cronjob::Exception->new(
          lock => "can't lock; $!; lockfile created $stamp",
          { locked_since => $mtime },
        );
      }

      printf $lock_fh "pid %s running %s\nstarted at %s\n",
        $$, $opt->{command}, scalar localtime $^T;

lib/App/Cronjob.pm  view on Meta::CPAN

  if (eval { $err->isa('App::Cronjob::Exception'); }) {
    unless (
      grep { $err->{type} and $_ eq $err->{type} } @{$opt->{ignore_errors}}
    ) {
      if ($err->{type} eq "lock" && $opt->{temp_ignore_lock_errors}) {
        my $age = time() - $err->{extra}{locked_since};
        exit 0 if $age <= $opt->{temp_ignore_lock_errors};
      }
      send_cronjob_report({
        is_fail => 1,
        output  => \$err->{text},

 view all matches for this distribution


App-Dochazka-Common

 view release on metacpan or  search on metacpan

lib/App/Dochazka/Common.pm  view on Meta::CPAN


=item * Activities (what kinds of work are recognized)

=item * Intervals (the "work", or "attendance", itself)

=item * Locks (determining whether a reporting period is locked or not)

=item * Components (Mason components, i.e. report templates)

=back

lib/App/Dochazka/Common.pm  view on Meta::CPAN

=item * C<admin> -- employee can view, modify, and place/remove locks on her
own attendance data as well as that of other employees; she can also
administer employee accounts and set privilege levels of other employees

=item * C<active> -- employee can view her own profile, attendance data,
modify her own unlocked attendance data, and place locks on her attendance
data

=item * C<inactive> -- employee can view her own profile and attendance data

=item * C<passerby> -- employee can view her own profile

lib/App/Dochazka/Common.pm  view on Meta::CPAN

=head2 Lock

In Dochazka, a "lock" is a record in the "locks" table specifying that
a particular user's attendance data (i.e. activity intervals) for a 
given period (tsrange) cannot be changed. That means, for intervals in 
the locked tsrange:

=over

=item * existing intervals cannot be updated or deleted

lib/App/Dochazka/Common.pm  view on Meta::CPAN


How the lock is used will differ from site to site, and some sites may not
even use locking at all. The typical use case would be to lock all the
employee's attendance data within the given period as part of pre-payroll
processing. For example, the Dochazka client application may be set up to
enable reports to be generated only on fully locked periods. 

"Fully locked" means either that a single lock record has been inserted
covering the entire period, or that the entire period is covered by multiple
locks.

Any attempts (even by administrators) to enter activity intervals that 
intersect an existing lock will result in an error.

 view all matches for this distribution


App-Dochazka-REST

 view release on metacpan or  search on metacpan

config/sql/dbinit_Config.pm  view on Meta::CPAN

              this_intvl := OLD.intvl;
          END IF;

          SELECT count(*) INTO lock_count FROM locks WHERE eid=this_eid AND intvl && this_intvl;
          IF lock_count > 0 THEN
              RAISE EXCEPTION 'interval is locked';
          END IF;

          IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN
              RETURN NEW;
          ELSE

config/sql/dbinit_Config.pm  view on Meta::CPAN

          END IF;

      END;
      $IMM$ LANGUAGE plpgsql/,
          
    q/CREATE TRIGGER intvl_not_locked BEFORE INSERT OR UPDATE OR DELETE ON intervals
      FOR EACH ROW EXECUTE PROCEDURE no_lock_conflict()/,

    # the 'tempintvls' table and associated plumbing

    q/CREATE SEQUENCE temp_intvl_seq/,

 view all matches for this distribution


App-Dochazka-WWW

 view release on metacpan or  search on metacpan

share/js/dochazka-www/svg-lib.js  view on Meta::CPAN


    var 
        absWidth = 870,

        dayViewerIntervals = function (date, obj, how) {
            // returns an SVG document for date, reflecting clocked and
            // scheduled intervals in obj; how is a boolean value "holiday or
            // weekend"
            var r = '',
                fill, i, intvl, begin, bo, end, eo, color;
            if (how) {

share/js/dochazka-www/svg-lib.js  view on Meta::CPAN

            }
            r += '<svg width="' + absWidth + '" height="30" ' + svgBoilerPlate + '>';
            // draw base rectangle
            r += '<rect x="5" y="0" width="' + absWidth + '" height="30" fill="gray" stroke="transparent"/>';
            // draw attendance intervals
            for (i = 0; i < obj.clocked.length; i += 1) {
                intvl = obj.clocked[i];
                [begin, end] = intvl.iNtimerange.split('-');
                [bo, eo] = [timeToOffset(begin), timeToOffset(end)];
                color = appCaches.getActivityByAID(intvl.aid).color;
                r += '<rect x="' + bo + '" y="0" width="' + (eo - bo) + '" height="30" ' +
                     'fill="' + color + '" stroke="transparent"/>';

 view all matches for this distribution


( run in 1.270 second using v1.01-cache-2.11-cpan-49f99fa48dc )