Drupal: View list inside view - view

I have created 2 content types; Episode which has actual episode information and Channel which has a channel description which includes a few fields specific to the channel plus an Entity Reference to Episodes.
While entering data, you can select "Add new episode" and are able to add as many episodes as you wish. The data is all visible and correct in View Content.
I need now to create a view which looks something like this:
Channel Name
Channel Info
Episodes:
 Ep 1
  Ep 1 content
 Ep 2
  Ep 2 content
 etc.
I can create a view of Channels or a view of Episodes, just don't know how to integrate the one into the other.
Having the darndest time figuring out what I am doing wrong. perhaps it's as much about terminology as anything else as I come from a different CMS background. TIA

This can be achieved using the display suite module and linking the entities using a custom view mode, and then rendering a rendered entity in your view.
So Install the Display Suite Module.
Setup a custom View Mode, and enable the custom view in the "Parent" content type, and select single column layout.
Add the Entity Reference Field to your columns, and select rendered entity.
Then Create a new View, referencing the "Parent" Content Type, and the views output, select rendered entity and choose the custom view mode you created.

I was over-thinking the solution. In the Manage Display for the Channel, set Episodes to display as Rendered Entity. From that point, I was able to then modify the Manage Display for the Episode content type. This was all that was necessary.

Related

Can a dynamic link be created to be used from a view in Dynamics CRM?

I would like to be able to include a link in a view on the contact entity of dynamics crm that will pop a custom window that we have built. The custom window needs the contact id and the user id in order to function. Our users have requested that such a link be on the view rather than having to go into the contact record itself.
So, is it possible to create a dynamic URL that will be utilized from the view and will be able to determine the contact id and the user id?
I would assume I need to do this with a web resource, but I've only ever used a web resource in an iframe.
I have tried to build a web resource and just use the web resource's link to put into a field and display that field on the view, but obviously that didn't work.
Essentially the link would build a url and then pop up a new window with that url. Here's my url structure: https://example.com/mscrm/ticketing/Activity/PhoneCallSave.aspx?cId=00000000-0000-0000-0000-000000000000&id=%7b00000000-0000-0000-0000-000000000000%7d&orgname=00000000-0000-0000-0000-000000000000&userid=%7b00000000-0000-0000-0000-000000000000%7d&type=contact&token=Zf7Hi3PFokqRn3RnTD6hPA
This is an interesting request that I have not encountered before...
I thought about using a URL-formatted field, and the fact that D365 by default will hyperlink lookup fields. But, with those options you'd have to write data into a field on each Contact or create an entire new record for each Contact, on the fly.
What about creating a separate web resource that contains a table with only one column to hold the dynamically generated URL's? Run the same query as the view to get the Contacts, then generate the URL's and populate them into that "mini-grid". Put the main Contacts view in one section (say two-columns wide), and the mini-grid web resource in a single-column section right next to it, with no border and the same row height.
This way you rely on the main Contact grid for the Contact info, with the mini-grid holding your dynamic URL's (with proper link names of course, rather than raw URL's).
The high-level steps would be:
Get the user's id from the form context.
OnLoad of the sub-grid, get the set of Contact Id's.
Generate the URL for each Contact.
Populate the URL's into the mini-grid in the same order as the Contacts in the sub-grid, so each row in the mini-grid lines up with its Contact row to the left.
Another idea would be to look into the custom icon functionality in V9 to see if there are any hooks in there where you can add a dynamic URL.
You could also write a RetrieveMultiple plugin to dynamically populate a URL-formatted text field. RetrieveMultiple plugins have their caveats. But, how bad is it?
An unsupported option might be to hack the DOM and put your dynamic URL into a blank URL-formatted field in the view.

How to cross update of view between nattable and Jface view

Eclipse RCP View Communication ,where one view contains nattable and another views contains jface controls like button, dropdown.
Currently for example there is 3 view/Editor as shown below
View1 - contains employee details which is a Nattable and
it's cell contains data like String, Long, boolean, date value.
each row represent one data,and other views are corresponding data of
selected row
View2 - shows Address which is corresponding to the selected row in the View 1,
User can modify data of view2.
View3 - shows department details of employe, which can also be modified
So all 3 views present data of one model say Employee
Employee
|_Name
|_EmpId
|_Married
|_DOJ
|_Address
|_Type
|_City Name
|_State
|_PinCode
|_Department Details
|_Department
|_Project
|_Manager
Problem:
I want to know what is best way of communcation between views1 and other view such that
On selection of row in view1 then other two view should be update correspondingly;
If any data changes in view2/view3 then view 1 should get notification for data change in other view
when condition 2 occurs then I want to show dirty row in view1.
The typical approach for inter view communication in an E4 application related to your described scenario is to use the ESelectionService to trigger handling of a selection for opening another view, and to communicate back via the Eclipse 4 event system.
For scenario one to open a view based on the selection in a NatTable you could use the E4SelectionListener in the NatTable Eclipse 4 Extension Feature. It is a ILayerListener that forwards the selection to the ESelectionService. An example can be found in the NatTable examples.
To inform view 1 about changes in another view, I would suggest to use the IEventBroker to send an event from view2/view3 and react on the event in view1. This way the views are decoupled as much as possible. Eclipse 4 event system is a good starting point for learning about the event system.

Can I add a custom/email domain column in Outlook?

Sometimes in Outlook I want to be able to see the last few emails I received or sent to a client.
As there can be several individual email addresses per client, the only way to reliably identify emails as belonging to a client is to look at the domain part of the email address, eg the company in person#company.com
How can I add this as a sortable column in the main views (Inbox, Sent Items, etc)?
Almost found what I want from here (I've improved on the formula).
Add a new column to a view from the Show Columns dialog, click New Column and enter a new formula based column:
IIf(InStr([SearchFromEmail], "#") = 0, "", Mid([SearchFromEmail], InStr([SearchFromEmail], "#") + 1))
Similar question was asked here https://superuser.com/questions/703013/outlook-how-to-display-sender-email-address-in-inbox/703035#703035
Be aware, the ItemAdd event of the Items class is not fired when multiple items are added to the folder at the same time.
You can handle the NewMailEx event of the Application class which is fires when a new message arrives in the Inbox and before client rule processing occurs. You can use the Entry ID returned in the EntryIDCollection array to call the NameSpace.GetItemFromID method and process the item.
In the event handler you can add a user property which can be user in the UI for sorting items (MailItem.UserProperties.Add). The CurrentView property of the Folder class returns a View object representing the current view.
The View object allows you to create customizable views that allow you to better sort, group and ultimately view data of all different types. There are a variety of different view types that provide the flexibility needed to create and maintain your important data.
- The table view type (olTableView) allows you to view data in a simple field-based table.
- The Calendar view type (olCalendarView) allows you to view data in a calendar format.
- The card view type (olCardView) allows you to view data in a series of cards. Each card displays the information contained by the item and can be sorted.
- The icon view type (olIconView) allows you to view data as icons, similar to a Windows folder or explorer.
- The timeline view type (olTimelineView) allows you to view data as it is received in a customizable linear time line.
Views are defined and customized using the View object's XML property. The XML property allows you to create and set a customized XML schema that defines the various features of a view.
Not out of the box. You can process all your existing emails (and automatically process all new items using MAPIFolder.Items.ItemAdd event on the folders that you want to process) to set a user property (MailItem.UserProperties.Add) to the value extracted by your code. If you modify the folder views to include your property, you will be able to see it.

How to reuse WKInterfaceTable in WatchKit

I chose page-based layout for my WatchKit app. Each page shows a table. I want to keep the layout of the table exactly the same across all pages. I will be feeding filtered data to each page at run time, so essentially pages will be identical, except the data will be different.
One way to achieve this is to manually create InterfaceController instance for each page in InterfaceBuilder, then populate with GUI elements and connect the outlets. The problem here is whenever I want to change something (say, move a label or add a button), I will have to apply that change consistently to every page.
Moreover, for each page I have to connect the outlets to table row controller, essentially repeating myself over and over again. Here's an illustration:
Is there a way to reuse a table?
I considered inheritance, but the documentation tells me not to subclass WKInterfaceTable. This also rules out creating a table programmatically.
You should create a single interface controller with the table and various row types. Then you want to create an architecture very similar to my answer here. You'll only have a single PageOneInterfaceController which should be named TableInterfaceController in this example with TableInterfaceIdentifier as the identifier. Then you would do the following:
MainInterfaceController.swift
func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
let context1 = "context 1 - for you to fill out"
let context2 = "context 2 - for you to fill out"
let context3 = "context 3 - for you to fill out"
WKInterfaceController.reloadRootControllersWithNames(
["TableInterfaceIdentifier", "TableInterfaceIdentifier", "TableInterfaceIdentifier"],
contexts: [context1, context2, context3]
)
}
This will reload the page set using the same interface controller that displays all the data in the respective context.
To accomplish this, provide the same WKInterfaceController in reloadRootControllersWithNames:contexts: multiple times, but provide a different context to each one.

Cocoa bindings issue with three tableviews

im a osx-dev noob that is trying to build an application with three table views that will show the content of a core data store entity. But each table view is filtered on the attribute "status" of the entity.
the problem occurs when i also want to show the selected entity in textfields. I'm using three different array controllers with different fetch predicates. But in a textfield i can only bind the value to one array controller.
should i ditch the bindings and do it all programaticly or is there a simple solution to this? :)
here is an screenshot so you can grasp my app description.
Keep bindings to populate the text fields if it satisfies what you want to do with this GUI. I'd add an NSObjectController to control the one entity those fields represent. If you want the user's changes to those fields persisted, bindings are still awesome.
But I think with three tables that might control what's displayed in the text fields, you're going to need to have some sort of non-binding glue code that determines which of the tables wins. You can probably do everything you want by implementing some of the NSTableViewDelegate protocol.
If the text fields should display the last entity that the user clicked in any of the tables, simply have each table call the same tableViewSelectionDidChange delegate function. All three tables could have the same delegate. You can then call setContent on the NSObjectController from that function.
You could also use similar glue code to prevent more than one selection in any of the three tables, by having the same delegate function deselect everything in the other tables either through the view or the controller. But that's up to you and needs consideration of whether you want multiple selection, etc.

Resources