|
|
(27 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| === Introduction to Examples and merge ===
| | #REDIRECT [[Documentation:Model Examples]] |
| This page describe merge in models - if you rather would use model+data="a complete system" to apply to a existing turnkey site look here [[Example_Gist]].
| |
| | |
| Examples that you can merge into your empty or not complete model in order to get some functionality
| |
| [[File:2020-05-30 19h00 48.png|none|thumb]]
| |
| or/and :
| |
| [[File:2020-05-30 19h02 13.png|none|thumb]]
| |
| | |
| ===== What happens when you merge another modlr file? =====
| |
| # If the merged file use some class name that you already use - the content of the classes is copied from the merged file to the class you already had - the incoming class is discarded to avoid doublet
| |
| # If the merged file use the same package name as you already have in your model - the content from the merged file is moved into your package
| |
| # If you the merged file use some viewmodel-names you already have - they are skipped - if new viewmodels are found they are added
| |
| # If you have the same diagram name - the diagrams are merged to avoid doublets.
| |
| # If the merged had some AssetsTK - it is merged to your AssetsTK increasing it or updating it
| |
| | |
| === Packages primarily used by importing into an existing model ===
| |
| | |
| ==== SysUserAuthentication - important architectural pattern ====
| |
| This example adds the SysSingleton and SysUser classes needed to enable login and authentication in Turnkey systems
| |
| [[File:2020-05-30 19h31 20.png|none|thumb]][[Special:Redirect/file/SysUserAuthentication.modlr|Download SysUserAuthentication]] - once downloaded do "open merge add" from the model you want to extend.
| |
| | |
| ==== Password reset sample - important architectural pattern ====
| |
| There's no build in password reset functionality in Turnkey. This is because if we had one, it would probably not fit you anyway.
| |
| | |
| Instead, you add this functionality to your model and are then free to integrate and adapt it as you feel needed.
| |
| | |
| If you use the default package for login, the ASPNETIdentity package, this package will just extend you model with the following;
| |
| # A reset password page that you can create an action to go to. This page should be without any access groups.
| |
| # A server side viewmodel that runs every 20 seconds and sends emails with reset instructions to your users. Remember to set the Turnkey/MDrivenServer's email server settings.
| |
| # A page for the user to set the password. This page also has information to the user about expired reset tickets and sending a new ticket in those circumstances.
| |
| You import this template and then you;
| |
| # Set the PasswordReset package's "Default superclass" if you want that.
| |
| # Make sure you have email server set up.
| |
| # Create an action that opens the "RestetPasswordPage" viewmodel.
| |
| Download the model file here: [[Special:Redirect/file/PasswordResetTemplate.modlr|PasswordResetTemplate.modlr]]
| |
| [[File:Password reset model sample.png|none|thumb|644x644px]]
| |
| | |
| ==== Consume and Purchase GetPaid#1 ====
| |
| This model extends your system with an ability to [[Charge end user|charge the end-user]] for services you provide. The user will be treated as a SysConsumer in portal - and you can charge the SysConsumer with a Credit card and you can let the SysConsumer consume your services with a simple call in your local model.[[Special:Redirect/file/ChargeEndUserViaMDrivenPortalService.modlr|Download ChargeEndUserViaMDrivenPortalService.modlr]] :
| |
| [[File:2020-05-31 12h01 07.png|none|thumb|578x578px]]
| |
| | |
| ==== PayPal-Checkout GetPaid#2 ====
| |
| As an alternative method to get paid from a user you can integrate PayPal. You will need a PayPal account and register as a developer. Once there you register your app and get a ClientID - you paste this ClientID into this viewmodel and you are all set.
| |
| [[Special:Redirect/file/PayPalCheckout.modlr|PayPalCheckout.modlr]]
| |
| [[File:2020-07-20 12h48 44.png|none|thumb|288x288px]]
| |
| [[File:2020-07-20 12h50 01.png|none|thumb]]
| |
| | |
| Localization and Translation - important architectural pattern
| |
| | |
| MDriven systems can adhere to a model pattern and use that to store translations to all texts in actions and ViewModels. There is also ocl operators (Translate) that work on data according to this pattern. [[Localization|Read more here]]
| |
| [[File:2020-06-17 15h43 02.png|none|thumb]]
| |
| [[Special:Redirect/file/Translations.modlr|Translations.modlr]]
| |
| | |
| === Theme builder - build theme in runtime ===
| |
| You can easily set CSS variables to influence colors and sizes of the UI. To try different settings out in runtime you can merge this model section:
| |
| [[File:2020-06-22 18h49 08.png|none|thumb|531x531px]]
| |
| [[File:2020-06-22 18h49 22.png|none|thumb|499x499px]]
| |
| | |
| [[Special:Redirect/file/ThemeBuilder.modlr|ThemeBuilder.modlr]] , also see [[Theme as data]]
| |
| | |
| === SysAsyncTicket - important architectural pattern ===
| |
| SysAsyncTicket is a model pattern described here [[AsyncTicket]], it is recognized by the MDrivenServer and helps you easily do stuff in the background
| |
| [[File:2020-06-30 20h04 31.png|none|thumb]]
| |
| | |
| [[Special:Redirect/file/SysAsyncMergeModel.modlr|SysAsyncTicketMergeModel.modlr]] | |
| | |
| === Outgoing Email Queue ===
| |
| Model pattern that adds a outgoing email queue to the standard base model. | |
| | |
| A seeker view enables you to search for queued or sent emails and an email detail view for changing the queued emails.
| |
| [[File:OutgoingEmailQueue-model.png|none|thumb|459x459px]]
| |
| Includes two serverside viewmodels, one that sends the emails and one that cleans up sent emails.
| |
| | |
| It can attach files to the outgoing emails.
| |
| | |
| It has exception handling, error viewing and retying failed send attempts.
| |
| | |
| [[Special:Redirect/file/OutgoingEmailQueue.modlr|OutgoingEmailQueue.modlr]]
| |
| | |
| === Complete model examples ===
| |
| | |
| ==== SVG - Move boxes around ====
| |
| In this example we create objects represented by SVG graphic - that reacts to mouse events so that they be moved around and saved.
| |
| [[File:2020-05-31 17h14 29.png|none|thumb]]
| |
| Download it here: [[Special:Redirect/file/SvgInteractionMoveBoxesAround.modlr|SvgInteractionMoveBoxesAround.modlr]]
| |
| | |
| === Google map to show and update positions ===
| |
| The example shows how to place a marker on a google map, how to track the setting of the map, how to move the marker. For production you will need your own api key from google.[[File:2020-05-31 19h31 33.png|none|thumb]]
| |
| Download the file here: [[Special:Redirect/file/GoogleMapWithMarkers.modlr|GoogleMapWithMarkers.modlr]]
| |
| | |
| === A Trello like board with cards you move between lists ===
| |
| Kanban boards can be used to many things. Move cards between list - klick up a card - add new cards etc. [[File:2020-05-31 22h59 58.png|none|thumb|528x528px]]
| |
| Download the file here: [[Special:Redirect/file/TrelloLikeBoard.modlr|TrelloLikeBoard.modlr]]
| |
| | |
| === Notes to admin ===
| |
| The files uploaded here are maintained here '''SVN\source\Ideas\WikiPublishedModelExamples ,''' read NOTESTOADMIN.txt in that location
| |
| | |
| In order to create a direct download link use syntax like this:[[Special:Redirect/file/Företag.modlr]]
| |
| | |
| This is how the link should be formed: https://www.mediawiki.org/wiki/Help:Linking_to_files
| |