Web Addin Support in comparison with VSTO/COM based Extensions for PowerPoint - plugins

I am trying to build a Powerpoint Addin using the new JS-based stack that Microsoft has introduced. As part of the development, I am evaluating the support that the current JS libraries are providing. While VSTO/COM-based plugins have been around for quite some time, lack of cross-platform support is a challenge(especially for Mac and now Web), which is also the reason I want to opt for Web-based Addin(JS). But Powerpoint doesn't have a HOST API as Excel or Word does which makes things slightly challenging.
Thus here are the capabilities I want to have from the JS stack -
Ability to add and change the properties of shapes. While adding a shape doesn't have a specific API function, I was able to add it as an SVG object. Is there an easier way to change the properties of shapes and
Adding links to shapes to different slides.
Initiating other office apps like Excel and the ability to edit/read data from those instances.
Apply Slide Transitions.
Ability to connect other data resources through a URI.
Store state of shapes and slides.
It would be great if someone can point to the appropriate sections of the documentation which might help me find answers to this.

Most of what you are requesting cannot yet be done in a PowerPoint Web Add-in. But you can so some of it; for example, "connect to other data sources through a URI". I recommend that you look through the Develop section of the documentation.

Related

Custom Ribbons - per DOTM

we have a possible customer, who would like to have a custom ribbon in ONE template, which makes it for him easier to design the text etc.
This stuff should work on Office 2007, 2010 and 2013.
Since this will go to thousands of people, the easiest solution for this would be, to implement Macros, which do the Design-Stuff.
It seems to be no problem (I tested only with 2013) to create a custom ribbon and connect it to macros, it seems even to be possible to define custom Icons.
The real problem causess the Ribbon itself. Since, if I activate my custom ribbon, it's activated for all documents, I have to anyhow create a macro, which makes it visible JUST for one template.
Is this even possible, or is there a possibility to define a Ribbon per dotm? I didnt find anything about that, but what I found makes me nervous about the 2007, 2010, 2013 thing...
Or is it easier to create an Addin, which is kindahow compatible with alle 3 Versions?
Use Visual Studio and start a Word Template project. You can use VB if macros are to your liking or C#.
Your future documents will have to have the template attached for the ribbon to show up, which in my experience has proven to be a pain.
Alternatively you can create an addon that handles document-open events and checks if the document looks like what you expect it to look like. Heuristics can be very tricky if you don't have very specific indicators (such as an attached template, schema or content tags)
Another suggestion, which would most likely be acceptable to users, is to write an addon that shows and hides its main ribbon tab but has a ribbon button to "activate" the document and when you click that button (on another tab) it attaches your template or assigns some other persistent indicator to the document. This addon would also check each document when opened for that indicator and automatically show the actual ribbon tab when the document is recognized.

Creating a responsive design using CQ5 templates

I'm investigating Adobe CQ5 and would like any advice on how to integrate its drag-and-drop UI to create a responsive website. It seems as if it works on a concept of fairly bland templates with components that can be dropped in pretty much anywhere, including things like "three-column control" - which would make designing a responsive grid structure very hard (as it would be hard to prevent users from dropping in a control that could ruin the layout).
Does anyone have any experience or advice on this? I'm really looking for deep technical details on the structure of templates vs components (paragraphs), and where/how to manage to the CSS.
CQ5 offers ways to control what can be done within a template, so thinking that components "can be dropped in pretty much anywhere" may be misleading. Page templates are designed and configured so that you control which components can be added to a certain area of a page. This allows you to only make those components available that will work with the template layout, excluding components that would wreck the layout. Then authors are only allowed to use things that will work. If they attempt to drag a component onto a paragraph (parsys) where that component has not been configured as available, the UI will not allow them to use it there. So CQ actually makes it easy to prevent users from dropping a control somewhere that would ruin the layout.
This is outlined a bit here:
http://dev.day.com/docs/en/cq/current/howto/components_develop.html#Adding%20a%20new%20component%20to%20the%20paragraph%20system%20%28design%20%20%20%20%20mode%29 which states that
"The components can be activated (or deactivated) to determine which
are offered to the author when editing a page."
When it comes to CSS and JavaScript, you can create a client library and then include the relevant client library on the page. Backend CQ functionality will take care of combining multiple CSS (or JavaScript) files into a single minified file to allow for a single HTTP request of an optimized file. This it outlined a bit here:
http://dev.day.com/docs/en/cq/current/developing/widgets.html#Including%20the%20Client-Sided%20Code%20in%20a%20Page as well as
http://dev.day.com/docs/en/cq/current/howto/taglib.html#%3Ccq:includeClientLib%3E
So you might develop several components that share a client library, then when any of the components is added to a paragraph the client library will be included on the page. You may also want a CSS library that applies to all the templates to give a common look and feel, yet allow components to add their own when they are used.
These guidelines for using templates and components outline how you provide control, yet flexibility:
http://dev.day.com/docs/en/cq/5-5/developing/developing_guidelines_bestpractices.html#Guidelines%20for%20Using%20Templates%20and%20Components
I'll document our successful WIP experience with RWD and CQ5
Assumptions:
A well documented style guide.
Our First Steps:
Modified existing column control component css to utilize twitter bootstrap grid css.
Create a base page property allowing two different classes on the grid container to be set and inherited by child pages. (container||container-fluid).
Leverage out-of-the-box components where ever possible.
All component widths inherit the width of their parent container allowing for components to be dropped into any location within a template.
Issues:
The out-of-the-box column control component can not be nested.
We are looking into building a custom column control component.
Takeaways: this is an evolutionary project and we are constantly iterating.
With the recent launch of AEM 6.0, they have an example website called as Geomatrixx Media. This website is responsive.
You can take this example as reference and start building on top of it.

Email Editor Similar to Campaign Monitor or Mailchimp's editor?

I looking for either an open source (or otherwise) php script/library/code that will provide me with a similar email composer that Mailchimp and Campaign Monitor have.
I've played around with lots of wysiwyg editors (eg: tinymce, ckeditor) but, they don't work very well for allowing users to compose emails.
Mosaico Editor is the first open source email template builder of this kind (AFAIK).
You can find a free to use deployment (working also as live demo) at http://mosaico.io and you can get sources at https://github.com/voidlabs/mosaico
I choose blocks from a set defined by the "master template", then you fill you contents and change their styles in a WYSIWYG style. If you're on a large window you can also have live preview for the mobile version.
The master template defines what are the blocks, what you can edit and what you can style and it contains any html trick to make it compatible with most clients: this means you can change the editor behaviour a lot by simply writing a new master template.
It is 99% javascript (IE10+, and any other modern browser) and depends on server-side functions only to do "final inlining" and "image upload/resizing"
Next generation tool for building templates without coding
Grapejs official site
GrapesJS is an open-source, multi-purpose, Web Builder Framework which combines different tools and features with the goal to help you (or users of your application) to build HTML templates without any knowledge of coding. It's a perfect solution to replace the common WYSIWYG editors, which are good for content editing but inappropriate for creating HTML structures. You can see it in action with the official demos, but using its API you're able to build your own editors.
I'm in the process of building one but as a designer it is a work in progress! I'd suggest looking at PHP template engines. They have a similar functionality. Most however will use php variables inside the html page instead of tags.
Another oprion is to check out Perch it is officially a CMS, but is really lightweight and might get the job done for you.
Hope that helps even though it is a year after you posted the question...
EDIT: Actually just stumbled across this thread which links to the new CKEditor - looks pretty cool.

Where can I find a web-based interactive org chart API?

I'm looking to build an interactive web-based org chart for a large organization. I somewhat like the interface at ancestry.com where you can hover over people and pan/zoom around and click on different nodes to make them the root.
Ideally, I'd like it if people could belong to multiple organizational entities like committees, working groups, etc. In other words the API should support graphs in general, not just trees.
I'd like to be able to visually explode each organizational substructure into substituents by clicking on it, with a nice animation of the employees ballooning or spilling out so you can really interactively drill down through the organization.
I found http://code.google.com/apis/visualization/documentation/gallery/orgchart.html but it looks a bit rudimentary.
I know there are desktop tools like OrgPlus and Visio that can build static charts but I'm really looking for a free, web-based API with open standards-based output like SVG or HTML5 Canvas elements rather than Flash or some proprietary output. Something I can embed into a custom web application and style myself. Something interactive.
Check my solution on github: OrgChart.svg This is a modern full SVG orgchart with support of custom styling, tip-over / stacking possibility in the best known form. I would be very happy if it helps someone. It is based on snap.svg.
I ended up using the SpaceTree API from the Javascript InfoVis Toolkit to build my org chart:
http://philogb.github.com/jit/static/v20/Docs/files/Visualizations/Spacetree-js.html
I've had a go at building this in d3.js. It was originally built for data pulled from Yammer but now it will work with any csv - like this one.
Here's the repo and here's a demo. You will need to know a little html/javascript to customise it for your application.
There is this one for asp.net but I have only ever added it to my bookmarks so I can't vouch for how standards compliant it is:
http://www.orgchartcomponent.com/
Something you should also consider when you are looking in to this is your charting requirements. Many org charts only support a single top node. If you wanted to map a family tree for example then this might not be the case.

Developing a GUI Builder Application

I am looking for a nice framework for developing a GUI builder Application. We have an application where 100Os of custom data entry forms and their print formats are required and each client will need some modifications on these. We have a developed a product using java based open source templatnig frameworks so that the layout and field definition are stored in database and rendered dynamically to the user. We also have an appication to design these forms but cannot do visual design.
Now I am trying to make a Visual Form Designer application for generating these forms. Can any one suggest some open source frameworks than can be used? Can I use Eclipse Visual Editor? Or is it better to develop some kind of parser for HTML using AntLR and then parse the HTML output from already existing GUI builders like Dreamweaver to get the desired output?
Thanks and Regards,
-- Kannan
Oooh, great question!
I wouldn't know any readily availble framework that you can use. Depending on your needs however, I think rolling your own shouldn't be too hard.
First of all, you probably wouldn't want to give the users too much freedom. Freedom only gives them the opportunity to mess things up and make the resultant forms hard to use. I think from your description that the fields are pre-defined, so that the user only needs to customize which fields appear on a given form, and in what order. Order can be a simple thing like top-to-bottom. Some semi-intelligent automatic layouting could be used to conserve screen space. Adding a feature to group fields together would probably also be useful, and grouping would lead to some kind of standard "group" widget.
Accepting simplified functionality like this, you don't really need the flexibility of a full gui editor. A couple of listviews, maybe a property sheet and a preview window will be enough to give your users the functionality they need.
Of course, this only holds for screen forms. Print forms may be trickier to layout, as people may want to cram as many fields as possible into very little space so the entire form can fit on a single page or something. I really don't have any suggestions for you there, but maybe a similar "simplified" approach with some intelligent auto-layouting could work.
Overall, my advice would be: Keep It Simple! (S... ;)