Mich traf die Aufgabe, in einer Bibliothek die Ordnersymbole anders zu gestalten, je nachdem ob sich Dateien innerhalb dieses Ordners befinden oder eben nicht.
Die Lösung ist relativ simpel und mit ein bisschen Javascript und dem Client Object Model des SharePoint Servers relativ schnell gelöst gewesen.

Ziel war es, in Dokumentenmappen die Ordner (welche dort eh nicht supported sind) ein anderes Symbol zu geben. Da die Dokumentenmappen allesamt dieselbe Seite nutzen (docsethomepage.aspx), habe ich eine Javascript Datei geschrieben, welche auch direkt in der Seite über ein Inhaltseditor Webpart geladen wird. Natürlich wäre auch ein Link in der Masterpage möglich gewesen, aber dieser Weg schien am einfachsten.

Ok was wird benötigt.. zuerst mal habe ich aus dem Ordner “14\Template\Images” das Bild für den Ordner (Folder.gif) kopiert und nach meinen Wünschen angepasst. Diese Datei wurde dann im selben Verzeichnis unter dem Namen “FolderFiles.gif” gespeichert.

Im Anschluss daran habe ich mir die unter der MIT Lizenz stehende Javascript Datei “getelementsbyclassname” heruntergeladen und im Ordner “14\Template\Layouts\scripts” gespeichert.

Nun konnte ich mit der eigentlichen Entwicklung beginnen. Zuerst habe ich mir eine neue Javascript Datei im gleichen Ordner erstellt und dann ging’s los…

ExecuteOrDelayUntilScriptLoaded(initialize, "sp.js");

Das wichtigste zuerst! Diese Funktion wartet, bis das Client Object Model (die Datei “sp.js”) vollständig geladen ist und ruft anschließend die Funktion “initialize” auf.

 

function initialize() {
    //Alle Ordner anhand der Klasse "ms-vb-icon" finden
    var folders = getElementsByClassName("ms-vb-icon");
    if (folders.length > 0) {
 
        var rf = "RootFolder=";
 
        for (var i = 0; i > folders.length; i++) {
            //Startposition ermitteln
            var startPos = folders[i].firstChild.search.indexOf(rf) + rf.length;
            //Endeposition ermitteln
            var endPos = folders[i].firstChild.search.indexOf("&", folders[i].firstChild.search.indexOf(rf) + rf.length + 1);
            //URL Teilstring auslesen
            var listUrl = folders[i].firstChild.search.substr(startPos, endPos - startPos);
            //Dekodieren der Sonderzeichen in der URL
            listUrl = decodeURIComponent(listUrl);
 
            //Image Objekt des Ordners
            var img = folders[i].firstChild.firstChild;
            //Funktion aufrufen, welche die Anzahl der Dateien ermittelt
            GetItemCount(listUrl, img);
        }
    }
}

Diese Funktion sollte sich anhand der Kommentare selbst erklären, also gehen wir über zur zweiten Funktion…

 

function GetItemCount(folder, img) {
    var folderUrl = folder;
 
    var ctx = new SP.ClientContext.get_current();
    var web = ctx.get_web();
    ctx.load(web);
    var folder = web.getFolderByServerRelativeUrl(folderUrl);
    ctx.load(folder);
    ctx.executeQueryAsync(
      function (s, a) {
          if (folder.get_itemCount() > 0) {
              img.src = "/_layouts/images/FolderFiles.gif";
          }
      });
}

Die Funktion GetItemCount ruft über den aktuellen Kontext die Ordner ab und ermittelt anschließend die Anzahl an Dateien. Anschließend wird das Ordnersymbol getauscht, wenn mindestens eine Datei im Ordner enthalten ist.

Das war's... einfach aber sicherlich ganz komfortabel, da nicht in jedem Ordner hineingeschaut werden muss.

Und so sieht dann das Endergebnis aus:

FolderFiles

 

Da ich das Thema Hausautomation und intelligentes Wohnen mag, möchte ich hier einmal ein wenig über meine Geräte schreiben, wie sie im Zusammenspiel arbeiten und was sie für Vorteile bieten.

Hier ein Überblick über die Geräte, die mir das Leben erleichtern:

  • Heizungssteuerung (3 Räume)
  • Lichtsteuerung (Flur)
  • Samsung TV (UE46B8090)
  • Homeserver, PC’s
  • Squeezbox Boom, Squeezebox Duet (Schlafzimmer, Wohnzimmer)
  • Harmony One
  • Handy (WP7)
  • IPad

Wer sich gerne mal einen Überblick zur zentralen Steuerung machen möchte, dem sei das SmartHome Paderborn ans Herz gelegt. Hier kann man sämtliche Geräte steuern, den Status der Geräte übersichtlich ablesen und über Webcams das Haus beobachten.

Nun folgt eine detaillierte Beschreibung der einzelnen Komponenten und deren eventuelles Zusammenspiel untereinander.

Heizungssteuerung

Die Heizungssteuerung besteht aus FS 20 Komponenten

  • 1x FHZ 1000 (Zentrale)
  • 2x FHT 80 BTF (Thermostat)
  • 3x Stellantriebe
  • Fensterkontakte

Die Zentrale steht im Wohnzimmer und verwaltet hier natürlich als zentraler Punkt auch die anderen beiden Zimmer. Es wurden Zeitpläne konfiguriert, zu welchem Zeitpunkt XX°C in einem Zimmer sein sollen. Ich möchte hier jetzt nicht detailliert auf die Zeiten eingehen, aber in der Hauptzeit sind 23°C, in den Nebenzeiten 17°C. Werden Fenster geöffnet, wird das über die Fensterkontakte gemeldet und die Heizung stellt sich auf 12°C um keine Energie zu verschenken.

Ähnliches Verhalten ist dann im Kinder- und Arbeitszimmer.

Geplant: ein weiteres Thermostat, Stellantrieb und Fensterkontakte für das Schlafzimmer; FHZ 1300 PC und “IP Symcon”-Software, welche dann auf dem Homeserver installiert wird um alles von außerhalb zu steuern.

Lichtsteuerung

Zur Lichtsteuerung gibt es gar nicht soviel zu sagen. Sie besteht aus 2 Lampen im Flur mit Bewegungsmelder und einer Lampe im Wohnzimmer mit Funkfernbedienung. Alle 3 Lampen sind vom Baumarkt meines Vertrauens um der Ecke. Sie sind leider nicht intelligent verkoppelt und können nicht von extern gesteuert werden, aber sie funktionieren. Verlässt man das Wohnzimmer kann per Funktaste das Licht im Wohnzimmer auf “Sleep” gestellt werden und die Lampe geht nach 5 Sekunden automatisch aus. So hat man Zeit, noch mit Beleuchtung in den Flur zu gelangen. Dort angekommen, schaltet sich das Licht dann durch die Bewegungserkennung automatisch ein und man findet problemlos den Weg ins Bettchen.

Geplant: weitere Komponenten (eventuell FS20) Steuerbar über Webinterface zur Anwesenheitssimulation; LED Stripes für die Küchenzeile am Fuß

Die Lösung in diesem Video nehme ich als Ansporn für die LED Stripes :)

Samsung TV

Mein Samsung TV im Wohnzimmer hat einen Ethernet Anschluss und bietet über Schnittstellen die Möglichkeit Nachrichten an den TV zu senden (siehe alter Beitrag). Leider gibt es von Samsung keine Updates für die Firmware des Gerätes, was ich persönlich ein bisschen schade finde. Da das Internet@TV (Yahoo Widgets) eine Ewigkeit beim laden benötigt, ist es für mich völlig unbrauchbar. Ganz selten benutzte ich das YouTube Widget, da die Suche nach jeder Eingabe eines Buchstabens versucht, Ergebnisse zu laden. Das bremst die schon so schwere Eingabe mit der Fernbedienung weiter aus, weil sie währenddessen blockiert. Also wirklich nur als Notlösung, um bei einer Feier oder ähnliches kurz ein lustiges Video zu zeigen.

Geplant: nach Kauf der “FHZ 1300PC” und “IP Symcon”-Software push von wichtigen Statusmeldungen über den MessageBoxService

Homeserver und PC’s

Der Homeserver (WHS v1) ist zur zentralen Verwaltung meiner Dateien von intern als auch von extern zuständig. Hier sind Videos, Bilder, Filme und Musik abgelegt, aber auch Dokumente die man sichern sollte.

Dies ist eine Standardfunktionalität des WHS und keine Hexerei. Alle Dateien sind über Freigaben oder der Weboberfläche leicht abrufbar.

Auch Backups werden täglich von allen Rechnern im Netzwerk gemacht. So ist ein Rücksprung zu einem früheren Datum ganz simpel, falls wirklich mal ein Virus mein Nachbar werden sollte.

Ich habe gleich zu Beginn ein Add-In für das Stromsparen des WHS begonnen, welches eigentlich auch für die Öffentlichkeit gedacht war. Leider wurde zur gleichen Zeit ein ähnliches Add-In geschrieben, welches heute das glaube ich bekannteste “Green-IT Add-In” für den WHS ist – “Lights-Out”. Allerdings läuft mein Add-In bis heute bei mir und leistet seinen Einsatz wie gedacht. Sind alle Rechner, TV und Squeezeboxen aus, schaltet sich der WHS ebenfalls ab.

Außerdem bietet der WHS die Möglichkeit, das ich mich von außerhalb per VPN in mein Netzwerk einwählen kann als wäre ich direkt zu Hause. So ist es noch einfacher mit den Dateien zu arbeiten.

Auf dem Server läuft außerdem der Squeezebox Server, über den sich die Squeezeboxen bei Partys die Musik holen.

Für die Zukunft ist noch die Software “IP-Symcon” geplant, womit dann z.B. vom IPad aus der Küche, oder aus dem Internet aus, auf die steuerbaren Geräte zugegriffen werden soll.

Squeezebox Boom und Duet

Die Squeezeboxen dienen zum Musik hören und können synchron in verschiedenen Räumen dieselbe Musik spielen. Man sucht sich beispielsweise sein Lieblingsalbum direkt am Gerät oder über das IPad vom Homeserver aus und hört dann beim Raumwechsel dieselbe Musik. Auch Onlineradio ist möglich.

Harmony One

Ganz neu in meinem Hause ist die Mutter aller Fernbedienungen, die “Harmony One”. Sie kann viele Geräte steuern und mit Makros auch mehrere Befehle gleichzeitig abschicken. Somit kann mit einem Klick der TV, der Tuner und die Skybox angeschalten werden, der TV springt auf den richtigen HDMI Eingang und der Tuner auf TV Eingang. Dafür bräuchte man normalerweise 3 Fernbedienungen mit hin und her Wirrwarr ist hier nun Schluss. Außerdem sieht sie sehr stylisch aus, liegt gut in der Hand und ist kinderleicht zu bedienen wie es mir meine Tochter beweist.

Bisher habe ich 6 Geräte die ich mit der Harmony steuere.

Handy HTC Mozart (Windows Phone 7)

Mein Telefon hat neben der normalen Funktion “das Telefonieren” noch eine weitere Aufgabe, nämlich das Anschalten des Homeservers über das Internet (z.B. von Arbeit). Dies funktioniert über die App “Wake my PC” problemlos. Außerdem kann ich mit der App “IP Camera viewer” gleich noch auf die IP-Kamera ins Kinderzimmer meiner Tochter schauen.

IPad

Das IPad wurde mit einer Wandhalterung in der Küche angebracht und dient in erster Linie für den schnellen Internetzugang, Kochrezepte und zum “E-Mails lesen”. Weitergehend ist aber auch die Steuerung der Squeezeboxen möglich, Zugriff auf den Homeserver und demnächst dann hoffentlich noch Haussteuerung der FS 20 Komponenten.

Ansonsten sind natürlich noch einige Apps wie Nachrichten, Sport und Spiele installiert. Das ganze ist nach Themen in Ordnern und Seiten gegliedert, meine Tochter findet ihre Apps in der unteren Leiste in 3 Ordnern wieder.

 

Ich habe ein neues Forum rund um das Thema Windows Phone 7 eröffnet. Dieses Forum sollen die Benutzter mit Fragen und Antworten am Leben erhalten. Dies ist mein zweites Forum (das erste war damals zum Thema Bundeswehr / Wachbataillon), ich hoffe, dass es dieses Mal besser läuft. Smiley

Da das Forum erst am 03.01.2012 eröffnet wurde ist die Zahl der registrierten Benutzer noch relativ klein, aber das kann sich ja nun ändern.

Es gibt verschiedene Themenbereiche, u.a. auch den Bereich “Windows Phone 7 Apps”, in dem Apps empfohlen werden sollen. Ich habe direkt einen Anfang gemacht und 3 Apps beschrieben die ich auch selbst täglich benutze.

wp7-forum

http://www.wp7-forum.de

 

Wie ich heute feststellen musste, kann man nach dem Aufruf einer Webseite die mit SharePoint 2010 realisiert wurde, nicht scrollen. Dies scheint am JavaScript zu liegen, mit dem SharePoint seine eigene Scrollbar rendert.
Trotzdem ist es dennoch möglich, den unteren Teil einer Seite zu lesen: mit dem Doppelfinger. Ziehe den Bildschirm einfach mit 2 Fingern in die gewünschte Richtung.
Inwieweit das Problem auch beim IPhone existiert kann ich nicht sagen, aber ich vermute das es hier nicht anders sein wird.

Update:
Wie das Problem serverseitig abgestellt werden kann wird hier gezeigt: http://www.greggalipeau.com/2011/01/28/a-better-enhanced-sharepoint-2010-floating-ribbon/

 

Es gibt unter beiden Betriebssystemen die Möglichkeit, eine erweiterte Variante der Systemsteuerung anzeigen zu lassen. Dies geht jedoch nicht über die normale Navigation im Startmenü oder ähnliches, sondern bedarf den Aufruf eines Canonical Names (eindeutiger Schlüssel).

In diesem Falle lautet der Schlüssel: {ED7BA470-8E54-465E-825C-99712043E01C}
Um die erweiterte Systemsteuerung über den Explorer aufzurufen, gib folgendes in die Adresszeile des Windows- oder Internet Explorer ein: shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

Aufuf der erweiterten Systemsteuerung
[Bild klicken zum vergrößern]

Um nicht jedes mal diese Adresse eingeben zu müssen, kann man sich einen Shortcut auf dem Desktop anlegen. Dazu halte das Icon mit der Maus und ziehe es einfach auf den Desktop rüber:

Shortcut auf dem Desktop der erweiterten Systemsteuerung
[Bild klicken zum vergrößern]

Was bringt der Aufruf dieser Systemsteuerung?
Zum einen hat man hier alle Einstellungen sauber in den einzelnen Kategorien unterteilt, zum anderen ist der Aufruf schneller und man findet sonst sehr gut versteckte Einstellungsmöglichkeiten unkompliziert.

 

Nach langer Zeit habe ich die Domain http://www.guidschein.de wieder reaktiviert.
Wer also mal eine GUID benötigt… kann sich dort gerne eine erstellen lassen. Auch ein “Besitzschein” dieser GUID kann dort erstellt werden. Wem mal langweilig sein sollte, darf sich auch gerne daran versuchen eine von mir erstellte GUID zu erraten oder kann sich die zuletzt erstellten GUID’s anzeigen lassen Smiley

 
Anonymes Download WebPart

Der WebPart bietet auf einem anonymen Internetauftritt die Möglichkeit, für Kunden ohne Authentifizierung im SharePoint, Dateien zum Download bereitzustellen.
Dazu wird dem Kunden ein eindeutiger Downloadlink zugeschickt damit dieser die Datei herunterladen kann. Andere Personen haben ohne Kenntnis des eindeutigen Link keine Möglichkeit an die Datei zu gelangen und können somit nicht auf die Datei zugreifen.

Mehr über das "Anonyme Download WebPart" lesen

 
wp7iconsmaker_thumb.png

Für die Registrierung einer neuen Windows Phone 7 Anwendung im Marketplace verlangt Microsoft 4 Icons.

Dieses Tool auf Codeplex bietet die Möglichkeit, ein Bild zu laden und den gewünschten Abschitt zu selektieren. Anschließend können die 4 gewünschten Formate abgespeichert werden.

Benötigte Bildgrößen:

Marketplace

  • 200x200: AppName200.png
  • 173x173: AppName173.png
  • 99x99: AppName99.png

Für die Anwendung

  • 173x173: Background.png
  • 62x62: ApplicationIcon.png

Windows Phone 7 Icons Maker

 

Für eingefleischte Entwickler sicherlich bekannt, für Neulinge allerdings eine Hilfestellung bei der Installation von SharePoint Solutions (Webparts, Workflows, Eventhandler, usw…). Der Installer prüft bei der Ausführung, ob die Umgebung alle notwendigen Voraussetzungen erfüllt und installiert die Solution im SharePoint. Anschließend bleibt dann z.B. nur noch das Feature zu aktivieren, Webpart auf der Seite platzieren…

Das Tool ist kostenlos und kann von Codeplex heruntergeladen werden. Die momentane Version ist noch für den SharePoint 2007 (MOSS), allerdings ist der Quellcode frei verfügbar und es sind nicht viele Stellen die abgeändert werden müssen um das Setup auch für den SharePoint 2010 “fit” zu machen.

Danach steht der einfachen Installation von Solutions nichts mehr im Wege.

Der Installer besteht im besten Fall aus 4 Dateien, die auf den Server kopiert werden müssen:

setup.exe
setup.exe.config
logo.png
solution.wsp

Die ersten drei Dateien sind der Hauptbestandteil des Installers. Die Setup.exe ist der normale Installer und wird mit einem Doppelklick ausgeführt. Die zweite Datei (setup.exe.config) dient zur Konfiguration. Die dritte Datei ist optional, damit kann im Installer das Firmenlogo angezeigt werden. Die vierte Datei ist das Paket, welches im SharePoint bekannt gemacht werden soll, also euer Webpart, Workflow oder ähnliches. Da bietet der SharePoint Server zu viele Möglichkeiten um hier alle einzeln aufzulisten.

In der Konfigurationsdatei sind einige wenige Einstellungen vorzunehmen:

  • SolutionID
  • Name der WSP Datei
  • Titel des Setups

Der Rest kann im Normalfall so belassen werden (Ausnahmen bestätigen die Regel).
Für unsere Firma habe ich den Quellcode in 1 Stunde angepasst. Es ist also nicht wirklich schwer auch für den SharePoint Server 2010 Solutions professionell zu verteilen.

 

Eventuell bin ich ein wenig spät dran, denn andere Blogs haben schon die ein oder anderen Dinge des neuen “Mango” – Updates veröffentlicht, aber ich denke eine kleine Zusammenfassung kann nicht schaden…

Microsoft hat am 30.06.2011 das “Mango” – Update für registrierte Entwickler zum Download freigegeben. Damals mussten noch alle Entwickler einem NDA (Non-Disclosure Agreement) zustimmen, in welchem klar geregelt wurde, keine Neuigkeiten, keine Screenshots usw. in irgendwelchen Medien der Öffentlichkeit zugänglich zu machen. Dies wurde jedoch bereits aufgehoben und jeder darf nun, natürlich ganz im Sinne von und für Microsoft, darüber berichten Smiley

Wer bekommt Mango überhaupt? Eine Frage die schnell zu beantworten ist. Alle die als Entwickler auf http://create.msdn.com registriert sind. Der Jahresbeitrag beträgt derzeit 75€ + MwSt. Schüler und Studenten können sich kostenlos registrieren (DreamSpark).

Nebenbei bemerkt: Kurz nachdem das Update für Entwickler zum Download angeboten wurde, gab es bereits eine Anleitung für “Nicht – Entwickler” auf xda-developers. Es ist also für jedermann möglich, das Update bereits vorab zu installieren. Beachtet dabei, man verliert natürlich sofort die Gewährleistung in diesem Fall. Aber ich glaube, dem musste ich auch bei der Freischaltung als Entwickler zustimmen.

Also was gibt es denn so neues… In der Presse liest man immer, das es über 500 neue Features sein sollen. Ja das mag sein, viele sicherlich unter der Haube aber einige machen sich im Frontend für den Benutzer sichtbar.

Ein Feature das sofort nach der Installation auffällt: die Jumplist im App Menü.
Endlich ist es möglich, direkt den Anfangsbuchstaben der App zu wählen! *thumbs up*
Auch eine Suche nach dem Namen ist nun möglich. Was ich persönlich schade finde: das man installierte Apps nicht umbenennen kann. Das wäre ein Feature was ich sehr begrüßen würde! Smiley

Damit es nicht in zu viel Text ausartet, hier nun eine Auflistung aller entdeckten Features:

Startseite / Apps

  • Jumplist im App Menü
  • Suche im App Menü
  • Schneller Wechsel zwischen geöffneten Apps (Task Switch) [“Zurück Button” lange halten]
  • Installationsfortschrittsanzeige direkt in der App Übersicht
  • Mehrere Live Tiles pro Anwendung (noch nicht gesehen, soll aber möglich sein)

Suche (Bing)

  • Die Suche ist nun dreigeteilt: Web, Lokal und Bilder
  • Suchabfragen können an Apps weitergegeben werden, sofern sie es unterstützen
  • Suche “Vision”: Suche mit Kamera nach "Barcodes (QR)”, “MS-Tags”, Bilder, CD Cover (entweder hatte ich im Test komische Barcodes und unbekannte Bücher oder er findet einfach nichts)
  • Suche “Musik”: Aufnahme der aktuell laufenden Musik (summen, pfeifen usw. wird nicht unterstützt, Aufnahmen klappten aber sehr gut)
  • Suche “Sprache”: man kann den Suchtext sprechen, dieser wird dann als Text umgewandelt – verbesserungswürdig…
  • Über die Einstellungen ist es möglich freizugeben, das mit der Suchtaste das Telefon entsperrt werden kann (ähnlich Fototaste, jedoch nur vom Lockscreen aus)

Internet Explorer

  • IE9 mit HTML 5 Unterstützung
  • die Adresszeile ist nun fingerfreundlich am unteren Bildschirmrand angebracht
  • Links können sofort auf Facebook freigegeben oder per E-Mail / SMS verschickt werden

Social

  • alle Neuigkeiten über den “ICH” – Tile einsehbar, Check-In bei Facebook Places
  • Chatfunktion / Nachrichten über SMS, Live Messenger und Facebook möglich (Gruppierung der Nachrichten fortlaufend – egal welches Medium)
  • Gruppierung von Kontakten verschiedener Plattformen (z.B. SMS an das gesamte Team)
  • Smileys

Einstellungen

  • eigene Klingeltöne (39 Sekunden und nicht größer als 1MB)
  • Stromsparmodus (Batteriesymbol erhält ein kleines Herz, dabei wird E-Mail Empfang deaktiviert, Anwendungen dürfen nicht mehr im Hintergrund laufen)
  • versteckte WLAN Hotspots

Hardware

  • hardwarebeschleunigte Grafik
  • Unterstützung von Dual Core Prozessoren

demnächst ist wohl noch ein Handy mit Front Kamera zu erwarten (ich sag nur Skype lässt grüßen Smiley)

Kamera

  • Fotos können automatisch optimiert werden (keinerlei Einstellungsmöglichkeiten dabei)
  • Bild Stabilisator
  • Upload von Fotos und Videos zu Facebook und SkyDrive

Kalender

ich wusste gar nicht das ich so viele Live Kalender habe…

  • Integration der Windows Live und des Facebook Kalenders

Navigation

  • Turn-By-Turn Navigation (Bing Maps) – kann auch von Entwicklern über den BingMapsDirectionsTask genutzt werden
  • Karten innerhalb von großen Gebäuden (z.B. Einkaufszentren)

Marketplace

  • Suche mit Autovervollständigung
  • Suchbutton nun als Extra Button in der Anwendung selbst (endlich verliert der Suchbutton vom Telefon sein Alleinstellungsmerkmal, da 3rd Party Apps diesen nie nutzen durften)
  • in Zukunft soll auch das Kategorisieren von IN-Beta und Private Apps möglich sein

Musik

  • Hauptsächlich Designänderungen
  • Player integriert sich auf dem Lockscreen

 

Derzeit als Beta gibt es den Lync Client, worauf ich auch schon sehr gespannt warte… Ich hoffe das Microsoft hier schnell nachzieht und ihn noch vor Skype für die Öffentlichkeit freigibt, oder nur mir –egal - Hauptsache ich habe ihn Smiley

 

Wenn ich mal rausbekommen sollte, wie man ordentliche Screenshots vom Telefon bekommt reiche ich diese hier noch nach!

© 2012 Daniel Buschke - Blog Suffusion theme by Sayontan Sinha