function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Megha SachaniaMegha Sachania 

Visualforce Development Angularjs

Hello Everyone,

Hope you all are fine in your health.

I need some suggestion as i am using apex page and there are several scripts used which have been uploaded as static resource.but if there are any changes in scripts i have to every time download the resource and update it and again deploy to org which is somewhere hactic.

to resolve this would it will be better to use apex component? As these scripts are used in many apex pages.

below is the sample of code 

adhocTranslator.page

   <apex:outputPanel layout="block" id="wizardBlock" rendered="{!isAppConfigured && isActive}">
                <apex:outputPanel layout="none">
                    <div id="appContainer" class="agent-lang-selector-block slds-scrollable">                        
                    </div>
                    <script type="text/javascript" src="{!ResourceURL + '/vendor_js/clipboard.min.js'}"></script>
                    <script type="text/javascript" src="{!ResourceURL + '/app_js/factory/SalesforceEngine.js'}"></script>
                    <script type="text/javascript" src="{!ResourceURL + '/app_js/factory/utils.js'}"></script>
                    <script type="text/javascript" src="{!ResourceURL + '/app_js/Apps/loader.app.js'}"></script>
                    <script type="text/javascript" src="{!ResourceURL + '/app_js/Apps/adHocTranslator.app.js'}"></script>
                    <script type="text/javascript" src="{!ResourceURL + '/vendor_js/ngclipboard.js'}"></script>
                     <script type="text/javascript" src="{!ResourceURL + '/app_js/Apps/languagePreference.app.js'}"></script>
                    <script type="text/javascript">
                        angular.element(function() {                                
                                langaugeApp.factory('labelFactory', [function () {
                                labelFactory = {
                                        TranslateFrom: '{!$Label.TranslateFrom}',
                                        TranslateTo: '{!$Label.TranslateTo}',
                                        PainTextPlaceholder: '{!$Label.PainTextPlaceholder}',
                                        TranslationPlaceholder: '{!$Label.TranslationPlaceholder}',
                                        TranslateButton: '{!$Label.TranslateButton}',
                                        CopyButton: '{!$Label.CopyButton}',
                                        TranslationDeactivated: '{!$Label.TranslationDeactivated}',
                                        ClearButton: '{!$Label.ClearButton}'
                                };
                                return labelFactory;
                            }]); 
                            langaugePrefApp.factory('labelFactory', [function () {
                                    labelFactory = {
                                            langPrefInstruction: '{!$Label.langPrefInstruction}',
                                            LanguagesIknow: '{!$Label.LanguagesIknow}',
                                            AvailableLanguages: '{!$Label.AvailableLanguages}',
                                            SelectedLanguages: '{!$Label.SelectedLanguages}',
                                            AgentDefaultLanguage: '{!$Label.AgentDefaultLanguage}',
                                            CancelButton: '{!$Label.CancelButton}',
                                            SetPreferencesButton: '{!$Label.SetPreferencesButton}'
                                    };
                                    return labelFactory;
                                }]); 
                            initalizeAdhocApp();
                        });
                    </script>
                </apex:outputPanel>             
        </apex:outputPanel>

SalesforceEngine.js

var setupApp = angular.module('salesforceEngine', [])
setupApp.factory('salesforce', [function () {
    salesforce = {
        invoke: function () {
            var onsuccess = arguments[arguments.length - 2];
            var onerror = arguments[arguments.length - 1];
            arguments[arguments.length - 2] = function (result, event) {
                if (event.status)
                    onsuccess.apply(this, arguments);
                else
                    onerror.call(this, event.message);
            };
            arguments[arguments.length - 1] = function (result, event) {
                onerror.call(this, event.message);
            };
            arguments[arguments.length] = { escape: false, timeout: 120000 };
            ++arguments.length; 
            Visualforce.remoting.Manager.invokeAction.apply(Visualforce.remoting.Manager, arguments);
        },  
        translate : function (p_sourceLanguage, p_plainText, p_targetLanguage, onsuccess, onerror) {
            salesforce.invoke('GlobalLink.AdhocTranslatorController.translate', p_sourceLanguage, p_plainText, p_targetLanguage, onsuccess, onerror);
        },
        getLanguageConfiguration : function (onsuccess, onerror) {
            salesforce.invoke('GlobalLink.AdhocTranslatorController.getLanguageConfiguration', onsuccess, onerror);
        },
        getUserPreference : function (onsuccess, onerror) {
            salesforce.invoke('GlobalLink.AdhocTranslatorController.getUserPreference', onsuccess, onerror);
        },
        saveUserPreference : function (paramMapJSON, onsuccess, onerror) {
            salesforce.invoke('GlobalLink.AdhocTranslatorController.saveUserPreference', paramMapJSON, onsuccess, onerror);
        },
        getConfiguration : function (onsuccess, onerror) {
            salesforce.invoke('GlobalLink.TranslationSettingsController.getConfiguration', onsuccess, onerror);
        },
        checkConfiguration : function (configMap, onsuccess, onerror) {
            salesforce.invoke('GlobalLink.TranslationSettingsController.checkConfiguration', configMap, onsuccess, onerror);
        },
        save : function (configMap, onsuccess, onerror) {
            salesforce.invoke('GlobalLink.TranslationSettingsController.save', configMap, onsuccess, onerror);
        }
    };
    return salesforce;
}]);

Please help me out for the same.

Vishwajeet kumarVishwajeet kumar
Hello,
I have come across this development pattern 
Have you tried VS CODE (https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components/set-up-visual-studio-code" target="_blank) - https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components/set-up-visual-studio-code for development, it makes editing and deployment of static resources easier. Works good with zipped static resources too.

Thanks.