Hello and Welcome to Sugar Mountain!

....a place of random thoughts

A new version of the Projectplace Extension

Filed Under (Projectplace, Safari) by Olle on 20-09-2010

Now with the 1.6 version I feel I’m starting to get to the extension I from start aimed at.

In the new version we now have checks for new Conversations from the, by Projectplace, newly released Social Overview.

If you have been notified by a new conversation you will see1 it on the button as a label.
This image show a user who has two “unread” conversations awaiting inside Projectplace,  a click on the button will clear the saved number of conversations and log you into the system.

In the future I see a potential new Extension bar to be able to present more information since the toolbar label is somewhat limited. Today I only present the name of the last new Conversation and who created it in the button title.

Settings window

The new settings window have gotten a new option, “Check for conversation”. If you enable it, the Extension will automatically check for updates every 2 minutes. I use the HTML5 localstorage features to store the number of new Conversations and who created it. The current Database Quota is 5mb, so hopefully you will not get a question to accept a higher Quota.

Of course you can disable this if you feel like it, but the question is why you would want to do this. The new conversations are really good, so use them!

If you have the Extension installed, you will get a question to update it, and if you currently have not installed it, feel free to download the Extension HERE

Hopefully I’ll send out an update for the Chrome Extension, with the same features, as soon as I get the time.
1 Due to different technical issues, you will not see the notifications if you are using the Projectplace for iPhone app. The iPhone app is simply to fast :-)

Working with Safari Extensions

Filed Under (Coding, Javascript, Safari) by Olle on 20-08-2010

So I have had my first go with a Safari Extension and it has not been a smooth ride I tell you! The documentation over at Apple really leaves one wishing for more.

Some of the questions that I have manage to fix without documentation are the following

“How the heck do I add icons to the Safari Settings page?

Unless you want to have the default Safari Extension icons in Safari Settings(after installation), in the Safari Extension Builder and in the Installation Dialog, make sure you add three icons to your extension folder and call them:
Icon-32.png
Icon-48.png
Icon-68.png

And I guess you can figure out the dimensions of the icons, yes it 32×32, 48×48 and 68×68.
The result will be this:

Why the heck does not the updates work?

I made a lot of  misstakes when it comes to the update part of the Extension.
I finally got it to work by leaving the default value when it comes to “Bundle Identifier “.

When you create your new Extension you choose a name, for example myex.ver1, and the builder will create the folder(myex.ver1.safariextension with the Info.plist) for you and also create the default “Bundle Indentifier” in the Extension Builder. In my example the Identifier will be com.yourcompany.myexver1.

Now make sure that you only change the “com.yourcompany” part of the Identifier. I made the mistake of modifying the last part as well. In my example my Identifier looked like this “net.subelement.myex.ver1“.

The problem with this is that the updates will not ever work, when you have a .plist that looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Extension Updates</key>
   <array>
     <dict>
       <key>CFBundleIdentifier</key>
       <string>net.subelement17.myex.ver1</string>
       <key>Developer Identifier</key>
       <string>YOUR IDENTIFIER</string>
       <key>CFBundleVersion</key>
       <string>1.0</string>
       <key>CFBundleShortVersionString</key>
       <string>1.0</string>
       <key>URL</key>
       <string>http://subelement17.net/projectplace/projectplace.safariextz</string>
     </dict>
   </array>
</dict>
</plist>

So the thing is to always user the suggested Identifier, or you might end up in the same problems as I did.