convert mail template editor to app framework for a restful api
This commit is contained in:
parent
37afab87b5
commit
b5a145b297
|
@ -1,21 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
OC_JSON::checkAdminUser();
|
|
||||||
OCP\JSON::callCheck();
|
|
||||||
|
|
||||||
if(!\OCP\App::isEnabled('files_sharing')){
|
|
||||||
\OC_Response::setStatus(410); // GONE
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get data
|
|
||||||
if ( isset( $_GET['theme'] ) && isset( $_GET['template'] ) ) {
|
|
||||||
|
|
||||||
$template = new \OCA\Files_Sharing\MailTemplate( $_GET['theme'], $_GET['template'] );
|
|
||||||
try {
|
|
||||||
$template->renderContent();
|
|
||||||
} catch (\OCP\Files\NotPermittedException $ex) {
|
|
||||||
\OC_Response::setStatus(403); // forbidden
|
|
||||||
}
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
\OC_Response::setStatus(404); // not found
|
|
|
@ -1,24 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
OC_JSON::checkAdminUser();
|
|
||||||
OCP\JSON::callCheck();
|
|
||||||
|
|
||||||
if(!\OCP\App::isEnabled('files_sharing')){
|
|
||||||
\OCP\Response::setStatus(410); // GONE
|
|
||||||
}
|
|
||||||
|
|
||||||
$l=OC_L10N::get('core');
|
|
||||||
|
|
||||||
// post data
|
|
||||||
if ( isset( $_POST['theme'] ) && isset( $_POST['template'] ) ) {
|
|
||||||
|
|
||||||
$template = new \OCA\Files_Sharing\MailTemplate( $_POST['theme'], $_POST['template'] );
|
|
||||||
try {
|
|
||||||
$template->reset();
|
|
||||||
\OC_Response::setStatus(200); // ok
|
|
||||||
} catch (\OCP\Files\NotPermittedException $ex) {
|
|
||||||
\OC_Response::setStatus(403); // forbidden
|
|
||||||
}
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
\OC_Response::setStatus(404); // not found
|
|
|
@ -1,24 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
OC_JSON::checkAdminUser();
|
|
||||||
OCP\JSON::callCheck();
|
|
||||||
|
|
||||||
if(!\OCP\App::isEnabled('files_sharing')){
|
|
||||||
\OCP\Response::setStatus(410); // GONE
|
|
||||||
}
|
|
||||||
|
|
||||||
$l=OC_L10N::get('core');
|
|
||||||
|
|
||||||
// post data
|
|
||||||
if ( isset( $_POST['theme'] ) && isset( $_POST['template'] ) && isset( $_POST['content'] ) ) {
|
|
||||||
|
|
||||||
$template = new \OCA\Files_Sharing\MailTemplate( $_POST['theme'], $_POST['template'] );
|
|
||||||
try {
|
|
||||||
$template->setContent($_POST['content']);
|
|
||||||
\OC_Response::setStatus(200); // ok
|
|
||||||
} catch (\OCP\Files\NotPermittedException $ex) {
|
|
||||||
\OC_Response::setStatus(403); // forbidden
|
|
||||||
}
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
\OC_Response::setStatus(404); // not found
|
|
|
@ -1,5 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
if(!\OCP\App::isEnabled('files_sharing')){
|
|
||||||
\OCP\Response::setStatus(410); // GONE
|
|
||||||
}
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace OCA\Files_Sharing\App;
|
||||||
|
|
||||||
|
use \OCP\AppFramework\App;
|
||||||
|
use \OCA\Files_Sharing\Controller\AdminSettingsController;
|
||||||
|
|
||||||
|
class Sharing extends App {
|
||||||
|
|
||||||
|
public function __construct(array $urlParams=array()){
|
||||||
|
parent::__construct('files_sharing', $urlParams);
|
||||||
|
|
||||||
|
$container = $this->getContainer();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Controllers
|
||||||
|
*/
|
||||||
|
$container->registerService('AdminSettingsController', function($c) {
|
||||||
|
return new AdminSettingsController(
|
||||||
|
$c->query('AppName'),
|
||||||
|
$c->query('Request')
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,6 +5,21 @@ $this->create('core_ajax_public_preview', '/publicpreview')->action(
|
||||||
require_once __DIR__ . '/../ajax/publicpreview.php';
|
require_once __DIR__ . '/../ajax/publicpreview.php';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
use \OCA\Files_Sharing\App\Sharing;
|
||||||
|
|
||||||
|
$app = new Sharing();
|
||||||
|
|
||||||
|
$app->registerRoutes($this, array('routes' => array(
|
||||||
|
|
||||||
|
// mailTemplate settings
|
||||||
|
array('name' => 'admin_settings#render', 'url' => '/settings/mailtemplate', 'verb' => 'GET'),
|
||||||
|
|
||||||
|
array('name' => 'admin_settings#update', 'url' => '/settings/mailtemplate', 'verb' => 'POST'),
|
||||||
|
|
||||||
|
array('name' => 'admin_settings#reset', 'url' => '/settings/mailtemplate', 'verb' => 'DELETE')
|
||||||
|
|
||||||
|
)));
|
||||||
|
|
||||||
// OCS API
|
// OCS API
|
||||||
|
|
||||||
//TODO: SET: mail notification, waiting for PR #4689 to be accepted
|
//TODO: SET: mail notification, waiting for PR #4689 to be accepted
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace OCA\Files_Sharing\Controller;
|
||||||
|
|
||||||
|
use \OCP\AppFramework\ApiController;
|
||||||
|
use \OCP\IRequest;
|
||||||
|
use \OCP\AppFramework\Http\JSONResponse;
|
||||||
|
|
||||||
|
class AdminSettingsController extends ApiController {
|
||||||
|
|
||||||
|
public function __construct($appName, IRequest $request) {
|
||||||
|
parent::__construct($appName, $request);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $theme
|
||||||
|
* @param string $template
|
||||||
|
* @return type Description
|
||||||
|
* @return \OCA\Files_Sharing\Http\MailTemplateResponse
|
||||||
|
*/
|
||||||
|
public function render( $theme, $template ) {
|
||||||
|
$template = new \OCA\Files_Sharing\MailTemplate( $theme, $template );
|
||||||
|
return $template->getResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $theme
|
||||||
|
* @param string $template
|
||||||
|
* @param string $content
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function update( $theme, $template, $content ) {
|
||||||
|
$template = new \OCA\Files_Sharing\MailTemplate( $theme, $template );
|
||||||
|
$template->setContent( $content );
|
||||||
|
return new JSONResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $theme
|
||||||
|
* @param string $template
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function reset( $theme, $template ) {
|
||||||
|
$template = new \OCA\Files_Sharing\MailTemplate( $theme, $template );
|
||||||
|
$template->reset();
|
||||||
|
return new JSONResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -9,7 +9,7 @@
|
||||||
#mailTemplateSettings textarea {
|
#mailTemplateSettings textarea {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100px;
|
height: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mailTemplateSettings .templateEditor + .actions {
|
#mailTemplateSettings .templateEditor + .actions {
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ownCloud - App Framework
|
||||||
|
*
|
||||||
|
* @author Jörn Dreyer
|
||||||
|
* @copyright 2014 Jörn Dreyer <jfd@owncloud.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCA\Files_Sharing\Http;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prompts the user to download the a file
|
||||||
|
*/
|
||||||
|
class MailTemplateResponse extends \OCP\AppFramework\Http\Response {
|
||||||
|
|
||||||
|
private $filename;
|
||||||
|
private $contentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a response that prompts the user to download the file
|
||||||
|
* @param string $filename the name that the downloaded file should have
|
||||||
|
* @param string $contentType the mimetype that the downloaded file should have
|
||||||
|
*/
|
||||||
|
public function __construct($filename, $contentType = 'text/php') {
|
||||||
|
$this->filename = $filename;
|
||||||
|
$this->contentType = $contentType;
|
||||||
|
|
||||||
|
$this->addHeader('Content-Disposition', 'attachment; filename="' . $filename . '"');
|
||||||
|
$this->addHeader('Content-Type', $contentType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw template content
|
||||||
|
* @return string the file
|
||||||
|
*/
|
||||||
|
public function render(){
|
||||||
|
return file_get_contents($this->filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,14 +2,13 @@ $(document).ready(function() {
|
||||||
|
|
||||||
var loadTemplate = function (theme, template) {
|
var loadTemplate = function (theme, template) {
|
||||||
$.get(
|
$.get(
|
||||||
OC.filePath( 'files_sharing', 'ajax', 'getmailtemplate.php' )
|
OC.generateUrl('apps/files_sharing/settings/mailtemplate'),
|
||||||
, { theme: theme, template: template }
|
{ theme: theme, template: template }
|
||||||
).done(function( result ) {
|
).done(function( result ) {
|
||||||
$( '#mailTemplateSettings textarea' ).val(result);
|
$( '#mailTemplateSettings textarea' ).val(result);
|
||||||
}).fail(function( result ) {
|
}).fail(function( result ) {
|
||||||
alert(result);
|
alert(result);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// load default template
|
// load default template
|
||||||
|
@ -24,6 +23,7 @@ $(document).ready(function() {
|
||||||
loadTemplate(theme, template);
|
loadTemplate(theme, template);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
$( '#mts-theme' ).change(
|
$( '#mts-theme' ).change(
|
||||||
function() {
|
function() {
|
||||||
var theme = $( this ).val();
|
var theme = $( this ).val();
|
||||||
|
@ -31,6 +31,7 @@ $(document).ready(function() {
|
||||||
loadTemplate(theme, template);
|
loadTemplate(theme, template);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
$( '#mailTemplateSettings .actions' ).on('click', '.save',
|
$( '#mailTemplateSettings .actions' ).on('click', '.save',
|
||||||
function() {
|
function() {
|
||||||
var theme = $( '#mts-theme' ).val();
|
var theme = $( '#mts-theme' ).val();
|
||||||
|
@ -38,8 +39,8 @@ $(document).ready(function() {
|
||||||
var content = $( '#mailTemplateSettings textarea' ).val();
|
var content = $( '#mailTemplateSettings textarea' ).val();
|
||||||
OC.msg.startSaving('#mts-msg');
|
OC.msg.startSaving('#mts-msg');
|
||||||
$.post(
|
$.post(
|
||||||
OC.filePath( 'files_sharing', 'ajax', 'setmailtemplate.php' )
|
OC.generateUrl('apps/files_sharing/settings/mailtemplate'),
|
||||||
, { theme: theme, template: template, content: content }
|
{ theme: theme, template: template, content: content }
|
||||||
).done(function( result ) {
|
).done(function( result ) {
|
||||||
var data = { status:'success', data:{message:t('files_sharing', 'Saved')} };
|
var data = { status:'success', data:{message:t('files_sharing', 'Saved')} };
|
||||||
OC.msg.finishedSaving('#mts-msg', data);
|
OC.msg.finishedSaving('#mts-msg', data);
|
||||||
|
@ -49,16 +50,18 @@ $(document).ready(function() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
$( '#mailTemplateSettings .actions' ).on('click', '.reset',
|
$( '#mailTemplateSettings .actions' ).on('click', '.reset',
|
||||||
function() {
|
function() {
|
||||||
var theme = $( '#mts-theme' ).val();
|
var theme = $( '#mts-theme' ).val();
|
||||||
var template = $( '#mts-template' ).val();
|
var template = $( '#mts-template' ).val();
|
||||||
var content = $( '#mailTemplateSettings textarea' ).val();
|
var content = $( '#mailTemplateSettings textarea' ).val();
|
||||||
OC.msg.startSaving('#mts-msg');
|
OC.msg.startSaving('#mts-msg');
|
||||||
$.post(
|
$.ajax({
|
||||||
OC.filePath( 'files_sharing', 'ajax', 'resetmailtemplate.php' )
|
type: "DELETE",
|
||||||
, { theme: theme, template: template }
|
url: OC.generateUrl('apps/files_sharing/settings/mailtemplate'),
|
||||||
).done(function( result ) {
|
data: { theme: theme, template: template }
|
||||||
|
}).done(function( result ) {
|
||||||
var data = { status:'success', data:{message:t('files_sharing', 'Reset')} };
|
var data = { status:'success', data:{message:t('files_sharing', 'Reset')} };
|
||||||
OC.msg.finishedSaving('#mts-msg', data);
|
OC.msg.finishedSaving('#mts-msg', data);
|
||||||
|
|
||||||
|
@ -72,4 +75,5 @@ $(document).ready(function() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
namespace OCA\Files_Sharing;
|
namespace OCA\Files_Sharing;
|
||||||
|
|
||||||
use \OCP\Files\NotPermittedException;
|
use \OCP\Files\NotPermittedException;
|
||||||
|
use \OC\AppFramework\Middleware\Security\SecurityException;
|
||||||
|
use OCA\Files_Sharing\Http\MailTemplateResponse;
|
||||||
|
|
||||||
class MailTemplate extends \OC_Template {
|
class MailTemplate extends \OC_Template {
|
||||||
|
|
||||||
|
@ -21,14 +23,27 @@ class MailTemplate extends \OC_Template {
|
||||||
$this->editableTemplates = self::getEditableTemplates();
|
$this->editableTemplates = self::getEditableTemplates();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return \OCA\Files_Sharing\Http\MailTemplateResponse
|
||||||
|
*/
|
||||||
|
public function getResponse() {
|
||||||
|
if($this->isEditable()) {
|
||||||
|
list($app, $filename) = explode('/templates/', $this->path, 2);
|
||||||
|
$name = substr($filename, 0, -4);
|
||||||
|
list($path, $template) = $this->findTemplate($this->theme, $app, $name, '');
|
||||||
|
return new MailTemplateResponse($template);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function renderContent() {
|
public function renderContent() {
|
||||||
if($this->isEditable()) {
|
if($this->isEditable()) {
|
||||||
list($app, $filename) = explode("/templates/", $this->path, 2);
|
list($app, $filename) = explode('/templates/', $this->path, 2);
|
||||||
$name = substr($filename, 0, -4);
|
$name = substr($filename, 0, -4);
|
||||||
list($path, $template) = $this->findTemplate($this->theme, $app, $name, '');
|
list($path, $template) = $this->findTemplate($this->theme, $app, $name, '');
|
||||||
\OC_Response::sendFile($template);
|
\OC_Response::sendFile($template);
|
||||||
} else {
|
} else {
|
||||||
throw new NotPermittedException('Template not editable.');
|
throw new SecurityException('Template not editable.', 403);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +55,7 @@ class MailTemplate extends \OC_Template {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setContent($data) {
|
public function setContent($data) {
|
||||||
if($this->isEditable()) {
|
if($this->isEditable()) {
|
||||||
//save default templates in default folder to overwrite core template
|
//save default templates in default folder to overwrite core template
|
||||||
|
@ -47,19 +63,20 @@ class MailTemplate extends \OC_Template {
|
||||||
$parent = dirname($absolutePath);
|
$parent = dirname($absolutePath);
|
||||||
if ( ! is_dir($parent) ) {
|
if ( ! is_dir($parent) ) {
|
||||||
if ( ! mkdir(dirname($absolutePath), 0777, true) ){
|
if ( ! mkdir(dirname($absolutePath), 0777, true) ){
|
||||||
throw new NotPermittedException('Could not create directory.');
|
throw new \Exception('Could not create directory.', 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( $this->theme !== 'default' && is_file($absolutePath) ) {
|
if ( $this->theme !== 'default' && is_file($absolutePath) ) {
|
||||||
if ( ! copy($absolutePath, $absolutePath.'.bak') ){
|
if ( ! copy($absolutePath, $absolutePath.'.bak') ){
|
||||||
throw new NotPermittedException('Could not create directory.');
|
throw new \Exception('Could not overwrite template.', 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//overwrite theme templates? versioning?
|
//overwrite theme templates? versioning?
|
||||||
return file_put_contents($absolutePath, $data);
|
return file_put_contents($absolutePath, $data);
|
||||||
}
|
}
|
||||||
throw new NotPermittedException('Template not editable.');
|
throw new SecurityException('Template not editable.', 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reset(){
|
public function reset(){
|
||||||
if($this->isEditable()) {
|
if($this->isEditable()) {
|
||||||
$absolutePath = \OC::$SERVERROOT.'/themes/'.$this->theme.'/'.$this->path;
|
$absolutePath = \OC::$SERVERROOT.'/themes/'.$this->theme.'/'.$this->path;
|
||||||
|
@ -78,15 +95,16 @@ class MailTemplate extends \OC_Template {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
throw new NotPermittedException('Template not editable.');
|
throw new NotPermittedException('Template not editable.', 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getEditableThemes() {
|
public static function getEditableThemes() {
|
||||||
$themes = array(
|
$themes = array(
|
||||||
'default' => true
|
'default' => true
|
||||||
);
|
);
|
||||||
if ($handle = opendir(\OC::$SERVERROOT.'/themes')) {
|
if ($handle = opendir(\OC::$SERVERROOT.'/themes')) {
|
||||||
while (false !== ($entry = readdir($handle))) {
|
while (false !== ($entry = readdir($handle))) {
|
||||||
if ($entry != '.' && $entry != '..') {
|
if ($entry != '.' && $entry != '..' && $entry != 'default') {
|
||||||
if (is_dir(\OC::$SERVERROOT.'/themes/'.$entry)) {
|
if (is_dir(\OC::$SERVERROOT.'/themes/'.$entry)) {
|
||||||
$themes[$entry] = true;
|
$themes[$entry] = true;
|
||||||
}
|
}
|
||||||
|
@ -96,6 +114,7 @@ class MailTemplate extends \OC_Template {
|
||||||
}
|
}
|
||||||
return $themes;
|
return $themes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getEditableTemplates() {
|
public static function getEditableTemplates() {
|
||||||
return array(
|
return array(
|
||||||
'core/templates/mail.php' => true,
|
'core/templates/mail.php' => true,
|
||||||
|
|
|
@ -8,46 +8,14 @@
|
||||||
|
|
||||||
\OC_Util::checkAdminUser();
|
\OC_Util::checkAdminUser();
|
||||||
|
|
||||||
if (\OC_Util::getTheme()) {
|
|
||||||
$mailTemplatePath = \OC::$SERVERROOT . '/themes/' . OC_Util::getTheme() . '/core/templates/mail.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($mailTemplatePath) || !file_exists($mailTemplatePath) ) {
|
|
||||||
$mailTemplatePath = \OC::$SERVERROOT . '/core/templates/mail.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists($mailTemplatePath)) {
|
|
||||||
$mailTemplate = file_get_contents($mailTemplatePath);
|
|
||||||
} else {
|
|
||||||
//log no mail template found
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
\OCP\Util::addStyle('files_sharing', 'settings-admin');
|
\OCP\Util::addStyle('files_sharing', 'settings-admin');
|
||||||
\OCP\Util::addScript('files_sharing', 'settings-admin');
|
\OCP\Util::addScript('files_sharing', 'settings-admin');
|
||||||
//\OCP\Util::addScript('settings', 'personal');
|
|
||||||
|
|
||||||
$themes = array('default');
|
|
||||||
|
|
||||||
if ($handle = opendir(\OC::$SERVERROOT.'/themes')) {
|
|
||||||
while (false !== ($entry = readdir($handle))) {
|
|
||||||
if ($entry != '.' && $entry != '..') {
|
|
||||||
if (is_dir(\OC::$SERVERROOT.'/themes/'.$entry)) {
|
|
||||||
$themes[] = $entry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir($handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$themes = \OCA\Files_Sharing\MailTemplate::getEditableThemes();
|
||||||
$editableTemplates = \OCA\Files_Sharing\MailTemplate::getEditableTemplates();
|
$editableTemplates = \OCA\Files_Sharing\MailTemplate::getEditableTemplates();
|
||||||
|
|
||||||
$tmpl = new OCP\Template('files_sharing', 'settings-admin');
|
$tmpl = new OCP\Template('files_sharing', 'settings-admin');
|
||||||
$tmpl->assign('themes', $themes);
|
$tmpl->assign('themes', $themes);
|
||||||
$tmpl->assign('editableTemplates', $editableTemplates);
|
$tmpl->assign('editableTemplates', $editableTemplates);
|
||||||
|
|
||||||
|
|
||||||
//\OCP\Util::addscript('files_settings', 'settings');
|
|
||||||
//\OCP\Util::addscript('core', 'multiselect');
|
|
||||||
|
|
||||||
return $tmpl->fetchPage();
|
return $tmpl->fetchPage();
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<div class="section" id="mailTemplateSettings" >
|
<div class="section" id="mailTemplateSettings" >
|
||||||
|
|
||||||
<h2><?php p($l->t('Mail templates'));?></h2>
|
<h2><?php p($l->t('Mail templates'));?></h2>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
|
@ -6,7 +7,7 @@
|
||||||
<div>
|
<div>
|
||||||
<label for="mts-theme"><?php p($l->t('Theme'));?></label>
|
<label for="mts-theme"><?php p($l->t('Theme'));?></label>
|
||||||
<select id="mts-theme">
|
<select id="mts-theme">
|
||||||
<?php foreach($_['themes'] as $theme): ?>
|
<?php foreach($_['themes'] as $theme => $editable): ?>
|
||||||
<option><?php p($theme); ?></option>
|
<option><?php p($theme); ?></option>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</select>
|
</select>
|
||||||
|
@ -36,4 +37,5 @@
|
||||||
<span id="mts-msg" class="msg"></span>
|
<span id="mts-msg" class="msg"></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue