Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Laravel 5 Teamwork PM API Bridge

teamwork-graphic

Scrutinizer Code QualityCode CoverageBuild StatusReleaseLicense

This is a simple PHP Client that can connect to the Teamwork API. This package was developed to be used with Laravel 5 but can also be used stand alone as well. I hope this helps you automate and extend Teamwork to integrate even more into your business! Have fun and good luck. 🤘

Installation

Just add this to your composer.json and then run composer update.

"rossedman/teamwork": "~1.0"

You can also simply add it like this

composer require "rossedman/teamwork:~1.0"

Laravel Setup

This wrapper comes with support for Laravel 5. This includes a service provider as well as a facade for easy access. Once this package is pulled into your project just add this to your config/app.php file.

'providers' => [
...
'Rossedman\Teamwork\TeamworkServiceProvider',
],

and then add the facade to your aliases array

'aliases' => [
...
'Teamwork' => 'Rossedman\Teamwork\Facades\Teamwork',
],

Configuration

If you are using Laravel then add a teamwork array to your config/services.php file

...'teamwork' => [
'key' => 'YourSecretKey',
'url' => 'YourTeamworkUrl'
],

Use

If you are using the Facade with Laravel youc an easily access Teamwork like this

Teamwork::people()->all();

If you want to use dependency injection to make your application easy to test the Service Provider binds Rossedman\Teamwork\Factory. Here is an example of how to use it with dependency injection

Route::get('/test', function(Rossedman\Teamwork\Factory$teamwork) {
$activity = $teamwork->activity()->latest();
});

Configuration Without Laravel

If you are not using Laravel you can instantiate the class like this

require"vendor/autoload.php";
useGuzzleHttp\ClientasGuzzle;
useRossedman\Teamwork\Client;
useRossedman\Teamwork\FactoryasTeamwork;
$client = newClient(newGuzzle, 'YourSecretKey', 'YourTeamworkUrl');
$teamwork = newTeamwork($client);

You are ready to go now!


Examples

Not all of the Teamwork API is supported yet but there is still a lot you can do! Below are some examples of how you can access Projects, Companies, and more. To work with a specific Object pass in the ID to perform actions on it. Data can be passed through for creating and editing.

To see more examples visit the docs

// create a project$teamwork->project()->create([
"name" => "My New Amazing Project",
"description" => "This is a project that I will dedicate my whole life too",
"companyId" => "999"
]);
// get the latest activity on a project$teamwork->project($projectID)->activity();

Roadmap

1.1 Release

  • Add Support For Comments
  • Add Support For Permissions
  • Add Support For Time Endpoint

1.2 Release

  • Add Support For Categories
  • Add Support For People Status
  • Add Support For Files
  • Add Support For Notebooks

About

Laravel 5 Teamwork PM API Bridge

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages