Opportunity Wall XML

edited February 17, 2020 in General
Drag and Drop Opportunity Wall is a hit and Summer 14 Release, with multiple actions, a number one on the top of the charts!

https://github.com/skuidify/SamplePages/blob/master/ActionRecipies/OpportunityPlanningWall.xml
Tagged:

Comments

  • Rob HatchRob Hatch 🛠️ 
    edited September 1, 2016
    Glad you like it!
    I've combined it with poupup actions to create a "trello" like interface for managing our projects here at Skuid.  Its pretty cool. 
  • edited February 17, 2020
    Please share the XML.

    Here is my Michelangelo version lol and share.

    <skuidpage showsidebar="false" showheader="true" tabtooverride="Opportunity">   <models>
          <model id="Opps_Prospecting" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             <field id="Probability"/>
    </fields>
             <conditions>
                <condition type="fieldvalue" value="Prospecting" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
          <model id="Opps_NegotiationReview" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Negotiation/Review" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
          <model id="Opps_ProposalPriceQuote" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Proposal/Price Quote" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
          <model id="Opps_ClosedWon" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Closed Won" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
          <model id="Opps_ClosedLost" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Closed Lost" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
       <model id="Opps_Qualification" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Qualification" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
    <model id="Opps_NeedsAna" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Needs Analysis" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
    <model id="Opps_ValProp" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Value Proposition" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
    <model id="Opps_IdDesicionMakers" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Id. Decision Makers" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
    <model id="Opps_PercepAnalaysis" limit="100" query="true" createrowifnonefound="false" sobject="Opportunity" orderby="Name">
             <fields>
                <field id="Name"/>
                <field id="StageName"/>
                <field id="Amount"/>
                <field id="CloseDate"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Owner.SmallPhotoUrl"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
             </fields>
             <conditions>
                <condition type="fieldvalue" value="Perception Analysis" enclosevalueinquotes="true" field="StageName"/>
             </conditions>
             <actions/>
          </model>
    </models>
       <components>
          <pagetitle model="Opps_Prospecting">
             <maintitle>Opportunity Planning Wall</maintitle>
             <actions>
                <action type="savecancel" window="self">
                   <models>
                      <model>Opps_NegotiationReview</model>
                      <model>Opps_ProposalPriceQuote</model>
                      <model>Opps_ClosedWon</model>
                      <model>Opps_ClosedLost</model>
                   </models>
                   <savehotkeys>
                      <hotkey modifiers="ctrl" key="s"/>
                      <hotkey modifiers="meta" key="s"/>
                   </savehotkeys>
                </action>
             </actions>
          </pagetitle>
    <panelset type="custom" scroll="fixed" uniqueid="" height="400">
             <panels>
                <panel width="18%" cssclass="frame" uniqueid="frames">
                   <components>
                      <queue tagrendertype="snippet" parameter="id" defaultitemparameter="id" clickactiontype="multi" searchbox="true" model="Opps_Prospecting" title="Prospecting 10%" rendersnippet="Queue.ItemRenderer">
                         <filters/>
                         <actions>
                            <action type="showPopup">
                               <popup title="Opportunity Details: {{Name}}" width="80%">
                                  <components>
                                     <includepanel type="skuid" pagename="OpportunityDetail_AFDeepDive" module="" querystring="id={{{Id}}}"/>
                                  </components>
                               </popup>
                            </action>
                         </actions>
                      <renderconditions/>
    </queue>
                   </components>
                </panel>
                
                <panel width="1%" uniqueid="" cssclass="">
                   <components>
                      
                   </components>
                </panel>
                <panel width="18%" cssclass="frame" uniqueid="frames">
                   <components>
    <queue tagrendertype="snippet" querystring="id={{Id}}" defaultitemparameter="id" clickactiontype="updatepanel" searchbox="true" model="Opps_Qualification" title="Qualification 10%" rendersnippet="Queue.ItemRenderer">
       <rendertemplate>{{{Name}}}</rendertemplate>
    </queue>
                      
                   </components>
                </panel>
                <panel width="1%" cssclass="" uniqueid="">
                   <components>
                      
                   </components>
                </panel>
             <panel width="18%" uniqueid="frames" cssclass="frame">
    <components>
       <queue tagrendertype="snippet" querystring="id={{Id}}" defaultitemparameter="id" clickactiontype="updatepanel" searchbox="true" model="Opps_NeedsAna" title="Needs Analysis 20%" rendersnippet="Queue.ItemRenderer">
          <rendertemplate>{{{Name}}}</rendertemplate>
       </queue>
    </components>
    </panel>
    <panel width="1%">
       <components/>
    </panel>
    <panel width="18%" uniqueid="frames" cssclass="frame">
       <components>
          <queue tagrendertype="snippet" querystring="id={{Id}}" defaultitemparameter="id" clickactiontype="updatepanel" searchbox="true" model="Opps_ValProp" title="Value Proposition 50%" rendersnippet="Queue.ItemRenderer">
             <rendertemplate>{{{Name}}}</rendertemplate>
          </queue>
       </components>
    </panel>
    <panel width="1%">
       <components/>
    </panel>
    <panel width="18%" uniqueid="frames" cssclass="frame">
       <components>
          <queue tagrendertype="snippet" querystring="id={{Id}}" defaultitemparameter="id" clickactiontype="updatepanel" searchbox="true" model="Opps_Prospecting" title="Id. Decision Makers 60%" rendersnippet="Queue.ItemRenderer">
             <rendertemplate>{{{Name}}}</rendertemplate>
          </queue>
       </components>
    </panel>
    <panel width="2%">
       <components/>
    </panel>
    </panels>
          </panelset>
    <pagetitle model="Opps_PercepAnalaysis">
       <actions/>
    </pagetitle>
          <panelset type="custom" scroll="variable" offset="220">
    <panels>
       <panel width="18%" uniqueid="frames" cssclass="frame">
          <components>
             <queue tagrendertype="snippet" querystring="id={{Id}}" defaultitemparameter="id" clickactiontype="updatepanel" searchbox="true" model="Opps_PercepAnalaysis" title="Perception Analysis 70%" rendersnippet="Queue.ItemRenderer">
                <rendertemplate>{{{Name}}}</rendertemplate>
             </queue>
          </components>
       </panel>
       <panel width="1%">
          <components/>
       </panel>
       <panel width="18%" cssclass="frame" uniqueid="frames">
          <components>
             <queue tagrendertype="snippet" parameter="id" defaultitemparameter="id" clickactiontype="multi" searchbox="true" model="Opps_ProposalPriceQuote" title="Proposal/Price Quote 75%" rendersnippet="Queue.ItemRenderer">
                         <filters/>
                         <actions>
                            <action type="showPopup">
                               <popup title="Opportunity Details: {{Name}}" width="80%">
                                  <components>
                                     <includepanel type="skuid" pagename="OpportunityDetail_AFDeepDive" module="" querystring="id={{{Id}}}"/>
                                  </components>
                               </popup>
                            </action>
                         </actions>
                      </queue>
          </components>
       </panel>
       <panel width="1%">
          <components/>
       </panel>
       <panel width="18%" cssclass="frame" uniqueid="frames">
          <components>
             <queue tagrendertype="snippet" parameter="id" defaultitemparameter="id" clickactiontype="multi" searchbox="true" model="Opps_NegotiationReview" title="Negotiation/Review 90%" rendersnippet="Queue.ItemRenderer">
                         <filters/>
                         <actions>
                            <action type="showPopup">
                               <popup title="Opportunity Details: {{Name}}" width="80%">
                                  <components>
                                     <includepanel type="skuid" pagename="OpportunityDetail_AFDeepDive" module="" querystring="id={{{Id}}}"/>
                                  </components>
                               </popup>
                            </action>
                         </actions>
                      </queue>
          </components>
       </panel>
       <panel width="1%">
          <components/>
       </panel>
       <panel width="18%" cssclass="frame" uniqueid="frames">
          <components>
             <queue tagrendertype="snippet" parameter="id" defaultitemparameter="id" clickactiontype="multi" searchbox="true" model="Opps_ClosedWon" title="Closed Won 100%" rendersnippet="Queue.ItemRenderer">
                         <filters/>
                         <actions>
                            <action type="showPopup">
                               <popup title="Opportunity Details: {{Name}}" width="80%">
                                  <components>
                                     <includepanel type="skuid" pagename="OpportunityDetail_AFDeepDive" module="" querystring="id={{{Id}}}"/>
                                  </components>
                               </popup>
                            </action>
                         </actions>
                      </queue>
          </components>
       </panel>
       <panel width="1%">
          <components/>
       </panel>
       <panel width="18%" cssclass="frame" uniqueid="frames">
          <components>
             <queue tagrendertype="snippet" parameter="id" defaultitemparameter="id" clickactiontype="multi" searchbox="true" model="Opps_ClosedLost" title="Closed Lost - Try Again" rendersnippet="Queue.ItemRenderer">
                         <filters/>
                         <actions>
                            <action type="showPopup">
                               <popup title="Opportunity Details: {{Name}}" width="80%">
                                  <components>
                                     <includepanel type="skuid" pagename="OpportunityDetail_AFDeepDive" module="" querystring="id={{{Id}}}"/>
                                  </components>
                               </popup>
                            </action>
                         </actions>
                      </queue>
          </components>
       </panel>
       <panel width="1%">
          <components/>
       </panel>
    </panels>
    </panelset>
       </components>
       <resources>
          <labels/>
          <css>
             <cssitem location="inline" name="newcss" cachelocation="false">.nx-queue .nx-list-contents {
        min-height: 25px;
    }

    .nx-queue .nx-list-contents.ui-state-highlight {
        min-height: 100px;
    }</cssitem>
          <cssitem location="inline" name="frame" cachelocation="false">#frames.frame{
        border: 2px solid #299fc5;
        padding: 5px;
    }
    </cssitem>
    </css>
          <javascript>
             <jsitem location="inlinesnippet" name="Queue.ItemRenderer" cachelocation="false">var args = arguments[0],
        item = args.item,
        list = args.list,
        model = args.model,
        element = args.element,
        row = item.row,
        renderTemplate = 
            '&lt;img src="{{{Owner.SmallPhotoUrl}}}" width="20" height="20" style="margin-right: 8px;"/&gt;'
            + '{{Name}} ({{CloseDate}})',
        mergeSettings = {
            createFields: true,
            registerFields: true
        },
        $ = skuid.$;
        
    element.html(
        skuid.utils.merge('row',renderTemplate,mergeSettings,model,row)
    ).
    draggable({
        revert: 'invalid',
        appendTo : 'body',
    helper : function() {
            var original = $(this);
            var helper = original.clone();
            // Pass along a reference to the current list's contents
            // so that we can compare lists
            // to ensure we're not allowing dropping on the current list
            original.data('listContents',list.contents);

    helper.css({
    'z-index' : 1000,
    'width' : $(this).css('width'),
    'height' : $(this).css('height'),
    'border' : '1px black solid',
    'padding' : '4px',
    'background-color' : '#EEE',
    'font-family': 'Arial,Helvetica,sans-serif',
    'cursor':'move'
    });

    return helper; 
    }
    });</jsitem>
             <jsitem location="inline" name="Make Queue contents Droppable" cachelocation="false" url="">(function(skuid){
       
       // Global setting -- if true, then all changes will be immediately saved,
       // otherwise, changes will remain unsaved until you click Save.
       var SAVE_IMMEDIATELY = true;
        
       var $ = skuid.$;
       
        var getQueueList = function(queueElement){
            var queueList;
            $.each(skuid.model.list(),function(i,model){
               $.each(model.registeredEditors,function(){
                  if (this.element.is(queueElement)) {
                      queueList = this.lists[0];
                      return false;
                  } 
               });
               if (queueList) return false;
            });
            return queueList;
        };
       
       $(function(){
          $('.nx-queue').each(function(){
             var queue = $(this);
             var listContents = queue.find('.nx-list-contents');
         
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!