Hi All, In App Manager we need to support custom themes for tenants. We hope to provide the tenant custom theme support like APIM[1].
Currently APPM has three asset types (webapp,site,mobileapp) as extension types.Each asset type has its own theme by overriding the some theme resources of the default theme.Where default theme provides common theme resources for all asset types. *Current structure* store |--extensions | |--assets | |--webapp | *|--themes* | *|--store* | |--mobileapp | *|--themes * | *|--store* |--*themes* * |--store* Where "themes/store" is default theme directory and each asset has overridden this theme under extensions directory. So when we provide the custom theme support for tenants we need to focus on providing ability to customize the default theme resources as well as theme resources overridden in asset level. E.g Theme resources for header and footer is common to all asset types and which comes from the default theme.Theme resources for asset overview page is different for each assets and they come from asset level. As I had offline discussion with Sameera M , we came up following directory structure for adding custom theme. *Custom theme support* store |--extensions | |--assets | |--webapp | | |--themes | | |--store | | | |--mobileapp | |--themes | |--store |--themes |--store | *|--<tenantdomain> * * |--extensions* * | |--<assetype>* * | |--themes * * | |--store* * |* * |* * |--themes* * |--store* - Resources in themes/store directory can be overridden by tenants in <tenantdomain>/themes/store. - Reduces in store/extensions/assets/<assettype>/themes/store can be overridden by tenants in store/<tenantdomain>/extensions/assets/<assetype>/themes/store e.g store |--extensions | |--assets | |--webapp | | |--themes | | |--store | | |--css | | |--overview-style.css | |--mobileapp | |--themes | |--store |--themes |--store | |--css | |--header-style.css | |--*eng.com <http://eng.com>* |--extensions | |--webapp | |--themes | |--store | |--css | |--overview-style.css | | |--themes |--store --css --header-style.css *Implementation* 1. Tenant user will be provided an interface(in admin-dashboard) to upload the custom theme 2. Theme resources should be uploaded in zip format. 3. Provide configuration option to whitelist the resource files that can be uploaded 4. Uploaded resource files will be stored in store under the directory having tenant name store | |--themes | |--<*tenantdomain> * * |--extensions* * | |--<assettype>* * | |--themes * * | |--store* * |* * |* * |--themes* * |--store* 5. if deployment has multiple store nodes, custom theme should be uploaded in one store node and should be synced using suitable sync mechanism like rsync. Appreciate your feedback. [1] http://wso2-oxygen-tank.10903.n7.nabble.com/APIM-ES-Store-Supporting-custom-themes-for-tenants-td92555.html Thanks -- Jenananthan Yogendran *Senior Software Engineer,* *WSO2 inc., http://wso2.com <http://wso2.com>*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
