You need to sign in to do that
Don't have an account?
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.
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.