Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Improvements to the skin file editing. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | skin-setup-refactor |
| Files: | files | file ages | folders |
| SHA3-256: |
2179ffd47a81e8cb17de1fe7487e3c40 |
| User & Date: | drh 2017-12-02 21:48:45.823 |
Context
|
2017-12-03
| ||
| 01:29 | Improvements and fixes to the new skin editing. check-in: 38762b9f6c user: drh tags: skin-setup-refactor | |
|
2017-12-02
| ||
| 21:48 | Improvements to the skin file editing. check-in: 2179ffd47a user: drh tags: skin-setup-refactor | |
| 21:24 | The new skin editing is working, minimally. Still needs lots of work, though. check-in: 5840fdd732 user: drh tags: skin-setup-refactor | |
Changes
Changes to src/skins.c.
| ︙ | ︙ | |||
623 624 625 626 627 628 629 630 631 632 633 634 635 636 |
/* 2 */ { "header", "Page Header", "Header", },
/* 3 */ { "details", "Display Details", "Details", },
};
const char *zBasis;
const char *zContent;
char *zDflt;
char *zKey;
int iSkin;
int ii;
int j;
login_check_credentials();
/* Figure out which skin we are editing */
| > | 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 |
/* 2 */ { "header", "Page Header", "Header", },
/* 3 */ { "details", "Display Details", "Details", },
};
const char *zBasis;
const char *zContent;
char *zDflt;
char *zKey;
char *zTitle;
int iSkin;
int ii;
int j;
login_check_credentials();
/* Figure out which skin we are editing */
|
| ︙ | ︙ | |||
651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 |
}
}
/* figure out which file is to be edited */
ii = atoi(PD("w","0"));
if( ii<0 || ii>count(aSkinAttr) ) ii = 0;
zKey = mprintf("draft%d-%s", iSkin, aSkinAttr[ii].zFile);
zBasis = PD("basis","default");
zDflt = mprintf("skins/%s/%s.txt", zBasis, aSkinAttr[ii].zFile);
db_begin_transaction();
if( P("revert")!=0 ){
db_multi_exec("DELETE FROM config WHERE name=%Q", aSkinAttr[ii].zFile);
cgi_replace_parameter(aSkinAttr[ii].zFile, builtin_text(zDflt));
}
| > | | | | 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 |
}
}
/* figure out which file is to be edited */
ii = atoi(PD("w","0"));
if( ii<0 || ii>count(aSkinAttr) ) ii = 0;
zKey = mprintf("draft%d-%s", iSkin, aSkinAttr[ii].zFile);
zTitle = mprintf("%s for Draft%d", aSkinAttr[ii].zTitle, iSkin);
zBasis = PD("basis","default");
zDflt = mprintf("skins/%s/%s.txt", zBasis, aSkinAttr[ii].zFile);
db_begin_transaction();
if( P("revert")!=0 ){
db_multi_exec("DELETE FROM config WHERE name=%Q", aSkinAttr[ii].zFile);
cgi_replace_parameter(aSkinAttr[ii].zFile, builtin_text(zDflt));
}
style_header("%s", zTitle);
for(j=0; j<count(aSkinAttr); j++){
if( j==ii ) continue;
style_submenu_element(aSkinAttr[j].zSubmenu,
"%R/setup_skinedit?w=%d&basis=%h&sk=%d",j,zBasis,iSkin);
}
@ <form action="%s(g.zTop)/setup_skinedit" method="post"><div>
login_insert_csrf_secret();
@ <input type='hidden' name='w' value='%d(ii)'>
@ <input type='hidden' name='sk' value='%d(iSkin)'>
@ <h2>Edit %s(zTitle):</h2>
zContent = textarea_attribute("", 10, 80, zKey,
aSkinAttr[ii].zFile, builtin_text(zDflt), 0);
@ <br />
@ <input type="submit" name="submit" value="Apply Changes" />
@ <hr />
@ Baseline: <select size='1' name='basis'>
for(j=0; j<count(aBuiltinSkin); j++){
|
| ︙ | ︙ | |||
791 792 793 794 795 796 797 798 799 800 801 802 803 804 |
*/
void setup_skin(void){
int i; /* Loop counter */
int iSkin; /* Which draft skin is being edited */
int isSetup; /* True for an administrator */
int isEditor; /* Others authorized to make edits */
char *zAllowedEditors; /* Who may edit the draft skin */
static const char *azTestPages[] = {
"home",
"timeline",
"dir?ci=tip",
"dir?ci=tip&type=tree",
"brlist",
"info/trunk",
| > | 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 |
*/
void setup_skin(void){
int i; /* Loop counter */
int iSkin; /* Which draft skin is being edited */
int isSetup; /* True for an administrator */
int isEditor; /* Others authorized to make edits */
char *zAllowedEditors; /* Who may edit the draft skin */
char *zBase; /* Base URL for draft under test */
static const char *azTestPages[] = {
"home",
"timeline",
"dir?ci=tip",
"dir?ci=tip&type=tree",
"brlist",
"info/trunk",
|
| ︙ | ︙ | |||
926 927 928 929 930 931 932 |
if( !isEditor ){
@ <p>You are not authorized to make edits to the draft%d(iSkin) skin.
@ Contact the administrator of this Fossil repository for help.</p>
}else{
@ <p>Edit the components of the draft%d(iSkin) skin:
@ <ul>
@ <li><a href='%R/setup_skinedit?w=0&sk=%d(iSkin)' target='_blank'>CSS</a>
| | | > > > > > | | > | 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 |
if( !isEditor ){
@ <p>You are not authorized to make edits to the draft%d(iSkin) skin.
@ Contact the administrator of this Fossil repository for help.</p>
}else{
@ <p>Edit the components of the draft%d(iSkin) skin:
@ <ul>
@ <li><a href='%R/setup_skinedit?w=0&sk=%d(iSkin)' target='_blank'>CSS</a>
@ <li><a href='%R/setup_skinedit?w=2&sk=%d(iSkin)' target='_blank'>\
@ Header</a>
@ <li><a href='%R/setup_skinedit?w=1&sk=%d(iSkin)' target='_blank'>\
@ Footer</a>
@ <li><a href='%R/setup_skinedit?w=3&sk=%d(iSkin)' target='_blank'>\
@ Details</a>
@ </ul>
}
@
@ <a name='step5'></a>
@ <h1>Step 5: Verify The Draft Skin</h1>
@
@ <p>To test this draft skin, insert text "/draft%d(iSkin)/" just before the
@ operation name in the URL. Here are a few links to try:
@ <ul>
if( iDraftSkin && sqlite3_strglob("*/draft[1-9]", g.zBaseURL)==0 ){
zBase = mprintf("%.*s/draft%d", (int)strlen(g.zBaseURL)-7,g.zBaseURL,iSkin);
}else{
zBase = mprintf("%s/draft%d", g.zBaseURL, iSkin);
}
for(i=0; i<count(azTestPages); i++){
@ <li><a href='%s(zBase)/%s(azTestPages[i])' target='_blank'>\
@ %s(zBase)/%s(azTestPages[i])</a>
}
fossil_free(zBase);
@ </ul>
@
@ <p>You will probably need to press Reload on your browser before any
@ CSS changes will take effect.</p>
@
@ <a hame='step6'></a>
@ <h1>Step 6: Interate</h1>
|
| ︙ | ︙ |