ManageScope offers free email support for ProjectGoo and we’ve fielded some questions about the application that we’d like to share with our user community. While we’re still happy to receive the email requests, these FAQs and their answers might jumpstart your ProjectGoo experience.
- Is Microsoft Project required to use ProjectGoo?
Yes. The Project Manager client relies on MS Project 2007 Standard or Professional to create the project plan and also requires MS Project to receive assignment updates, etc. The Team Client does not require MS Project and can be distributed to as many project team members as you’d like.
- Is there a charge per user for ProjectGoo?
No. ProjectGoo is completely free for an unlimited number of users and projects.
- Can you customize ProjectGoo to my company’s requirement (x)?
Yes! We’re happy to work with you to customize ProjectGoo. We’ve fielded requests to integrate with Jira, Mediawiki, and SharePoint and while there is a cost associated for the service, we’re happy to implement your requirements. Feel free to contact us with your needs.
- When is the next release of ProjectGoo and will it work with Project 2010?
ProjectGoo is scheduled for its 3.0 release end of Q1 2011 and will work with Project 2010, .NET 4.0 and Windows 7.
- I’m having issues installing ProjectGoo. The installer won’t launch.
Please review the system requirements for the application. Make sure that you have .NET 3.5 installed and that you have both a Google Docs and Google Calendar account. All installation issues reported so far have related to a lack of one of the three requirements.
If you don’t see the answer to a question you have, please email ProjectGoo Support. We’re excited to help jumpstart your use of the application.
In Sharepoint there are many ways of notifying a user when an item gets updated on a list.
1. Setting up an alert.
2. Subscribing to an RSS Feed.
3. Using workflow via the List Settings, Sharepoint Designer or Visual Studio.
All these mechanisms have their pros and cons, but there is one thing that is not supported by any of them: Sending a notification to users when they are set up in a multi-choice person list within the SAME list. Additionally, 1 and 2 above require the user to set this up manually on their own, while 3 is much more complicated and has limitations. I chose to write my own Event Receiver in order to accomplish this task.
I won’t go into the details of creating an Event Receiver in Sharepoint and publishing it, since there is already a lot of documentation on this on the internet. In my example, the List Name is called “MyDocs” and the field that contains the users is called “Notifiers” (note: this field can contains a multiple users).
public class MyDocsItemEventReceiver : SPItemEventReceiver
{
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
DisableEventFiring();
try
{
SPListItem myDocsItem = properties.ListItem;
var notifiers = myDocsItem["Notifiers"] as SPFieldUserValueCollection;
SendEmailToNotifiers(notifiers);
}
finally
{
EnableEventFiring();
}
}
private void SendEmailToNotifiers(SPFieldUserValueCollection _notifiers)
{
if (_notifiers != null)
{
List<string> _notifierList = new List<string>();
foreach (SPFieldUserValue _notifier in _notifiers)
{
if (!string.IsNullOrEmpty(_notifier.User.Email))
_notifierList.Add(_notifier.User.Email.Trim());
}
if (_notifierList.Count > 0)
{
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.Host = "email_server_name";
_smtpClient.Port = 25;
_smtpClient.EnableSsl = false;
MailMessage _mailMessage = new MailMessage();
foreach (string _reviewer in _notifierList)
{
_mailMessage.To.Add(new MailAddress(_reviewer));
}
_mailMessage.From = new MailAddress("fromaddress@company.com");
_mailMessage.Subject = "the subject line";
_mailMessage.Body = "the body of the email";
_smtpClient.Send(_mailMessage);
}
}
}
}
Our motto and design philosophy in a simple equation. Our products and services are completely focused on delivering on the value of human capital in organizations through technologies that enhance collaboration, abstract complexity and reveal the hidden contributions and talents of the people in your organization.
CIO.com, NetworkWorld, PCWorld, Microsoft’s “Build A Better App”, GetABest.com, and soft82.com have all recognized the power and elegance of ManageScope’s ProjectGoo project and portfolio management solution. Utilizing the Google Cloud and MS Project, ProjectGoo provides a free robust project collaboration and management platform for teams of all sizes.
Recently I had a request from a client to log/audit when a user clicks on anything on a Sharepoint site. At first I thought, this will be easy, I will just turn on Auditing and select to log all VIEWs on all Items and then produce a report based on the Audit log. Well, things were not that simple.
It appears that Sharepoint logs VIEWs for Document Libraries very well, but fails miserably for logging VIEWs on every other type of Item, including Picture Libraries (this is true for WSS and MOSS). Basically, Sharepoint logs the List that the Item is contained in, but there is no logging as to the actual Item that was clicked on. So after Googling around bit I found that there was very little information on how to get around this and wanted to post a solution that works for most Items, but still fails for certain ones, e.g. Discussion Items for one. Maybe someone else here can enhance this solution to grab the missing ones.
My solution involves a custom HttpModule (not an HttpHandler), that inspects the IIS requests and if can load the Sharepoint context, Site, List and Item, then it manually adds the Audit Entry via the Sharepoint Object Model. This approach is only needed for non Document Libraries, since the regular Sharepoint Auditing does a better job at logging these types of Items.
The code for the HttpModule is below. You will need to do a bit of research on how to deploy an HttpModule, but there is plenty of information on this on the web. Essentially, you will need to compile this, strong name it, deploy it to the GAC and add an entry to the web.config of the Sharepoint site you wish to Audit.
Enjoy!
Imports System.Web
Imports Microsoft.SharePoint
Public Class AuditViewHttpModule
Implements IHttpModule
Public Sub Dispose() Implements System.Web.IHttpModule.Dispose
End Sub
Public Sub Init(ByVal context As System.Web.HttpApplication) _
Implements System.Web.IHttpModule.Init
AddHandler context.PreRequestHandlerExecute, _
AddressOf Application_PreRequestHandlerExecute
End Sub
Private Sub Application_PreRequestHandlerExecute( _
ByVal _source As Object, ByVal e As EventArgs)
Dim _application As HttpApplication = Nothing
Dim _context As HttpContext = Nothing
Try
_application = CType(_source, HttpApplication)
_context = _application.Context
Dim _site As SPSite = SPContext.Current.Site
Dim _list As SPList = SPContext.Current.List
Dim _item As SPListItem = SPContext.Current.ListItem
If Not _site Is Nothing Then
If Not _list Is Nothing Then
If Not _item Is Nothing Then
If _
_list.BaseTemplate <> _
SPListTemplateType.DocumentLibrary _
Then
_list.Audit.WriteAuditEvent( _
SPAuditEventType.View, "", "")
End If
End If
End If
End If
Catch ex As Exception
' handle the error otherwise your
' sharepoint pages will crash!
End Try
End Sub
End Class
