25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

110 satır
4.2KB

  1. <?php
  2. $maxCount = 0;
  3. foreach ($model->campaignsByType as $row) {
  4. if ((int) $row['campaign_count'] > $maxCount) {
  5. $maxCount = (int) $row['campaign_count'];
  6. }
  7. }
  8. ?>
  9. <section class="content-stack">
  10. <div class="page-toolbar">
  11. <div class="section-heading">
  12. <h1>Dashboard</h1>
  13. <p>Overview of your campaign tracking data.</p>
  14. </div>
  15. </div>
  16. <div class="stats-grid stats-grid-4">
  17. <div class="stat-card">
  18. <span>Campaign Types</span>
  19. <strong><?= e((string) $model->totalCampaignTypes) ?></strong>
  20. </div>
  21. <div class="stat-card">
  22. <span>Campaigns</span>
  23. <strong><?= e((string) $model->totalCampaigns) ?></strong>
  24. </div>
  25. <div class="stat-card">
  26. <span>Job Types</span>
  27. <strong><?= e((string) $model->totalJobTypes) ?></strong>
  28. </div>
  29. <div class="stat-card">
  30. <span>Jobs</span>
  31. <strong><?= e((string) $model->totalJobs) ?></strong>
  32. </div>
  33. </div>
  34. <div class="dashboard-panels">
  35. <section class="section-panel">
  36. <div class="panel-header">
  37. <div>
  38. <h2>Recent Campaigns</h2>
  39. <p>The 5 most recently created campaigns.</p>
  40. </div>
  41. <a class="button button-secondary button-sm" href="/campaigns">View All</a>
  42. </div>
  43. <?php if (empty($model->recentCampaigns)): ?>
  44. <div class="empty-state">
  45. <p>No campaigns yet.</p>
  46. <p><a href="/campaigns/create">Create your first campaign</a></p>
  47. </div>
  48. <?php else: ?>
  49. <table class="dashboard-table">
  50. <thead>
  51. <tr>
  52. <th>ID</th>
  53. <th>Type</th>
  54. <th>Created</th>
  55. <th></th>
  56. </tr>
  57. </thead>
  58. <tbody>
  59. <?php foreach ($model->recentCampaigns as $row): ?>
  60. <tr>
  61. <td class="dashboard-table-id">#<?= e((string) $row['id']) ?></td>
  62. <td><?= e($row['campaign_type_name']) ?></td>
  63. <td class="dashboard-table-date"><?= e(date('M j, Y', strtotime((string) $row['created_at']))) ?></td>
  64. <td class="dashboard-table-action"><a href="/campaigns/<?= e((string) $row['id']) ?>/edit">Edit</a></td>
  65. </tr>
  66. <?php endforeach; ?>
  67. </tbody>
  68. </table>
  69. <?php endif; ?>
  70. </section>
  71. <section class="section-panel">
  72. <div class="panel-header">
  73. <div>
  74. <h2>Campaigns by Type</h2>
  75. <p>Campaign count per campaign type.</p>
  76. </div>
  77. <a class="button button-secondary button-sm" href="/campaign-types">Manage Types</a>
  78. </div>
  79. <?php if (empty($model->campaignsByType)): ?>
  80. <div class="empty-state">
  81. <p>No campaign types yet.</p>
  82. <p><a href="/campaign-types/create">Create your first type</a></p>
  83. </div>
  84. <?php else: ?>
  85. <div class="type-breakdown">
  86. <?php foreach ($model->campaignsByType as $row): ?>
  87. <?php $pct = $maxCount > 0 ? round((int) $row['campaign_count'] / $maxCount * 100) : 0; ?>
  88. <div class="type-breakdown-row">
  89. <span class="type-name"><?= e($row['campaign_type_name']) ?></span>
  90. <span class="type-bar-wrap">
  91. <span class="type-bar" style="width: <?= e((string) $pct) ?>%"></span>
  92. </span>
  93. <span class="type-count"><?= e((string) $row['campaign_count']) ?></span>
  94. </div>
  95. <?php endforeach; ?>
  96. </div>
  97. <?php endif; ?>
  98. </section>
  99. </div>
  100. </section>

Powered by TurnKey Linux.