[Rt-commit] rt branch, 4.6/lifecycle-ui-dev, repushed

Craig Kaiser craig at bestpractical.com
Fri Dec 13 11:40:28 EST 2019


The branch 4.6/lifecycle-ui-dev was deleted and repushed:
       was 0d318bb137762e6488b0ac756839508b4ab27d03
       now 2c4ce14695d6cf578016521620b02a4f0b7237d5

1: 0d318bb137 ! 1: 2c4ce14695 Core Lifecycle-UI
    @@ -210,6 +210,12 @@
              @_,
          );
     +    $args{'Type'} = $args{'Type'} // 'ticket';
    ++
    ++    my $needs_update = RT->System->LifecycleCacheNeedsUpdate;
    ++    if ($needs_update > $lifecycle_cache_time) {
    ++        $self->FillCache();
    ++        $lifecycle_cache_time = $needs_update;
    ++    }
      
     -    if (defined $args{Name} and exists $LIFECYCLES_CACHE{ $args{Name} }) {
     -        $self->{'name'} = $args{Name};
    @@ -223,12 +229,6 @@
     -        $self->{'type'} = $args{Type};
     -    } else {
     -        return undef;
    -+    my $needs_update = RT->System->LifecycleCacheNeedsUpdate;
    -+    if ($needs_update > $lifecycle_cache_time) {
    -+        $self->FillCache();
    -+        $lifecycle_cache_time = $needs_update;
    -+    }
    -+
     +    my $load_class = sub {
     +        if (defined $args{Name} and exists $LIFECYCLES_CACHE{ $args{Name} }) {
     +            $self->{'name'} = $args{Name};
    @@ -460,6 +460,26 @@
     +        %{$args{NewConfig}}
     +    );
     +
    ++    # Remove any stale status mapppings that no longer apply
    ++    for my $mapname ( keys %{$lifecycles->{__maps__}} ) {
    ++        if ( $mapname =~ /($name) ->|-> ($name)/ ) {
    ++            my $left  = $1;
    ++            my $right = $2;
    ++            next unless $right or $left;
    ++
    ++            foreach my $mapping ( $lifecycles->{__maps__}->{$mapname} ) {
    ++                next unless scalar keys %{$mapping};
    ++
    ++                my ($left_status, $right_status) = ((keys %{$mapping})[0], (values %{$mapping})[0]);
    ++                my $status = $left ? $left_status : $right_status;
    ++
    ++                unless ( grep{ $status eq $_ } keys %{$lifecycles->{$name}->{'transitions'}} ) {
    ++                    RT::Logger->error("Deleting mapping: $left_status -> $right_status, for status: $status" );
    ++                    delete $lifecycles->{'__maps__'}{$mapname};
    ++                }
    ++            }
    ++        }
    ++    }
     +    my ($ok, $msg) = $class->_SaveLifecycles($lifecycles, $CurrentUser);
     +    return ($ok, $msg) if !$ok;
     +
    @@ -1554,6 +1574,7 @@
     +
     +.lifeycycle-ui-edit-node {
     +    position: absolute;
    ++    z-index: 99;
     +}
     +
     +.svg-container {
    @@ -1968,7 +1989,7 @@
     +        UpdateNode(element) {
     +            var self = this;
     +            const nodeInput = jQuery("#lifeycycle-ui-edit-node");
    -+            nodeInput.css( {position:"absolute", top:event.pageY - 235, left: event.pageX});
    ++            nodeInput.css( {position:"absolute", top:event.pageY - 275, left: event.pageX + 15});
     +
     +            var list = document.getElementById('lifeycycle-ui-edit-node').querySelectorAll('input, select');
     +
    @@ -2287,16 +2308,40 @@
     +        var index = this.nodes.findIndex(x => x.id == d.id);
     +        this.DeleteLinksForNode(this.nodes[index]);
     +
    ++        self.CheckRights(d);
    ++        self.CheckDefaults(d);
    ++        self.CheckActions(d);
    ++
     +        this.nodes.splice(index, 1);
    -+
    -+        // defaults
    ++    }
    ++
    ++    LinksForNode (node) {
    ++        return this.links.filter(link => {
    ++            if ( link.source.id === node.id ) {
    ++                return true;
    ++            }
    ++            else if ( link.target.id === node.id && link.start ) {
    ++                return true;
    ++            }
    ++            else {
    ++                return false;
    ++            }
    ++        });
    ++    }
    ++
    ++    CheckDefaults(d) {
    ++        var self = this;
    ++
     +        jQuery.each(self.config.defaults, function (key, value) {
     +            if (value === d.name) {
     +                delete self.config.defaults[key];
     +            }
     +        });
    -+
    -+        // rights
    ++    }
    ++
    ++    CheckRights(d) {
    ++        var self = this;
    ++
     +        jQuery.each(self.config.rights, function(key, value) {
     +            var pattern = d.name+" ->|-> "+d.name;
     +            var re = new RegExp(pattern,"g");
    @@ -2306,27 +2351,13 @@
     +        });
     +    }
     +
    -+    LinksForNode (node) {
    -+        return this.links.filter(link => {
    -+            if ( link.source.id === node.id ) {
    -+                return true;
    -+            }
    -+            else if ( link.target.id === node.id && link.start ) {
    -+                return true;
    -+            }
    -+            else {
    -+                return false;
    -+            }
    -+        });
    -+    }
    -+
     +    CheckActions(d) {
     +        var self = this;
     +
     +        var actions = [];
    -+        var tempArr = self.config.actions;
    -+
    -+        var i = tempArr.length/2;
    ++        var tempArr = self.config.actions || [];
    ++
    ++        var i = tempArr.length / 2;
     +        while (i--) {
     +            var action, info;
     +            [action, info] = tempArr.splice(0, 2);
    @@ -2350,10 +2381,16 @@
     +            }
     +            return true;
     +        });
    ++        self.CheckRights(node);
    ++        self.CheckDefaults(node);
     +        self.CheckActions(node);
     +    }
     +
     +    UpdateNodeModel(node, args) {
    ++        this.CheckActions(node);
    ++        this.CheckDefaults(node);
    ++        this.CheckRights(node);
    ++
     +        var nodeIndex = this.nodes.findIndex(x => x.id == node.id);
     +
     +        this.nodes[nodeIndex] = {...this.nodes[nodeIndex], ...args};



More information about the rt-commit mailing list