Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - dam-scasi

Pages: [1]
1
How To's / Re: Are tags universal?
« on: May 13, 2010, 06:38:08 am »
Hi !
It's already corrected in 1.7beta2
So in 1.7 you'll have only tags of what you can see

2
Feature requests / Re: Live Notes & Tasks
« on: April 16, 2010, 03:51:03 am »
Hi

I agree ! At least having a refresh button in objects details view and in tasks list view would be great !
It's boring that when you're in a task detail and you know that someone have add a comment, you have to close and re-click on the task in the list...

But what you suggest would be much better ! :)

But I think this post should be in "Features Request" forum, because I don't think that's possible to activate such things in configurations right now, so it has to be developed... ;)

3
Feature requests / Re: Private Tags
« on: April 15, 2010, 04:51:11 am »
Anyway, I wonder  what happens when several users declares the same tags...
I'm not sure I understand what you want to say, but if the same tag is used several times, the number will be display beside the tag name in the tag list, no matter who created it or where it's used.

4
Feature requests / Re: Private Tags
« on: April 15, 2010, 04:00:15 am »
Hi

I've made a little fix for that : http://forums.fengoffice.com/index.php?topic=3491.msg13486#msg13486

My fix check only if you have access to the workspace in wich tags are used, but you can use it until version 1.7 is out, because normally it will be better.

For example in 1.7 you won't see the tag of an object invisible to you even if he is in a workspace wich you have access.

Edit : Or you can download the 1.7 beta 2, open the file /application/models/tags/Tags.class.php and copy the getTagNames function in your version ;D

5
Feature requests / Re: Mylyn-Connector
« on: March 28, 2010, 05:14:50 pm »
Yes I would be interested in a Mylyn Connector !  :)

6
I don't know if it's a bug or it's wanted, but at least a check button (for example in display menu) to hide "empty" milestones would be great !

7
Feature requests / Re: Streamline task collaboration
« on: March 25, 2010, 06:06:30 am »
Hi

I agree with this, particularly with the end.
It joins what has been said here

This would be very helpful to indicate that a task is for example pending and why in a comment. And that comment linked with this status change will have a title or something in the comments list that show what change as been made with this comment.

And of course the status will be display in task list.

8
We've noticed that too and it's really annoying !

First, some clarification :
It's only in a one task view, when you click add sub task just below the description or the sub-tasks list of the task.

In fact, this form use the assign_to_select_box function in application/helper/application.php to display the users select box, instead of the ExtJs select used elsewhere.

In my opinion, this function should not be used anymore, but as I don't figured out how to replace this select by a ExtJs select, I've fixed this function taking inspiration from allowed_users_to_assign function in application/controllers/TaskController.class.php.

So here is my replacement of assign_to_select_box function in application/helper/application.php to fix this bug :
Code: [Select]
/**
 * Render assign to SELECT
 *
 * @param string $list_name Name of the select control
 * @param Project $project Selected project, if NULL active project will be used
 * @param integer $selected ID of selected user
 * @param array $attributes Array of select box attributes, if needed
 * @return null
 */
function assign_to_select_box($list_name, $project = null, $selected = null, $attributes = null) {
   if(is_null($project)) {
      $project = active_or_personal_project();
   } // if
   if(!($project instanceof Project)) {
      throw new InvalidInstanceError('$project', $project, 'Project');
   } // if

   $companies = Companies::findAll();
   $comp_array = array();
   if ($companies != null) {
      foreach ($companies as $comp) {
         if ($project != null) $users = $comp->getUsersOnProject($project);
         else continue;
         if (is_array($users)) {
            foreach ($users as $k => $user) {
               // if logged_user can assign tasks to user
               // and user can read tasks the user is allowed
               if (!can_assign_task(logged_user(), $project, $user)
                  || !can_read_type($user, $project, 'ProjectTasks')) {
                  unset($users[$k]);
               }
            }
            if (count($users) > 0) {
               $comp_data = array(
                           'id' => $comp->getId(),
                           'name' => $comp->getName(),
                           'users' => array()
               );
               foreach ($users as $user) {
                  $comp_data['users'][] = $user->getArrayInfo();
               }
               //if ($ws == null || can_assign_task(logged_user(), $ws, $comp)) {
               if (count($users) > 0) {
                  $comp_array[] = $comp_data;
               }
            }
         }
      }
   }

   $options = array(option_tag(lang('anyone'), '0:0'));
   if(is_array($comp_array) && count($comp_array)) {
      foreach($comp_array as $company) {
         $options[] = option_tag('--', '0:0');

         $option_attributes = $company['id'] . ':0' == $selected
            ? array('selected' => 'selected') : null;
         $options[] = option_tag($company['name'], $company['id'] . ':0', $option_attributes);

         if(is_array($company['users'])) {
            foreach($company['users'] as $user) {
               $option_attributes = $company['id'] . ':' . $user['id'] == $selected
                  ? array('selected' => 'selected') : null;
               $options[] = option_tag($user['name'] . ' : ' . $company['name'] ,
                  $company['id'] . ':' . $user['id'], $option_attributes);
            }
         }
      }
   }

   return select_box($list_name, $options, $attributes);
} // assign_to_select_box

9
I agree !
I was also thinking myself that it would be great if this buttons where in same place  :D

10
Since Feng Office use ExtJs, I think you can do same thing with this library. Here is an example :
http://www.extjs.com/deploy/dev/examples/history/history.html

11
How To's / Re: How are Files linked to Projects
« on: February 03, 2010, 08:13:54 am »
Hi !

It's in og_workspace_objects, you will have a record like this :

workspace_id => 6
object_manager => ProjectFiles
object_id => 23
...

This table seems to record all links between objects and workspaces but contacts. And it's the object_manager column which determine the nature of the object object_id

12
How To's / Re: Tags permissions
« on: January 25, 2010, 11:18:53 am »
Hi !
I've also find this unpleasent so I've resolved it by modifying the function getTagNames in /application/models/tags/Tags.class.php :

Code: [Select]
function getTagNames($order_by = 'count') {
$pids = logged_user()->getWorkspacesQuery();
$tagConditions = " (`rel_object_manager` <> 'Contacts' AND `rel_object_id` IN
(SELECT `object_id` FROM `" . TABLE_PREFIX . "workspace_objects`
WHERE `object_manager` = `rel_object_manager` AND `workspace_id` IN ($pids)))
OR (`rel_object_manager` = 'Contacts' AND `rel_object_id` IN
(SELECT `contact_id` FROM `" . TABLE_PREFIX . "project_contacts` obj
WHERE `project_id` IN ($pids)))";

$query = '';
switch ($order_by){
case 'name':
$query = 'SELECT DISTINCT `tag` as `name`  FROM '
. self::instance()->getTableName(true)
. ' WHERE' . $tagConditions . ' GROUP BY `tag` ORDER BY  `tag` ';
break ;
case 'count':
$query = 'SELECT DISTINCT `tag` as `name`, count(`tag`) `count` FROM '
. self::instance()->getTableName(true)
. ' WHERE' . $tagConditions
. ' GROUP BY `tag` ORDER BY `count` DESC , `tag`' ;
break ;
default:
throw new Exception('Invalid tag sort criteria');
}
$rows = DB::executeAll($query);
if(!is_array($rows)) return array();
return $rows;
}

I'm not sure it cover all case but it seems to work well.

13
Français / Questions sur les permissions
« on: October 01, 2009, 02:32:26 pm »
Bonjour à tous.

J'ai découvert hier OpenGoo et je suis en train de le tester pour voir si on va l'utiliser ou pas.

Mes premières impressions sont qu'il a l'air génial avec pleins de possibilités comparé aux autres logiciels que j'ai pu trouver !
Le seul défaut que je lui ai trouvé est au niveau des droits ou permissions. J'avoue être un peu perdu dans tout ça !

En effet, un compte utilisateur normal (ou client) peut, quand on veut qu'il puisse ajouter des commentaires, supprimer ceux d'autres utilisateurs !
Le pire (enfin pour l'utilisation qu'on en aurait en tout cas) est qu'il peut également, même si on lui donne aucun droit au module taches, éditer ou achever les taches d'autres utilisateurs !

Bref ou je m'y prends mal (c'est possible, après tout ça fait que depuis hier que je suis dessus !), ou j'ai pas compris la "philosophie" des permissions, ou encore peut être que cette partie n'est pas finalisée ?

En tout cas c'est la seule chose qui me fait encore hésiter à l'utiliser !

Ah et puis, une autre chose que je trouve pas terrible, c'est que quand on a des droits limités, on peut quand même cliquer sur les boutons d'ajouts par exemple. Bon ça affiche un message d'erreur disant qu'on a pas accès à cette page, mais le mieux aurait été que ce qu'on a pas le droit de faire ne soit pas affiché du tout !

Mis à part cela, ça m'a l'air très complet et relativement facilement utilisable !  ;)

Pages: [1]