Discuss anything related to web development but no technical support questions


Post by hawes_m »

Hi Mats...

I have almost completed my evaluation of your tool set for integration with our product... but have some quick questions for you:

1. Is there a way to change the resource textfield to be a dropdown populated by an independent table of resources? Or, does your product allow for this type of change?
2. Is there a way to have multiple resources assigned to one task, if we implemented a dropdown approach?
3. How do add a new task with a dependency to a task already entered?
4. Is there a way to hide the dependency lines without removing the dependencies?
5. Are there 'end date' and 'resource' columns that can be added/viewed within the left hand side setup (for instance, you currently show: tasks, start, duration, %done)?
6. When a child task's percentage done increases (i.e.: from 20% to 70%), the parent's (or milestone) percentage done does not appear to increase - why is that?
7. Are we able to change the color scheme?
8. How is the first date in the GANTT calculated? For example, is it the earliest date from all of the tasks entered?
9. Is there a way to implement task constraints (i.e. no tasks scheduled on holidays)?
10. Is the GANTT chart an activeX control?
11. Does the product allow for versioning of a GANTT chart?
12. Who do you consider your biggest competitor, and why is your product superior
13. Is there documentation of what the GANTT can do or cannot do?

Thanking you in advance...
Mark

Post by mats »

1. Is there a way to change the resource textfield to be a dropdown populated by an independent table of resources? Or, does your product allow for this type of change?
Yup, should be very simple - some standard Ext JS code is all it takes.

2. Is there a way to have multiple resources assigned to one task, if we implemented a dropdown approach?
There is a List of Values combo extension that allows for multiple selections in a combo. More info here: https://lovcombo.extjs.eu/

3. How do add a new task with a dependency to a task already entered?
There is a context plugin available that allows you to "Add successor". Try it out here: http://ext-scheduler.com/examples/g ... gantt.html

4. Is there a way to hide the dependency lines without removing the dependencies?
Yes, it's all just HTML and CSS, so if your developers are familiar with these technologies it'd be a 5 minute task.

5. Are there 'end date' and 'resource' columns that can be added/viewed within the left hand side setup (for instance, you currently show: tasks, start, duration, %done)?
You can have any columns, the columns you see are not part of the library - just part of the example.

6. When a child task's percentage done increases (i.e.: from 20% to 70%), the parent's (or milestone) percentage done does not appear to increase - why is that?
This is not calculated automatically by default, but you could very easily implement this behavior yourself.

7. Are we able to change the color scheme?
Yes, see this demo: http://ext-scheduler.com/examples/g ... tyles.html

8. How is the first date in the GANTT calculated? For example, is it the earliest date from all of the tasks entered?
That would be the start date of your first task.

9. Is there a way to implement task constraints (i.e. no tasks scheduled on holidays)?
This would certainly be possible, in a future update the gantt chart will be duration based and shall support this out of the box.

10. Is the GANTT chart an activeX control?
It's all pure JavaScript, HTML and CSS.

11. Does the product allow for versioning of a GANTT chart?
Not sure what you mean by this.

12. Who do you consider your biggest competitor, and why is your product superior
Our product is extremely flexible, cross-browser, interactive and works with any type of backend as it's built on the best JS platform available - Ext JS.

13. Is there documentation of what the GANTT can do or cannot do?
API docs are here: http://ext-scheduler.com/docs/ for demos look here http://ext-scheduler.com/examples.html

Post by hawes_m »

This was exteremly helpful and very timely... thanks Mats! I have two additional questions listed below...
mats wrote:1. Is there a way to change the resource textfield to be a dropdown populated by an independent table of resources? Or, does your product allow for this type of change?
Yup, should be very simple - some standard Ext JS code is all it takes.

2. Is there a way to have multiple resources assigned to one task, if we implemented a dropdown approach?
There is a List of Values combo extension that allows for multiple selections in a combo. More info here: https://lovcombo.extjs.eu/

3. How do add a new task with a dependency to a task already entered?
There is a context plugin available that allows you to "Add successor". Try it out here: http://ext-scheduler.com/examples/g ... gantt.html
I'm still not sure how to enable the "Add successor" function. Could you explain futher please?
4. Is there a way to hide the dependency lines without removing the dependencies?
Yes, it's all just HTML and CSS, so if your developers are familiar with these technologies it'd be a 5 minute task.

5. Are there 'end date' and 'resource' columns that can be added/viewed within the left hand side setup (for instance, you currently show: tasks, start, duration, %done)?
You can have any columns, the columns you see are not part of the library - just part of the example.

6. When a child task's percentage done increases (i.e.: from 20% to 70%), the parent's (or milestone) percentage done does not appear to increase - why is that?
This is not calculated automatically by default, but you could very easily implement this behavior yourself.

7. Are we able to change the color scheme?
Yes, see this demo: http://ext-scheduler.com/examples/g ... tyles.html

8. How is the first date in the GANTT calculated? For example, is it the earliest date from all of the tasks entered?
That would be the start date of your first task.

9. Is there a way to implement task constraints (i.e. no tasks scheduled on holidays)?
This would certainly be possible, in a future update the gantt chart will be duration based and shall support this out of the box.

10. Is the GANTT chart an activeX control?
It's all pure JavaScript, HTML and CSS.

11. Does the product allow for versioning of a GANTT chart?
Not sure what you mean by this.
I was thinking if you create a gantt, you could save the first baselined version. Then continue adding/updating/deleting and at some future point review the initial baselined version against the current working gantt.
12. Who do you consider your biggest competitor, and why is your product superior
Our product is extremely flexible, cross-browser, interactive and works with any type of backend as it's built on the best JS platform available - Ext JS.

13. Is there documentation of what the GANTT can do or cannot do?
API docs are here: http://ext-scheduler.com/docs/ for demos look here http://ext-scheduler.com/examples.html

Post by mats »

The versioning stuff you'd have to solve yourself since the Gantt chart has no data storage included. It's just a pure JavaScript/HTML solution, no server dependencies in it.

To enable add successor, just include one line of code:
plugins  : new Sch.gantt.plugins.TaskContextMenu()
Then on right click on a task, you'll see that option.

Post by hawes_m »

Thanks again!

Post by hawes_m »

mats wrote:The versioning stuff you'd have to solve yourself since the Gantt chart has no data storage included. It's just a pure JavaScript/HTML solution, no server dependencies in it.

To enable add successor, just include one line of code:
plugins  : new Sch.gantt.plugins.TaskContextMenu()
Then on right click on a task, you'll see that option.
Hi Mats,
Is there a way to enable the TaskContextMenu from the left hand task list, and not within the GANTT?
Thanks,
Mark

Post by mats »

Sure, it's not built into the product but that would be very simple to do. Are you familiar with Ext JS? It should be a trivial change to the existing code.

Post by swoop »

mats wrote:Sure, it's not built into the product but that would be very simple to do. Are you familiar with Ext JS? It should be a trivial change to the existing code.
Could You post the example which explains how to do that?

Post by mats »

Sure:
Ext.override(Sch.gantt.plugins.TaskContextMenu, {
     init:function(grid) {
        this.grid = grid;
        
        this.grid.on('destroy', this.cleanUp, this);
        
        // Special treatment of the sub-menu options
        Ext.each(this.items, function(o) {
            o.text = this.texts[o.id];
            if (o.id === 'add') {   
                Ext.each(o.menu.items, function(subo) {
                    subo.text = this.texts[subo.id];
                }, this);
                
                o.menu.listeners = {
                    itemclick : {
                        fn : this.onItemClick, 
                        scope : this
                    }
                };
            }
            else if (o.id === 'deleteDependency') {
                o.menu.listeners = {
                    beforeshow : {
                        fn : this.populateDependencyMenu,
                        scope : this
                    },
                    
                    // highlight dependencies on mouseover of the menu item
                    mouseover : {
                        fn : this.mouseOver,
                        scope : this
                    },
                    
                    // unhighlight dependencies on mouseout of the menu item
                    mouseout : {
                        fn : this.mouseOut,
                        scope : this
                    }
                };
            }
        }, this);
        
        grid.on('rowcontextmenu', this.onContextMenu, this);
    },
    
    onContextMenu : function(g, row, e) {
        e.stopEvent();
        
        if (!this.menu) {
            this.menu = new Ext.menu.Menu({
                plain : true,
                items : this.items
            });
            
            this.menu.on('itemclick', this.onItemClick, this);
        }
            
        this.rec = g.store.getAt(row);
        this.menu.showAt(e.getXY());
    }
});

Post Reply