{"id":19936743,"url":"https://github.com/donkeycode/ionic-tools","last_synced_at":"2025-03-01T12:23:12.600Z","repository":{"id":29929575,"uuid":"33475711","full_name":"donkeycode/ionic-tools","owner":"donkeycode","description":"This project is a coolection of tools to quickly start one ionicframework app","archived":false,"fork":false,"pushed_at":"2022-04-07T20:08:08.000Z","size":4251,"stargazers_count":1,"open_issues_count":7,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-12T03:04:05.612Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/donkeycode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-06T09:48:11.000Z","updated_at":"2018-02-12T12:49:05.000Z","dependencies_parsed_at":"2022-08-27T02:02:46.353Z","dependency_job_id":null,"html_url":"https://github.com/donkeycode/ionic-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donkeycode%2Fionic-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donkeycode%2Fionic-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donkeycode%2Fionic-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donkeycode%2Fionic-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donkeycode","download_url":"https://codeload.github.com/donkeycode/ionic-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241363006,"owners_count":19950669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T23:28:41.846Z","updated_at":"2025-03-01T12:23:12.578Z","avatar_url":"https://github.com/donkeycode.png","language":"JavaScript","readme":"This project is a coolection of tools to quickly start one [ionicframework](http://ionicframework.com/) app\n\nThis project is built using [ng-build](https://github.com/izeau/ng-build)\n\nYou can see sample of usage with our [ionic-init](https://github.com/donkeycode/ionic-init) project\n\n# How to install\n\n````\nbower install --save donkeycode-ionic-tools\n````\n\nIn your ionic app add `dc.tools` dep\n\n````\n.module(\"dc.bootstrap\", [\n    \"ionic\",\n    \"angularMoment\",\n    \"angular-data.DSCacheFactory\",\n    \"pascalprecht.translate\",\n    \"ngCordova\",\n    \"truncate\",\n    \"dc.tools\",\n    \"dc.common\",\n    \"dc.home\"\n])\n`````\n\n# What is in ?\n\n## Structure\n\nIn the structure folder, you will find a base template for `ngIndex` (ng-build) specially created for ionic\n\n```` js\n.pipe(ngIndex({\n    main: 'dc.bootstrap',\n    baseTemplate: __dirname + '/bower_components/donkeycode-ionic-tools/structure/layout.template.html'\n}))\n````\n\n## SCSS\n\n````\n@import \"../../bower_components/donkeycode-ionic-tools/scss/tools\";\n````\n\nThis scss contains some hooks to help you skin tabs and list.\n\n## Services\n\n### dcToolsOnline\n\nHelp you check if connection is online switching mode depends if you have cordova or not\n\n````\ndcToolsOnline.isOnline()\n````\n\n### dcToolsPushwoosh\n\nHelp you to register user to pushwoosh\n\nConfigure a `dcToolsConfig` constant using the dcToolsConfigProvider\n\n`````\napp.config(function configPushWoosh(dcToolsConfigProvider) {\n    dcToolsConfigProvider.config.pushwoosh.AppId = \"YOUR_APP_ID\";\n    dcToolsConfigProvider.config.pushwoosh.googleProjectNumber = \"YOUR_PROJECT_NUMBER\";\n});\n`````\n\nAt ionic start call :\n\n`````\nif (window.cordova \u0026\u0026 window.plugins.pushNotification) {\n    dcToolsPushwoosh.registerListener();\n}\n`````\n\nTo register a device call\n\n`````\ndcToolsPushwoosh.registerDevice(tags)\n`````\n\n### dcToolsTranslation\n\nConfigure a `dcToolsConfig` constant using `dcToolsConfigProvider`\n\n`````\napp.config(function langConfig(dcToolsConfigProvider) {\n    dcToolsConfigProvider.lang.api = \"./mocks/lang.json\";\n});\n`````\n\nConfigure translator :\n\n`````\nfunction ($translateProvider) {\n    $translateProvider.preferredLanguage('fr');\n    $translateProvider.fallbackLanguage('en');\n    $translateProvider.useLoader('dcToolsTranslation');\n}\n`````\n\n### dcToolsAutocacheImages\n\nRequire add `imgcache.js` in your `bower.json` (\u003e=v1.0rc1)\n\nInit your app with\n\n`````\n// ImageCache\nImgCache.options.debug = true;\n\n// increase allocated space on Chrome to 50MB, default was 10MB\nImgCache.options.chromeQuota = 50*1024*1024;\nImgCache.options.usePersistentCache = true;\n\nImgCache.init(function(){\n    $log.debug('ImgCache init: success!');\n\n    // from within this function you're now able to call other ImgCache methods\n    // or you can wait for the ImgCacheReady event\n    dcToolsAutocacheImages.ready();\n}, function(){\n    $log.debug('ImgCache init: error! Check the log for errors');\n});\n`````\n\nAnd when you load json in your services do :\n\n`````\ndcToolsAutocacheImages.cacheImages(\n    response.data, // The json array\n    'item.id', // path to build image /// item = root of row\n    [ // Optional filter list to find the image\n\n        \"firstFilter\", // Simple filter by string\n\n        // Or by object to pass args\n        {\n            filter: \"userIdToImageUrl\",\n            args: [\n                \"someparam\"\n            ]\n        }\n    ]\n);\n`````\n\nAfer use `dc-tools-use-cached-images` directive\n\n\n## Filters\n\n### Striptags\n\n````\n\u003cp ng-bind-html=\"article.body | dcToolsStriptags\"\u003e\u003c/p\u003e\n````\n\n### Highlight\n\n````\n\u003cp ng-bind-html=\"article.body | dcToolsStriptags | dcToolsHighlight:search\"\u003e\u003c/p\u003e\n````\n\n## Directives\n\n### Tabs headers\n\nAdd method goToSlide and slideChanged to connect a slidebox to tabs header\n\n````\n\u003cion-view view-title=\"Article\"\u003e\n    \u003cion-header-bar class=\"bar tabs tabs2 bar-subheader bar-white\" no-tap-scroll=\"true\"\u003e\n        \u003cion-scroll\n            direction=\"x\"\n            scrollbar-x=\"false\"\n            scrollbar-y=\"false\"\n            delegate-handle=\"tab_header\"\n            class=\"scroll-view ionic-scroll tabs-header\"\n            dc-tools-tabs-header\u003e\n                \u003ca class=\"tab-item active\" ng-click=\"goToSlide(0)\"\u003eDetails\u003c/a\u003e\n                \u003ca class=\"tab-item\" ng-click=\"goToSlide(1);\"\u003eSample\u003c/a\u003e\n        \u003c/ion-scroll\u003e\n    \u003c/ion-header-bar\u003e\n\n    \u003cion-slide-box show-pager=\"false\" on-slide-changed=\"slideChanged($index)\"\u003e\n        \u003cion-slide\u003e\n            \u003cion-content\u003e\n                First slide\n            \u003c/ion-content\u003e\n        \u003c/ion-slide\u003e\n        \u003cion-slide\u003e\n            \u003cion-content\u003e\n                Second slide\n            \u003c/ion-content\u003e\n        \u003c/ion-slide\u003e\n    \u003c/ion-slide-box\u003e\n\u003c/ion-view\u003e\n````\n\n### Search bar\n\n````\n\u003cdc-tools-search-bar ng-model=\"search\" search=\"onSearchChanged(term)\"\u003e\u003c/dc-tools-search-bar\u003e\n````\n\n### Header shrink\n\nShrink search bar when scroll to got more space\n\n````\n\u003cdc-tools-search-bar ng-model=\"search\" search=\"onSearchChanged(term)\"\u003e\u003c/dc-tools-search-bar\u003e\n\u003cion-content class=\"has-header-shrink\" scroll-event-interval=\"5\" dc-tools-header-shrink dc-tools-blur-scroll\u003e\n````\n\n### Blur on scroll\n\nFocus out all focused fields when content is scrolled\n\n````\n\u003cdc-tools-search-bar ng-model=\"search\" search=\"onSearchChanged(term)\"\u003e\u003c/dc-tools-search-bar\u003e\n\u003cion-content class=\"has-header-shrink\" scroll-event-interval=\"5\" dc-tools-header-shrink dc-tools-blur-scroll\u003e\n````\n\n### Confirm click\n\nCall an action only when modal is confirmed\n\n````\n\u003ca dc-tools-confirm-click=\"Are you sure ?\"\n           confirmed-click=\"doIt()\"\n           confirm-click-title=\"Title of alert\"\u003eLink\u003c/a\u003e\n````\n\n# Cached images\n\n````\n\u003cimg dc-tools-use-cached-image bindonce bo-src=\"item.image\" /\u003e\n````\n\n````\n\u003cdiv dc-tools-use-cached-bg-image style=\"background-image: url({{ item.image }})\"\u003e\u003c/div\u003e\n````\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonkeycode%2Fionic-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonkeycode%2Fionic-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonkeycode%2Fionic-tools/lists"}