• Brianne Wilson 4
  • NEWBIE
  • 0 Points
  • Member since 2015


  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 2
    Replies
Summary of Requirements: 
- The client uses two separate record types for the standard Order object. 
- Cannot split this into two separate objects
- Have built a custom visualforce tab with the purpose of displaying only the list views for Orders pertaining to that record type
- I've been able to make the list view dynamic, where the component displaying the list view searches for the list view label that matches the picklist string value (ex. String Value = "List View A", the list view changes to List View A).

Problem:
- I have only been able to get it to work by hardcoding the labels of the desired list view into the controller. I'd like to make this dynamic as well, so that we don't have to maintain it. Should the client create list views down the road, I want those to appear on the tab as well.

Need: Filter List Views available to only those list views with the word "O2".

I'm assuming it's somehow using getListViewOptions(), but I couldn't figure out how to filter that. When I tried to use that, it by default returns all list views. So somehow setting a variable for the results, turning them to a string, and seeing if it contains the right word....and then returning those options to the list. But I couldn't get any of my code to work. If anyone can help it would be much appreciated!


Visualforce Page:
<apex:pageBlockSection >
            <apex:form >
                <apex:outputLabel style="font-weight: bold; margin-right: 10px;">Select View: </apex:outputLabel>
                <apex:selectList id="selectView" required="true" title="PickList1" size="1" value="{!propPickValSelected}" style="width: 225px;" label="Select View:">
                    <apex:selectOptions value="{!PickLstValue}" />
                    <apex:actionSupport event="onchange"/>
                </apex:selectList> 
            </apex:form>
        </apex:pageBlockSection>

Controller Snippet, which sets the values in the picklist:
Public string propPickValSelected { get; set; }
    
    public List<SelectOption> getPickLstValue()
    {
        List<SelectOption> options = new List<SelectOption>(); 
        options.add(new SelectOption(' ','------------- SELECT -------------'));
        options.add(new SelectOption('O2 - All','O2 - All'));
        options.add(new SelectOption('O2 - New','O2 - New'));
        options.add(new SelectOption('O2 - Cancelled','O2 - Cancelled'));
        options.add(new SelectOption('O2 - Closed','O2 - Closed'));
        return options;
    }
    
    public String getpropPickValSelected() {
        return propPickValSelected;
    }
    
    public void setpropPickValSelected(String propPickValSelected) {
        this.propPickValSelected = propPickValSelected;
    }

Note: I had at one point tried using this http://www.jitendrazaa.com/blog/salesforce/listview-filter-in-apex-with-paging-and-navigation/ and updating it to filter out, but couldn't get it to work either. Just figured I'd point you here too in case this helped.
I need to delete a user and add another. We have 3 licenses currently.
I am pretty new to coding and have pulled the majority of my code from examples that I've seen online via the community. For the most part I've learned lots and have a functioning page that works how I envisioned. However, there is (1) field that is causing me grief. 

I am using VisualStrap: http://blogforce9.blogspot.com/2013/12/visualstrap-visualforce-implementation.html 
&
I am using his Modal idea: http://blogforce9.blogspot.com/2014/06/visualstrap-using-modals-in-visualforce.html

All seems to be working very well except the Due Date field (due_date__c). It will not update the field value in the panel when Save is clicked on the Modal. All other fields update upon Save in the Modal as expected. Due Date will not.

Visualforce Page (truncated)
 
<apex:form >
            <vs:row >
                <vs:column type="col-md-12">
                    <vs:panel title="{!rfqObj.Name}" type="primary" id="RFQRecordDetailPage">
                        <apex:PageBlock mode="maindetail" id="rfqPageBlock">
                            <apex:pageBlockButtons location="top" >
                                <a class="btn btn-info btn-sm" onclick="$('#EditRfqDetails').modal('show');return false;">Edit</a>
                                <a class="btn btn-info btn-sm" onclick="$('#submitRFQ').modal('show');return false;">Submit</a>
                                <vs:tooltip text="Use this if the Quote has NOT gone to the customer">
                                    <apex:commandButton action="{!ext_RFQ_deepClone_Revise_RFQ_and_CQ}" value="Revise RFQ and CQ" styleClass="btn btn-info btn-sm"/>
                                </vs:tooltip>
                                <vs:tooltip text="Use this if the Quote HAS gone to the customer">
                                    <apex:commandButton action="{!deepCloneRFQ}" value="Revise Quote" styleClass="btn btn-info btn-sm"/>
                                </vs:tooltip>
                                </apex:pageBlockButtons>
                            <br/>
                            <apex:pageBlockSection title="Information" collapsible="True" >
                                <apex:outputField value="{!rfqObj.Locked__c}"/>
                                <apex:outputField value="{!rfqObj.Unlock__c}"/>
                                <apex:outputField value="{!rfqObj.Old_Quote_Number__c}"/>
                                <apex:outputField value="{!rfqObj.Quoting_Priority__c}"/>
                                <apex:outputField value="{!rfqObj.Quote_Number__c}"/>
                                <apex:outputField value="{!rfqObj.Requested_By__c}"/>
                                <apex:outputField value="{!rfqObj.End_User__c}"/>
                                <apex:outputField value="{!rfqObj.Ready_to_Submit__c}"/>
                                <apex:outputField value="{!rfqObj.Submitted_Date__c}"/>
                                <apex:outputField value="{!rfqObj.Revision_Notes__c}"/>
                                <apex:outputField value="{!rfqObj.Due_Date__c}"/>
                                <apex:outputField value="{!rfqObj.RFQ_Stage__c}"/>
                            </apex:pageBlockSection>
                        </apex:PageBlock>
                    </vs:panel>
                </vs:column>
            </vs:row>
            
            <vs:modal id="EditRfqDetails" title="RFQ Details">
                <apex:outputPanel layout="block" id="EditRfqDetailsModal">
                    <apex:pageBlock mode="maindetail">
                        <apex:pageBlockSection title="Information" collapsible="True" >
                            <apex:inputField value="{!rfqObj.Locked__c}"/>
                            <apex:inputField value="{!rfqObj.Unlock__c}"/>
                            <apex:inputField value="{!rfqObj.Old_Quote_Number__c}"/>
                            <apex:inputField value="{!rfqObj.Quoting_Priority__c}"/>
                            <apex:inputField value="{!rfqObj.Quote_Number__c}"/>
                            <apex:inputField value="{!rfqObj.Requested_By__c}"/>
                            <apex:inputField value="{!rfqObj.End_User__c}"/>
                            <apex:inputField value="{!rfqObj.Ready_to_Submit__c}"/>
                            <apex:inputField value="{!rfqObj.Submitted_Date__c}"/>
                            <apex:inputField value="{!rfqObj.Revision_Notes__c}"/>
                            <apex:inputField value="{!rfqObj.Due_Date__c}"/>
                            <apex:inputField value="{!rfqObj.RFQ_Stage__c}"/>
                        </apex:pageBlockSection>
                    </apex:pageBlock>
                    <center><apex:outputPanel layout="block" styleClass="modal-footer">
                        <apex:commandButton value="Cancel" styleClass="btn-warning btn-sm" html-data-dismiss="modal"/>
                        <apex:commandButton value="Save" styleClass="btn-success btn-sm" onclick="$(this).button('loading')" html-data-loading-text="Saving..." action="{!save}" reRender="RFQRecordDetailPage,EditRfqDetailsModal"/>
                        </apex:outputPanel></center>
                    <apex:outputPanel rendered="{!isSuccess}">
                        <script>
                        $('#EditRfqDetails').modal('hide');
                        </script>
                    </apex:outputPanel>
                </apex:outputPanel>
            </vs:modal>

Controller (truncated)
 
public class RFQModalDesignCon {

    public Boolean isSuccess{get;set;}
    public Parameters__c parObj{get;set;}
    public RFQ__c rfqObj{get;set;}
    public ControlsQuoting__c cqObj {get;set;}
    public List <RFQ__c> rfqRecords {get;set;}
    public List <ControlsQuoting__c> cqList {get;set;}
    public List <RFQ__c> RFQs {get;set;}
    private ApexPages.StandardController standardController;
    string lockedRFQRecordTypeId;
    string lockedParamRecordTypeId;
    string lockedMaterialConveyedRecordTypeId;
    string lockedControlsQuotingRecordTypeId;

    public RFQModalDesignCon() {
        
        insertPar();
        parObj.Related_RFQ__c = ApexPages.currentPage().getParameters().get('id');
        insertCq();
        cqObj.RFQ__c = ApexPages.currentPage().getParameters().get('id');

        rfqObj =  [SELECT Accepted__c, Accepted_Date__c, Access_Mezzanines__c, Air_Compressor_s_Existing__c, Air_Compressor_s_by_Others__c, Air_Compressor_s_by_Shick__c, Assigned_Date__c, Assigned_To__c, 
                  Assigned_To_Workflow_Field__c, Batching_Software__c, Batching_or_Controls_Notes__c, Closed__c, Closed_Date__c, Commission_Dollar_Amount__c, Commission_Percentage__c, Completed__c, 
                  Completed_Date__c, Controls_Completed__c, Controls_Completed_Date__c, Controls_Completed_Percentage__c, Controls_Step_Weight__c, CreatedById, CreatedDate, 
                  Creation_of_Quote_Document_Completed__c, Current_Revision__c, DaysOnHold__c, Decline_RFQ__c, Declined_RFQ_Date__c, Declined_RFQ_Fixed__c, 
                  Declined_RFQ_Reason__c, IsDeleted, Dense_Phase_Pressure__c, Dense_Phase_Vacuum__c, Dilute_Phase_Pressure__c, Dilute_Phase_Vacuum__c, Due_Date__c, Electrical_Controls__c, End_User__c, 
                  Existing_PLC__c, Existing_Shick_Controls__c, Existing_Start_Panel__c, Final_Flow_Drawing_Completed__c, Final_Flow_Drawing_Completed_Date__c, Final_Flow_Drawing_Completed_Percentage__c, 
                  Final_Flow_Drawing_Completed_Step_Weight__c, Final_Flow_Drawing_Required__c, Foundations_Concrete_Work__c, Freight_Included__c, HMI_Choices__c, HMI_Quantity__c, Heat_Tracing__c, 
                  Installation_Electrical__c, Installation_Mechanical__c, Installation_Required__c, Is_Assigned__c, LastActivityDate, LastModifiedById, LastModifiedDate, Original_Lead__c, Liquids_Completed__c, 
                  Liquids_Completed_Date__c, Liquids_Required_Completed_Percentage__c, Liquids_Step_Weight__c, Locked__c, Logix_PLC__c, Margin_Calculator_Completed__c, Margin_Calculator_Completed_Date__c, 
                  Margin_Calculator_Completed_Percentage__c, Margin_Calculator_Required__c, Margin_Calculator_Step_Weight__c, Mechanical_Dry__c, Mechanical_Liquids__c, Minor_Ingredient_Automation_Required__c, 
                  Minor_Ingredient_Completed_Date__c, Minor_Ingredients_Completed__c, Minors_Ingredient_Step_Completed_Per__c, Minors_Ingredient_Step_Weight__c, Motor_Starter_Enclosure__c, 
                  Motor_Starter_Enclosure_Quantity__c, New_PLC_Required__c, New_Start_Panel_Required__c, Noise_Level_dBa_Max__c, OffHold__c, OffHoldDate__c, Old_Quote_Number__c, 
                  OnHold__c, OnHoldDate__c, OwnerId, PE_Stamped_Drawings_Required__c, PEM_Travel_Dollars__c, PLC_Enclosure__c, ParametersCount__c, Pipe_Insulation__c, Pipe_Sheathing__c, 
                  Plant_Compressed_Air_Available__c, Preliminary_Flow_Drawing_Completed__c, Preliminary_Flow_Drawing_Completed_Perc__c, Preliminary_FlowDrawing_Completed_Date__c, 
                  Preliminary_Flow_Drawing_Required__c, Preliminary_Flow_Drawing_Step_Weight__c, Preliminary_Flow_Sent__c, Preliminary_Flow_Sent_Date__c, Previous_Shick_Project__c, Priority__c, 
                  Quantity_of_AIM_Batching_Units__c, Quote_Document_Completed_Percentage__c, Quote_Document_Required__c, Quote_Document_Step_Weight__c, Quote_Number__c, Quote_Number_for_Opportunity__c, 
                  Quote_Type__c, Quoting_Priority__c, RFQ_Completion_Percentage__c, RFQ_Complted_Salesman__c, Name, RFQ_PoO__c, RFQ_Received_from_Controls_Quoting__c, RFQ_Recv_from_Controls_Quoting_Date__c, 
                  RFQ_Sent_for_Controls_Quoting__c, RFQ_Sent_to_Controls_Quoting_Date__c, RFQ_Stage__c, Ready_to_Submit__c, ReceivedInstallBid__c, Id, RecordTypeId, Related_Opportunity__c, Remote_I_O_Enclosure__c, 
                  Remote_I_O_Enclosure_Quantity__c, Replicate_Past_Project_Specs__c, Report_Quote_Number_to_Opportunity__c, Representative__c, Requested_By__c, Revision_Completed_Date__c, 
                  Revision_Notes__c, Scale_s_Calibration__c, SentforInstallBid__c, Separate_Scale_Enclosure__c, Separate_Scale_Enclosure_Quantity__c, Start_Up_Services_Required__c, 
                  Steps_Required_for_Completion__c, Submitted_Date__c, Support_Structures__c, System_Commissioning__c, System_Eng_Travel_Dollars__c, SystemModstamp, Target_GM_Percentage__c, Unlock__c, 
                  Utilize_Existing_Equipment__c, Weight_of_Steps__c, Percentage__c, ProgressBarCompletion__c 
                  FROM RFQ__c WHERE Id =: ApexPages.CurrentPage().getParameters().get('id')];
    }

    //method to save the Parameter record
    public void saveParameter(){
        try{
            insert parObj;
                insertPar();
              isSuccess = true;
        }
        catch(Exception ex){
            Apexpages.addMessages(ex);
            isSuccess = false;
        }
    }
     
    private void insertPar(){
        parObj = new Parameters__c();
        isSuccess = false;
    }

	//method to save the Controls Quote Record
    public void saveControlsQuote(){
        try{
            insert cqObj;
            	insertCq();
            isSuccess = true;
        }
        catch(Exception ex){
            Apexpages.addMessages(ex);
                issuccess = false;
        }
    }
    private void insertCQ(){
        cqObj = new ControlsQuoting__c();
        isSuccess = false;
    }
    
/////=======================================================================================/////
/////======================================--Buttons--======================================/////
/////=======================================================================================/////
    
    //Unlock Button Method 
    public void Unlock(){
        if(rfqobj.Locked__c != False){
			rfqobj.Locked__c = False;            
        }
        if(rfqObj.Unlock__c != True){
            rfqObj.Unlock__c = True;
        }
        update rfqObj;
    }
    
    public void Save(){
        try{
            update rfqObj;
            isSuccess = true;
            system.debug('SAVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'+rfqObj.Due_Date__c);
        }
        catch(Exception ex){
            Apexpages.addMessages(ex);
                issuccess = false;
        }
    }
    
    public void Submit(){
        try{
            update rfqObj;
            isSuccess = true;
        }
        catch(Exception ex){
            Apexpages.addMessages(ex);
                issuccess = false;
        }
    }
    
    public PageReference RefreshPage(){
        pageReference pr = new pageReference('/apex/RFQModalDesign?id=' + rfqObj.Id);
        pr.setRedirect(true);
        return pr; 
    }
}

I am just stumped. When I update the Due Date in the modal and click save, nothing happens. No changes are written to the record. I manually refresh the page and affirm that no changes have been written. If I select any other field in the Modal it updates the record when I click save on the Modal.

Any suggestions? Please let me know if something doesn't make sense...there is a lot of code that was truncated, I don't think I left anything vital out.

Thanks.